
    @import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

    :root {
      --ink:#11110f;
      --paper:#f4f0e9;
      --white:#fff;
      --red:#ce251f;
      --gold:#d9b458;
      --muted:#666159;
      --line:#cbc4b8;
      --nav-height:78px;
    }

    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; scroll-padding-top:var(--nav-height); }
    body { margin:0; background:var(--paper); color:var(--ink); font-family:"Manrope",sans-serif; line-height:1.5; }
    body.menu-open { overflow:hidden; }
    a { color:inherit; }
    button, input, textarea { font:inherit; }
    img { display:block; max-width:100%; }

    .site-nav {
      position:fixed;
      inset:0 0 auto;
      z-index:50;
      min-height:var(--nav-height);
      display:flex;
      align-items:center;
      justify-content:flex-end;
      padding:0 clamp(20px,5vw,76px);
      color:var(--white);
      background:linear-gradient(to bottom,rgba(0,0,0,.66),rgba(0,0,0,0));
      transition:background .25s ease, color .25s ease, box-shadow .25s ease;
    }
    .site-nav.scrolled, .site-nav.menu-active {
      color:var(--ink);
      background:rgba(244,240,233,.97);
      box-shadow:0 1px 0 rgba(17,17,15,.18);
    }
    .nav-links { display:flex; align-items:center; gap:clamp(20px,3vw,46px); }
    .nav-links a {
      color:inherit;
      text-decoration:none;
      font-size:12px;
      font-weight:700;
      letter-spacing:.08em;
      text-transform:uppercase;
    }
    .nav-links a:hover, .nav-links a:focus-visible { text-decoration:underline; text-underline-offset:7px; }
    .nav-links .nav-contact { border:1px solid currentColor; padding:10px 16px; }
    .menu-toggle {
      display:none;
      border:0;
      background:transparent;
      color:inherit;
      padding:10px 0 10px 14px;
      cursor:pointer;
      font:700 12px "DM Mono",monospace;
      letter-spacing:.08em;
    }

    .hero {
      position:relative;
      min-height:min(100svh, 170vw);
      display:flex;
      align-items:flex-end;
      overflow:hidden;
      background:#171310;
      color:var(--white);
      isolation:isolate;
    }
    .hero::before {
      content:"";
      position:absolute;
      inset:0;
      z-index:-2;
      background:url("../assets/img/hero-mosaic.jpg") center center / cover no-repeat;
    }
    .hero::after {
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:linear-gradient(90deg,rgba(0,0,0,.67) 0%,rgba(0,0,0,.2) 56%,rgba(0,0,0,.12) 100%),linear-gradient(0deg,rgba(0,0,0,.7) 0%,transparent 48%);
    }
    .hero-content {
      width:100%;
      padding:calc(var(--nav-height) + 48px) clamp(20px,5vw,76px) clamp(44px,7vh,78px);
    }
    .hero-kicker {
      display:flex;
      align-items:center;
      gap:14px;
      margin-bottom:18px;
      font:500 12px "DM Mono",monospace;
      letter-spacing:.1em;
    }
    .hero-kicker::before { content:""; width:42px; height:2px; background:var(--gold); }
    h1 {
      margin:0;
      max-width:1100px;
      font-size:clamp(64px,10vw,170px);
      line-height:.82;
      letter-spacing:-.075em;
      font-weight:800;
      text-wrap:balance;
      text-shadow:0 2px 30px rgba(0,0,0,.4);
    }
    .hero-footer {
      margin-top:34px;
      display:flex;
      justify-content:space-between;
      align-items:end;
      gap:28px;
    }
    .hero-subline { margin:0; max-width:620px; font-size:clamp(17px,1.5vw,23px); font-weight:500; }
    .hero-link {
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      gap:12px;
      padding-bottom:7px;
      border-bottom:1px solid rgba(255,255,255,.75);
      color:var(--white);
      text-decoration:none;
      font:500 12px "DM Mono",monospace;
    }

    .schedule {
      position:relative;
      overflow:hidden;
      padding:clamp(76px,9vw,126px) clamp(20px,5vw,76px) clamp(88px,10vw,140px);
      background:#181310;
      color:var(--white);
      isolation:isolate;
    }
    .schedule::before {
      content:"";
      position:absolute;
      inset:0 0 auto;
      height:12px;
      background:var(--red);
    }
    .schedule::after {
      content:"";
      position:absolute;
      z-index:-1;
      top:-220px;
      right:-120px;
      width:620px;
      height:620px;
      border-radius:50%;
      background:#5e1513;
      opacity:.55;
      filter:blur(1px);
    }
    .schedule-head {
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:34px;
      margin-bottom:clamp(34px,5vw,62px);
    }
    .schedule h2 {
      color:#30dbe0;
      font-size:clamp(48px,8vw,118px);
      line-height:.82;
      letter-spacing:-.07em;
    }
    .schedule-intro {
      max-width:430px;
      margin:0 0 4px;
      color:#d1c9c1;
      font-size:15px;
    }
    .schedule-filters {
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-bottom:26px;
    }
    .schedule-filter {
      appearance:none;
      border:1px solid #a69e95;
      border-radius:999px;
      padding:10px 18px;
      background:transparent;
      color:var(--white);
      cursor:pointer;
      font:700 11px "DM Mono",monospace;
      letter-spacing:.045em;
      transition:background .2s ease,color .2s ease,border-color .2s ease;
    }
    .schedule-filter:hover, .schedule-filter:focus-visible { border-color:#d8ff36; }
    .schedule-filter[aria-selected="true"] {
      border-color:#d8ff36;
      background:#d8ff36;
      color:#181310;
    }
    .schedule-grid {
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:12px;
    }
    .schedule-card {
      position:relative;
      min-height:310px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:34px;
      padding:22px;
      overflow:hidden;
      background:#26211e;
      border-top:3px solid #514843;
      animation:schedule-in .28s ease both;
    }
    .schedule-card.next {
      background:#efd54b;
      color:#17130f;
      border-color:#efd54b;
    }
    .schedule-card.next::before {
      content:"БЛИЖАЙШАЯ";
      position:absolute;
      left:22px;
      top:21px;
      font:700 9px "DM Mono",monospace;
      letter-spacing:.07em;
    }
    .schedule-badges {
      min-height:30px;
      display:flex;
      justify-content:flex-end;
      flex-wrap:wrap;
      gap:6px;
      padding-left:82px;
    }
    .schedule-badge {
      align-self:flex-start;
      padding:6px 8px;
      border:1px solid currentColor;
      font:500 9px "DM Mono",monospace;
      letter-spacing:.035em;
      line-height:1;
    }
    .schedule-card h3 {
      margin:0;
      max-width:12ch;
      font-size:clamp(25px,2.25vw,39px);
      line-height:.91;
      letter-spacing:-.055em;
      text-transform:uppercase;
      overflow-wrap:anywhere;
    }
    .schedule-date {
      margin:18px 0 0;
      font:500 12px "DM Mono",monospace;
      letter-spacing:.02em;
    }
    .schedule-weekday { margin:4px 0 0; font-size:13px; }
    .schedule-venue {
      margin-top:auto;
      padding-top:18px;
      border-top:1px solid currentColor;
    }
    .schedule-venue span { display:block; margin-bottom:4px; opacity:.68; font-size:10px; }
    .schedule-venue strong { font-size:13px; letter-spacing:.015em; }
    .schedule-type-logo {
      width:auto;
      height:62px;
      max-width:150px;
      align-self:flex-start;
      margin-top:16px;
      object-fit:contain;
      object-position:left center;
    }
    .schedule-empty {
      grid-column:1/-1;
      margin:0;
      padding:48px 0;
      border-top:1px solid #5a514b;
      border-bottom:1px solid #5a514b;
      color:#d1c9c1;
      font-size:18px;
    }
    @keyframes schedule-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

    .section { padding:clamp(84px,11vw,154px) clamp(20px,5vw,76px); }
    .section-heading {
      display:grid;
      grid-template-columns:150px minmax(0,1fr);
      gap:clamp(28px,7vw,110px);
      margin-bottom:clamp(50px,7vw,90px);
    }
    .section-index { padding-top:10px; color:var(--red); font:500 11px "DM Mono",monospace; letter-spacing:.08em; }
    h2 { margin:0; max-width:980px; font-size:clamp(42px,6.5vw,104px); line-height:.94; letter-spacing:-.06em; }

    .games { background:var(--paper); }
    .album-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
    .album-card {
      min-height:350px;
      padding:clamp(24px,3vw,38px);
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:44px;
      background:var(--white);
      border-top:4px solid var(--red);
    }
    .album-card.lyalyafa { border-color:#25211e; }
    .album-badge {
      display:inline-flex;
      align-self:flex-start;
      padding:7px 9px;
      background:var(--red);
      color:var(--white);
      font:700 9px "DM Mono",monospace;
      letter-spacing:.055em;
      line-height:1;
    }
    .album-card.lyalyafa .album-badge { background:#25211e; }
    .album-card h3 {
      margin:24px 0 0;
      font-size:clamp(28px,2.7vw,43px);
      line-height:.98;
      letter-spacing:-.05em;
      overflow-wrap:anywhere;
    }
    .album-link {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      padding-top:18px;
      border-top:1px solid var(--ink);
      color:inherit;
      text-decoration:none;
      font:700 11px "DM Mono",monospace;
      letter-spacing:.035em;
    }
    .album-link:hover, .album-link:focus-visible { color:var(--red); }
    .album-link span:last-child { font-size:18px; line-height:1; }

    .about { background:var(--ink); color:var(--white); }
    .about .section-index { color:var(--gold); }
    .about-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr); gap:clamp(50px,9vw,150px); align-items:start; }
    .about-lead { margin:0; font-size:clamp(28px,4vw,58px); line-height:1.12; letter-spacing:-.04em; }
    .about-copy { border-top:1px solid #6b6760; padding-top:24px; }
    .about-copy p { margin:0 0 34px; color:#d2cec6; }
    .facts { list-style:none; margin:0; padding:0; }
    .facts li { display:grid; grid-template-columns:34px 1fr; gap:18px; padding:15px 0; border-bottom:1px solid #4c4944; }
    .facts span { color:var(--gold); font:500 11px "DM Mono",monospace; }

    .reviews { background:var(--gold); }
    .reviews-inner { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr); gap:clamp(50px,9vw,150px); align-items:end; }
    .reviews h2 { font-size:clamp(45px,7vw,112px); }
    .reviews-copy { border-top:1px solid rgba(17,17,15,.5); padding-top:24px; }
    .reviews-copy p { margin:0 0 26px; font-size:18px; }
    .text-link { display:inline-flex; gap:10px; align-items:center; color:inherit; font-weight:800; text-underline-offset:5px; }

    .contact { display:grid; grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr); }
    .contact-details { padding:clamp(72px,9vw,132px) clamp(20px,6vw,88px); background:var(--red); color:var(--white); display:flex; flex-direction:column; justify-content:space-between; gap:72px; }
    .contact-details h2 { font-size:clamp(40px,4vw,64px); overflow-wrap:anywhere; }
    .contact-note { max-width:520px; font-size:17px; }
    .contact-list { display:grid; gap:19px; }
    .contact-item { display:grid; grid-template-columns:90px 1fr; gap:18px; padding-top:13px; border-top:1px solid rgba(255,255,255,.45); }
    .contact-item span { font:500 10px "DM Mono",monospace; letter-spacing:.06em; opacity:.78; }
    .contact-item a, .contact-item strong { overflow-wrap:anywhere; }
    .contact-item a { text-underline-offset:4px; }

    .form-wrap { padding:clamp(72px,9vw,132px) clamp(20px,7vw,110px); background:var(--paper); }
    .form-wrap h3 { margin:0 0 12px; font-size:clamp(30px,3vw,44px); letter-spacing:-.035em; }
    .form-wrap > p { margin:0 0 42px; color:var(--muted); max-width:620px; }
    .field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
    label { display:block; margin-bottom:8px; font:500 10px "DM Mono",monospace; letter-spacing:.06em; }
    input, textarea { width:100%; padding:12px 2px; border:0; border-bottom:1px solid #817a70; border-radius:0; outline:none; background:transparent; color:var(--ink); }
    textarea { min-height:140px; resize:vertical; }
    input:focus, textarea:focus { border-bottom:2px solid var(--red); }
    .full { grid-column:1/-1; }
    .submit-row { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .helper { max-width:300px; color:var(--muted); font-size:12px; }
    .send-button { min-width:190px; border:0; padding:16px 20px; background:var(--ink); color:var(--white); font-weight:800; cursor:pointer; }
    .send-button:hover, .send-button:focus-visible { background:#332f2b; }
    .mail-status { display:none; margin-top:20px; padding:14px; border:1px solid var(--ink); font-size:13px; }

    footer { display:flex; justify-content:space-between; gap:24px; padding:32px clamp(20px,5vw,76px); background:var(--paper); color:var(--muted); font:400 11px "DM Mono",monospace; }
    footer a { text-underline-offset:4px; }

    @media (max-width:850px) {
      .schedule-head { align-items:flex-start; flex-direction:column; }
      .schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .section-heading { grid-template-columns:1fr; gap:14px; }
      .section-index { padding-top:0; }
      .album-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .about-grid, .reviews-inner, .contact { grid-template-columns:1fr; }
      .album-card { min-height:330px; }
    }

    @media (max-width:680px) {
      :root { --nav-height:64px; }
      .site-nav { justify-content:space-between; padding-inline:18px; background:linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,0)); }
      .menu-toggle { display:block; margin-left:auto; }
      .nav-links {
        position:absolute;
        top:var(--nav-height);
        left:0;
        right:0;
        display:none;
        align-items:stretch;
        gap:0;
        padding:8px 18px 22px;
        background:var(--paper);
        color:var(--ink);
        box-shadow:0 12px 24px rgba(0,0,0,.12);
      }
      .nav-links.open { display:flex; flex-direction:column; }
      .nav-links a { padding:14px 0; border-bottom:1px solid var(--line); }
      .nav-links .nav-contact { margin-top:10px; padding:13px 14px; border:1px solid var(--ink); text-align:center; }
      .hero { min-height:min(92svh, 170vw); }
      .hero::before { background-position:54% center; }
      .hero::after { background:linear-gradient(0deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.18) 72%,rgba(0,0,0,.45) 100%); }
      .hero-content { padding-inline:18px; padding-bottom:40px; }
      h1 { font-size:clamp(58px,20vw,92px); line-height:.84; }
      .hero-kicker { font-size:10px; }
      .hero-footer { align-items:flex-start; flex-direction:column; }
      .hero-link { margin-top:4px; }
      .schedule { padding-inline:18px; }
      .schedule::after { right:-410px; }
      .schedule h2 { font-size:clamp(42px,13.5vw,56px); letter-spacing:-.06em; }
      .schedule-grid { grid-template-columns:1fr; }
      .schedule-card { min-height:285px; }
      .schedule-card h3 { font-size:clamp(31px,10vw,44px); }
      .schedule-filter { flex:1 1 auto; padding-inline:12px; }
      .section { padding-inline:18px; }
      .album-grid { grid-template-columns:1fr; }
      .album-card { min-height:280px; padding:28px; }
      .contact-details, .form-wrap { padding-inline:18px; }
      .field-grid { grid-template-columns:1fr; }
      .full { grid-column:auto; }
      .submit-row, footer { align-items:flex-start; flex-direction:column; }
      .send-button { width:100%; }
      .contact-item { grid-template-columns:75px 1fr; }
    }

    @media (prefers-reduced-motion:reduce) {
      html { scroll-behavior:auto; }
      *, *::before, *::after { transition:none!important; animation:none!important; }
    }
  

/* ---- block 2 ---- */

    /* Contemporary dark system: intentionally layered over the original structure. */
    :root {
      --ink:#f5f5f5;
      --paper:#0a0a0a;
      --white:#ffffff;
      --red:#ff4d42;
      --gold:#d8ff57;
      --muted:#9b9b9b;
      --line:rgba(255,255,255,.14);
      --panel:#111111;
      --panel-raised:#161616;
      --nav-height:72px;
    }

    html { background:#0a0a0a; }
    body {
      background:#0a0a0a;
      color:#f5f5f5;
      font-family:"Manrope",sans-serif;
      letter-spacing:-.01em;
    }
    ::selection { background:#fff; color:#0a0a0a; }
    :focus-visible { outline:2px solid #fff; outline-offset:4px; }

    .site-nav {
      min-height:var(--nav-height);
      padding:0 clamp(20px,4.5vw,72px);
      background:rgba(10,10,10,.62);
      border-bottom:1px solid rgba(255,255,255,.1);
      -webkit-backdrop-filter:blur(18px) saturate(130%);
      backdrop-filter:blur(18px) saturate(130%);
    }
    .site-nav.scrolled,
    .site-nav.menu-active {
      color:#fff;
      background:rgba(10,10,10,.88);
      box-shadow:none;
    }
    .nav-brand {
      flex:0 0 auto;
      margin:0 auto 0 0;
      max-width:none;
      color:#fff;
      font-size:13px;
      line-height:1;
      letter-spacing:.055em;
      font-weight:800;
      text-shadow:none;
      white-space:nowrap;
    }
    .nav-brand a { color:inherit; text-decoration:none; }
    .nav-links { gap:8px; }
    .nav-links a {
      padding: 10px 10px;
      border-radius:8px;
      color:#a8a8a8;
      font-size:13px;
      font-weight:600;
      letter-spacing:.01em;
      text-transform:none;
      transition:background .2s ease,color .2s ease;
    }
    .nav-links a:hover,
    .nav-links a:focus-visible {
      color:#fff;
      background:rgba(255,255,255,.07);
      text-decoration:none;
    }
    .nav-links .nav-contact {
      margin-left:8px;
      border:1px solid rgba(255,255,255,.22);
      color:#fff;
    }
    .nav-socials {
      display:flex;
      align-items:center;
      gap:4px;
      margin-left:2px;
    }
    .nav-links .nav-social-link {
      width:34px;
      height:34px;
      display:grid;
      place-items:center;
      flex:0 0 34px;
      padding:0;
      border:1px solid transparent;
      border-radius:8px;
    }
    .nav-links .nav-social-link:hover,
    .nav-links .nav-social-link:focus-visible {
      border-color:rgba(255,255,255,.16);
      background:rgba(255,255,255,.08);
    }
    .nav-social-link img {
      width:17px;
      height:17px;
      object-fit:contain;
    }
    .menu-toggle {
      color:#fff;
      border:1px solid rgba(255,255,255,.18);
      border-radius:8px;
      padding:9px 12px;
      font-weight:500;
    }

    .hero {
        min-height:min(100svh, 170vw);
        align-items:flex-end;
        background:#050505;
      }

      .hero::before {
        animation: hero-drift 20s ease-in-out infinite alternate;
      }

      @keyframes hero-drift {
        from { transform: scale(1.02) translate3d(-0.4%, 0, 0); }
        to   { transform: scale(1.08) translate3d(0.4%, 0, 0); }
      }

      @media (prefers-reduced-motion: reduce) {
        .hero::before { animation: none; }
      }
    .hero::after {
      background:
        linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.62) 38%,rgba(0,0,0,.2) 76%,rgba(0,0,0,.38) 100%),
        linear-gradient(0deg,rgba(0,0,0,.92) 0%,transparent 55%,rgba(0,0,0,.45) 100%);
    }
    .hero-content {
      max-width:1600px;
      margin:0 auto;
      padding:calc(var(--nav-height) + 64px) clamp(20px,4.5vw,72px) clamp(48px,7vh,82px);
    }
    .hero-kicker {
      margin-bottom:22px;
      color:#d0d0d0;
      font-size:11px;
      letter-spacing:.13em;
    }
    .hero-kicker::before { width:26px; height:1px; background:#fff; }
    .hero > .hero-content > .hero-kicker::before { display:none; }
    h1 {
      max-width:1050px;
      font-size:clamp(62px,9.5vw,152px);
      line-height:.86;
      letter-spacing:-.072em;
      text-shadow:0 8px 36px rgba(0,0,0,.5);
    }
    .hero-footer {
      margin-top:38px;
      padding-top:26px;
      border-top:1px solid rgba(255,255,255,.2);
    }
    .hero-subline {
      max-width:650px;
      color:#d0d0d0;
      font-size:clamp(16px,1.5vw,21px);
      line-height:1.55;
    }
    .hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
    .hero-button {
      min-height:48px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 22px;
      border:1px solid #fff;
      border-radius:9px;
      text-decoration:none;
      font-size:13px;
      font-weight:700;
      transition:background .2s ease,color .2s ease,border-color .2s ease;
    }
    .hero-button-primary { background:#fff; color:#0a0a0a; }
    .hero-button-primary:hover { background:#d9d9d9; border-color:#d9d9d9; }
    .hero-button-secondary { background:rgba(0,0,0,.3); color:#fff; border-color:rgba(255,255,255,.35); }
    .hero-button-secondary:hover { background:rgba(255,255,255,.1); border-color:#fff; }

    .schedule {
      padding:clamp(90px,10vw,150px) clamp(20px,4.5vw,72px);
      background:
        radial-gradient(circle at 86% 10%,rgba(255,255,255,.08),transparent 27rem),
        #0a0a0a;
      color:#fff;
      border-bottom:1px solid var(--line);
    }
    .schedule::before {
      top:0;
      left:clamp(20px,4.5vw,72px);
      right:clamp(20px,4.5vw,72px);
      height:1px;
      background:rgba(255,255,255,.18);
    }
    .schedule::after { display:none; }
    .schedule-head {
      max-width:1440px;
      margin:0 auto clamp(42px,6vw,76px);
      align-items:end;
    }
    .schedule h2 {
      color:#fff;
      font-size:clamp(48px,7vw,108px);
      line-height:.9;
      letter-spacing:-.065em;
    }
    .schedule-intro { color:#999; line-height:1.65; }
    .schedule-filters,
    .schedule-grid { max-width:1440px; margin-left:auto; margin-right:auto; }
    .schedule-filters { margin-bottom:18px; gap:8px; }
    .schedule-filter {
      border:1px solid rgba(255,255,255,.16);
      border-radius:8px;
      padding:11px 15px;
      background:#111;
      color:#aaa;
      font-size:10px;
      font-weight:500;
      letter-spacing:.08em;
    }
    .schedule-filter:hover,
    .schedule-filter:focus-visible { border-color:rgba(255,255,255,.5); color:#fff; }
    .schedule-filter[aria-selected="true"] {
      border-color:#fff;
      background:#fff;
      color:#0a0a0a;
    }
    .schedule-grid { gap:12px; }
    .schedule-card {
      min-height:340px;
      padding:24px;
      border:1px solid rgba(255,255,255,.12);
      border-radius:14px;
      background:linear-gradient(180deg,#151515,#101010);
      transition:border-color .2s ease,background .2s ease;
    }
    .schedule-card:hover { border-color:rgba(255,255,255,.3); background:#171717; }
    .schedule-card.next {
      color:#fff;
      border-color:rgba(255,255,255,.55);
      background:
        radial-gradient(circle at 85% 15%,rgba(216,255,87,.17),transparent 40%),
        #151515;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
    }
    .schedule-card.next::before { color:#d8ff57; }
    .schedule-badge { border-radius:5px; }
    .schedule-card h3 { font-weight:700; letter-spacing:-.055em; }
    .schedule-date { color:#d4d4d4; }
    .schedule-weekday { color:#858585; }
    .schedule-venue { border-color:rgba(255,255,255,.16); }
    .schedule-venue span { color:#8f8f8f; opacity:1; }
    .schedule-type-logo {
      height:62px;
      max-width:156px;
      filter:drop-shadow(0 5px 12px rgba(0,0,0,.28));
    }
    .schedule-empty { border-color:var(--line); color:#aaa; }

    .section {
      padding:clamp(92px,11vw,164px) clamp(20px,4.5vw,72px);
      border-bottom:1px solid var(--line);
    }
    .section > *, .contact > * { position:relative; }
    .section-heading,
    .album-grid,
    .about-grid,
    .reviews-inner { max-width:1440px; margin-left:auto; margin-right:auto; }
    .section-heading { grid-template-columns:130px minmax(0,1fr); }
    .section-index {
      color:#8b8b8b;
      font-size:10px;
      letter-spacing:.13em;
    }
    h2 { color:#f7f7f7; letter-spacing:-.06em; }

    .games {
      background:
        radial-gradient(circle at 12% 8%,rgba(255,77,66,.09),transparent 25rem),
        #0a0a0a;
    }
    .album-grid { gap:12px; }
    .album-card {
      min-height:360px;
      padding:clamp(24px,3vw,36px);
      border:1px solid rgba(255,255,255,.12);
      border-top:1px solid rgba(255,255,255,.12);
      border-radius:14px;
      background:#111;
      transition:background .2s ease,border-color .2s ease;
    }
    .album-card:hover { background:#151515; border-color:rgba(255,255,255,.28); }
    .album-card.lyalyafa { border-color:rgba(255,255,255,.12); }
    .album-badge,
    .album-card.lyalyafa .album-badge {
      padding:7px 9px;
      border:1px solid rgba(255,255,255,.18);
      border-radius:6px;
      background:#1d1d1d;
      color:#d8d8d8;
    }
    .album-card h3 { color:#f5f5f5; font-weight:650; }
    .album-link {
      border-color:rgba(255,255,255,.16);
      color:#aaa;
      transition:color .2s ease;
    }
    .album-link:hover,
    .album-link:focus-visible { color:#fff; }

    .about {
      position:relative;
      overflow:hidden;
      background:#0d0d0d;
    }
    .about::after {
      content:"";
      position:absolute;
      width:520px;
      height:520px;
      right:-250px;
      bottom:-270px;
      border-radius:50%;
      background:radial-gradient(circle,rgba(255,255,255,.08),transparent 68%);
      pointer-events:none;
    }
    .about .section-index { color:#8b8b8b; }
    .about-copy { border-color:rgba(255,255,255,.18); }
    .about-copy p { color:#aaa; line-height:1.7; }
    .facts li { border-color:rgba(255,255,255,.12); }
    .facts span { color:#d8ff57; }

    .reviews {
      background:#f3f3f3;
      color:#111;
    }
    .reviews h2 { color:#111; }
    .reviews .section-index { color:#555; }
    .reviews-copy { border-color:rgba(0,0,0,.22); }
    .reviews-copy p { color:#4f4f4f; line-height:1.65; }

    .contact {
      position:relative;
      padding:clamp(70px,8vw,120px) clamp(20px,4.5vw,72px);
      gap:12px;
      background:
        radial-gradient(circle at 80% 80%,rgba(255,255,255,.06),transparent 28rem),
        #0a0a0a;
      border-bottom:1px solid var(--line);
    }
    .contact-details,
    .form-wrap {
      min-width:0;
      padding:clamp(36px,5vw,70px);
      border:1px solid rgba(255,255,255,.12);
      border-radius:16px;
      background:#111;
    }
    .contact-details { color:#fff; }
    .contact-details .hero-kicker { margin-bottom:18px; }
    .contact-details h2 { color:#fff; }
    .contact-note { color:#aaa; line-height:1.65; }
    .contact-item { border-color:rgba(255,255,255,.14); }
    .contact-item span { color:#858585; opacity:1; }
    .form-wrap { background:#f3f3f3; color:#111; }
    .form-wrap > p { color:#666; }
    label { color:#5f5f5f; }
    input, textarea { border-color:#aaa; color:#111; }
    input:focus, textarea:focus { border-color:#111; }
    .helper { color:#686868; }
    .send-button {
      min-height:50px;
      border:1px solid #111;
      border-radius:9px;
      background:#111;
      color:#fff;
      transition:background .2s ease;
    }
    .send-button:hover,
    .send-button:focus-visible { background:#333; }
    .mail-status { border-color:#777; border-radius:8px; }

    footer {
      max-width:none;
      padding:32px clamp(20px,4.5vw,72px);
      background:#0a0a0a;
      color:#777;
      border-top:0;
    }
    footer a { color:#b8b8b8; }

    @media (max-width:850px) {
      .section-heading { grid-template-columns:1fr; }
      .contact { padding-top:72px; padding-bottom:72px; }
    }

    @media (max-width:680px) {
      :root { --nav-height:64px; }
      .site-nav { padding-inline:16px; }
      .nav-brand { margin-right:12px; font-size:clamp(9px,3vw,11px); letter-spacing:.04em; }
      .nav-links {
        top:calc(var(--nav-height) - 1px);
        padding:8px 16px 18px;
        background:rgba(10,10,10,.98);
        color:#fff;
        border-bottom:1px solid rgba(255,255,255,.12);
        box-shadow:0 20px 40px rgba(0,0,0,.4);
      }
      .nav-links a { padding:15px 12px; border-color:rgba(255,255,255,.1); color:#c7c7c7; }
      .nav-links .nav-contact { margin:8px 0 0; border-color:rgba(255,255,255,.22); }
      .hero::before { background-position:58% center; }
      .hero::after {
        background:
          linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.42) 60%,rgba(0,0,0,.68) 100%),
          linear-gradient(90deg,rgba(0,0,0,.48),rgba(0,0,0,.05));
      }
      .hero-content { padding-inline:18px; padding-bottom:34px; }
      h1 { font-size:clamp(54px,19vw,86px); }
      .hero-footer { gap:24px; }
      .hero-actions { width:100%; }
      .hero-button { flex:1 1 140px; }
      .schedule { padding-inline:18px; }
      .schedule-card { min-height:300px; }
      .section { padding-inline:18px; }
      .album-card { min-height:290px; }
      .contact { padding:64px 18px; }
      .contact-details,
      .form-wrap { padding:32px 22px; }
      .contact-item { grid-template-columns:72px minmax(0,1fr); }
      footer { padding-inline:18px; }
    }

    /* Game detail dialog — light editorial treatment from the provided reference. */
    body.game-modal-open { overflow:hidden; }
    .game-modal[hidden] { display:none; }
    .game-modal {
      position:fixed;
      inset:0;
      z-index:100;
      display:grid;
      place-items:center;
      padding:clamp(14px,3vw,36px);
      background:rgba(0,0,0,.78);
    }
    .game-modal-panel {
      position:relative;
      width:min(1120px,100%);
      height:calc(100svh - clamp(28px,6vw,72px));
      max-height:100%;
      overflow:hidden;
      display:grid;
      grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);
      grid-template-rows:minmax(0,1fr);
      background:#f7f7f3;
      color:#171717;
      box-shadow:0 30px 90px rgba(0,0,0,.5);
    }
    .game-modal-close {
      position:absolute;
      z-index:2;
      top:16px;
      right:16px;
      width:42px;
      height:42px;
      display:grid;
      place-items:center;
      border:1px solid rgba(0,0,0,.16);
      border-radius:50%;
      background:rgba(247,247,243,.9);
      color:#111;
      cursor:pointer;
      font-size:25px;
      line-height:1;
    }
    .game-modal-close:hover,
    .game-modal-close:focus-visible { background:#ffd800; }
    .game-modal-poster {
      position:relative;
      overflow:hidden;
      min-height:0;
      background:#141414;
    }
    .game-modal-poster-image,
    .game-modal-poster-video {
      display:block;
      width:100%;
      height:100%;
      min-height:0;
      object-fit:cover;
    }
    .game-modal-poster-video {
      position:absolute;
      inset:0;
      opacity:0;
      transition:opacity .25s ease;
    }
    .game-modal-poster [hidden] { display:none !important; }
    .game-modal-poster-video.is-playing { opacity:1; }
    .game-modal-poster-fallback {
      width:100%;
      height:100%;
      min-height:0;
      display:flex;
      flex-direction:column;
      justify-content:flex-end;
      padding:clamp(30px,5vw,64px);
      overflow:hidden;
      background:
        linear-gradient(145deg,transparent 0 38%,rgba(255,216,0,.92) 38% 53%,transparent 53%),
        radial-gradient(circle at 72% 22%,#333 0 1px,transparent 2px) 0 0 / 14px 14px,
        #171717;
      color:#fff;
    }
    .game-modal-poster-fallback span {
      margin-bottom:14px;
      color:#ffd800;
      font:500 11px "DM Mono",monospace;
      letter-spacing:.12em;
    }
    .game-modal-poster-fallback strong {
      max-width:9ch;
      font-size:clamp(42px,5vw,76px);
      line-height:.86;
      letter-spacing:-.065em;
      overflow-wrap:anywhere;
    }
    .game-modal-content {
      min-width:0;
      min-height:0;
      display:flex;
      flex-direction:column;
      overflow-y:auto;
      overscroll-behavior:contain;
      padding:clamp(28px,3.5vw,48px);
    }
    .game-modal-title {
      width:auto;
      max-width:calc(100% - 42px);
      margin:0 0 20px;
      color:#171717;
      padding-bottom:8px;
      border-bottom:6px solid #ffd800;
      font-size:clamp(32px,4vw,58px);
      line-height:.9;
      letter-spacing:-.06em;
      overflow-wrap:anywhere;
    }
    .game-modal-description {
      max-width:650px;
      margin:0 0 9px;
      color:#3d3d3d;
      font-size:14px;
      line-height:1.45;
      white-space:pre-line;
    }
    .game-modal-meta {
      margin:16px 0 20px;
      border-top:1px solid #c9c9c3;
    }
    .game-modal-row {
      display:grid;
      grid-template-columns:110px minmax(0,1fr) auto;
      gap:18px;
      align-items:center;
      padding:12px 0;
      border-bottom:1px solid #c9c9c3;
    }
    .game-modal-row-label {
      color:#676762;
      font:500 10px "DM Mono",monospace;
      letter-spacing:.08em;
    }
    .game-modal-row strong { font-size:15px; }
    .game-modal-address {
      display:block;
      margin-top:3px;
      color:#666;
      font-size:12px;
      font-weight:500;
    }
    .game-modal-go {
      display:inline-grid;
      place-items:center;
      min-width:48px;
      height:38px;
      padding:0 12px;
      border-radius:6px;
      background:#ffd800;
      color:#111;
      text-decoration:none;
      font:800 11px "DM Mono",monospace;
    }
    .game-modal-go:hover,
    .game-modal-go:focus-visible { background:#e8c500; }
    .game-modal-stats {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-bottom:18px;
    }
    .game-modal-stat {
      padding:14px;
      background:#e9e9e4;
    }
    .game-modal-stat span {
      display:block;
      margin-bottom:7px;
      color:#666;
      font:500 10px "DM Mono",monospace;
      letter-spacing:.07em;
    }
    .game-modal-stat strong {
      display:inline-block;
      padding:1px 7px 3px;
      background:#ffd800;
      font-size:28px;
      line-height:1;
    }
    .game-modal-register {
      width:100%;
      min-height:54px;
      margin-top:auto;
      border:0;
      border-radius:0;
      background:#ffd800;
      color:#111;
      cursor:pointer;
      font-weight:800;
      letter-spacing:.03em;
    }
    .game-modal-register:hover,
    .game-modal-register:focus-visible { background:#e8c500; }
    .schedule-card { cursor:pointer; }
    .schedule-card:focus-visible { outline:2px solid #fff; outline-offset:4px; }

    @media (max-width:800px) {
      .game-modal { align-items:start; padding:10px; }
      .game-modal-panel {
        height:auto;
        max-height:calc(100svh - 20px);
        overflow-y:auto;
        grid-template-columns:1fr;
        grid-template-rows:auto auto;
      }
      .game-modal-poster,
      .game-modal-poster-fallback { min-height:280px; }
      .game-modal-poster-image,
      .game-modal-poster-video { min-height:280px; }
      .game-modal-content { padding:28px 22px 24px; }
      .game-modal-title { max-width:calc(100% - 36px); margin-bottom:18px; }
    }

    @media (max-width:480px) {
      .game-modal-row { grid-template-columns:1fr auto; gap:8px 14px; }
      .game-modal-row-label { grid-column:1/-1; }
      .game-modal-stats { grid-template-columns:1fr; }
    }

    /* Global Sila Quiz rating snapshot. */
    .rating {
      background:
        radial-gradient(circle at 88% 2%,rgba(216,255,87,.08),transparent 28rem),
        #0d0d0d;
      color:#f5f5f5;
    }
    .rating-sort {
      background:none;
      border:0;
      padding:0;
      color:inherit;
      font:inherit;
      text-transform:inherit;
      letter-spacing:inherit;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      gap:6px;
    }
    .rating-sort:hover { color:#d8ff57; }
    .rating-sort-arrow { font-size:9px; color:#d8ff57; min-width:9px; }
  

    .rating-period {
  display:inline-flex;
  border:1px solid #d8ff57;
  border-radius:4px;
  overflow:hidden;
  margin:0 0 18px;
    }
    .rating-period-btn {
  padding:12px 26px;
  font-weight:700;
  font-size:13px;
  letter-spacing:.06em;
  color:#fff;
  background:transparent;
  border:0;
  cursor:pointer;
    }
    .rating-period-btn + .rating-period-btn { border-left:1px solid #d8ff57; }
    .rating-period-btn.is-active { background:#d8ff57; color:#111; }


    .rating-title-wrap { min-width:0; }
    .rating-source {
      margin:22px 0 0;
      color:#8f8f8f;
      font-size:12px;
      line-height:1.6;
    }
    .rating-source a {
      color:#d0d0d0;
      text-underline-offset:4px;
    }
    .rating-source a:hover,
    .rating-source a:focus-visible { color:#fff; }
    .rating-panel {
      max-width:1440px;
      margin:0 auto;
      border:1px solid rgba(255,255,255,.13);
      border-radius:14px;
      overflow:hidden;
      background:#111;
    }
    .rating-tools {
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:24px;
      padding:22px 24px;
      border-bottom:1px solid rgba(255,255,255,.13);
      background:#151515;
    }
    .rating-search-wrap {
      flex:1 1 560px;
      max-width:680px;
    }
    .rating-search-wrap label {
      margin-bottom:10px;
      color:#8f8f8f;
    }
    .rating-search {
      padding:11px 0;
      border-color:#555;
      color:#fff;
      caret-color:#d8ff57;
    }
    .rating-search::placeholder { color:#686868; }
    .rating-search:focus { border-color:#d8ff57; }
    .rating-count {
      flex:0 0 auto;
      margin:0 0 12px;
      color:#8f8f8f;
      font:500 11px "DM Mono",monospace;
      letter-spacing:.04em;
    }
    .rating-table {
      width:100%;
      border-collapse:collapse;
      table-layout:fixed;
    }
    .rating-table caption {
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }
    .rating-table th,
    .rating-table td {
      padding:17px 20px;
      border-bottom:1px solid rgba(255,255,255,.1);
      text-align:left;
      vertical-align:middle;
      overflow-wrap:anywhere;
    }
    .rating-table th {
      color:#777;
      background:#0f0f0f;
      font:500 10px "DM Mono",monospace;
      letter-spacing:.09em;
      text-transform:uppercase;
    }
    .rating-table th:nth-child(1) { width:10%; }
    .rating-table th:nth-child(2) { width:40%; }
    .rating-table th:nth-child(3) { width:10%; }
    .rating-table th:nth-child(4) { width:15%; }
    .rating-table th:nth-child(5) { width:25%; }
    .rating-table tbody tr:last-child td { border-bottom:0; }
    .rating-table tbody tr:hover { background:rgba(255,255,255,.035); }
    .rating-place {
      color:#d8ff57;
      font:500 13px "DM Mono",monospace;
    }
    .rating-team { color:#fff; font-weight:650; }
    .rating-number {
      color:#c6c6c6;
      font:500 12px "DM Mono",monospace;
    }
    .rating-status {
      display:inline-flex;
      padding:6px 9px;
      border:1px solid rgba(255,255,255,.16);
      border-radius:6px;
      color:#aaa;
      font-size:11px;
      line-height:1.2;
    }
    .rating-empty,
    .rating-error {
      padding:42px 24px !important;
      color:#9b9b9b;
      text-align:center !important;
    }

    @media (max-width:1020px) {
      .site-nav { justify-content:space-between; padding-inline:18px; }
      .menu-toggle { display:block; margin-left:auto; }
      .nav-links {
        position:absolute;
        top:calc(var(--nav-height) - 1px);
        left:0;
        right:0;
        display:none;
        align-items:stretch;
        gap:0;
        padding:8px 18px 22px;
        background:rgba(10,10,10,.98);
        color:#fff;
        border-bottom:1px solid rgba(255,255,255,.12);
        box-shadow:0 20px 40px rgba(0,0,0,.4);
      }
      .nav-links.open { display:flex; flex-direction:column; }
      .nav-links a { padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.1); }
      .nav-links .nav-contact { margin:8px 0 0; padding:13px 14px; text-align:center; }
      .nav-socials {
        justify-content:center;
        gap:10px;
        margin:10px 0 0;
        padding-top:8px;
      }
      .nav-links .nav-social-link {
        width:42px;
        height:42px;
        flex-basis:42px;
        padding:0;
        border:1px solid rgba(255,255,255,.16);
      }
      .nav-social-link img { width:18px; height:18px; }
    }

    @media (max-width:680px) {
      .rating-panel { border-radius:12px; }
      .rating-tools {
        align-items:stretch;
        flex-direction:column;
        gap:12px;
        padding:20px;
      }
      .rating-search-wrap { flex-basis:auto; max-width:none; }
      .rating-count { margin:0; }
      .rating-table,
      .rating-table tbody { display:block; width:100%; }
      .rating-table thead {
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0,0,0,0);
        white-space:nowrap;
      }
      .rating-table tbody {
        display:grid;
        gap:10px;
        padding:10px;
      }
      .rating-table tbody tr {
        display:grid;
        grid-template-columns:1fr 1fr;
        padding:16px;
        border:1px solid rgba(255,255,255,.1);
        border-radius:10px;
        background:#151515;
      }
      .rating-table th,
      .rating-table td {
        width:auto !important;
      }
      .rating-table td {
        min-width:0;
        display:flex;
        align-items:baseline;
        justify-content:space-between;
        gap:12px;
        padding:9px 0;
        border-bottom:1px solid rgba(255,255,255,.08);
        text-align:right;
      }
      .rating-table td::before {
        content:attr(data-label);
        flex:0 0 auto;
        color:#747474;
        font:500 9px "DM Mono",monospace;
        letter-spacing:.07em;
        text-transform:uppercase;
      }
      .rating-table .rating-team,
      .rating-table .rating-status-cell {
        grid-column:1/-1;
      }
      .rating-table .rating-team {
        display:block;
        padding:2px 0 13px;
        text-align:left;
        font-size:18px;
      }
      .rating-table .rating-team::before { display:block; margin-bottom:7px; }
      .rating-table .rating-status-cell { border-bottom:0; }
      .rating-empty,
      .rating-error {
        grid-column:1/-1;
        display:block !important;
        padding:32px 14px !important;
        text-align:center !important;
      }
      .rating-empty::before,
      .rating-error::before { display:none; }
    }

    /* Route-aware views: one static document, multiple shareable child paths. */
    .page-view[hidden] { display:none !important; }
    .nav-links a[aria-current="page"] {
      color:#fff;
      background:rgba(255,255,255,.09);
    }
    main { min-height:calc(100svh - 78px); }
    body:not([data-route="home"]) .page-view {
      min-height:calc(100svh - 78px);
      padding-top:clamp(118px,13vw,176px);
    }
    body:not([data-route="home"]) .schedule::before { top:var(--nav-height); }

    @media (max-width:680px) {
      body:not([data-route="home"]) .page-view {
        min-height:calc(100svh - 72px);
        padding-top:104px;
      }
    }

/* Balanced wrapping for display headings */
.schedule-card h3,
.album-card h3,
.contact-details h2,
.game-modal-poster-fallback strong,
.game-modal-title,
h2 {
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Lower type floors on small screens */
@media (max-width: 680px) {
  h2 { font-size: clamp(28px, 8vw, 44px); }
  .schedule h2 { font-size: clamp(28px, 11vw, 48px); }
  .reviews h2 { font-size: clamp(28px, 9vw, 48px); }
  .contact-details h2 { font-size: clamp(26px, 8.5vw, 44px); }
  .about-lead { font-size: clamp(20px, 5vw, 30px); }
  .schedule-card h3 { font-size: clamp(22px, 7vw, 32px); }
  .album-card h3 { font-size: clamp(20px, 6vw, 30px); }
  .game-modal-title { font-size: clamp(26px, 8vw, 44px); }
  .form-wrap h3 { font-size: clamp(22px, 6vw, 32px); }
}

/* Typewriter that never clips: clip-path reveal + caret riding the edge */
/* Написать организатарам */
h3.fx-typewriter {
  position: relative;
  width: fit-content;
  max-width: 90%;
}
h3.fx-typewriter span {
  display: inline-block;
  white-space: nowrap;
  clip-path: inset(0 100% 0 0);
  animation: fx-tw-reveal 2s steps(22) infinite;
}
h3.fx-typewriter::after {
  content: "";
  position: absolute;
  top: .1em;
  bottom: .1em;
  left: 0;
  width: 3px;
  background: #000;
  animation: fx-tw-caret 2s steps(22) infinite,
             fx-tw-blink .5s step-end infinite;
}
@keyframes fx-tw-reveal {
  0%         { clip-path: inset(0 100% 0 0); }
  70%, 100%  { clip-path: inset(0 0 0 0); }
}
@keyframes fx-tw-caret {
  0%         { left: 0; }
  70%, 100%  { left: 100%; }
}
@keyframes fx-tw-blink  { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  h3.fx-typewriter span { clip-path: none; animation: none; }
  h3.fx-typewriter::after { display: none; }
}
@keyframes fx-type {
  0%, 8%    { width: 0; }
  55%, 100% { width: 23ch; }
}
@keyframes fx-caret {
  50% { border-color: transparent; }
}
@media (prefers-reduced-motion: reduce) {
  .form-wrap h3.fx-typewriter { animation: none; border-right: 0; width: auto; }
}

/* ---- Barcode heading: "Присоединяйтесь к игре." ---- */
:root {
  --ink: currentColor;
  --ink-2: #FF4FD8;
  --ink-3: #4FF8FF;
}
#contact .contact-details > div:first-child{container-type:inline-size;}
#contact-title.fx-barcode{font-size:clamp(20px,7cqw,34px);}

h2.fx-barcode {
  position: relative;
  width: fit-content;
  color: #fff;
  background: repeating-linear-gradient(90deg,
      var(--ink) 0 2px, transparent 2px 4px,
      var(--ink) 4px 5px, transparent 5px 8px,
      var(--ink) 8px 11px, transparent 11px 13px);
  -webkit-background-clip: text;
  background-clip: text;
}
h2.fx-barcode::after {
  content: "";
  position: absolute;
  top: -12%;
  bottom: -12%;
  left: -2%;
  width: 6px;
  background: #00ffff;
  box-shadow:
    0 0 12px var(--ink-2),
    0 0 26px color-mix(in srgb, var(--ink-2) 60%, transparent);
  animation: fx-barcode 3s ease-in-out infinite alternate;
}
@keyframes fx-barcode {
  0%   { left: 2%; }
  100% { left: 95%; }
}
@media (prefers-reduced-motion: reduce) {
  h2.fx-barcode::after { animation: none; opacity: 0; }
}

/* Barcode heading: no mid-word breaks, room for the digits */
h2.fx-barcode {
  hyphens: none;
  margin-bottom: 1em;
}

/* Barcode heading: stay inside the card column */
h2.fx-barcode {
  width: auto;
  font-size: clamp(20px,7cqw,34px);
}
h2.fx-barcode { letter-spacing: .04em; }

/* ===== Что такое Сила Мысли Даллас ===== */
.about-sila{
  --as-yellow:#F2E83B;
  --as-card:#101010;
  --as-text:#c9c9c9;
  background:#070707;
  border-top:1px solid #1b1b1b;
  color:#fff;
  padding:clamp(48px,7vw,96px) 0;
}
.as-inner{width:min(1180px,100% - 40px);margin:0 auto;}
.as-top{display:grid;grid-template-columns:290px 1fr;gap:clamp(28px,4vw,64px);align-items:start;margin-bottom:clamp(44px,6vw,80px);}
.as-stats{display:grid;gap:34px;align-content:start;}
.as-stat__row{display:flex;align-items:center;gap:12px;}
.as-stat__icon{font-size:30px;}
.as-stat__num{font-size:clamp(44px,4.5vw,64px);font-weight:800;color:var(--as-yellow);line-height:1;letter-spacing:-.02em;}
.as-stat__label{margin-top:6px;font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.as-hero{display:grid;grid-template-columns:1fr 250px;gap:clamp(24px,3vw,48px);align-items:start;}
.as-title{margin:0 0 22px;font-size:clamp(34px,4.6vw,60px);line-height:1.05;font-weight:800;}
.as-title__small{display:block;font-style:italic;margin-bottom:12px;}
.as-title__band{display:inline-block;background:var(--as-yellow);color:#111;padding:.08em .3em;transform:rotate(-1.6deg);}
.as-hero__text p{color:var(--as-text);font-size:17px;line-height:1.65;margin:0 0 16px;}
.as-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:14px;}
.as-points li{color:var(--as-text);font-size:16px;line-height:1.6;}
.as-points li>span{margin-right:6px;}
.as-hero__img{width:100%;max-width:250px;border-radius:18px;}
.as-h{text-align:center;font-size:clamp(28px,3.6vw,44px);font-weight:800;font-style:italic;letter-spacing:.06em;margin:0 0 34px;text-transform:uppercase;}
.as-tours{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.5vw,30px);margin-bottom:clamp(48px,6vw,84px);}
.as-tour{position:relative;background:var(--as-card);border:1px solid rgba(242,232,59,.35);border-radius:6px;padding:58px 22px 28px;text-align:center;}
.as-tour__n{position:absolute;top:0;left:0;width:52px;height:52px;background:var(--as-yellow);color:#111;font-weight:800;font-size:24px;display:flex;align-items:center;justify-content:center;border-radius:6px 0 6px 0;}
.as-tour__icon{width:62px;height:62px;color:var(--as-yellow);margin:0 auto 16px;display:block;}
.as-tour h4{margin:0 0 10px;font-size:19px;letter-spacing:.08em;text-transform:uppercase;}
.as-tour p{margin:0;color:var(--as-text);font-style:italic;font-size:15px;line-height:1.55;}
.as-tour--last{grid-column:2;}
.as-quiz{background:#fff;color:#111;border:3px solid var(--as-yellow);border-radius:14px;overflow:hidden;}
.as-quiz__tabs{display:flex;border-bottom:3px solid var(--as-yellow);}
.as-quiz__tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:15px;background:#fff;border:0;cursor:pointer;color:#111;}
.as-quiz__tab.is-active{background:var(--as-yellow);}
.as-quiz__pick select{font:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border:0;background:transparent;cursor:pointer;color:#111;max-width:150px;}
.as-quiz__body{padding:clamp(20px,3vw,36px);}
.as-quiz__qs{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;margin-bottom:22px;}
.as-quiz__qbtn{flex:0 0 auto;min-width:96px;background:#1b1b1b;color:#fff;border:0;border-radius:12px;padding:14px 12px;cursor:pointer;text-align:left;}
.as-quiz__qbtn b{display:block;font-size:30px;line-height:1;}
.as-quiz__qbtn small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;}
.as-quiz__qbtn.is-active{background:var(--as-yellow);color:#111;}
.as-quiz__tag{display:inline-block;background:var(--as-yellow);color:#111;font-size:13px;font-weight:700;padding:4px 10px;border-radius:3px;margin-bottom:12px;}
.as-quiz__text{font-size:clamp(17px,2vw,22px);font-weight:700;text-transform:uppercase;line-height:1.45;margin:0 0 18px;max-width:660px;}
.as-quiz__answers{display:grid;gap:12px;max-width:520px;margin-bottom:20px;}
.as-quiz__answers button{border:2px solid #111;background:#fff;border-radius:999px;padding:12px 20px;font-size:16px;text-align:left;cursor:pointer;color:#111;}
.as-quiz__answers button.is-correct{background:#35c759;border-color:#35c759;color:#fff;}
.as-quiz__answers button.is-wrong{background:#e5484d;border-color:#e5484d;color:#fff;}
.as-quiz__answers button:disabled{cursor:default;}
.as-quiz__show{background:#d7d7d7;color:#fff;border:0;border-radius:4px;padding:14px 34px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;font-size:15px;}
.as-quiz__show:hover{background:#c2c2c2;}
@media (max-width:980px){
  .as-top{grid-template-columns:1fr;}
  .as-stats{grid-template-columns:repeat(3,1fr);gap:18px;}
  .as-hero{grid-template-columns:1fr;}
  .as-hero__img{max-width:200px;}
  .as-tours{grid-template-columns:repeat(2,1fr);}
  .as-tour--last{grid-column:1 / -1;max-width:380px;width:100%;margin:0 auto;}
}
@media (max-width:640px){
  .as-stats{grid-template-columns:1fr;gap:22px;}
  .as-tours{grid-template-columns:1fr;}
  .as-tour--last{max-width:none;}
  .as-quiz__tabs{flex-direction:column;}
  .as-quiz__tab{padding:13px 10px;}
}

/* ===== Concert curtain: hero lifts to reveal the upcoming games schedule ===== */
.curtain-pad{display:none;}
@media (prefers-reduced-motion: no-preference){
  .curtain{
    --ch:min(100svh,170vw); /* must match hero height */
    position:relative;
    margin-bottom:calc(var(--ch) * -1);
  }
  .curtain .hero{
    position:relative;
    z-index:2;
    height:var(--ch);
  }
  .curtain .schedule{
    position:sticky;
    top:0;
    z-index:1;
    min-height:100svh;
    margin-top:calc(var(--ch) * -1);
  }
  /* The schedule starts slightly smaller and settles as the hero lifts. */
@supports (animation-timeline:scroll()){
    .curtain .schedule{
      transform-origin:50% 0;
      animation:curtain-zoom linear both;
      animation-timeline:scroll();
      animation-range:0px var(--ch);
    }
    @keyframes curtain-zoom{
      from{transform:scale(.82);}
      to{transform:scale(1);}
    }
  }
  .curtain-pad{
    display:block;
    height:var(--ch);
  }
  /* Let the sticky schedule finish its reveal before the next section begins. */
  body[data-route="home"] .curtain{margin-bottom:0;}
  /* Keep the schedule visible on Игры, without the home-only curtain spacing. */
  body:not([data-route="home"]) .curtain{margin-bottom:0;}
  body:not([data-route="home"]) .curtain .curtain-pad{display:none;}
  body:not([data-route="home"]) .curtain .schedule{
    position:relative;
    top:auto;
    min-height:calc(100svh - var(--nav-height));
    margin-top:0;
    transform:none;
    animation:none;
  }
  .curtain:has(> .hero[hidden]):not(:has(> .schedule:not([hidden]))){display:none;}
}

/* Hero overlay: заголовок + кнопка поверх мозаики */
.hero{position:relative;}
.hero-mosaic::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,.12) 72%,rgba(0,0,0,.35) 100%);
}
.hero-overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(20px,8vw,110px);
  pointer-events:none;
}
.hero-title{
  margin:0 0 18px;
  font-size:clamp(44px,7vw,96px);
  line-height:1.05;font-weight:800;color:#fff;
}
.hero-title .gold{display:block;color:#E9A23B;}
.hero-sub{
  margin:0 0 30px;color:#fff;
  font-size:clamp(16px,2vw,22px);
  max-width:34ch;
}
.hero-cta{
  align-self:flex-start;pointer-events:auto;
  background:#E9A23B;color:#1a1a1a;
  font-weight:800;font-size:clamp(15px,1.8vw,18px);
  padding:16px 34px;border-radius:14px;text-decoration:none;
  display:inline-flex;align-items:center;gap:10px;
}
.hero-cta:hover{filter:brightness(1.06);}

.hero-cta{
  align-self:flex-start;
  pointer-events:auto;
  font-size:17px;
  background:transparent;
  border:none;
  padding:1em 1.5em;
  color:#ffedd3;
  text-transform:uppercase;
  position:relative;
  transition:color .5s ease;
  cursor:pointer;
  font-weight:800;
  letter-spacing:.06em;
  text-decoration:none;
  display:inline-flex;align-items:center;gap:10px;
}
.hero-cta::before{
  content:"";
  position:absolute;
  left:0;bottom:0;
  height:2px;width:0;
  background-color:#ffc506;
  transition:width .5s ease;
}
.hero-cta:hover{color:#1e1e2b;transition-delay:.5s;}
.hero-cta:hover::before{width:100%;}
.hero-cta::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  height:0;width:100%;
  background-color:#ffc506;
  transition:height .4s ease;
  z-index:-1;
}
.hero-cta:hover::after{height:100%;transition-delay:.4s;}

/* Shimmer текста кнопки (гаснет при наведении, когда поднимается заливка) */
.hero-cta .fx-shimmer {
  --ink: #ffedd3;
  color: transparent;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--ink) 40%, transparent) 0 40%,
    color-mix(in srgb, var(--ink) 75%, transparent) 46%,
    #fff 50%,
    color-mix(in srgb, var(--ink) 75%, transparent) 54%,
    color-mix(in srgb, var(--ink) 40%, transparent) 60% 100%
  ) 0 0 / 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: fx-shimmer 3.8s linear infinite;
}
.hero-cta:hover .fx-shimmer{
  animation:none;
  background:none;
  color:#1e1e2b;
  -webkit-text-fill-color:#1e1e2b;
}
@keyframes fx-shimmer{
  to{background-position:300% 0;}
}
@media (prefers-reduced-motion:reduce){
  .hero-cta .fx-shimmer{animation:none;color:#ffedd3;background:none;-webkit-text-fill-color:#ffedd3;}
  .hero-cta::before,.hero-cta::after{transition:none;}
}


/* Use the portrait hero image on small screens. */
@media (max-width: 680px) {
  .hero::before {
    background-image: url("../assets/img/hero-mosaic-mobile.jpg");
    background-position: center;
    background-size: cover;
  }
}

/* Shared Footer16-inspired site footer */
.footer16 {
  position:relative;
  isolation:isolate;
  display:flex;
  min-height:clamp(416px, 41.6vw, 544px);
  width:100%;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding-top:104px;
  background:#090a0e;
  color:#f4f4f5;
  font-family:"Manrope",sans-serif;
}
.footer16-backdrop,
.footer16-backdrop::after {
  position:absolute;
  inset:0;
  z-index:-2;
  content:"";
}
.footer16-backdrop {
  background-image:url("../assets/img/footer-dallas.jpeg");
  background-position:center top;
  background-size:100% auto;
  background-repeat:no-repeat;
  filter:grayscale(.72) saturate(.42) brightness(.88);
}
.footer16-backdrop::after {
  background:linear-gradient(180deg,rgba(9,10,14,.06) 0%,rgba(9,10,14,.04) 32%,rgba(9,10,14,.62) 68%,#090a0e 100%);
}
.footer16-landmarks {
  position:absolute;
  inset:0;
  z-index:-1;
  width:100%;
  height:100%;
  color:#c4c2bd;
  opacity:.38;
  pointer-events:none;
}
.footer16-texas path {
  fill:rgba(150,149,156,.08);
  stroke:rgba(219,217,210,.5);
  stroke-width:2.5;
}
.footer16-cityscape path { fill:rgba(14,15,19,.58); stroke:rgba(198,197,192,.42); stroke-width:2; }
.footer16-stadium path:first-child { fill:rgba(20,21,26,.62); }
.footer16-stadium path:not(:first-child) {
  fill:none;
  stroke:rgba(218,216,209,.58);
  stroke-width:4;
}
.footer16-reunion circle { fill:rgba(23,24,29,.72); stroke:rgba(226,224,218,.64); stroke-width:5; }
.footer16-reunion path:first-child { fill:rgba(30,31,36,.7); }
.footer16-reunion path:not(:first-child) { fill:none; stroke:rgba(226,224,218,.58); stroke-width:3; }
.footer16-wordmark {
  position:absolute;
  top:clamp(24px,5vw,54px);
  left:50%;
  z-index:0;
  width:min(94%,1100px);
  transform:translateX(-50%);
  color:#deddd9;
  text-align:center;
  text-shadow:0 2px 18px rgba(0,0,0,.9);
}
.footer16-wordmark h2 {
  margin:0;
  font-family:"Manrope",sans-serif;
  font-size:clamp(28px,7vw,76px);
  font-weight:600;
  line-height:1.08;
  letter-spacing:clamp(.04em,.8vw,.11em);
  overflow-wrap:anywhere;
}
.footer16-wordmark span {
  display:block;
  margin-top:clamp(5px,1.2vw,12px);
  font-size:clamp(14px,2.2vw,24px);
  font-weight:600;
  line-height:1.2;
  letter-spacing:clamp(.28em,1vw,.52em);
  padding-left:.52em;
}
.footer16-panel {
  position:relative;
  z-index:1;
  padding:42px clamp(20px,5vw,76px) 28px;
  border-top:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.15);
  box-shadow:0 -24px 80px rgba(9,10,14,.34);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.footer16-main {
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(520px,.98fr);
  gap:clamp(40px,7vw,100px);
}
.footer16-brand { max-width:560px; }
.footer16-brand-link {
  display:inline-flex;
  min-height:40px;
  align-items:center;
  gap:10px;
  color:#fafafa;
  text-decoration:none;
  transition:opacity .2s ease,transform .2s ease;
}
.footer16-brand-link:hover { opacity:.82; }
.footer16-brand-link:active { transform:scale(.97); }
.footer16-brand-link img { width:28px; height:36px; object-fit:contain; }
.footer16-brand-link > span { font-size:18px; line-height:1.05; letter-spacing:.08em; }
.footer16-brand-link small { font-size:10px; letter-spacing:.28em; }
.footer16-brand p {
  max-width:440px;
  margin:12px 0 0 38px;
  color:rgba(228,228,231,.78);
  font-size:14px;
  line-height:1.7;
}
.footer16-nav {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,4vw,60px);
}
.footer16-column h2 {
  margin:0;
  color:#fafafa;
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
}
.footer16-column-navigation { display:grid; align-content:start; gap:9px; }
.footer16-column-navigation h4 {
  margin:0 0 7px;
  color:#fafafa;
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
}
.footer16-column ul,
.footer16-socials {
  display:flex;
  margin:16px 0 0;
  padding:0;
  flex-direction:column;
  gap:9px;
  list-style:none;
}
.footer16-column a {
  color:rgba(228,228,231,.72);
  font-size:13px;
  line-height:1.5;
  text-decoration:none;
  transition:color .2s ease;
}
.footer16-column a:hover { color:#fff; }
.footer16-bottom {
  display:flex;
  margin-top:38px;
  padding-top:20px;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid rgba(255,255,255,.12);
}
.footer16-bottom > p {
  margin:0;
  color:rgba(161,161,170,.82);
  font:400 11px "DM Mono",monospace;
}
.footer16-meta { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.footer16-socials { margin:0; flex-direction:row; gap:4px; }
.footer16-socials a {
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border-radius:50%;
  color:#a1a1aa;
  text-decoration:none;
  transition:color .2s ease,background .2s ease,transform .2s ease;
}
.footer16-socials a:hover { transform:scale(1.08); background:rgba(255,255,255,.08); color:#fff; }
.footer16-socials span { font-size:17px; font-weight:700; }
.footer16-socials svg { width:16px; height:16px; fill:currentColor; }
.footer16 a:focus-visible { outline:2px solid #f4f4f5; outline-offset:4px; }
.footer16.footer16-motion .footer16-main,
.footer16.footer16-motion .footer16-bottom {
  opacity:0;
  transform:translateY(16px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.25,1);
}
.footer16.footer16-visible .footer16-main,
.footer16.footer16-visible .footer16-bottom { opacity:1; transform:translateY(0); }
.footer16.footer16-visible .footer16-bottom { transition-delay:.12s; }

@media (max-width:1000px) {
  .footer16 { min-height:480px; }
  .footer16-main { grid-template-columns:1fr; gap:34px; }
}
@media (max-width:600px) {
  .footer16 { min-height:416px; padding-top:96px; }
  .footer16-wordmark { top:28px; width:94%; }
  .footer16-panel { padding:30px 20px 24px; }
  .footer16-main { gap:30px; }
  .footer16-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 18px; }
  .footer16-bottom { margin-top:28px; flex-direction:column; gap:12px; }
  .footer16-meta { align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .footer16 *, .footer16 *::before, .footer16 *::after { scroll-behavior:auto; transition-duration:.01ms !important; }
}

/* Compact schedule sizing for the home curtain and Игры page. */
.schedule {
  padding-block:clamp(52px,6vw,82px);
  padding-inline:clamp(18px,4.5vw,72px);
}
.schedule-head { margin-bottom:clamp(26px,3vw,38px); }
.schedule h2 { font-size:clamp(32px,5.2vw,76px); }
.schedule-grid {
  display:flex;
  width:100%;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
}
.schedule-card {
  flex:1 1 calc((100% - 42px) / 4);
  min-width:min(100%,280px);
  min-height:232px;
  gap:12px;
  padding:16px;
}
.schedule-empty { flex:1 1 100%; }
.schedule-badges { min-height:22px; }
.schedule-card.next::before { left:18px; top:17px; }
.schedule-card h3 { font-size:clamp(20px,1.9vw,32px); }
.schedule-date { margin-top:12px; }
.schedule-venue { padding-top:12px; }
.schedule-venue-logo {
  display:block;
  width:auto;
  max-width:min(100%,150px);
  height:34px;
  object-fit:contain;
  object-position:left center;
}
.schedule-type-logo {
  position:absolute;
  right:16px;
  bottom:14px;
  width:auto;
  height:40px;
  max-width:106px;
  margin:0;
  align-self:auto;
  object-position:right bottom;
}
.questions {
  padding:clamp(56px,7vw,100px) clamp(18px,4.5vw,72px);
  background:#0a0a0a;
  color:#f5f5f5;
}
.questions #as-quiz { width:100%; max-width:1200px; margin:0 auto; }
.ignat-report {
  padding:clamp(64px,8vw,112px) clamp(18px,5vw,76px);
  background:radial-gradient(ellipse at 50% 0,rgba(255,255,255,.055),transparent 48rem),#090a0e;
  color:#f2f1ee;
}
.ignat-heading {
  max-width:1200px;
  margin:0 auto;
}
.ignat-kicker {
  display:block;
  margin-bottom:14px;
  color:#c9a85f;
  font:600 11px "DM Mono",monospace;
  letter-spacing:.16em;
}
.ignat-heading h2 {
  max-width:none;
  color:#f2f1ee;
  font-size:clamp(38px,7vw,88px);
  line-height:.98;
  letter-spacing:-.055em;
}
.ignat-heading p {
  max-width:620px;
  margin:18px 0 0;
  color:#aaa9a5;
  font-size:clamp(15px,1.6vw,19px);
  line-height:1.6;
}
.ignat-timeline {
  position:relative;
  display:grid;
  max-width:1200px;
  min-height:clamp(480px,50vw,640px);
  margin:clamp(40px,6vw,76px) auto 0;
  isolation:isolate;
}
.ignat-timeline::before {
  position:absolute;
  inset:0;
  z-index:-1;
  background:url("../assets/img/ignat-rope.png") center top / auto 100% no-repeat;
  content:"";
  pointer-events:none;
}
.ignat-entry {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(100px,16%) minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  min-height:clamp(210px,22vw,270px);
  padding-block:18px;
  border:0;
}
.ignat-entry summary {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) 30px;
  align-items:center;
  gap:14px;
  min-height:78px;
  padding:14px 18px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:14px;
  background:linear-gradient(115deg,rgba(20,21,23,.97),rgba(13,14,16,.94));
  box-shadow:0 14px 34px rgba(0,0,0,.24);
  color:#f3f2ef;
  cursor:pointer;
  list-style:none;
  transition:border-color .2s ease,transform .2s ease,background .2s ease;
}
.ignat-entry summary::-webkit-details-marker { display:none; }
.ignat-entry summary:hover,
.ignat-entry summary:focus-visible,
.ignat-entry[open] summary {
  border-color:rgba(201,168,95,.72);
  background:linear-gradient(115deg,rgba(27,27,26,.98),rgba(15,16,17,.98));
}
.ignat-entry summary:hover { transform:translateY(-2px); }
.ignat-entry[data-side="right"] summary,
.ignat-entry[data-side="right"] .ignat-entry-review { grid-column:3; }
.ignat-entry[data-side="left"] summary,
.ignat-entry[data-side="left"] .ignat-entry-review { grid-column:1; }
.ignat-entry summary { grid-row:1; }
.ignat-entry-number {
  color:#c9a85f;
  font:600 10px "DM Mono",monospace;
  letter-spacing:.08em;
  white-space:nowrap;
}
.ignat-entry-title {
  font-size:clamp(16px,1.6vw,21px);
  font-weight:700;
  line-height:1.3;
}
.ignat-entry-icon {
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#d9d8d4;
  font-size:20px;
  line-height:1;
  transition:transform .2s ease,color .2s ease,border-color .2s ease;
}
.ignat-entry[open] .ignat-entry-icon {
  transform:rotate(45deg);
  border-color:#c9a85f;
  color:#c9a85f;
}
.ignat-entry-review {
  grid-row:2;
  margin-top:12px;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.1);
  border-left:2px solid #c9a85f;
  border-radius:12px;
  background:rgba(17,18,19,.94);
  color:#c6c5c1;
  font-size:15px;
  line-height:1.75;
  animation:ignat-review-in .24s ease both;
}
.ignat-entry[data-side="right"] .ignat-entry-review { margin-left:18px; }
.ignat-entry[data-side="left"] .ignat-entry-review { margin-right:18px; }
.ignat-entry-review p { margin:0; white-space:pre-line; }
.ignat-report-error {
  padding:20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  color:#c6c5c1;
}
@keyframes ignat-review-in {
  from { opacity:0; transform:translateY(-5px); }
  to { opacity:1; transform:translateY(0); }
}
@media (max-width:680px) {
  .schedule { padding-block:44px; padding-inline:18px; }
  .schedule h2 { font-size:clamp(30px,9vw,42px); }
  .schedule-card { min-height:218px; }
  .schedule-card h3 { font-size:clamp(20px,6vw,27px); }
  .ignat-report { padding:64px 18px; }
  .ignat-heading h2 { font-size:clamp(36px,11vw,52px); }
  .ignat-timeline { margin-top:36px; }
  .ignat-timeline::before { background-size:auto 100%; }
  .ignat-entry {
    grid-template-columns:minmax(0,1fr);
    min-height:210px;
    padding-block:20px;
  }
  .ignat-entry[data-side="right"] summary,
  .ignat-entry[data-side="right"] .ignat-entry-review,
  .ignat-entry[data-side="left"] summary,
  .ignat-entry[data-side="left"] .ignat-entry-review {
    grid-column:1;
    width:84%;
  }
  .ignat-entry[data-side="right"] summary,
  .ignat-entry[data-side="right"] .ignat-entry-review { justify-self:end; }
  .ignat-entry[data-side="left"] summary,
  .ignat-entry[data-side="left"] .ignat-entry-review { justify-self:start; }
  .ignat-entry summary { grid-template-columns:1fr 28px; gap:4px 10px; }
  .ignat-entry-number { grid-column:1; }
  .ignat-entry-title { grid-column:1; grid-row:2; }
  .ignat-entry-icon { grid-column:2; grid-row:1 / span 2; }
  .ignat-entry[data-side="right"] .ignat-entry-review,
  .ignat-entry[data-side="left"] .ignat-entry-review { margin-inline:0; }
}

/* Center the schedule content as the homepage curtain reveals it. */
@media (prefers-reduced-motion: no-preference) {
  body[data-route="home"] .curtain .schedule {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding-block:clamp(72px,8vh,112px);
  }
}

/* Compact navigation with links and social icons in a shared container. */
.site-nav {
  inset:0 0 auto;
  min-height:0;
  justify-content:center;
  padding:0 16px;
  color:#f5f5f5;
  background:transparent;
  border:0;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.site-nav.scrolled,
.site-nav.menu-active {
  color:#f5f5f5;
  background:transparent;
  border:0;
  box-shadow:none;
}
.navbar-container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:max-content;
  max-width:min(100%,1180px);
  margin:0 auto;
  padding:8px 16px 9px;
  border:1px solid rgba(225,225,225,.38);
  border-radius:0 0 24px 24px;
  background:#050505;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.nav-links {
  display:flex;
  align-items:center;
  gap:8px;
}
.nav-links a {
  position:relative;
  padding:10px 9px;
  color:#a8a8a8;
  font-size:13px;
  font-weight:600;
  letter-spacing:0;
  text-decoration:none;
  white-space:nowrap;
}
.nav-links a:hover,
.nav-links a:focus-visible { color:#fff; background:transparent; }
.nav-links .nav-contact {
  margin-left:0;
  border:0;
  background:transparent;
  color:#a8a8a8;
}
.social-icons {
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:12px;
  padding-left:12px;
  border-left:1px solid rgba(255,255,255,.14);
}
.social-icons .nav-social-link {
  display:grid;
  width:32px;
  height:32px;
  flex:0 0 32px;
  place-items:center;
  padding:0;
  border:0;
  border-radius:8px;
}
.social-icons .nav-social-link:hover,
.social-icons .nav-social-link:focus-visible {
  background:rgba(255,255,255,.08);
}
.social-icons img { width:18px; height:18px; object-fit:contain; }
.nav-links a[aria-current="page"] {
  color:#fff;
  background:transparent;
  border-radius:0;
}
.nav-links a[aria-current="page"]::after {
  position:absolute;
  right:9px;
  bottom:4px;
  left:9px;
  height:2px;
  border-radius:2px;
  background:#c9a85f;
  content:"";
}
.social-icons img { filter:brightness(1.3) contrast(1.08); }

/* Light contact section with readable dark copy and links. */
#contact {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);
  align-items:stretch;
  background:#fff;
  border-bottom-color:rgba(0,0,0,.12);
  color:#111;
}
#contact > .contact-details,
#contact > .form-wrap {
  display:flex !important;
  position:relative;
  min-width:0;
  min-height:520px;
  visibility:visible !important;
  opacity:1 !important;
  border-color:rgba(0,0,0,.12);
  background:#fff;
  color:#111;
}
#contact .contact-details {
  flex-direction:column;
  justify-content:space-between;
  gap:48px;
  border-color:rgba(255,255,255,.14);
  background:#0a0a0a !important;
  color:#fff;
}
#contact .form-wrap { flex-direction:column; background:#fff !important; }
#contact .contact-details h2,
#contact .contact-details .contact-item a,
#contact .contact-details .contact-item strong { color:#fff; }
#contact .contact-details .contact-note { color:#aaa; }
#contact .contact-details .contact-item { border-color:rgba(255,255,255,.16); }
#contact .contact-details .contact-item span { color:#999; }
#contact .contact-details h2,
#contact .contact-item a,
#contact .contact-item strong { color:#111; }
#contact .contact-note,
#contact .form-wrap > p { color:#555; }
#contact .contact-item { border-color:rgba(0,0,0,.16); }
#contact .contact-item span,
#contact label,
#contact .helper { color:#666; }
#contact input,
#contact textarea { border-color:#aaa; color:#111; background:#fff; }
#contact input:focus,
#contact textarea:focus { border-color:#111; }
#contact .contact-details h2 { color:#fff; }

@media (max-width:1100px) {
  .site-nav { inset:0 0 auto; padding:0 12px; }
  .site-nav.scrolled,
  .site-nav.menu-active { background:transparent; }
  .navbar-container {
    position:relative;
    display:flex;
    width:min(100%,520px);
    max-width:100%;
    flex-direction:column;
    align-items:stretch;
    margin:0 auto;
    padding:0;
    border:0;
    border-radius:20px;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .site-nav.menu-active .navbar-container {
    padding:8px 12px 12px;
    border:1px solid rgba(225,225,225,.24);
    background:#050505;
    box-shadow:0 14px 38px rgba(0,0,0,.32);
  }
  .menu-toggle {
    display:block;
    align-self:flex-end;
    margin:8px 0 0;
    padding:10px 16px;
    border:0;
    border-radius:999px;
    background:#050505;
    color:#f5f5f5;
    box-shadow:0 8px 24px rgba(0,0,0,.28);
  }
  .nav-links {
    display:none;
    width:100%;
    max-height:calc(100svh - var(--nav-height) - 28px);
    overflow-y:auto;
    flex-direction:column;
    align-items:stretch;
    gap:3px;
    margin:8px 0 0;
    padding:0;
  }
  .nav-links.open { display:flex; }
  .nav-links a {
    width:100%;
    padding:13px 12px;
    border-bottom:0;
    border-radius:12px;
    color:#d0d0d0;
    text-align:center;
  }
  .nav-links .nav-contact { margin:0; color:#d0d0d0; }
  .nav-links a[aria-current="page"] { color:#fff; background:transparent; }
  .nav-links a[aria-current="page"]::after {
    right:auto;
    bottom:5px;
    left:50%;
    width:42px;
    transform:translateX(-50%);
  }
  .social-icons {
    display:none;
    justify-content:center;
    margin:8px 0 0;
    padding:10px 0 0;
    border-top:1px solid rgba(255,255,255,.12);
    border-left:0;
  }
  .site-nav.menu-active .social-icons { display:flex; }
}

@media (max-width:760px) {
  #contact { grid-template-columns:minmax(0,1fr); }
}

@media (max-width:1100px) {
  .schedule-card { flex-basis:calc((100% - 14px) / 2); }
}
@media (max-width:680px) {
  .schedule-card { flex-basis:100%; }
}
