
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
    body { font-family: 'Geologica', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; background: var(--bg); color: #1a1a2e; line-height: 1.6; overflow-x: hidden; }

    :root {
      --brand:       #5451e7;
      --brand-dark:  #3d3ab0;
      --brand-mid:   #6f6df0;
      --azure:       #3480e0;
      --orange:      #FF6B2B;
      --orange-light:#FFF0E8;
      --orange-mid:  #FFD4BB;
      --green:       #36b26b;
      --aero:        #c6efd3;
      --white:       #ffffff;
      --bg:          #f7f8ff;
      --text:        #1a1a2e;
      --muted:       #565e6b;
      --border:      rgba(84,81,231,0.13);
      --card-bg:     #ffffff;
    }

    /* ══ NAV ══════════════════════════════════════════════════════ */
    nav {
      position: sticky; top: 0; z-index: 200;
      background: rgba(255,255,255,0.97); backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border);
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 5%; height: 64px;
    }
    .nav-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
    .nav-brand-text { line-height: 1.25; }
    .nav-brand-main { font-size: 0.88rem; font-weight: 800; color: var(--text); letter-spacing: -0.01em; display: block; }
    .nav-brand-sub  { font-size: 0.58rem; font-weight: 600; letter-spacing: 0.14em; color: var(--brand); text-transform: uppercase; display: block; }
    .nav-links { display: flex; gap: 4px; list-style: none; align-items: center; }
    .nav-links a { text-decoration: none; color: var(--muted); font-size: 0.82rem; font-weight: 500; padding: 6px 12px; border-radius: 7px; transition: color 0.18s, background 0.18s; }
    .nav-links a:hover { color: var(--text); background: var(--bg); }
    .nav-cta { padding: 8px 18px; background: var(--brand); color: var(--white) !important; border-radius: 8px; font-weight: 700 !important; font-size: 0.82rem; text-decoration: none; transition: background 0.2s; }
    .nav-cta:hover { background: var(--brand-dark) !important; }
    .nav-right { display: flex; align-items: center; gap: 10px; }
    .nav-back { display: flex; align-items: center; gap: 6px; text-decoration: none; color: var(--muted); font-size: 0.78rem; font-weight: 600; padding: 6px 12px; border-radius: 7px; border: 1px solid var(--border); transition: color 0.18s, border-color 0.18s; white-space: nowrap; }
    .nav-back:hover { color: var(--brand); border-color: var(--brand); }
    .nav-dropdown { position: relative; list-style: none; }
    .nav-dropdown-toggle { display: flex !important; align-items: center; gap: 4px; cursor: pointer; }
    .nav-dropdown-toggle::after { content: '▾'; font-size: 0.7rem; opacity: 0.6; }
    .nav-dropdown-menu { display: none; position: absolute; top: calc(100% + 8px); left: 0; background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 6px; min-width: 220px; box-shadow: 0 8px 28px rgba(0,0,0,0.1); z-index: 300; }
    .nav-dropdown-menu::before { content: ''; position: absolute; top: -8px; left: -4px; right: -4px; height: 8px; background: transparent; }
    .nav-dropdown:hover .nav-dropdown-menu { display: block; }
    .nav-dropdown-menu a { display: block !important; padding: 10px 14px !important; color: var(--muted) !important; font-size: 0.82rem !important; font-weight: 500 !important; border-radius: 6px; }
    .nav-dropdown-menu a:hover { background: var(--bg) !important; color: var(--text) !important; }
    .mobile-nav-section { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand); padding: 12px 0 4px; border-bottom: none !important; }
    .mobile-nav-sub { padding-left: 14px !important; font-size: 0.88rem !important; }

    /* ══ VIDEO ════════════════════════════════════════════════════ */
    .video-section { background: #0f0f1e; padding: 80px 5%; }
    .video-section .section-inner { max-width: 1140px; margin: 0 auto; }
    .video-section .eyebrow { color: var(--aero); }
    .video-section .eyebrow::before { background: var(--aero); }
    .video-section .section-title { color: #fff; }
    .video-section .section-desc { color: rgba(255,255,255,0.5); }
    .video-wrap { border-radius: 18px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.5); position: relative; }
    .video-wrap video { width: 100%; display: block; max-height: 540px; object-fit: cover; }
    .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
    .hamburger span { display: block; width: 22px; height: 2px; background: var(--brand); border-radius: 2px; transition: all 0.3s; }
    .hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
    .mobile-nav { display: none; position: fixed; top: 64px; left: 0; right: 0; z-index: 199; background: rgba(255,255,255,0.99); backdrop-filter: blur(20px); border-bottom: 1px solid var(--border); padding: 12px 5% 20px; flex-direction: column; }
    .mobile-nav.open { display: flex; }
    .mobile-nav a { text-decoration: none; color: var(--muted); font-size: 1rem; font-weight: 500; padding: 13px 0; border-bottom: 1px solid var(--border); display: block; }
    .mobile-nav a:last-child { border-bottom: none; }
    .mobile-nav .m-cta { margin-top: 12px; padding: 14px; text-align: center; background: var(--brand); color: var(--white) !important; border-radius: 8px; font-weight: 700; border-bottom: none !important; }

    /* ══ HERO ══════════════════════════════════════════════════════ */
    #hero {
      position: relative; overflow: hidden;
      background: linear-gradient(135deg, #f0efff 0%, #e8f4ff 50%, #fdf0f8 100%);
      min-height: 88vh; display: flex; align-items: stretch;
    }
    .hero-bg-pattern {
      position: absolute; inset: 0; pointer-events: none; z-index: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='rgba(84,81,231,0.07)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20 L20 36 Q20 46 30 46 L46 46'/%3E%3Ccircle cx='57' cy='46' r='8'/%3E%3Cpath d='M72 20 L72 36 Q72 46 82 46 L98 46'/%3E%3Cpath d='M20 74 L36 74 Q46 74 46 84 L46 100'/%3E%3Ccircle cx='60' cy='90' r='8'/%3E%3Cpath d='M86 74 L102 74 Q112 74 112 84 L112 100'/%3E%3C/g%3E%3C/svg%3E");
    }
    .hero-style-element {
      position: absolute; right: -2%; top: -10%; width: 54%; height: 130%;
      pointer-events: none; z-index: 1; opacity: 0.55;
    }
    .hero-left {
      flex: 0 0 50%; display: flex; align-items: center;
      padding: 100px 5% 60px; position: relative; z-index: 2;
    }
    .hero-left-inner { width: 100%; min-width: 0; }
    .hero-event-badge {
      display: inline-flex; align-items: center; gap: 10px;
      background: var(--orange-light); border: 1px solid var(--orange-mid);
      border-radius: 40px; padding: 7px 18px;
      margin-bottom: 28px;
    }
    .hero-event-badge span { font-size: 0.78rem; font-weight: 700; color: var(--orange); letter-spacing: 0.03em; }
    .hero-title {
      font-size: clamp(2.8rem, 5.5vw, 4.4rem); font-weight: 900;
      line-height: 1.08; letter-spacing: -0.03em; color: var(--text);
      margin-bottom: 20px;
    }
    .hero-title .accent { color: var(--brand); }
    .hero-desc { font-size: 1.05rem; color: var(--muted); line-height: 1.7; margin-bottom: 32px; font-weight: 400; max-width: 620px; }
    .hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
    .chip {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(255,255,255,0.85); border: 1px solid var(--border);
      border-radius: 40px; padding: 6px 14px;
      font-size: 0.78rem; font-weight: 600; color: var(--text);
      backdrop-filter: blur(4px);
    }
    .chip-icon { font-size: 0.9rem; }
    .chip-brand { background: rgba(84,81,231,0.08); border-color: rgba(84,81,231,0.2); color: var(--brand); }
    .chip-orange { background: var(--orange-light); border-color: var(--orange-mid); color: var(--orange); }
    .chip-green { background: var(--aero); border-color: rgba(54,178,107,0.3); color: #1e7a44; }
    .hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
    .btn-primary {
      display: inline-flex; align-items: center; gap: 9px;
      padding: 14px 30px; background: var(--brand); color: var(--white);
      border-radius: 10px; font-weight: 700; font-size: 0.95rem;
      text-decoration: none; transition: background 0.2s, transform 0.15s;
      box-shadow: 0 6px 24px rgba(84,81,231,0.3);
    }
    .btn-primary:hover { background: var(--brand-dark); transform: translateY(-2px); }
    .btn-outline {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 13px 24px; background: transparent; color: var(--brand);
      border: 2px solid var(--brand); border-radius: 10px;
      font-weight: 700; font-size: 0.95rem; text-decoration: none;
      transition: background 0.18s;
    }
    .btn-outline:hover { background: rgba(84,81,231,0.06); }

    /* Hero photo frame */
    .hero-photo-frame {
      flex: 0 0 50%; align-self: stretch; min-height: 400px;
      display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr;
      gap: 10px; padding: 16px; background: transparent; position: relative; z-index: 2;
    }
    .hero-photo-frame .hp-main { grid-row: span 2; overflow: hidden; border-radius: 16px; position: relative; }
    .hero-photo-frame .hp-small { overflow: hidden; border-radius: 16px; position: relative; }
    .hero-photo-frame img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
    .hero-photo-frame .hp-main:hover img, .hero-photo-frame .hp-small:hover img { transform: scale(1.04); }
    .hero-photo-frame .hp-main::after, .hero-photo-frame .hp-small::after {
      content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: 16px;
      background: linear-gradient(to top, rgba(84,81,231,0.2) 0%, transparent 55%);
    }

    /* ══ SECTIONS ══════════════════════════════════════════════════ */
    .section { width: min(1140px, 90%); padding: 80px 0; margin: 0 auto; }
    .section-full { padding: 80px 5%; background: var(--bg); }
    .section-full .section-inner { max-width: 1140px; margin: 0 auto; }
    .eyebrow {
      display: inline-flex; align-items: center; gap: 10px;
      font-size: 0.68rem; font-weight: 800; letter-spacing: 0.18em;
      text-transform: uppercase; color: var(--brand); margin-bottom: 14px;
    }
    .eyebrow::before { content: ''; display: block; width: 20px; height: 2px; background: var(--brand); border-radius: 2px; flex-shrink: 0; }
    .eyebrow-orange { color: var(--orange); }
    .eyebrow-orange::before { background: var(--orange); }
    .section-title { font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 900; letter-spacing: -0.03em; color: var(--text); margin-bottom: 14px; line-height: 1.15; }
    .section-desc { font-size: 0.95rem; color: var(--muted); line-height: 1.75; max-width: 560px; margin-bottom: 48px; }

    /* ══ INFO CARDS ════════════════════════════════════════════════ */
    .info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; }
    .info-card {
      background: var(--white); border-radius: 16px; padding: 26px 22px;
      border: 1px solid rgba(84,81,231,0.1);
      box-shadow: 0 2px 16px rgba(84,81,231,0.07);
      transition: transform 0.22s, box-shadow 0.22s;
    }
    .info-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(84,81,231,0.13); }
    .ic-icon { font-size: 2rem; margin-bottom: 14px; }
    .ic-label { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
    .ic-val { font-size: 1.25rem; font-weight: 900; color: var(--text); letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 6px; }
    .ic-desc { font-size: 0.78rem; color: var(--muted); line-height: 1.5; }
    .rating-note { max-width: 880px; margin: 22px auto 0; color: var(--muted); font-size: 0.72rem; line-height: 1.65; text-align: center; }
    .rating-note a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); text-underline-offset: 2px; }
    .ic-badge { display: inline-block; background: rgba(84,81,231,0.08); color: var(--brand); border-radius: 5px; padding: 2px 8px; font-size: 0.68rem; font-weight: 700; margin-top: 8px; }
    .ic-badge-green { background: var(--aero); color: #1e7a44; }
    .ic-badge-orange { background: var(--orange-light); color: var(--orange); }

    /* ══ SCHEDULE ══════════════════════════════════════════════════ */
    .sched-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
    .sched-day-card {
      background: var(--white); border-radius: 20px; overflow: hidden;
      border: 1px solid rgba(84,81,231,0.12);
      box-shadow: 0 4px 24px rgba(84,81,231,0.08);
    }
    .sdc-header {
      padding: 22px 26px 18px;
      background: linear-gradient(135deg, var(--brand) 0%, var(--azure) 100%);
      color: white;
    }
    .sdc-header.orange-header { background: linear-gradient(135deg, #FF6B2B 0%, #FF9A5C 100%); }
    .sdc-dow { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.8; margin-bottom: 4px; }
    .sdc-date-big { font-size: 2.4rem; font-weight: 900; letter-spacing: -0.03em; line-height: 1; }
    .sdc-month { font-size: 0.82rem; font-weight: 600; opacity: 0.85; margin-top: 2px; }
    .sdc-body { padding: 22px 26px; }
    .sdc-rounds { list-style: none; display: flex; flex-direction: column; gap: 0; }
    .sdc-round { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--border); }
    .sdc-round:last-child { border-bottom: none; }
    .sdc-rnum {
      width: 30px; height: 30px; background: rgba(84,81,231,0.08);
      border-radius: 8px; display: flex; align-items: center; justify-content: center;
      font-size: 0.72rem; font-weight: 800; color: var(--brand); flex-shrink: 0;
    }
    .sdc-rnum.orange { background: var(--orange-light); color: var(--orange); }
    .sdc-rinfo { flex: 1; }
    .sdc-rtitle { font-size: 0.88rem; font-weight: 700; color: var(--text); }
    .sdc-start { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; background: rgba(84,81,231,0.07); border-radius: 8px; padding: 8px 14px; font-size: 0.8rem; font-weight: 700; color: var(--brand); }
    .sdc-start.orange { background: var(--orange-light); color: var(--orange); }

    /* ══ CATEGORIES ════════════════════════════════════════════════ */
    .cat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1200px; margin: 0 auto; }
    .cat-card {
      background: var(--white); border-radius: 20px; padding: 24px 20px;
      border: 2px solid transparent; position: relative; overflow: hidden;
      display: flex; flex-direction: column;
      box-shadow: 0 4px 24px rgba(84,81,231,0.08);
      transition: transform 0.22s, box-shadow 0.22s;
    }
    .cat-card:hover { transform: translateY(-4px); box-shadow: 0 14px 40px rgba(84,81,231,0.15); }
    .cat-card-1 { border-color: rgba(84,81,231,0.25); }
    .cat-card-2 { border-color: rgba(54,178,107,0.3); }
    .cat-card-3 { border-color: rgba(255,107,43,0.3); }
    .cat-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; }
    .cat-card-1::before { background: linear-gradient(90deg, var(--brand), #7a78f5); }
    .cat-card-2::before { background: linear-gradient(90deg, #36b26b, #6dd49a); }
    .cat-card-3::before { background: linear-gradient(90deg, #FF6B2B, #FF9A5C); }
    .cat-chess-bg { position: absolute; right: -10px; bottom: -10px; font-size: 7rem; opacity: 0.06; line-height: 1; pointer-events: none; user-select: none; }
    .cat-label { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 10px; }
    .cat-label-1 { color: var(--brand); }
    .cat-label-2 { color: var(--green); }
    .cat-label-3 { color: var(--orange); }
    .cat-badge { display: inline-block; border-radius: 6px; padding: 2px 8px; font-size: 0.65rem; font-weight: 700; margin-bottom: 12px; }
    .cat-badge-note { background: rgba(54,178,107,0.12); color: #1e7a44; }
    .cat-rating { font-size: 1.9rem; font-weight: 900; letter-spacing: -0.04em; line-height: 1; margin-bottom: 8px; color: var(--text); }
    .cat-rating-sub { font-size: 0.78rem; color: var(--muted); margin-bottom: 16px; font-weight: 500; }
    .cat-features { list-style: none; display: flex; flex-direction: column; gap: 8px; }
    .cat-features li { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--muted); }
    .cat-features li::before { content: ''; display: block; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
    .cat-features { margin-bottom: 24px; }
    .cat-story {
      margin: auto -20px -24px; padding: 16px 20px 18px;
      background: #f7f8fc; border-top: 1px solid #e9ecf4; position: relative;
    }
    .cat-story-label {
      display: block; margin-bottom: 7px; color: #6c7183;
      font-size: 0.6rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
    }
    .cat-story p { margin: 0; color: #6c7183; font-size: 0.76rem; font-weight: 400; line-height: 1.6; }
    .cat-card-1 .cat-features li::before { background: var(--brand); }
    .cat-card-2 .cat-features li::before { background: var(--green); }
    .cat-card-3 .cat-features li::before { background: var(--orange); }
    .cat-award {
      display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 16px;
      padding: 12px 14px; border-radius: 12px;
      background: linear-gradient(135deg, rgba(255,107,43,0.11), rgba(255,154,92,0.06));
      border: 1px solid rgba(255,107,43,0.24); color: #8f3d19;
      font-size: 0.78rem; font-weight: 700; line-height: 1.45;
    }
    .cat-award-mark { font-size: 1.2rem; line-height: 1.1; }
    .cat-award small { display: block; margin-top: 2px; color: var(--muted); font-size: 0.72rem; font-weight: 500; }

    /* ══ PRIZES ════════════════════════════════════════════════════ */
    .prizes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
    .prize-card {
      background: var(--white); border-radius: 16px; padding: 26px 22px; text-align: center;
      border: 1px solid rgba(84,81,231,0.1); box-shadow: 0 2px 16px rgba(84,81,231,0.07);
      transition: transform 0.22s;
    }
    .prize-card:hover { transform: translateY(-3px); }
    .prize-medal { font-size: 2.8rem; margin-bottom: 12px; }
    .prize-place { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .prize-items { list-style: none; display: flex; flex-direction: column; gap: 6px; }
    .prize-items li { font-size: 0.83rem; color: var(--text); }
    .prize-gold .prize-place { color: #B8860B; }
    .prize-silver .prize-place { color: #708090; }
    .prize-bronze .prize-place { color: #A0522D; }
    .prize-gold { border-color: rgba(184,134,11,0.2); background: linear-gradient(180deg, #fffdf5 0%, #ffffff 100%); }
    .prize-silver { border-color: rgba(112,128,144,0.2); background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 100%); }
    .prize-bronze { border-color: rgba(160,82,45,0.15); background: linear-gradient(180deg, #fff9f6 0%, #ffffff 100%); }

    /* ══ GALLERY ════════════════════════════════════════════════════ */
    #gallery { background: #1a1a2e; padding: 80px 5%; }
    #gallery .section-inner { max-width: 1140px; margin: 0 auto; }
    #gallery .eyebrow { color: #c6efd3; }
    #gallery .eyebrow::before { background: #c6efd3; }
    #gallery .section-title { color: #ffffff; }
    #gallery .section-desc { color: rgba(255,255,255,0.55); }
    .gallery-mosaic { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 235px; gap: 10px; }
    .gm-item { overflow: hidden; position: relative; cursor: zoom-in; border-radius: 12px; }
    .gm-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.45s ease; }
    .gm-item:hover img { transform: scale(1.07); }
    .gm-item::after { content: ''; position: absolute; inset: 0; background: rgba(84,81,231,0.38); opacity: 0; transition: opacity 0.3s; border-radius: 12px; }
    .gm-item:hover::after { opacity: 1; }
    .gm-main { grid-column: span 2; grid-row: span 2; }
    .gm-tall { grid-row: span 2; }
    #lightbox { display:none; position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,0.92); align-items:center; justify-content:center; }
    #lightbox.open { display:flex; }
    #lb-img { max-width:90vw; max-height:90vh; object-fit:contain; border-radius:12px; }
    .lb-btn { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); color:#fff; font-size:2rem; width:52px; height:52px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; position:absolute; top:50%; transform:translateY(-50%); }
    #lb-prev { left:20px; } #lb-next { right:20px; }
    #lb-close { top:16px; right:20px; transform:none; font-size:1.6rem; width:40px; height:40px; }

    /* ══ REGISTRATION ═══════════════════════════════════════════════ */
    #register { background: var(--bg); }
    .reg-wrap { max-width: 680px; margin: 0 auto; }
    .form-card {
      background: var(--white); border-radius: 20px; padding: 40px;
      border: 1px solid rgba(84,81,231,0.12);
      box-shadow: 0 8px 40px rgba(84,81,231,0.1);
    }
    .form-progress { display: flex; align-items: flex-start; margin-bottom: 36px; }
    .prog-step { flex: 1; display: flex; flex-direction: column; align-items: center; }
    .prog-dot { width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--border); display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 800; color: var(--muted); background: var(--white); transition: all 0.3s; position: relative; z-index: 1; }
    .prog-dot.done { background: var(--brand); border-color: var(--brand); color: white; }
    .prog-dot.active { background: var(--white); border-color: var(--brand); color: var(--brand); box-shadow: 0 0 0 4px rgba(84,81,231,0.12); }
    .prog-line { flex: 1; height: 2px; background: var(--border); margin-top: 15px; transition: background 0.3s; }
    .prog-line.done { background: var(--brand); }
    .prog-label { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-top: 7px; text-align: center; }
    .prog-label.active { color: var(--brand); }
    .form-step { display: none; }
    .form-step.active { display: block; animation: fadeUp 0.3s ease; }
    @keyframes fadeUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
    .step-title { font-size: 1.2rem; font-weight: 800; color: var(--text); margin-bottom: 6px; letter-spacing: -0.02em; }
    .step-sub { font-size: 0.83rem; color: var(--muted); margin-bottom: 28px; }
    .frow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
    .frow-1 { grid-template-columns: 1fr; }
    .fgroup { display: flex; flex-direction: column; gap: 0; margin-bottom: 14px; }
    .flabel { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); margin-bottom: 7px; display: block; }
    .finput { width: 100%; padding: 11px 14px; border: 1.5px solid rgba(84,81,231,0.2); border-radius: 10px; font-family: 'Geologica', sans-serif; font-size: 0.9rem; color: var(--text); background: var(--white); outline: none; transition: border-color 0.2s, box-shadow 0.2s; }
    .finput:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(84,81,231,0.1); }
    .finput.fi-err { border-color: #e53e3e !important; }
    .ferr { font-size: 0.72rem; color: #e53e3e; margin-top: 4px; display: none; }
    .fselect { width: 100%; padding: 11px 14px; border: 1.5px solid rgba(84,81,231,0.2); border-radius: 10px; font-family: 'Geologica', sans-serif; font-size: 0.9rem; color: var(--text); background: var(--white); outline: none; cursor: pointer; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235451e7' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
    .fselect:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(84,81,231,0.1); }
    .cat-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    @media (min-width: 641px) { #catChoices { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
    .cat-choice { border: 2px solid rgba(84,81,231,0.15); border-radius: 12px; padding: 16px 14px; cursor: pointer; transition: border-color 0.2s, background 0.2s; user-select: none; }
    .cat-choice:hover { border-color: rgba(84,81,231,0.4); background: rgba(84,81,231,0.03); }
    .cat-choice.selected { border-color: var(--brand); background: rgba(84,81,231,0.05); }
    .cat-choice input { display: none; }
    .cc-rating { font-size: 1.1rem; font-weight: 900; color: var(--text); letter-spacing: -0.02em; }
    .cc-desc { font-size: 0.72rem; color: var(--muted); margin-top: 2px; }
    .form-btns { display: flex; gap: 10px; margin-top: 28px; align-items: center; }
    .fbtn-back { background: none; border: 1.5px solid var(--border); color: var(--muted); padding: 11px 22px; border-radius: 10px; font-family: 'Geologica', sans-serif; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: border-color 0.2s, color 0.2s; }
    .fbtn-back:hover { border-color: var(--brand); color: var(--brand); }
    .fbtn-next { background: var(--brand); color: white; border: none; padding: 12px 28px; border-radius: 10px; font-family: 'Geologica', sans-serif; font-size: 0.9rem; font-weight: 700; cursor: pointer; margin-left: auto; transition: background 0.2s; display: flex; align-items: center; gap: 8px; }
    .fbtn-next:hover { background: var(--brand-dark); }
    .fbtn-submit { background: linear-gradient(135deg, var(--brand) 0%, var(--azure) 100%); color: white; border: none; padding: 14px 32px; border-radius: 10px; font-family: 'Geologica', sans-serif; font-size: 0.95rem; font-weight: 700; cursor: pointer; margin-left: auto; transition: opacity 0.2s, transform 0.15s; display: flex; align-items: center; gap: 8px; box-shadow: 0 6px 20px rgba(84,81,231,0.3); }
    .fbtn-submit:hover { opacity: 0.92; transform: translateY(-1px); }
    /* ── Регистрация в 1 клик ── */
    .quick-head { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
    .quick-title { font-size: 1.2rem; font-weight: 800; color: var(--text); letter-spacing:-0.02em; }
    .quick-badge { font-size:0.6rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:#fff; background:linear-gradient(135deg,var(--brand) 0%,var(--azure) 100%); padding:3px 8px; border-radius:20px; }
    .quick-sub { font-size: 0.83rem; color: var(--muted); margin-bottom: 18px; }
    .qp-card { display:flex; align-items:center; gap:14px; flex-wrap:wrap; border:1.5px solid rgba(84,81,231,0.18); border-radius:14px; padding:14px 16px; margin-bottom:12px; background:#fbfbff; transition:border-color .2s, box-shadow .2s; }
    .qp-card:hover { border-color:rgba(84,81,231,0.4); box-shadow:0 4px 18px rgba(84,81,231,0.08); }
    .qp-info { flex:1; min-width:160px; }
    .qp-name { font-size:1rem; font-weight:800; color:var(--text); }
    .qp-meta { font-size:0.78rem; color:var(--muted); margin-top:3px; display:flex; flex-wrap:wrap; gap:4px 10px; }
    .qp-grp { display:inline-flex; align-items:center; gap:5px; }
    .qp-grp b { color:var(--brand); }
    .qp-btn { border:none; border-radius:10px; padding:11px 20px; font-family:'Geologica',sans-serif; font-size:0.9rem; font-weight:700; cursor:pointer; transition:opacity .2s, transform .15s; white-space:nowrap; }
    .qp-btn:disabled { cursor:default; }
    .qp-btn.q-go { background:linear-gradient(135deg,var(--brand) 0%,var(--azure) 100%); color:#fff; box-shadow:0 5px 16px rgba(84,81,231,0.28); }
    .qp-btn.q-go:hover { opacity:0.92; transform:translateY(-1px); }
    .qp-btn.q-pay { background:#fff4e0; color:#b25e00; border:1.5px solid #f0c178; box-shadow:none; }
    .qp-btn.q-pay:hover { background:#ffedcc; }
    .qp-btn.q-form { background:#eceaff; color:var(--brand); box-shadow:none; }
    .qp-btn.q-form:hover { background:#e1ddff; }
    .qp-paid { display:inline-flex; align-items:center; gap:6px; font-size:0.88rem; font-weight:800; color:var(--green); white-space:nowrap; }
    .quick-divider { display:flex; align-items:center; gap:12px; margin:20px 0 4px; color:var(--muted); font-size:0.78rem; font-weight:600; }
    .quick-divider::before, .quick-divider::after { content:''; flex:1; height:1px; background:rgba(84,81,231,0.14); }
    .quick-toggle { display:block; width:100%; text-align:center; background:none; border:none; color:var(--brand); font-family:'Geologica',sans-serif; font-size:0.9rem; font-weight:700; cursor:pointer; padding:8px; }
    .fee-box { background: var(--orange-light); border: 1px solid var(--orange-mid); border-radius: 12px; padding: 14px 18px; margin-bottom: 20px; display: flex; align-items: center; gap: 14px; }
    .fee-icon { font-size: 1.5rem; flex-shrink: 0; }
    .fee-label { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--orange); }
    .fee-amount { font-size: 1.2rem; font-weight: 900; color: var(--text); }
    .fee-note { font-size: 0.72rem; color: var(--muted); margin-top: 2px; }
    .fcheck-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; cursor: pointer; }
    .fcheck-row input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--brand); flex-shrink: 0; margin-top: 2px; cursor: pointer; }
    .fcheck-label { font-size: 0.82rem; color: var(--muted); line-height: 1.5; }
    .form-success { display: none; text-align: center; padding: 8px 4px 4px; }
    #qr-container { max-width: 100%; box-sizing: border-box; }
    #qr-container img, #qr-container canvas { max-width: 100%; height: auto; }
    .form-success.active { display: block; animation: fadeUp 0.4s ease; }
    .suc-icon { font-size: 4rem; margin-bottom: 16px; }
    .suc-title { font-size: 1.6rem; font-weight: 900; color: var(--text); margin-bottom: 10px; letter-spacing: -0.02em; }
    .suc-desc { font-size: 0.92rem; color: var(--muted); line-height: 1.7; }

    /* ══ PARTNERS ══════════════════════════════════════════════════ */
    #partners { background: linear-gradient(135deg, var(--brand) 0%, #3d3ab0 100%); padding: 60px 5%; text-align: center; }
    .partners-eyebrow { font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 32px; }
    .partners-strip { display: flex; align-items: center; justify-content: center; gap: 56px; flex-wrap: wrap; }
    .partner-logo { display: flex; flex-direction: column; align-items: center; gap: 10px; opacity: 0.82; transition: opacity 0.25s, transform 0.25s; }
    .partner-logo:hover { opacity: 1; transform: translateY(-2px); }
    .partner-logo img { height: 56px; width: auto; max-width: 180px; object-fit: contain; filter: brightness(0) invert(1); }
    .partner-logo span { font-size: 0.82rem; font-weight: 700; color: rgba(255,255,255,0.75); }
    .partners-sep { width: 1px; height: 44px; background: rgba(255,255,255,0.2); }

    /* ══ PAY SECTION ═══════════════════════════════════════════════ */
    .pay-modal-overlay { display:none; position:fixed; inset:0; z-index:500; background:rgba(10,10,30,0.72); backdrop-filter:blur(6px); align-items:center; justify-content:center; }
    .pay-modal-overlay.show { display:flex; }
    .pay-modal { background:#fff; border-radius:20px; padding:32px 28px; max-width:380px; width:90%; position:relative; box-shadow:0 24px 80px rgba(84,81,231,0.25); }
    .pay-modal-close { position:absolute; top:14px; right:16px; background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--muted); line-height:1; }
    .pay-modal-close:hover { color:var(--text); }
    .pay-modal-title { font-size:1.15rem; font-weight:900; color:var(--text); margin-bottom:4px; letter-spacing:-0.02em; }
    .pay-modal-sub { font-size:0.82rem; color:var(--muted); margin-bottom:20px; }
    .pay-qr-wrap { display:flex; flex-direction:column; align-items:center; gap:12px; }
    .pay-qr-sbp { display:flex; align-items:center; gap:7px; font-size:0.78rem; font-weight:700; color:var(--text); }
    .pay-qr-amount { font-size:1.6rem; font-weight:900; color:var(--brand); letter-spacing:-1px; }
    .pay-qr-box { border-radius:12px; overflow:hidden; border:1px solid var(--border); padding:10px; background:#fff; }
    .pay-qr-box canvas, .pay-qr-box img { display:block; }
    .pay-qr-hint { font-size:0.78rem; color:var(--muted); text-align:center; line-height:1.5; max-width:250px; }
    .pay-sbp-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 20px; background:var(--brand); color:#fff; border-radius:10px; text-decoration:none; font-size:0.86rem; font-weight:700; transition:background .18s; }
    .pay-sbp-btn:hover { background:var(--brand-dark); }

    /* ══ FOOTER ════════════════════════════════════════════════════ */
    footer { background: #0f0f1e; padding: 48px 5% 0; border-top: 1px solid rgba(255,255,255,0.06); }
    .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 40px; margin-bottom: 36px; }
    .footer-brand p { font-size: 0.85rem; color: rgba(255,255,255,0.4); line-height: 1.7; margin-top: 10px; }
    .footer-brand-name { font-size: 1rem; font-weight: 800; color: #ffffff; }
    .footer-col h4 { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand-mid); margin-bottom: 16px; }
    .footer-links { list-style: none; }
    .footer-links li { margin-bottom: 10px; }
    .footer-links a { text-decoration: none; color: rgba(255,255,255,0.4); font-size: 0.85rem; transition: color 0.2s; }
    .footer-links a:hover { color: rgba(255,255,255,0.85); }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.07); padding: 20px 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
    .footer-copy { font-size: 0.75rem; color: rgba(255,255,255,0.25); }

    /* ══ RESPONSIVE ════════════════════════════════════════════════ */
    @media (max-width: 900px) {
      .hero-photo-frame { display: none; }
      #hero { min-height: auto; }
      .hero-left { flex: 1; padding: 80px 4% 50px; }
      .hero-left { min-width: 0; width: 100%; }
      .nav-links { display: none; }
      .nav-back { display: none; }
      .hamburger { display: flex; }
      .gallery-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; }
      .gm-main { grid-column: span 2; grid-row: span 1; }
      .cat-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 640px) {
      .nav-cta { display:none; }
      .hero-title { overflow-wrap:anywhere; }
      .hero-btns { flex-direction:column; align-items:stretch; }
      .hero-btns a { width:100%; justify-content:center; }
      .section { width: 92%; padding: 60px 0; }
      .section-full { padding: 60px 4%; }
      .sched-grid { grid-template-columns: 1fr; }
      .cat-grid { grid-template-columns: 1fr; }
      .prizes-grid { grid-template-columns: 1fr; }
      .frow { grid-template-columns: 1fr; }
      .cat-choices { grid-template-columns: 1fr; }
      .form-card { padding: 26px 18px; }
      .form-btns { flex-direction: column; }
      .fbtn-next, .fbtn-submit { margin-left: 0; width: 100%; justify-content: center; }
      .partners-strip { flex-direction: column; gap: 32px; }
      .partners-sep { display: none; }
      .footer-grid { grid-template-columns: 1fr; gap: 24px; }
      .bot-qr-block { display: none; }
    }
    @media (max-width: 480px) {
      .gallery-mosaic { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: 200px; }
      .gm-main { grid-column: span 1; }
    }
      .footer-info li { color: #9ca3af !important; font-size: 0.85rem; line-height: 1.6; }
    .footer-info li a { color: #e5e7eb !important; }
    .footer-info li a:hover { color: #fff !important; }

/* === дизайн-бриф: ритм секций, якоря, сетка, контраст === */
.section, .section-full { padding-top: 88px; padding-bottom: 88px; }
@media (max-width: 768px){ .section, .section-full { padding-top: 52px; padding-bottom: 52px; } }
[id]{ scroll-margin-top: 90px; }
.info-grid, .format-grid { align-items: stretch; }
.info-card { display:flex; flex-direction:column; height:100%; }
.section-desc { color:#54546e; }

/* === iOS: не зумить при фокусе — поля ввода минимум 16px === */
input, textarea, select,
.finput, .fselect { font-size: 16px; }
/* мелкие подписи оставляем как есть (.flabel уже задан отдельно) */

/* Медали лежат в нижней части вертикального кадра: держим их в ячейке любой пропорции */
.hero-photo-frame .hp-medals img { object-position: 50% 75%; }
/* === CLS: фиксируем пропорции hero-фото и постера видео === */
.hero-photo-frame .hp-main img,
.hero-photo-frame .hp-small img { aspect-ratio: 3 / 2; }
.hero-photo-frame .hp-main img { aspect-ratio: 3 / 4; }
.video-wrap video { aspect-ratio: 16 / 9; }
.partner-logo img { max-height: 96px; }

/* === Соцдоказательство перед регистрацией === */
.social-proof { max-width: 940px; margin: 0 auto; }
.sp-head { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; margin-bottom:26px; }
.sp-rating { display:inline-flex; align-items:baseline; gap:8px; }
.sp-stars { color:#f5a623; font-size:1.5rem; line-height:1; letter-spacing:1px; }
.sp-score { font-size:1.7rem; font-weight:900; color:var(--text); letter-spacing:-0.02em; }
.sp-count { font-size:0.92rem; color:var(--muted); font-weight:600; }
.sp-count a { color:var(--brand); text-decoration:none; font-weight:700; }
.sp-count a:hover { text-decoration:underline; }
.sp-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.sp-card { background:var(--white); border:1px solid rgba(84,81,231,0.1); border-radius:16px; padding:22px 20px; box-shadow:0 2px 16px rgba(84,81,231,0.06); display:flex; flex-direction:column; }
.sp-card-stars { color:#f5a623; font-size:0.95rem; margin-bottom:10px; letter-spacing:1px; }
.sp-quote { font-size:0.9rem; color:var(--text); line-height:1.6; margin-bottom:14px; flex:1; }
.sp-author { font-size:0.82rem; font-weight:700; color:var(--muted); }
.sp-more { text-align:center; margin-top:22px; }
.sp-more a { display:inline-flex; align-items:center; gap:6px; color:var(--brand); font-weight:700; font-size:0.92rem; text-decoration:none; }
.sp-more a:hover { text-decoration:underline; }
@media (max-width:860px){ .sp-cards { grid-template-columns:1fr; } }
    .actor-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .actor-choice { border:2px solid rgba(84,81,231,.15); border-radius:12px; padding:14px; cursor:pointer; transition:border-color .2s,background .2s; }
    .actor-choice:has(input:checked) { border-color:var(--brand); background:rgba(84,81,231,.05); }
    .actor-choice input { accent-color:var(--brand); margin-right:7px; }
    .actor-choice b { font-size:.9rem; color:var(--text); }
    .actor-choice span { display:block; margin:4px 0 0 24px; font-size:.74rem; color:var(--muted); line-height:1.4; }
    .format-note { margin-top:24px; padding:22px 24px; border:1.5px solid rgba(84,81,231,.25); border-radius:16px; background:linear-gradient(135deg,#f3f2ff,#eef7ff); }
    .format-note h3 { font-size:1rem; font-weight:800; margin-bottom:7px; }
    .format-note p { font-size:.86rem; color:var(--muted); line-height:1.65; }
    @media (max-width:760px) { .actor-choices { grid-template-columns:1fr; } }
#register[data-registration-closed] #manualForm, #register[data-registration-closed] #quickReg, #register[data-registration-closed] #progBar {display:none!important;}


/* Shared tournament rhythm; only the partner logo belongs to the lyceum brand. */
@font-face{font-family:Geologica;src:url('/assets/fonts/Geologica-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
[hidden]{display:none!important}
nav{height:auto;min-height:64px;padding:0}
nav .nav-inner{width:100%;max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 5%}
nav .nav-brand{font-weight:800;color:var(--text);white-space:nowrap;font-size:.88rem}
nav .nav-links{display:flex;margin:0;padding:0}
nav .nav-cta{white-space:nowrap}
#title{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.14}
.hero-partner-logo{width:210px;height:auto;display:block;margin:0 0 28px}
.partner-line{display:flex;align-items:center;gap:28px;margin-top:32px;flex-wrap:wrap}
.partner-line img{width:200px;height:auto}
.mathday-extra{margin-top:24px;padding:24px;border:1px solid var(--border);border-radius:16px;background:white}
#dates,#leagues{display:none}
.event-details + .event-details{margin-top:64px}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:32px}
.fact{background:white;border:1px solid var(--border);border-radius:16px;padding:24px}
.facts strong{display:block;font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.facts p{white-space:pre-line;font-size:.95rem}
.span-all{grid-column:1/-1}
.league-note{max-width:none;white-space:pre-line;margin:28px 0 20px}
#fees{font-weight:700;margin:20px 0 12px}
#links a{display:inline-block;margin:12px 20px 12px 0;color:var(--brand)}
.reg-wrap>.section-desc{margin-bottom:28px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
fieldset{border:0;padding:0;margin:24px 0;min-width:0}
#event-form label{display:flex;flex-direction:column;gap:7px;font-size:.78rem;font-weight:600;color:var(--muted)}
#event-form input,#event-form select{width:100%;min-width:0;min-height:46px;padding:11px 14px;border:1.5px solid rgba(84,81,231,.2);border-radius:10px;font-family:inherit;font-size:16px;font-weight:400;color:var(--text);background:white}
#event-form input:focus,#event-form select:focus{outline:2px solid var(--brand);outline-offset:2px}
#event-form .consent{flex-direction:row;align-items:flex-start;margin:24px 0;font-size:.8rem;font-weight:400}
#event-form input[type=checkbox]{width:20px;min-height:20px;height:20px;flex-shrink:0;accent-color:var(--brand)}
#quick-area,#event-options{margin:24px 0}
#event-options{border-top:1px solid var(--border);padding-top:24px}
#event-options h3{font-size:1rem;margin-bottom:8px}
#event-options p{font-size:.83rem;color:var(--muted);margin-bottom:18px;line-height:1.6}
.notice{background:#f3f2ff;padding:16px;border-radius:10px;margin:18px 0;font-size:.85rem}
#submit,#retry-payment,#new-registration,.button{background:var(--brand);color:white;border:0;padding:14px 24px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer;display:inline-block;text-decoration:none}
#submit{width:100%;margin-top:4px}
#payment img,#payment canvas{max-width:240px;height:auto}
#checkout-panel{margin-top:24px;padding:28px;background:white;border:1px solid var(--border);border-radius:20px}
#checkout-panel .actions{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}
#status{white-space:pre-line}
.muted{font-size:.83rem;color:var(--muted)}
#rules p{margin:16px 0;font-size:.9rem;line-height:1.75}
button:disabled{opacity:.55}
footer .footer-links a{color:#b6bbc7}footer .footer-copy{color:#9ca3af}
@media(max-width:900px){nav .nav-links{display:none}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){nav .nav-inner{gap:12px;padding:12px 4%;flex-wrap:wrap}.fields,.facts{grid-template-columns:1fr}.form-card{padding:26px 18px}.hero-partner-logo{width:170px}.event-details+.event-details{margin-top:48px}.footer-bottom{align-items:flex-start}.hero-left{padding-top:48px}.fact{padding:20px}}

.info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:640px){.info-grid{grid-template-columns:1fr}}

.mobile-menu{display:none;position:relative}.mobile-menu summary{cursor:pointer;list-style:none;padding:10px;font-size:20px;color:var(--brand)}
.mobile-menu div{position:absolute;right:0;top:100%;min-width:220px;background:white;border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 8px 24px #0002}
.mobile-menu a{display:block;padding:10px;color:var(--text);text-decoration:none;font-size:.85rem}
@media(max-width:900px){.mobile-menu{display:block}nav .nav-links{display:flex;margin-left:auto}nav .nav-links>li:not(.nav-auth-link):not([data-auth-fallback]){display:none}nav .nav-cta{display:none}}
@media(max-width:640px){nav .nav-inner{gap:4px}nav .nav-brand{font-size:.75rem}nav .nav-links a{padding:7px 10px}}

.mobile-menu summary::-webkit-details-marker{display:none}

/* The same cards and typography as the earlier tournaments. */
.info-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
#categories{margin-top:0}.prizes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}.prize-note{margin-top:24px;color:var(--muted)}
#gallery{background:var(--text);color:white}#gallery .section-desc{color:#b6b6c5}.gallery-link{margin-top:24px}.gallery-link a{color:var(--aero)}
.partner-logo img.original-logo{filter:none;height:80px}.partner-logo{opacity:1}.rules-section{padding-top:24px;padding-bottom:24px}#rules summary{cursor:pointer;font-weight:700;color:var(--brand)}
.wizard-progress{display:flex;justify-content:space-between;gap:8px;margin:8px 0 28px;padding:0;list-style:none}.wizard-progress li{flex:1;border-top:3px solid #e9e7ff;padding-top:9px;font-size:.74rem;color:var(--muted)}.wizard-progress li[aria-current=step]{color:var(--brand);border-color:var(--brand);font-weight:700}
.wizard-title{font-size:1.35rem;margin-bottom:8px}.wizard-intro{font-size:.85rem;color:var(--muted);margin-bottom:22px}.wizard-actions{display:flex;gap:12px;margin-top:26px}.wizard-actions button{border:0;border-radius:10px;padding:13px 24px;font:inherit;cursor:pointer}.wizard-actions #wizard-next{background:var(--brand);color:white;flex:1}.wizard-actions #wizard-back{background:#f3f2ff;color:var(--brand)}
#event-form label.check-row{flex-direction:row;align-items:center;font-size:.9rem;color:var(--text);font-weight:400;margin:16px 0}.wizard-stage details{margin-top:20px}.wizard-stage summary{cursor:pointer;color:var(--brand);font-size:.85rem}.wizard-stage details label{margin-top:12px}.fsr-candidate{display:block;width:100%;text-align:left;padding:15px;margin:12px 0;border:1px solid var(--border);border-radius:10px;background:white;color:var(--text);font:inherit;cursor:pointer}.fsr-candidate[aria-pressed=true]{border:2px solid var(--brand);background:#f3f2ff}.league-result{padding:18px;background:#f3f2ff;border-radius:12px;margin-top:18px}.league-result strong{display:block}.league-result p{font-size:.85rem;margin-top:8px}#event-form .option-count{max-width:230px}#event-options{border:0;padding:0}#mode:empty{display:none}#event-form .wizard-stage:focus{outline:none}
@media(max-width:1000px){.info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.info-grid,.prizes-grid{grid-template-columns:1fr}.wizard-progress li{font-size:.65rem}.hero-partner-logo{width:170px}.wizard-actions button{padding:12px 16px}}
/* Math Day: spacious partner header and a compact, touch-friendly registration. */
#hero .hero-left{align-items:flex-start;padding-top:36px;padding-bottom:56px}
#hero .hero-left-inner{width:100%}.hero-partner-logo{width:330px;max-width:80%;margin:0 0 32px}
#title{font-size:clamp(2.2rem,3.8vw,3.45rem);line-height:1.12;letter-spacing:-.045em;margin-bottom:18px}
#subtitle{font-size:1.25rem;font-weight:650;color:var(--brand-dark);margin-bottom:22px}
.hero-desc{font-weight:450}.hero-chips{gap:9px;margin-top:26px;margin-bottom:28px}.hero-chips .chip{font-size:.82rem;padding:8px 13px}
.info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.info-card{padding:27px}.ic-val{font-size:1.3rem}.ic-desc{font-weight:450}.ic-badge{width:fit-content;padding:3px 9px;margin-top:14px}
#documents_note{margin-top:22px;padding:16px 20px;background:#eeedf9;border-radius:12px;max-width:760px}#links a{font-size:.85rem;font-weight:650}
.prize-card p{font-size:.88rem;line-height:1.9}.prize-note{max-width:860px;line-height:1.8}
.reviews-summary{display:flex;align-items:center;justify-content:center;gap:22px;text-decoration:none;color:var(--text);margin:22px auto 32px;padding:22px;max-width:650px;background:white;border:1px solid var(--border);border-radius:18px;transition:box-shadow .2s,transform .2s}.reviews-summary:hover{box-shadow:0 10px 30px #5451e712;transform:translateY(-2px)}.reviews-summary>strong{font-size:2.1rem;letter-spacing:-.04em;white-space:nowrap}.reviews-summary>strong span{font-size:1rem;color:var(--muted);font-weight:450}.reviews-summary>span:last-child{font-size:.87rem;color:var(--muted)}.reviews-summary b{color:var(--brand)}
#partners .partner-lyceum img{max-width:250px;width:250px;height:auto}#partners .partners-strip{gap:50px}
#register .reg-wrap{max-width:680px}#registration.form-card{padding:36px;border-radius:24px;box-shadow:0 12px 44px #34306609}
#event-form{position:relative}#event-form>p.muted{font-size:.8rem;font-weight:400;margin:0 0 24px;padding-bottom:22px;border-bottom:1px solid #eeedf6}#event-form>p.muted a{color:var(--brand);font-weight:600;text-decoration:none}
#manual-fields{margin:0}#quick-area{margin:0 0 26px}#quick-area label{font-weight:500}#saved-participant{background:#f7f6fd!important}
.wizard-progress{counter-reset:wizard;gap:10px;margin:0 0 32px}.wizard-progress li{counter-increment:wizard;border:0;position:relative;display:flex;align-items:center;gap:7px;font-size:.72rem;font-weight:500;padding:0;white-space:nowrap}.wizard-progress li:before{content:counter(wizard);width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#f1f0f9;color:#858297;font-size:.75rem}.wizard-progress li[aria-current=step]:before{background:var(--brand);color:white;box-shadow:0 0 0 4px #5451e70c}.wizard-progress li.is-complete:before{content:'✓';background:#e7f4ec;color:#267244}
.wizard-stage{scroll-margin-top:110px}.wizard-title{font-size:1.4rem;font-weight:700;letter-spacing:-.025em;line-height:1.3;margin:0 0 10px}.wizard-intro{font-size:.85rem;font-weight:400;line-height:1.65;margin:0 0 24px;max-width:490px}
#event-form label{font-size:.8rem;font-weight:500;line-height:1.5;gap:8px}#event-form .fields{gap:20px 16px}#event-form input,#event-form select{border-color:#deddea;min-height:49px;border-radius:11px;padding:12px 14px;background:#fff;transition:border-color .15s,box-shadow .15s}#event-form input:focus,#event-form select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5451e711}
#event-form input[type=checkbox]{appearance:none;-webkit-appearance:none;display:inline-grid;place-items:center;border:1.5px solid #b9b6ce;border-radius:6px;width:22px;height:22px;min-height:22px;padding:0;margin:0;background:#fff;cursor:pointer;flex-shrink:0}#event-form input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}#event-form input[type=checkbox]:checked:after{content:'✓';color:#fff;font-size:15px;line-height:1;font-weight:700}#event-form input[type=checkbox]:focus-visible{outline:3px solid #a8a5fa;outline-offset:3px}
#event-options{margin:0 0 20px;padding:0}#option-fields{grid-template-columns:1fr;gap:12px}
#event-form label.option-card{display:grid;grid-template-columns:46px minmax(0,1fr) 22px;align-items:center;gap:15px;padding:20px;border:1.5px solid #e4e2ee;border-radius:16px;background:#fff;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
#event-form label.option-card:hover{border-color:#a5a1ec;background:#fcfbff}#event-form label.option-card.is-selected{border-color:var(--brand);background:#f7f6ff;box-shadow:0 0 0 1px #5451e708}
.option-icon{display:grid;place-items:center;width:46px;height:46px;background:#f5f3fa;border-radius:13px;font-size:24px}.option-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.option-copy strong{font-size:.95rem;font-weight:650;color:var(--text)}.option-copy>span{font-size:.76rem;font-weight:400;color:var(--muted)}.option-price{font-size:.82rem;font-weight:650;color:var(--brand);margin-top:3px}.option-saved{font-size:.75rem;font-weight:400;color:var(--muted)}
#price-preview{background:#f6f5fb;border-radius:12px;padding:17px 18px;font-size:.94rem;font-weight:600;margin:22px 0 0}#event-form .consent{gap:11px;margin:22px 0 0;font-size:.76rem;line-height:1.65;font-weight:400;align-items:flex-start}#event-form .consent a{color:var(--brand);text-decoration:underline;text-decoration-color:#c3c0f5;text-underline-offset:3px}
.wizard-actions{gap:12px;margin:25px 0 0;align-items:center}.wizard-actions button{min-height:49px;font-size:.92rem!important;font-weight:650!important;transition:background .2s,transform .15s}.wizard-actions button:active{transform:translateY(1px)}.wizard-actions #submit{width:auto;flex:1;margin:0;padding:14px 18px}.wizard-actions #wizard-back{background:transparent;padding:12px 8px;color:var(--muted)}.wizard-actions #wizard-next{padding:14px 18px}.wizard-actions #wizard-next:hover,.wizard-actions #submit:hover{background:var(--brand-dark)}
.fsr-candidate{font-size:.85rem;line-height:1.65;padding:17px;border-radius:12px}.league-result{padding:18px 20px;border-radius:13px}.league-result strong{font-size:1rem}.league-result p{font-weight:400;line-height:1.65}
@media(max-width:900px){#partners .partners-strip{gap:25px}.hero-partner-logo{width:300px}.hero-chips .chip{font-size:.76rem}}
@media(max-width:640px){#hero .hero-left{padding:26px 6% 36px}.hero-partner-logo{width:275px;max-width:85%;margin-bottom:28px}#title{font-size:2.1rem;line-height:1.15}#subtitle{font-size:1.08rem}.hero-chips{gap:8px}.hero-chips .chip{padding:7px 11px;font-size:.72rem}.info-grid{grid-template-columns:1fr}.info-card{padding:24px}.reviews-summary{gap:10px 16px;flex-wrap:wrap;padding:20px}.reviews-summary>span:last-child{width:100%;text-align:center}.reviews-summary .sp-stars{font-size:1.25rem}#registration.form-card{padding:25px 20px;border-radius:20px}#register .section-title{font-size:1.8rem}.wizard-progress{gap:5px;margin-bottom:27px}.wizard-progress li{flex-direction:column;gap:7px;font-size:.65rem}.wizard-progress li:before{width:29px;height:29px}.wizard-title{font-size:1.27rem}.wizard-intro{font-size:.8rem;margin-bottom:22px}#event-form .fields{gap:18px}#event-form label.option-card{grid-template-columns:36px minmax(0,1fr) 22px;gap:11px;padding:17px 14px}.option-icon{width:36px;height:40px;font-size:22px;background:transparent}.option-copy strong{font-size:.84rem}.option-copy>span{font-size:.72rem}.option-price{font-size:.8rem}#event-form .consent{font-size:.72rem}.wizard-actions #submit{font-size:.88rem!important}#partners .partners-strip{gap:30px}.partner-sep{display:none}}
@media(prefers-reduced-motion:reduce){.option-card,.reviews-summary,.wizard-actions button{transition:none!important}}

/* Review: readable partner mark and keyboard/colour contrast. */
#partners .partner-lyceum img{background:white;border-radius:12px;padding:14px}
#event-form input:focus-visible,#event-form select:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.hero-badge,.chip-orange,.badge-orange{color:#ad360b}

/* Partner story: dated evidence, familiar tournament typography. */
.lyceum-lead{font-size:1rem;line-height:1.85;color:var(--text);font-weight:450;max-width:none}.lyceum-channel{margin:14px 0 0;font-size:.82rem;font-weight:650}.lyceum-channel a{color:var(--brand);text-underline-offset:3px}.lyceum-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}.lyceum-stats article{border-top:2px solid #dedbff;padding:24px 0 0}.lyceum-stats strong{display:flex;align-items:baseline;gap:8px;font-size:3.3rem;letter-spacing:-.05em;line-height:1.1;color:var(--brand-dark);font-weight:750}.lyceum-stats strong span{font-size:1.1rem;letter-spacing:0;font-weight:500}.lyceum-stats h3{font-size:1rem;line-height:1.5;margin:14px 0 0;font-weight:650}
@media(max-width:900px){.lyceum-stats{gap:20px}.lyceum-stats strong{font-size:2.8rem}}
@media(max-width:640px){.lyceum-section-logo{width:190px;margin-bottom:28px}.lyceum-story .section-title{font-size:2rem}.lyceum-lead{font-size:.9rem}.lyceum-universities{font-size:.8rem}.lyceum-stats{grid-template-columns:1fr;gap:26px;margin-top:32px}.lyceum-stats article{padding-top:22px}.lyceum-stats strong{font-size:3rem}.lyceum-stats h3{margin-top:10px}}

/* Math Day polish: tighter section rhythm and a first-class standalone payment form. */
#details{padding-bottom:34px}
#prizes{padding-top:42px}
#prizes .prize-note{max-width:none;width:100%}
.standalone-pay-form{margin-top:28px;padding:34px}
.standalone-pay-form label{display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:.8rem;font-weight:600;line-height:1.45}
.standalone-pay-form input{width:100%;min-width:0;min-height:50px;padding:12px 15px;border:1.5px solid #deddea;border-radius:11px;background:#fff;color:var(--text);font:400 16px/1.4 'Geologica',sans-serif;transition:border-color .15s,box-shadow .15s}
.standalone-pay-form input::placeholder{color:#9492a1;opacity:1}
.standalone-pay-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5451e711}
.standalone-pay-form input:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
#standalone-pay-submit{display:block;width:100%;min-height:50px;margin-top:24px;padding:14px 24px;border:0;border-radius:11px;background:var(--brand);color:#fff;font:650 .92rem/1.3 'Geologica',sans-serif;cursor:pointer;transition:background .2s,transform .15s}
#standalone-pay-submit:hover{background:var(--brand-dark)}
#standalone-pay-submit:active{transform:translateY(1px)}
#standalone-pay-error{margin-top:16px;padding:13px 15px;border-radius:10px;background:#fff0f0;color:#a32929;font-size:.82rem;line-height:1.5}
@media(max-width:640px){#details{padding-bottom:24px}#prizes{padding-top:32px}.standalone-pay-form{margin-top:22px;padding:25px 20px}.standalone-pay-form .fields{grid-template-columns:1fr;gap:18px}#standalone-pay-submit{margin-top:20px}}

/* Keep every lower-section heading on the shared 1140px page grid. */
#reviews .social-proof{max-width:none}
#reviews .sp-cards{width:100%;max-width:940px;margin-left:auto;margin-right:auto}
#register .reg-wrap,#pay .reg-wrap{max-width:1140px}
#register #registration,#register #checkout-panel,#pay .standalone-pay-form,#pay .standalone-pay-result{width:100%;max-width:680px;margin-left:auto;margin-right:auto}

/* ===== Блок «Лицей Иннополис» на главной: видео + коротко о лицее, цвета брендбука лицея ===== */
@font-face{font-family:Geologica;src:url('/assets/fonts/Geologica-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
#lyceum.lyceum-section{--ly-blue:#0036b5;--ly-cyan:#00a2dc;--ly-green:#00a03c;--ly-yellow:#ffc500;--ly-red:#ed2053;--ly-ink:#1d1d1d;--ly-muted:#626875;--ly-line:#dfe3e9;background:#fff;scroll-margin-top:84px;font-family:Geologica,system-ui,sans-serif;color:var(--ly-ink)}
#lyceum .section-inner{max-width:1140px;margin:0 auto}
#lyceum .lyceum-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end}
#lyceum .lyceum-section-logo{display:block;width:220px;max-width:85%;height:auto;margin:0 0 30px}
#lyceum .eyebrow{color:var(--ly-blue)}#lyceum .eyebrow::before{background:var(--ly-blue)}
#lyceum .section-title{font-family:Geologica,system-ui,sans-serif;max-width:none;font-size:clamp(2rem,3.4vw,3rem);line-height:1.08;letter-spacing:-.04em;font-weight:620;margin:14px 0 20px;color:var(--ly-ink)}
#lyceum .lyceum-lead{max-width:760px;font-size:1.05rem;line-height:1.7;color:var(--ly-muted);margin:0}
#lyceum .lyceum-bars{display:flex;align-items:flex-end;gap:8px;height:120px}
#lyceum .lyceum-bars i{display:block;width:24px;background:var(--ly-blue)}
#lyceum .lyceum-bars i:nth-child(1){height:62%}#lyceum .lyceum-bars i:nth-child(2){height:94%;background:var(--ly-cyan)}#lyceum .lyceum-bars i:nth-child(3){height:48%;background:var(--ly-green)}#lyceum .lyceum-bars i:nth-child(4){height:78%;background:var(--ly-yellow)}#lyceum .lyceum-bars i:nth-child(5){height:56%;background:var(--ly-cyan)}#lyceum .lyceum-bars i:nth-child(6){height:100%;background:var(--ly-red)}
#lyceum .lyceum-video{margin:40px 0 0;border-radius:20px;overflow:hidden;background:#0b1530;box-shadow:0 22px 60px rgba(0,54,181,.18);border-bottom:6px solid var(--ly-blue)}
#lyceum .lyceum-video video{display:block;width:100%;aspect-ratio:16/9;background:#0b1530;object-fit:cover}
#lyceum .lyceum-video figcaption{padding:12px 18px;color:rgba(255,255,255,.75);font-size:.82rem;background:#0b1530}
#lyceum .lyceum-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;height:clamp(420px,44vw,520px);margin:40px 0 0}
#lyceum .lyceum-photos figure{margin:0;border-radius:20px;overflow:hidden;background:#e8eefb;box-shadow:0 18px 44px rgba(0,54,181,.14)}
#lyceum .lyceum-photos .lp-main{grid-column:1/3;border-bottom:6px solid var(--ly-blue)}
#lyceum .lyceum-photos figure:nth-child(2){border-bottom:6px solid var(--ly-yellow)}#lyceum .lyceum-photos figure:nth-child(3){border-bottom:6px solid var(--ly-green)}#lyceum .lyceum-photos figure:nth-child(4){border-bottom:6px solid var(--ly-cyan)}#lyceum .lyceum-photos figure:nth-child(5){border-bottom:6px solid var(--ly-red)}
#lyceum .lyceum-photos img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
#lyceum .lyceum-photos figure:hover img{transform:scale(1.03)}
@media(max-width:640px){#lyceum .lyceum-photos{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto;gap:10px;margin-top:28px}#lyceum .lyceum-photos figure{border-radius:14px;aspect-ratio:3/2}#lyceum .lyceum-photos .lp-main{grid-column:1/3}}
@media(prefers-reduced-motion:reduce){#lyceum .lyceum-photos img{transition:none}#lyceum .lyceum-photos figure:hover img{transform:none}}
#lyceum .lyceum-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:44px}
#lyceum .lyceum-stats article{border-top:3px solid var(--ly-blue);padding:20px 0 0}
#lyceum .lyceum-stats article:nth-child(2){border-color:var(--ly-cyan)}#lyceum .lyceum-stats article:nth-child(3){border-color:var(--ly-green)}#lyceum .lyceum-stats article:nth-child(4){border-color:var(--ly-yellow)}
#lyceum .lyceum-stats strong{display:flex;align-items:baseline;gap:6px;font-size:3rem;letter-spacing:-.06em;line-height:1;color:var(--ly-blue);font-weight:520}
#lyceum .lyceum-stats strong span{font-size:1rem;letter-spacing:0;font-weight:500;color:var(--ly-muted)}
#lyceum .lyceum-stats h3{font-size:.92rem;line-height:1.45;margin:12px 0 0;font-weight:560;color:var(--ly-ink)}
#lyceum .lyceum-tracks{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:36px 0 0}
#lyceum .lyceum-tracks li{padding:9px 16px;border-radius:999px;background:#eef3ff;color:var(--ly-blue);font-size:.86rem;font-weight:650}
#lyceum .lyceum-tour{width:100%;max-width:none;margin:28px 0 0;padding:16px 20px;border-left:4px solid var(--ly-yellow);background:#fffaf0;font-size:.95rem;line-height:1.6}
#lyceum .lyceum-channel{margin:20px 0 0;font-size:.85rem;font-weight:650;color:var(--ly-muted)}
#lyceum .lyceum-channel a{color:var(--ly-blue);text-underline-offset:3px}
@media(max-width:900px){#lyceum .lyceum-stats{grid-template-columns:repeat(2,minmax(0,1fr))}#lyceum .lyceum-head{grid-template-columns:1fr}#lyceum .lyceum-bars{height:56px}#lyceum .lyceum-bars i{width:16px}}
@media(max-width:640px){#lyceum .lyceum-section-logo{width:180px;margin-bottom:24px}#lyceum .section-title{font-size:2rem}#lyceum .lyceum-lead{font-size:.95rem}#lyceum .lyceum-video{margin-top:28px;border-radius:14px}#lyceum .lyceum-stats{gap:22px 18px;margin-top:32px}#lyceum .lyceum-stats strong{font-size:2.4rem}#lyceum .lyceum-tracks li{font-size:.8rem}}
