@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-0.woff2) format('truetype');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-1.woff2) format('truetype');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-2.woff2) format('truetype');
}
@font-face {
  font-family: 'Fascinate Inline';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-3.woff2) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-4.woff2) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-5.woff2) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-6.woff2) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-7.woff2) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-8.woff2) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-9.woff2) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-10.woff2) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-11.woff2) format('truetype');
}



      :root {
        --bg: #f7f3ec;
        --surface: #fffdf8;
        --surface-2: #efe8db;
        --ink: #211a33;
        --ink-soft: #55496e;
        --line: #ddd2c0;
        --violet: #5b3ec8;
        --violet-soft: #ece5fb;
        --amber: #b06f0a;
        --amber-soft: #faecd2;
        --teal: #0e6e5c;
        --teal-soft: #dcf0ea;
        --rose: #b23a5e;
        --rose-soft: #fbe4ec;
        --hero-ink: #f5efe2;
        --shadow: 0 1px 2px rgba(33,26,51,.06), 0 8px 24px rgba(33,26,51,.07);
      }
      @media (prefers-color-scheme: dark) {
        :root {
          --bg: #120e1e;
          --surface: #1c1630;
          --surface-2: #251d3f;
          --ink: #f0eadd;
          --ink-soft: #b3a8cc;
          --line: #382d58;
          --violet: #a68cf5;
          --violet-soft: #2b2150;
          --amber: #eda83a;
          --amber-soft: #3d2c10;
          --teal: #4cc2ab;
          --teal-soft: #123730;
          --rose: #ef7ba0;
          --rose-soft: #3d1a29;
          --shadow: 0 1px 2px rgba(0,0,0,.35), 0 10px 28px rgba(0,0,0,.35);
        }
      }
      * { box-sizing: border-box; }
      html { scroll-behavior: smooth; }
      body {
        margin: 0;
        background: var(--bg);
        color: var(--ink);
        font-family: "Instrument Sans", system-ui, sans-serif;
        font-size: 16px;
        line-height: 1.55;
        -webkit-font-smoothing: antialiased;
      }
      h1, h2, h3 { font-family: "Bricolage Grotesque", "Instrument Sans", sans-serif; line-height: 1.08; margin: 0; }
      a { color: var(--violet); }
      .mono { font-family: "IBM Plex Mono", ui-monospace, monospace; }

      /* ---------- Hero ---------- */
      .hero {
        position: relative;
        min-height: 62vh;
        display: flex;
        align-items: flex-end;
        overflow: hidden;
        background: #141126;
      }
      .hero img {
        position: absolute; inset: 0; z-index: 0;
        width: 100%; height: 100%;
        object-fit: cover;
      }
      .hero::after {
        content: "";
        position: absolute; inset: 0; z-index: 2;
        background:
          linear-gradient(180deg, rgba(16,10,32,.42) 0%, rgba(16,10,32,.34) 42%, rgba(16,10,32,.88) 90%),
          linear-gradient(rgba(16,10,32,.22), rgba(16,10,32,.22));
      }
      .hero-inner {
        position: relative; z-index: 3;
        width: min(1120px, 100% - 2.5rem);
        margin: 0 auto;
        padding: 6.5rem 0 2.2rem;
        color: var(--hero-ink);
      }
      .hero .dates {
        font-family: "IBM Plex Mono", monospace;
        font-size: .82rem; letter-spacing: .14em; text-transform: uppercase;
        color: #f4c96b;
        margin: 0 0 .7rem;
      }
      .hero h1 {
        font-size: clamp(2.7rem, 8.5vw, 5.2rem);
        font-weight: 800;
        letter-spacing: -.01em;
        text-wrap: balance;
        max-width: 100%;
        overflow-wrap: anywhere;
      }
      .hero .lede {
        max-width: 38rem;
        font-size: clamp(1.02rem, 2.4vw, 1.22rem);
        color: rgba(245,239,226,.88);
        margin: .9rem 0 1.4rem;
      }
      .hero-facts { display: flex; flex-wrap: wrap; gap: .5rem; }
      .hero-facts span, .hero-facts a {
        font-family: "IBM Plex Mono", monospace;
        font-size: .78rem;
        padding: .42rem .7rem;
        border: 1px solid rgba(245,239,226,.35);
        border-radius: 999px;
        background: rgba(16,10,32,.42);
        backdrop-filter: blur(4px);
      }
      .hero-facts a { color: var(--hero-ink); text-decoration: none; }
      .hero-facts a:hover { border-color: #f4c96b; text-decoration: underline; }

      /* ---------- Nav ---------- */
      .nav {
        position: sticky; top: 0; z-index: 20;
        background: color-mix(in srgb, var(--bg) 88%, transparent);
        backdrop-filter: blur(10px);
        border-bottom: 1px solid var(--line);
      }
      .nav-inner {
        width: min(1120px, 100% - 2.5rem);
        margin: 0 auto;
        display: flex; gap: .45rem;
        padding: .65rem 0;
        overflow-x: auto;
        scrollbar-width: none;
      }
      .nav-inner::-webkit-scrollbar { display: none; }
      .nav a {
        flex: 0 0 auto;
        text-decoration: none;
        color: var(--ink);
        font-size: .86rem; font-weight: 600;
        padding: .42rem .8rem;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: var(--surface);
      }
      .nav a:hover { border-color: var(--violet); color: var(--violet); }
      @media (min-width: 1024px) {
        .nav-inner {
          -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.5rem), transparent 100%);
          mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 3.5rem), transparent 100%);
        }
      }

      main { width: min(1120px, 100% - 2.5rem); margin: 0 auto; }
      section { padding: 2.6rem 0 .4rem; scroll-margin-top: 4.2rem; }
      .sec-head { display: flex; align-items: baseline; gap: .9rem; margin-bottom: .4rem; }
      .sec-num {
        font-family: "IBM Plex Mono", monospace;
        font-size: .8rem; font-weight: 600;
        color: var(--violet);
      }
      .sec-head h2 { font-size: clamp(1.55rem, 4vw, 2.15rem); font-weight: 800; }
      .sec-sub { color: var(--ink-soft); max-width: 44rem; margin: .35rem 0 1.4rem; }

      /* ---------- Collapsible sections ---------- */
      .sec-head .sec-toggle {
        margin-left: auto; align-self: center; flex: 0 0 auto;
        display: inline-flex; align-items: center; justify-content: center;
        width: 2rem; height: 2rem; border-radius: 999px;
        border: 1px solid var(--line); background: var(--surface);
        color: var(--ink-soft); cursor: pointer; padding: 0;
      }
      .sec-head .sec-toggle:hover { border-color: var(--violet); color: var(--violet); }
      .sec-head .sec-toggle .chev { transition: transform .38s ease; }
      section.collapsed .sec-head .sec-toggle .chev { transform: rotate(-90deg); }
      .sec-body { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .38s ease; }
      .sec-body-inner { overflow: hidden; min-height: 0; }
      section.collapsed .sec-body { grid-template-rows: 0fr; }

      /* ---------- Filter ---------- */
      .filter-bar {
        display: flex; flex-wrap: wrap; align-items: center; gap: .45rem;
        margin: 1.6rem 0 .2rem;
      }
      .filter-bar .lbl {
        font-family: "IBM Plex Mono", monospace;
        font-size: .75rem; letter-spacing: .1em; text-transform: uppercase;
        color: var(--ink-soft); margin-right: .3rem;
      }
      .fbtn {
        font: inherit; font-size: .86rem; font-weight: 600;
        padding: .45rem .85rem;
        border-radius: 999px;
        border: 1px solid var(--line);
        background: var(--surface);
        color: var(--ink);
        cursor: pointer;
      }
      .fbtn:hover { border-color: var(--violet); }
      .fbtn[aria-pressed="true"] {
        background: var(--violet); border-color: var(--violet); color: #fff;
      }
      @media (prefers-color-scheme: dark) {
        .fbtn[aria-pressed="true"] { color: #171029; background: var(--violet); }
      }
      .filter-note { font-size: .85rem; color: var(--ink-soft); margin: .55rem 0 0; min-height: 1.2em; }
      .is-hidden { display: none !important; }

      /* ---------- Day plan ---------- */
      .days { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
      .day {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 1.1rem 1.05rem 1rem;
        box-shadow: var(--shadow);
      }
      .day .dow {
        font-family: "IBM Plex Mono", monospace;
        font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
        color: var(--violet); font-weight: 600;
      }
      .day h3 { font-size: 1.18rem; margin: .3rem 0 .55rem; }
      .day ul { margin: 0; padding-left: 1.05rem; color: var(--ink-soft); font-size: .92rem; }
      .day li { margin-bottom: .35rem; }
      .day li b { color: var(--ink); font-weight: 600; }
      .day.show-night { border-top: 4px solid var(--violet); }
      .day.warm { border-top: 4px solid var(--amber); }
      .day.slow { border-top: 4px solid var(--teal); }

      /* ---------- Cards ---------- */
      .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
      .grid.two { grid-template-columns: repeat(2, 1fr); }
      .card {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 1.05rem 1.1rem 1rem;
        box-shadow: var(--shadow);
        display: flex; flex-direction: column; gap: .45rem;
      }
      .card h3 { font-size: 1.16rem; font-weight: 700; }
      .card p { margin: 0; color: var(--ink-soft); font-size: .94rem; }
      .card .meta {
        font-family: "IBM Plex Mono", monospace;
        font-size: .76rem; color: var(--ink-soft);
        display: flex; flex-wrap: wrap; gap: .3rem .9rem;
      }
      .card .site { margin-top: auto; padding-top: .35rem; font-size: .88rem; font-weight: 600; text-decoration: none; }
      .card .site:hover { text-decoration: underline; }
      .dir { display: inline-flex; align-items: center; gap: .35rem; font-size: .88rem; font-weight: 600; text-decoration: none; }
      .dir::before { content: ""; width: .95em; height: .95em; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat; }
      .dir:hover { text-decoration: underline; }
      .card .dir { padding-top: .2rem; }
      .feature .dir { margin-top: .55rem; }
      .pcard .dir { margin-top: .35rem; }
      .addr { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
      .tags { display: flex; flex-wrap: wrap; gap: .35rem; }
      .tag {
        font-size: .72rem; font-weight: 700; letter-spacing: .02em;
        padding: .18rem .55rem; border-radius: 999px;
      }
      .tag.v { background: var(--violet-soft); color: var(--violet); }
      .tag.a { background: var(--amber-soft); color: var(--amber); }
      .tag.t { background: var(--teal-soft); color: var(--teal); }
      .tag.r { background: var(--rose-soft); color: var(--rose); }
      .close-time {
        font-family: "IBM Plex Mono", monospace;
        font-weight: 600; font-size: 1.02rem; color: var(--ink);
      }
      .close-time small { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); font-weight: 500; }

      /* ---------- Late-night compact rows ---------- */
      .late-rows { display: grid; gap: .6rem; margin-top: .9rem; }
      .late-row {
        display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1.1rem;
        border: 1px solid var(--line); border-radius: 12px;
        background: var(--surface); padding: .7rem 1rem;
        box-shadow: var(--shadow);
      }
      .late-row h3 { font-size: 1.02rem; }
      .late-row .late-hrs { font-family: "IBM Plex Mono", monospace; font-size: .85rem; color: var(--ink-soft); }
      .late-row .dir { margin-left: auto; }

      /* ---------- Feature panels ---------- */
      .feature {
        display: grid; grid-template-columns: 1.05fr 1fr;
        border: 1px solid var(--line);
        border-radius: 18px; overflow: hidden;
        background: var(--surface);
        box-shadow: var(--shadow);
      }
      .feature .photo { min-height: 260px; }
      .feature .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
      .feature .body { padding: 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .55rem; }
      .feature h3 { font-size: 1.5rem; font-weight: 800; }
      .feature p { margin: 0; color: var(--ink-soft); }
      .feature .meta { font-family: "IBM Plex Mono", monospace; font-size: .78rem; color: var(--ink-soft); display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
      .feature .site { font-weight: 600; text-decoration: none; margin-top: auto; padding-top: .4rem; }
      .feature .site:hover { text-decoration: underline; }
      .feature.violet { background: var(--violet-soft); border-color: color-mix(in srgb, var(--violet) 35%, var(--line)); }
      .alert {
        border-radius: 12px;
        padding: .95rem 1.15rem;
        background: var(--amber-soft);
        border: 1px solid color-mix(in srgb, var(--amber) 45%, transparent);
        font-size: .96rem;
        margin-bottom: 1.1rem;
      }
      .alert b { color: var(--amber); }

      /* ---------- Tickets ---------- */
      .ticket-cta {
        display: inline-block;
        margin-top: .4rem;
        font-weight: 700; font-size: .95rem; text-decoration: none;
        color: #fff; background: var(--violet);
        padding: .6rem 1.15rem; border-radius: 999px;
      }
      .ticket-cta:hover { filter: brightness(1.1); }
      @media (prefers-color-scheme: dark) {
        .ticket-cta { color: #171029; }
      }

      /* ---------- Survival strip ---------- */
      .survival { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
      .surv {
        border-radius: 14px; padding: 1.15rem 1.2rem 1.05rem;
        border: 1px solid var(--line); background: var(--surface);
        box-shadow: var(--shadow);
      }
      .surv .big {
        font-family: "Bricolage Grotesque", sans-serif;
        font-size: 1.9rem; font-weight: 800; line-height: 1; margin: 0 0 .45rem;
      }
      .surv h3 { font-size: 1.02rem; margin-bottom: .3rem; }
      .surv p { margin: 0; color: var(--ink-soft); font-size: .93rem; }
      .surv.alt { background: var(--teal-soft); border-color: color-mix(in srgb, var(--teal) 35%, var(--line)); }
      .surv.alt .big { color: var(--teal); }
      .surv.cold { background: var(--violet-soft); border-color: color-mix(in srgb, var(--violet) 35%, var(--line)); }
      .surv.cold .big { color: var(--violet); }
      .surv.law { background: var(--amber-soft); border-color: color-mix(in srgb, var(--amber) 40%, var(--line)); }
      .surv.law .big { color: var(--amber); }

      /* ---------- Photo cards ---------- */
      .photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
      .pcard {
        border: 1px solid var(--line); border-radius: 16px; overflow: hidden;
        background: var(--surface); box-shadow: var(--shadow);
        display: flex; flex-direction: column;
      }
      .pcard img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
      .pcard .pbody { padding: 1rem 1.1rem 1.05rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }
      .pcard h3 { font-size: 1.14rem; font-weight: 700; }
      .pcard p { margin: 0; color: var(--ink-soft); font-size: .93rem; }
      .pcard .meta { font-family: "IBM Plex Mono", monospace; font-size: .75rem; color: var(--ink-soft); }
      .pcard .site { margin-top: auto; padding-top: .3rem; font-size: .88rem; font-weight: 600; text-decoration: none; }
      .pcard .site:hover { text-decoration: underline; }
      .also-line { margin-top: 1rem; color: var(--ink-soft); font-size: .95rem; }
      .also-line b { color: var(--ink); }

      /* ---------- Notes ---------- */
      .notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; }
      .note {
        border: 1px solid var(--line); border-radius: 14px;
        background: var(--surface); padding: 1.05rem 1.15rem;
        box-shadow: var(--shadow);
      }
      .note h3 { font-size: 1.02rem; margin-bottom: .3rem; }
      .note p { margin: 0; color: var(--ink-soft); font-size: .93rem; }

      .venue-banner { margin: 1rem 0 0; }
      .venue-banner img {
        width: 100%; aspect-ratio: 21 / 8; object-fit: cover; object-position: center 42%;
        display: block; border-radius: 16px; border: 1px solid var(--line);
      }
      .venue-banner figcaption { margin-top: .55rem; color: var(--ink-soft); font-size: .92rem; }
      .venue-banner figcaption b { color: var(--ink); }
      @media (max-width: 560px) { .venue-banner img { aspect-ratio: 16 / 10; } }

      footer {
        margin-top: 3.2rem;
        border-top: 1px solid var(--line);
        padding: 1.4rem 0 2.6rem;
        color: var(--ink-soft); font-size: .86rem;
      }
      footer .wrap { width: min(1120px, 100% - 2.5rem); margin: 0 auto; }

      /* ---------- Shponglefication ---------- */
      .hero::before {
        content: "";
        position: absolute; inset: -55%; z-index: 1;
        background: repeating-conic-gradient(from 0deg at 50% 50%,
          rgba(167,139,250,.55) 0deg 9deg,
          rgba(244,201,107,.28) 9deg 18deg,
          rgba(76,194,171,.38) 18deg 27deg,
          rgba(239,123,160,.30) 27deg 36deg);
        mix-blend-mode: soft-light;
        opacity: .55;
        animation: kaleido 90s linear infinite;
        pointer-events: none;
      }
      @keyframes kaleido { to { transform: rotate(360deg); } }

      .ticker {
        overflow: hidden;
        background: var(--surface-2);
        border-bottom: 1px solid var(--line);
      }
      .ticker-track {
        display: flex; width: max-content;
        animation: tickmove 48s linear infinite;
      }
      .ticker-set { display: flex; }
      .ticker span {
        font-family: "IBM Plex Mono", monospace;
        font-size: .76rem; letter-spacing: .13em; text-transform: uppercase;
        color: var(--ink-soft);
        padding: .55rem 1.05rem;
        white-space: nowrap;
      }
      .ticker b { color: var(--violet); font-weight: 600; }
      @keyframes tickmove { to { transform: translateX(-50%); } }

      /* ---------- Survival kit checklist ---------- */
      .kit-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
      .kit-item {
        font: inherit; text-align: left; cursor: pointer;
        display: flex; gap: .75rem; align-items: flex-start;
        border: 1px solid var(--line); border-radius: 14px;
        background: var(--surface); color: var(--ink);
        padding: .85rem 1rem; box-shadow: var(--shadow);
      }
      .kit-item:hover { border-color: var(--violet); }
      .kit-item .box {
        flex: none; width: 1.3rem; height: 1.3rem; margin-top: .1rem;
        border: 2px solid var(--violet); border-radius: 6px;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: .95rem; font-weight: 800; color: #fff; line-height: 1;
      }
      .kit-item[aria-pressed="true"] { border-color: var(--violet); background: var(--violet-soft); }
      .kit-item[aria-pressed="true"] .box { background: var(--violet); }
      .kit-item .kit-txt b { display: block; font-size: .98rem; margin-bottom: .15rem; }
      .kit-item .kit-txt span { color: var(--ink-soft); font-size: .9rem; }
      .kit-progress {
        margin: .9rem 0 0;
        font-family: "IBM Plex Mono", monospace; font-size: .85rem;
        color: var(--ink-soft);
      }
      .kit-progress b { color: var(--violet); }

      /* ---------- Oracle ---------- */
      .oracle {
        display: flex; align-items: center; gap: 1.1rem;
        border: 1px solid var(--line); border-radius: 16px;
        background: var(--surface); box-shadow: var(--shadow);
        padding: 1rem 1.25rem; margin-bottom: .9rem;
      }
      .eye-btn {
        flex: 0 0 auto; background: none; border: none;
        padding: .2rem; cursor: pointer; border-radius: 50%;
      }
      .eye-btn svg { width: 86px; height: 86px; display: block; }
      .eye-btn:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; }
      .eye-btn.wiggling svg { animation: wiggle .55s ease-in-out; }
      @keyframes wiggle {
        0%, 100% { transform: rotate(0deg); }
        25% { transform: rotate(-8deg) scale(1.07); }
        75% { transform: rotate(8deg) scale(1.07); }
      }
      .oracle-kicker {
        font-family: "IBM Plex Mono", monospace;
        font-size: .72rem; letter-spacing: .12em; text-transform: uppercase;
        color: var(--violet); font-weight: 600; margin: 0 0 .3rem;
      }
      .oracle-line {
        margin: 0;
        font-family: "Bricolage Grotesque", "Instrument Sans", sans-serif;
        font-size: 1.14rem; font-weight: 600; line-height: 1.35;
      }
      @media (max-width: 560px) {
        .oracle { flex-direction: column; text-align: center; }
      }

      /* ---------- Choose Your Own Shpongle ---------- */
      .adv-panel {
        border: 1px solid var(--line); border-radius: 18px;
        background: #17102b; color: #f0eadd;
        box-shadow: var(--shadow); overflow: hidden;
        transition: border-color .9s ease;
      }
      .adv-top {
        display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem;
        padding: .75rem 1.1rem; border-bottom: 1px solid rgba(240,234,221,.14);
        font-family: "IBM Plex Mono", monospace; font-size: .82rem; color: rgba(240,234,221,.7);
      }
      .adv-top b { color: #f4c96b; font-weight: 600; }
      .adv-dots { display: flex; gap: .35rem; margin-left: auto; }
      .adv-dots i { width: 8px; height: 8px; border-radius: 50%; background: rgba(240,234,221,.22); display: block; transition: background .5s ease; }
      .adv-dots i.on { background: #f4c96b; }
      .adv-dots i.done { background: #4cc2ab; }
      /* Scene stage — a living illustration that re-dreams itself per story beat */
      .adv-stage {
        position: relative; height: 236px; overflow: hidden;
        background: #0d0820;
        border-bottom: 1px solid rgba(240,234,221,.14);
      }
      #advCanvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
      .adv-stage::after {
        content: ""; position: absolute; inset: 0; pointer-events: none;
        background:
          radial-gradient(120% 90% at 50% 8%, transparent 55%, rgba(9,5,22,.42) 100%),
          linear-gradient(180deg, rgba(9,5,22,.16) 0%, transparent 26%, transparent 72%, rgba(9,5,22,.38) 100%);
      }
      .adv-eye {
        position: absolute; left: 50%; top: 47%; z-index: 2;
        transform: translate(-50%, -50%);
        width: clamp(104px, 30vw, 138px);
        pointer-events: none;
        filter: drop-shadow(0 0 18px rgba(9,5,22,.55)) drop-shadow(0 0 26px rgba(244,201,107,.22));
        transition: width .8s ease, opacity .8s ease;
      }
      .adv-eye svg { width: 100%; height: auto; display: block; overflow: visible; }
      .adv-eye .adv-iris { transition: fill .9s ease; }
      .adv-stage.is-ending .adv-eye { width: clamp(128px, 36vw, 168px); }
      .adv-scene-chip {
        position: absolute; left: .85rem; bottom: .7rem; z-index: 3; margin: 0;
        font-family: "IBM Plex Mono", monospace; font-size: .7rem; font-weight: 600;
        letter-spacing: .12em; text-transform: uppercase; color: #f4c96b;
        background: rgba(11,6,26,.58); border: 1px solid rgba(244,201,107,.35);
        padding: .34rem .65rem; border-radius: 999px;
        backdrop-filter: blur(4px);
      }
      .adv-path-chip {
        position: absolute; right: .85rem; bottom: .7rem; z-index: 3; margin: 0;
        font-family: "IBM Plex Mono", monospace; font-size: .7rem;
        letter-spacing: .06em; color: rgba(240,234,221,.82);
        background: rgba(11,6,26,.5); padding: .34rem .65rem; border-radius: 999px;
        backdrop-filter: blur(4px);
      }
      @media (max-width: 560px) {
        .adv-stage { height: 196px; }
        .adv-path-chip { display: none; }
      }
      .adv-body { padding: 1.35rem 1.3rem 1.1rem; }
      .adv-anim { transition: opacity .26s ease, transform .26s ease, filter .26s ease; }
      .adv-anim.is-out { opacity: 0; transform: translateY(12px); filter: blur(3px); }
      .adv-anim.is-in-start { opacity: 0; transform: translateY(-8px); }
      .adv-kicker { font-family: "IBM Plex Mono", monospace; font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; color: #7be0b8; font-weight: 600; margin: 0 0 .5rem; }
      .adv-text { font-size: clamp(1.05rem, 2.6vw, 1.22rem); line-height: 1.6; margin: 0; max-width: 42rem; }
      .adv-text .eye-note { display: block; margin-top: .65rem; color: #c9b8ff; font-size: .94em; }
      .adv-ending-title { font-family: "Bricolage Grotesque", sans-serif; font-size: 1.5rem; font-weight: 800; margin: 0 0 .5rem; line-height: 1.15; }
      .adv-choices { display: grid; gap: .6rem; margin-top: 1.15rem; }
      .adv-choice {
        font: inherit; text-align: left; cursor: pointer;
        padding: .85rem 1rem; border-radius: 12px;
        border: 1px solid rgba(240,234,221,.28); background: rgba(255,255,255,.05);
        color: #f0eadd; font-weight: 600; font-size: .98rem; line-height: 1.4;
        transition: border-color .2s ease, background .2s ease, transform .2s ease;
        animation: advChoiceIn .45s ease both;
      }
      .adv-choice:nth-child(2) { animation-delay: .07s; }
      .adv-choice:nth-child(3) { animation-delay: .14s; }
      @keyframes advChoiceIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
      .adv-choice:hover, .adv-choice:focus-visible { border-color: #f4c96b; background: rgba(244,201,107,.09); outline: none; }
      .adv-choice small { display: block; font-weight: 400; color: rgba(240,234,221,.62); font-size: .86rem; margin-top: .15rem; }
      .adv-foot {
        display: flex; flex-wrap: wrap; align-items: center; gap: .55rem;
        padding: .85rem 1.1rem 1.05rem; border-top: 1px solid rgba(240,234,221,.14);
      }
      .adv-hint { font-size: .82rem; color: rgba(240,234,221,.55); margin-left: auto; }
      @media (max-width: 560px) { .adv-hint { margin-left: 0; } .adv-body { padding: 1.1rem 1rem .9rem; } }
      @media (prefers-reduced-motion: reduce) {
        .adv-anim { transition: none; }
        .adv-choice { animation: none; }
        .adv-eye { transition: none; }
      }

      /* ---------- Countdown ---------- */
      .countdown {
        margin: 1.3rem 0 0;
        font-family: "IBM Plex Mono", monospace;
        font-size: clamp(.95rem, 2.6vw, 1.15rem);
        letter-spacing: .04em;
        color: #f4c96b;
      }
      .countdown b { color: var(--hero-ink); font-weight: 600; }

      /* ---------- The Buzz & bingo ---------- */
      .sweep-line {
        display: inline-block;
        font-family: "IBM Plex Mono", monospace;
        font-size: .76rem; letter-spacing: .08em; text-transform: uppercase;
        color: var(--teal);
        border: 1px solid color-mix(in srgb, var(--teal) 45%, var(--line));
        background: var(--teal-soft);
        border-radius: 999px;
        padding: .32rem .75rem;
        margin-bottom: 1.2rem;
      }
      .bingo-card {
        border: 1px solid var(--line); border-radius: 18px;
        background: var(--surface); box-shadow: var(--shadow);
        padding: 1.2rem 1.2rem 1.05rem;
      }
      .bingo-title {
        text-align: center;
        font-family: "Bricolage Grotesque", sans-serif;
        font-weight: 800; font-size: 1.45rem; letter-spacing: .02em;
        margin: 0 0 .2rem;
      }
      .bingo-sub { text-align: center; color: var(--ink-soft); font-size: .9rem; margin: 0 0 1rem; }
      .bingo-grid {
        display: grid; grid-template-columns: repeat(5, 1fr); gap: .45rem;
      }
      .bingo-sq {
        font: inherit; font-size: .8rem; font-weight: 600; line-height: 1.25;
        aspect-ratio: 1 / 1;
        display: flex; align-items: center; justify-content: center; text-align: center;
        padding: .4rem;
        border: 1px solid var(--line); border-radius: 10px;
        background: var(--surface-2); color: var(--ink);
        cursor: pointer; position: relative;
      }
      .bingo-sq:hover { border-color: var(--violet); }
      .bingo-sq.free { background: var(--violet-soft); border-color: color-mix(in srgb, var(--violet) 40%, var(--line)); color: var(--violet); cursor: default; }
      .bingo-sq.stamped::after {
        content: "";
        position: absolute; inset: 12%;
        border-radius: 50%;
        background: color-mix(in srgb, var(--violet) 34%, transparent);
        border: 2px solid color-mix(in srgb, var(--violet) 65%, transparent);
        transform: rotate(-8deg);
        pointer-events: none;
      }
      .bingo-status {
        text-align: center; margin: .9rem 0 0; min-height: 1.4em;
        font-family: "Bricolage Grotesque", sans-serif; font-weight: 700; font-size: 1.02rem;
        color: var(--violet);
      }
      @media (max-width: 560px) {
        .bingo-sq { font-size: .58rem; line-height: 1.15; padding: .25rem; border-radius: 8px; }
        .bingo-grid { gap: .3rem; }
        .bingo-card { padding: .9rem .7rem .8rem; }
      }
      @media print {
        body * { visibility: hidden; }
        #bingoCard, #bingoCard * { visibility: visible; }
        #bingoCard {
          position: absolute; top: 0; left: 0; width: 100%;
          box-shadow: none; border: none;
          -webkit-print-color-adjust: exact; print-color-adjust: exact;
        }
      }

      /* ---------- All Things Shpongle ---------- */
      .lore-h {
        font-family: "Bricolage Grotesque", "Instrument Sans", sans-serif;
        font-size: 1.28rem; font-weight: 700;
        margin: 2rem 0 .85rem;
      }
      .lore-h .mono {
        font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
        color: var(--violet); font-weight: 600;
        display: block; margin-bottom: .2rem;
      }
      #merch, #openers { scroll-margin-top: 4.2rem; }
      .listen-row {
        display: flex; flex-wrap: wrap; gap: .45rem;
        margin-top: auto; padding-top: .4rem;
      }
      .listen-row a {
        font-size: .85rem; font-weight: 600; text-decoration: none;
        border: 1px solid var(--line); border-radius: 999px;
        padding: .36rem .8rem;
      }
      .listen-row a:hover { border-color: var(--violet); }

      /* ---------- The Art of Shpongle ---------- */
      #art { scroll-margin-top: 4.2rem; }
      .art-wide, .art-tile {
        border: 1px solid var(--line); border-radius: 16px; overflow: hidden;
        background: var(--surface); box-shadow: var(--shadow);
        display: flex; flex-direction: column;
      }
      .art-wide { margin-bottom: .9rem; }
      .art-wide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
      .art-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; margin-bottom: .9rem; }
      .art-pairs { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; margin-bottom: .9rem; }
      .art-tile img { width: 100%; object-fit: cover; display: block; }
      .art-grid .art-tile > a { display: block; }
      .art-tile img.sq { aspect-ratio: 1 / 1; }
      .art-tile img.tall { aspect-ratio: 3 / 4; }
      .art-tile img.meta { aspect-ratio: 3 / 5; }
      .art-tile img.wide { aspect-ratio: 16 / 10; }
      .art-cap { padding: .85rem 1rem .95rem; display: flex; flex-direction: column; gap: .3rem; }
      .art-cap h4 {
        margin: 0; font-family: "Bricolage Grotesque", sans-serif;
        font-size: 1.02rem; font-weight: 700; line-height: 1.2;
      }
      .art-cap p { margin: 0; color: var(--ink-soft); font-size: .9rem; }
      .art-credit {
        font-family: "IBM Plex Mono", monospace; font-size: .72rem;
        letter-spacing: .04em; color: var(--violet); font-weight: 600;
      }
      .art-note { color: var(--ink-soft); font-size: .85rem; margin: .2rem 0 0; }
      @media (max-width: 900px) {
        .art-grid { grid-template-columns: repeat(2, 1fr); }
      }
      @media (max-width: 560px) {
        .art-pairs { grid-template-columns: 1fr; }
      }

      /* ---------- Hero, Shpongled ---------- */
      .hero h1 {
        font-family: "Fascinate Inline", "Bricolage Grotesque", sans-serif;
        font-weight: 400;
        letter-spacing: .015em;
        text-shadow: 0 2px 0 rgba(91,62,200,.55), 0 0 34px rgba(167,139,250,.5), 0 4px 28px rgba(0,0,0,.5);
      }
      .hero .guide-name {
        font-family: "IBM Plex Mono", monospace;
        font-size: .95rem; letter-spacing: .22em; text-transform: uppercase;
        color: #f4c96b;
        margin: .8rem 0 0;
      }
      .hero-credit {
        position: absolute; right: 1.1rem; bottom: .75rem; z-index: 3;
        font-family: "IBM Plex Mono", monospace;
        font-size: .66rem; letter-spacing: .05em;
        color: rgba(245,239,226,.55);
        margin: 0; text-align: right;
      }
      @media (max-width: 560px) { .hero-credit { display: none; } }

      @media (prefers-reduced-motion: reduce) {
        .hero::before, .ticker-track { animation: none !important; }
      }

      @media (max-width: 900px) {
        .days { grid-template-columns: repeat(2, 1fr); }
        .grid, .photo-grid, .survival { grid-template-columns: repeat(2, 1fr); }
        .feature { grid-template-columns: 1fr; }
        .feature .photo { min-height: 200px; max-height: 260px; }
      }
      @media (max-width: 560px) {
        .days, .grid, .grid.two, .photo-grid, .notes, .survival, .kit-list { grid-template-columns: 1fr; }
        .hero { min-height: 54vh; }
        .hero-inner { padding-top: 4.5rem; }
        section { padding-top: 2.1rem; }
      }
      @media (prefers-reduced-motion: reduce) {
        html { scroll-behavior: auto; }
      }
    

:root{--bg:#f6f1e6;--surface:#fffcf4;--surface-2:#eae3d5;--ink:#211a36;--ink-soft:#61586d;--line:#d9cfbf;--violet:#543c99;--violet-soft:#e9e1f7;--amber:#896316;--amber-soft:#f4e8ca;--teal:#176453;--teal-soft:#ddede3;--rose:#9a3656;--rose-soft:#f5e0e5;--shadow:none;--night:#17132e;--lilac:#cbb4ff;--gold:#e8c879}
html{scroll-behavior:smooth;scroll-padding-top:100px}body{font-family:'Instrument Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.55;overflow-wrap:break-word}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{text-underline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #9674da;outline-offset:4px}button:disabled{cursor:default} [hidden]{display:none!important}h1,h2,h3,h4{font-family:'Bricolage Grotesque',system-ui,sans-serif}img{max-width:100%}button{color:inherit}.skip-link{position:fixed;left:16px;top:-100px;padding:12px;background:var(--gold);color:var(--night);z-index:100}.skip-link:focus{top:10px}.guide-ribbon{background:#e9e0d1;color:#504659;text-align:center;font-size:10px;letter-spacing:.12em;padding:7px 12px;font-family:'IBM Plex Mono',monospace}.masthead{height:92px;padding:0 max(30px,calc((100vw - 1200px)/2));display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:40}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:'Bricolage Grotesque',sans-serif;font-size:22px;line-height:1.15;font-weight:800;letter-spacing:.06em}.wordmark svg{width:46px;height:34px;filter:drop-shadow(0 3px 0 #b39a64)}.wordmark span span{display:block;font:9px 'IBM Plex Mono',monospace;letter-spacing:.18em;margin-top:5px}.top-links{display:flex;gap:28px;margin-left:auto;font-size:13px}.top-links a{color:var(--ink);text-decoration:none}.top-links a:hover{text-decoration:underline}.menu-button{border:1px solid var(--ink);border-radius:99px;padding:12px 18px;background:transparent;font-size:12px;display:flex;gap:22px;align-items:center}.menu-button:hover{background:var(--night);color:var(--bg)}main{width:min(1200px,calc(100% - 60px));margin:auto}.intro-grid{display:grid;grid-template-columns:1.13fr 1fr;align-items:center;gap:40px;padding:54px 0 46px}.eyebrow{font:11px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;margin:0 0 20px;color:var(--violet)}.intro-copy h1{font-weight:600;line-height:.98;letter-spacing:-.055em;margin:0}.intro-copy h1>span{font-size:clamp(35px,3.9vw,55px);display:block}.intro-copy h1 em{display:block;font-family:Georgia,serif;font-size:clamp(80px,8.6vw,124px);font-weight:400;letter-spacing:-.075em;color:var(--violet);margin:14px 0 20px;line-height:.9}.intro-deck{font-size:21px;line-height:1.4;margin:0 0 14px}.welcome{font:11px 'IBM Plex Mono',monospace;color:var(--ink-soft);margin:0}.poster-portal{position:relative;margin:0;padding:16px 22px 0;isolation:isolate;max-width:480px;justify-self:end}.poster-portal img{display:block;width:100%;aspect-ratio:1.15;object-fit:cover;border-radius:48% 48% 9px 9px;border:1px solid var(--night);box-shadow:8px 10px 0 #cebae8,10px 12px 0 var(--night);position:relative;z-index:1;object-position:center}.orbital{position:absolute;inset:-10px 0 30px;border:1px solid #ad996f;border-radius:50%;transform:rotate(-15deg);z-index:0}.o2{inset:0 -5px 45px;transform:rotate(25deg);border-color:#a394be}.poster-portal figcaption{font:9px 'IBM Plex Mono',monospace;letter-spacing:.1em;margin:23px 0 0;display:flex;justify-content:space-between;gap:10px}.poster-portal figcaption span{color:var(--ink-soft);letter-spacing:0}.essentials{background:var(--night);color:var(--bg);display:grid;grid-template-columns:1.1fr 1.15fr .8fr;padding:28px 32px;gap:30px;border:1px solid #463b66;border-radius:4px 4px 24px 4px;box-shadow:0 7px 0 #ded5c4;align-items:center}.essentials .eyebrow{color:var(--gold);font-size:10px;margin-bottom:11px}.essential-time h2{font-size:30px;letter-spacing:-.035em}.essential-time h2 span{font:16px 'Instrument Sans',sans-serif;letter-spacing:0;display:block;margin-top:10px}.essential-time h2 small{font-size:11px;color:#b8accd;margin-left:7px}.essential-time p:last-child{font-size:12px;color:#c8bfd6;margin:12px 0 0;line-height:1.6}.essential-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action{min-height:46px;border:1px solid #797087;color:#f6f1e6;text-decoration:none;border-radius:5px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:13px}.action.primary{grid-column:1/-1;background:var(--gold);border-color:var(--gold);color:var(--night)}.action:hover{background:var(--lilac);color:var(--night);border-color:var(--lilac)}.essential-actions p{grid-column:1/-1;font-size:10px;color:#c8bfd6;line-height:1.6;margin:1px 0 0}.essential-aside{text-align:center;border-left:1px solid #4f4565;padding-left:20px;font:11px 'IBM Plex Mono',monospace}.eye-mini{display:block;width:75px;margin:0 auto 10px;filter:drop-shadow(0 4px 10px #8060b7)}.essential-aside p{color:var(--lilac);font-size:12px;line-height:1.7;margin:0 0 3px}.essential-aside>span:last-child{color:#c8bfd6;font-size:9px}.intro-note{display:flex;gap:70px;align-items:center;border-bottom:1px solid var(--line);padding:32px 0}.intro-note p{font-size:14px;color:var(--ink-soft);max-width:810px;margin:0}.intro-note a{flex-shrink:0;color:var(--ink);font-size:12px;text-decoration:none}.intro-note a span{margin-left:20px;font-size:24px}.guide-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:35px 0 20px;scroll-margin-top:100px}.directory-group{min-width:0;border-top:2px solid var(--ink);padding:18px 0}.directory-group summary{display:flex;align-items:center;gap:12px;font:600 22px 'Bricolage Grotesque',sans-serif;cursor:pointer;list-style:none}.directory-group summary::-webkit-details-marker{display:none}.directory-group .index{font:10px 'IBM Plex Mono',monospace;color:var(--violet)}.plus{margin-left:auto;font-size:22px;font-weight:400}.directory-group[open] .plus{transform:rotate(45deg)}.directory-group>p{font-size:12px;color:var(--ink-soft);margin:10px 0 16px}.directory-links{display:grid;grid-template-columns:1fr}.directory-links a{display:flex;justify-content:space-between;gap:8px;align-items:center;min-height:37px;padding:6px 0;color:var(--ink);font-size:13px;text-decoration:none;border-bottom:1px solid var(--line)}.directory-links a:hover{color:var(--violet);padding-left:7px}.tools-row{padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:25px}.tools-row>div{flex:1}.filter-bar{margin:0;gap:6px}.filter-bar .lbl{display:block;width:100%;font-size:10px;margin:0 0 7px;color:var(--ink)}.fbtn{min-height:44px;font-size:12px;padding:9px 14px;border-radius:4px;background:transparent}.fbtn[aria-pressed=true]{background:var(--night);color:var(--bg);border-color:var(--night)}.filter-note{max-width:780px;font-size:12px;min-height:0;margin:10px 0 0}.text-button{border:0;background:none;padding:5px 0;color:var(--violet);font-size:12px;text-decoration:underline;text-underline-offset:4px;min-height:36px}.tools-row>.text-button{margin-top:24px;white-space:nowrap}.source-note{font-size:11px;color:var(--ink-soft);margin:8px 0 22px}.chapter{scroll-margin-top:110px;padding:36px 0 24px}.chapter .eyebrow{font-size:9px;margin-bottom:12px}.chapter h2{font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.04em;display:flex;align-items:center;gap:20px}.chapter h2 span{color:var(--violet);font-weight:400;font-size:36px}.chapter>p:last-child{font-size:13px;color:var(--ink-soft);margin:9px 0 0}.guide-section{padding:0;border-top:1px solid var(--line);scroll-margin-top:110px}.section-toggle{width:100%;background:none;border:0;display:flex;gap:24px;padding:23px 0;text-align:left;align-items:center;min-height:100px}.section-heading{display:grid;grid-template-columns:30px 1fr;column-gap:18px;align-items:baseline;flex:1}.section-heading .sec-num{font-size:10px;font-weight:400}.section-heading .section-title{font-size:22px;font-weight:600;line-height:1.2;letter-spacing:-.025em}.section-summary{grid-column:2;font-size:12px;color:var(--ink-soft);margin-top:8px}.toggle-symbol{font-size:25px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--violet);flex-shrink:0}.section-toggle:hover .toggle-symbol{background:var(--violet);color:white}.section-toggle[aria-expanded=true] .toggle-symbol{background:var(--night);color:var(--gold);transform:rotate(45deg);border-color:var(--night)}.section-toggle[aria-expanded=true] .section-title{color:var(--violet)}.section-content{padding:0 0 34px 48px}.sec-sub{font-size:15px;max-width:760px;margin:0 0 22px}.grid,.grid.two{gap:15px}.card,.day{border-radius:6px;background:var(--surface);box-shadow:none;border-color:var(--line);padding:22px}.card h3,.day h3{font-size:20px;line-height:1.15;font-weight:600;letter-spacing:-.025em}.card p{font-size:14px;line-height:1.65}.card .site,.card .dir{min-height:38px;align-items:center;font-size:12px}.card .meta{line-height:1.7;font-size:10px}.days{grid-template-columns:repeat(2,1fr);gap:16px}.day .dow{font-size:10px}.day h3{margin:10px 0 14px}.day ul{font-size:14px;line-height:1.65}.day li{margin-bottom:8px}.lore-h{scroll-margin-top:110px}.kit-item{min-height:70px}.bingo-card{box-shadow:none}.bingo-sq{min-height:90px;font-size:12px}.game-box,.asc-panel,.adv-panel{border-radius:10px}.adv-choice{min-height:60px}.section-content .sec-sub{color:var(--ink-soft)}.section-content a:hover{text-decoration:underline}.print-bingo{margin-top:16px;padding:10px 18px;background:var(--night);color:var(--bg);border:1px solid var(--night);border-radius:4px}.local-hint{font-size:11px;color:var(--ink-soft)}footer{background:var(--night);color:#c7bfd5;margin-top:70px;padding:50px max(30px,calc((100vw - 880px)/2)) 56px;text-align:center;border:0}footer .footer-line{font:italic 44px Georgia,serif;color:var(--gold);line-height:1.1;margin:20px 0}footer p{font-size:12px;line-height:1.7;max-width:800px;margin:20px auto}footer a{color:var(--lilac);font-size:12px}.footer-eye{width:70px;margin:auto}.mobile-dock{display:none}dialog{border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);padding:30px;width:min(640px,calc(100% - 32px));max-height:88dvh;box-shadow:0 25px 100px #100b2b80}dialog::backdrop{background:#15102bd9;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;gap:20px;justify-content:space-between;margin-bottom:20px}.dialog-head .eyebrow{font-size:9px;margin:0 0 8px}.dialog-head h2{font-size:32px;letter-spacing:-.04em}.close-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:none;font-size:25px;flex-shrink:0}.search-label{display:block;font-size:12px;margin-bottom:8px}#sectionSearch{width:100%;min-height:48px;border:1px solid #94879c;background:var(--surface);padding:12px;border-radius:5px}#searchStatus{font-size:11px;color:var(--ink-soft);margin:12px 0 22px}.menu-group h3{font-size:12px;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--violet);letter-spacing:.05em;padding-top:14px}.menu-group a{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14px;min-height:45px}.menu-group a:hover{color:var(--violet)}#sourceDialog p{font-size:14px;line-height:1.7}
@media(min-width:1400px){.intro-grid{padding-top:65px;padding-bottom:60px}.poster-portal{width:460px}}
@media(max-width:1050px){.top-links{display:none}.menu-button{margin-left:auto}.intro-grid{gap:24px}.essentials{grid-template-columns:1fr 1.1fr;gap:24px}.essential-aside{display:none}.intro-note{gap:30px}.guide-directory{gap:18px}.directory-group summary{font-size:19px}.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){html{scroll-padding-top:78px}.guide-ribbon{padding:5px 8px;font-size:8px;letter-spacing:.08em}.guide-ribbon span{letter-spacing:0}.masthead{height:68px;padding:0 20px;gap:15px}.wordmark{font-size:17px;gap:8px}.wordmark svg{width:35px;height:29px}.wordmark span span{font-size:7px}.menu-button{font-size:0;padding:9px 12px;border-radius:5px;min-height:42px}.menu-button span{font-size:18px}main{width:calc(100% - 40px)}.intro-grid{position:relative;display:grid;grid-template-columns:1fr 95px;gap:10px;align-items:start;padding:30px 0 27px}.intro-copy .eyebrow{font-size:8px;letter-spacing:.04em;margin-bottom:17px;white-space:nowrap}.intro-copy h1>span{font-size:29px;letter-spacing:-.045em;line-height:1.05}.intro-copy h1 em{font-size:67px;margin:10px 0 17px}.intro-deck{font-size:14px;line-height:1.5;margin-bottom:9px}.welcome{font-size:8px;line-height:1.4}.poster-portal{padding:0;margin:30px 0 0;width:95px}.poster-portal img{aspect-ratio:.7;border-radius:47% 47% 5px 5px;box-shadow:4px 5px 0 #cebae8,5px 6px 0 var(--night);object-fit:cover}.poster-portal figcaption{font-size:7px;line-height:1.5;letter-spacing:.02em;margin-top:16px}.poster-portal figcaption span,.portal-caption{display:none}.orbital{inset:-8px -5px 30px}.o2{inset:-3px -9px 35px}.essentials{display:grid;grid-template-columns:1fr;gap:18px;padding:20px;border-radius:4px 4px 18px 4px}.essential-time{position:relative}.essentials .eyebrow{font-size:9px;margin-bottom:9px}.essential-time h2{font-size:26px}.essential-time h2 span{font-size:14px;margin-top:8px}.essential-time h2 small{font-size:9px}.essential-time p:last-child{font-size:11px;margin-top:8px}.essential-time p br{display:none}.essential-time p br:after{content:' · '}.essential-actions{grid-template-columns:1fr 1fr;gap:8px}.action{min-height:44px;font-size:12px;padding:10px 12px}.essential-actions p{font-size:9px;line-height:1.6}.intro-note{display:block;padding:26px 0 22px}.intro-note p{font-size:13px;line-height:1.65}.intro-note a{display:inline-flex;margin-top:17px;align-items:center;font-size:12px}.guide-directory{grid-template-columns:1fr;gap:0;padding:25px 0 20px}.directory-group{padding:17px 0;border-top:1px solid var(--ink)}.directory-group summary{font-size:23px;min-height:35px}.directory-group>p{font-size:12px}.directory-links{grid-template-columns:1fr 1fr;column-gap:18px}.directory-links a{font-size:11px;min-height:45px;padding:9px 0}.tools-row{display:block;padding:22px 0 14px}.tools-row>.text-button{margin:12px 0 0;min-height:44px}.fbtn{font-size:11px;padding:8px 11px;min-height:44px}.filter-note{font-size:11px}.source-note{font-size:10px;margin-bottom:0}.source-note button{font-size:10px}.chapter{padding:28px 0 20px;scroll-margin-top:88px}.chapter h2{font-size:32px;gap:12px}.chapter h2 span{font-size:26px}.chapter .eyebrow{font-size:8px}.chapter>p:last-child{font-size:12px}.guide-section{scroll-margin-top:85px}.section-toggle{padding:20px 0;gap:10px;min-height:92px}.section-heading{grid-template-columns:20px 1fr;column-gap:8px}.section-heading .section-title{font-size:20px;line-height:1.12}.section-heading .sec-num{font-size:8px}.section-summary{font-size:11px;line-height:1.5;margin-top:7px}.toggle-symbol{width:30px;height:30px;font-size:22px}.section-content{padding:0 0 26px}.sec-sub{font-size:14px;line-height:1.65}.grid,.grid.two,.days{grid-template-columns:1fr;gap:12px}.card,.day{padding:20px}.card p,.day ul{font-size:14px}.card .meta{font-size:11px}.card .dir,.card .site{min-height:44px}.bingo-sq{font-size:10px;min-height:87px;padding:7px 3px;overflow-wrap:normal;hyphens:auto}.bingo-grid{gap:4px}.bingo-card{padding:14px 9px}.bingo-title{font-size:24px}.adv-top{font-size:10px}.adv-choice{padding:14px}.adv-text{font-size:14px}.lore-h{scroll-margin-top:80px}.kit-item{min-height:85px}.mobile-dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--night);border-top:1px solid #655780;z-index:45;padding:4px 8px max(5px,env(safe-area-inset-bottom));box-shadow:0 -3px 12px #1b143018}.mobile-dock a,.mobile-dock button{font:10px 'Instrument Sans',sans-serif;letter-spacing:.01em;color:var(--bg);text-decoration:none;border:0;background:none;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px;justify-content:center;min-height:52px}.mobile-dock span{font-size:20px;line-height:1.2;color:var(--gold)}footer{margin-top:40px;padding:40px 22px 100px}footer .footer-line{font-size:36px}footer p{font-size:11px}dialog{padding:22px;width:calc(100% - 20px);max-height:calc(100dvh - 24px);margin:auto}.dialog-head h2{font-size:30px}.menu-group a{min-height:48px}.local-hint{font-size:10px}}
html{scroll-padding-top:0}
@media(max-width:700px){html{scroll-padding-top:0}.orbital{transform:none}.essential-time p br{display:initial}}
@media(max-width:360px){main{width:calc(100% - 28px)}.masthead{padding:0 14px}.intro-grid{grid-template-columns:1fr 80px}.poster-portal{width:80px}.intro-copy h1>span{font-size:26px}.intro-copy h1 em{font-size:60px}.essentials{padding:17px}.directory-links{grid-template-columns:1fr}.bingo-sq{font-size:9px;min-height:87px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.orbital{transform:none}}
@media print{.masthead,.guide-ribbon,.intro-grid,.essentials,.intro-note,.guide-directory,.tools-row,.source-note,.chapter,.guide-section,footer,.mobile-dock,dialog{display:none!important}body,main{background:white;color:black;width:100%;margin:0}#bingo{display:block!important;border:0}.section-toggle{display:none!important}#body-bingo{display:block!important;padding:0}.bingo-card{break-inside:avoid;border:2px solid black}.bingo-sq{min-height:110px;color:black;background:white;border:1px solid black}.bingo-sq.stamped{background:#ddd!important;color:black}.print-bingo,.local-hint{display:none!important}}

.section-heading-container{margin:0}.section-title{font-family:"Bricolage Grotesque",sans-serif}
.section-summary{font-weight:400;line-height:1.5}
#advText{scroll-margin-top:115px} @media(max-width:700px){#advText{scroll-margin-top:90px}}
.bingo-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.bingo-sq{min-width:0;width:100%;aspect-ratio:auto;overflow-wrap:anywhere}
@media(max-width:1050px){.orbital{transform:none}}
.bingo-view{margin:0 0 15px;padding:10px 14px;border:1px solid var(--line);border-radius:4px;background:var(--surface);font-size:12px;min-height:44px}.bingo-grid.readable-list{grid-template-columns:1fr}.bingo-grid.readable-list .bingo-sq{min-height:48px;font-size:14px;text-align:left;justify-content:flex-start;padding:12px 16px}.bingo-grid.readable-list .bingo-sq.stamped::after{inset:7px 9px 7px auto;width:30px;border-radius:50%}
@media print{.bingo-view{display:none!important}.bingo-grid.readable-list{grid-template-columns:repeat(5,minmax(0,1fr))}.bingo-grid.readable-list .bingo-sq{min-height:110px;font-size:12px;text-align:center;justify-content:center}}


:root{--night:#171026;--violet:#663b9b;--gold:#eac37c;--lilac:#ceb0fa}
.guide-ribbon{background:#352249;color:#e5d5ed;border-bottom:1px solid #705084}
.masthead{height:78px;background:#171026;color:#f6eddb;border-color:#56415f}
.wordmark,.top-links a{color:#f6eddb}.menu-button{border-color:#9c809f;color:#f6eddb}
.menu-button:hover{background:#ead7ac;color:#21152d}.wordmark svg{filter:none}
main{width:auto}
main>*{width:min(1200px,calc(100% - 60px));margin-inline:auto}
.intro-grid{width:auto;position:relative;isolation:isolate;overflow:hidden;display:block;min-height:510px;padding:58px max(30px,calc((100% - 1200px)/2)) 52px;background:#1b142c;color:#fff1d7}
.intro-copy{position:relative;z-index:2;max-width:660px}
.intro-copy .eyebrow{color:#f1ca85;font-size:11px;margin-bottom:27px;letter-spacing:.14em}
.intro-copy h1{letter-spacing:0;text-shadow:0 2px 20px #130d29}
.intro-copy h1>span{font-family:'Fascinate Inline',serif;font-weight:400;font-size:clamp(44px,4.5vw,66px);line-height:1.08;letter-spacing:.015em}
.intro-copy h1 em{font-family:'Fascinate Inline',serif;font-style:normal;font-size:clamp(80px,8.5vw,122px);font-weight:400;letter-spacing:.01em;color:#f1c878;line-height:1;margin:12px 0 23px;text-shadow:3px 4px 0 #62366c,0 0 28px #170c2a}
.intro-deck{font-size:19px;line-height:1.5;color:#fff0dc;margin-bottom:13px}.welcome{color:#d9c7e2}
.poster-portal{position:absolute;inset:0;max-width:none;width:auto;justify-self:stretch;padding:0;margin:0;z-index:0}
.poster-portal img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 44%;border:0;border-radius:0;box-shadow:none;z-index:0}
.poster-portal::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#181027f5 0%,#1c122be6 25%,#20132a94 45%,#17102312 70%),linear-gradient(0deg,#171026 0%,#17102600 28%);pointer-events:none;z-index:1}
.poster-portal figcaption{position:absolute;bottom:21px;right:max(30px,calc((100% - 1200px)/2));left:auto;z-index:2;color:#f1dec4;font-size:9px;margin:0;letter-spacing:.08em;gap:16px}
.poster-portal figcaption span{color:#d5bedb}.orbital,.portal-caption{display:none}
.essentials{width:auto;max-width:none;background:#171026;border:0;border-top:1px solid #5c3b6d;border-bottom:4px solid #8e5c92;border-radius:0;box-shadow:none;padding:25px max(30px,calc((100% - 1200px)/2)) 29px;gap:32px}
.essentials .eyebrow{color:#efc57b}.essential-time h2{color:#fff0dc}.essential-time p:last-child,.essential-actions p{color:#d4c2df}
.action{border-radius:2px;border-color:#9a79a5}.action.primary{background:#edca87;border-color:#edca87}.essential-aside{border-color:#604567}.eye-mini{filter:none}
.intro-note{padding-block:32px}.intro-note a{color:#653679}
.guide-directory{width:auto;padding:28px max(30px,calc((100% - 1200px)/2));background:#352143;color:#f8edda;gap:38px;border-bottom:3px solid #b47a8b}
.directory-group{border-color:#b18aaf;padding:14px 0}.directory-group summary{font-family:'Fascinate Inline',serif;font-size:24px;font-weight:400;line-height:1.2}
.directory-group .index{color:#eac37c}.directory-group>p{color:#ddc9df}.directory-links a{color:#f8edda;border-color:#6b496e}.directory-links a:hover{color:#f3cd8b}
.tools-row{margin-top:20px}.source-note{margin-bottom:26px}
.chapter{width:auto;padding:32px max(30px,calc((100% - 1200px)/2));background:#26172f;color:#faedda;margin-top:22px;margin-bottom:4px;border-block:1px solid #71516f}
.chapter .eyebrow{color:#dfb976}.chapter h2{font-family:'Fascinate Inline',serif;font-size:clamp(30px,3.6vw,48px);letter-spacing:.015em;font-weight:400;line-height:1.15}
.chapter h2 span{color:#d79ac4}.chapter>p:last-child{color:#d4bbd7;font-size:13px}
.chapter{position:relative;isolation:isolate;overflow:hidden;min-height:178px;display:flex;flex-direction:column;justify-content:center}
.chapter::before{content:'';position:absolute;inset:0 0 0 auto;width:min(540px,65%);z-index:-1;background-repeat:no-repeat;background-position:center 42%;background-size:cover;mask-image:linear-gradient(90deg,transparent,#000 38%);opacity:.85}
#plan::before{background-image:url('assets/art-denver-poster.jpg')}
#explore{background:#112633;border-color:#416e80}#explore::before{background-image:url('assets/art-tales.jpg');background-position:center 45%}
#play{background:#1b2317;border-color:#7e8143}#play::before{background-image:url('assets/art-nothing-lasts.jpg');background-position:center 42%}
.chapter .eyebrow,.chapter h2,.chapter>p:last-child{position:relative;max-width:740px}.chapter h2{text-shadow:0 2px 12px #170d26}.chapter h2 span{display:none}
#play~.guide-section .section-title{font-family:'Fascinate Inline',serif;letter-spacing:.01em;font-size:26px;font-weight:400}
#play~.guide-section{width:auto;padding-inline:max(30px,calc((100% - 1200px)/2));background:#171026;color:#f6eddd;--ink:#f6eddd;--ink-soft:#cfc0db;--violet:#cbb0fa;--line:#584366;--surface:#241834;--surface-2:#32213f;--amber:#e6bd7d;--teal:#70cfb5;--rose:#e898b3;--violet-soft:#2b2150;--amber-soft:#3d2c10;--teal-soft:#123730;--rose-soft:#3d1a29}
#play~.guide-section{border-color:#584366}#play~.guide-section .section-toggle[aria-expanded=true] .section-title{color:#e7b3dc}#play~.guide-section .toggle-symbol{color:#d7b4ea}#play~.guide-section .card{border-color:#584366}#play~.guide-section .card h3{color:#f6eddd}#play~.guide-section .bingo-view{color:#f6eddd}#play~.guide-section .print-bingo{background:#eac37c;color:#171026;border-color:#eac37c}
.guide-section{border-color:#cebeaf}.section-toggle{min-height:103px}.toggle-symbol{border:0;border-radius:0;width:32px;color:#744773}.section-toggle:hover .toggle-symbol,.section-toggle[aria-expanded=true] .toggle-symbol{background:transparent;color:#8b4379}
.section-toggle[aria-expanded=true] .section-title{color:#71345f}
.card,.day{border-radius:0;box-shadow:none;background:transparent;border-width:0 0 1px;padding:20px 0;border-color:#cbbcac}
.grid,.grid.two,.days{column-gap:30px;row-gap:18px}.card h3,.day h3{color:#492640}
footer{background:#171026;border-top:5px solid #8e5c92;margin-top:0}footer .footer-line{font-family:'Fascinate Inline',serif;font-style:normal;font-size:42px;color:#edca87}
@media(max-width:1050px){.intro-grid{min-height:485px}.intro-copy{max-width:570px}.poster-portal img{object-position:58% center}.guide-directory{gap:22px}.directory-group summary{font-size:20px}}
@media(max-width:700px){
 .masthead{height:64px}.guide-ribbon{font-size:8px}
 main>*{width:calc(100% - 40px)}
 .intro-grid{width:auto;min-height:365px;padding:29px 20px 43px}
 .intro-copy{max-width:310px}.intro-copy .eyebrow{font-size:8px;white-space:normal;letter-spacing:.06em;margin-bottom:25px}
 .intro-copy h1>span{font-size:34px;line-height:1.12;letter-spacing:.008em}.intro-copy h1 em{font-size:65px;line-height:1;margin:12px 0 19px;letter-spacing:0}
 .intro-deck{font-size:14px;line-height:1.5;margin-bottom:10px}.welcome{font-size:8px}
 .poster-portal{inset:0;margin:0;width:auto;max-width:none}.poster-portal img{aspect-ratio:auto;object-position:58% center;border-radius:0;box-shadow:none}
 .poster-portal::after{background:linear-gradient(90deg,#171026e0 0%,#171026bb 45%,#17102635 100%),linear-gradient(0deg,#171026 0%,#17102600 45%)}
 .poster-portal figcaption{left:20px;right:20px;bottom:14px;display:flex;justify-content:space-between;font-size:7px;margin:0;line-height:1.5}.poster-portal figcaption span{display:inline}
 .essentials{width:auto;padding:21px 20px 24px;gap:17px;border-radius:0}.essential-time h2{font-size:26px}.essential-actions{gap:8px}.action{min-height:44px}
 .intro-note{padding-block:25px}.guide-directory{width:auto;padding:17px 20px 22px;gap:0}.directory-group{padding:16px 0}.directory-group summary{font-size:24px}.directory-links a{font-size:12px;min-height:45px}
 .tools-row{margin-top:3px}.chapter{width:auto;padding:26px 20px;margin-top:18px;margin-bottom:0}.chapter h2{font-size:30px;line-height:1.2}.chapter>p:last-child{font-size:12px}
 .chapter{min-height:160px}.chapter::before{opacity:.4;mask-image:linear-gradient(90deg,transparent,#000 55%)}#play~.guide-section .section-title{font-size:22px}
 #play~.guide-section{padding-inline:20px}footer{margin-top:0}
 .section-toggle{min-height:94px}.grid,.grid.two,.days{row-gap:8px}.card,.day{padding:18px 0}.section-content{padding-bottom:24px}
 .mobile-dock{background:#21122f;border-color:#96709e;box-shadow:none}.mobile-dock span{color:#edca87}
 footer .footer-line{font-size:32px;line-height:1.3}
}
@media(max-width:360px){main>*{width:calc(100% - 28px)}.intro-grid,.essentials,.guide-directory,.chapter{width:auto;padding-inline:14px}.intro-copy h1>span{font-size:31px}.intro-copy h1 em{font-size:59px}.poster-portal figcaption{left:14px;right:14px}.directory-links{grid-template-columns:1fr 1fr}.directory-links a{font-size:10px}#play~.guide-section{padding-inline:14px}}
@media print{main>*{width:100%}.card,.day{color:black}#play~#bingo{width:100%;padding:0;background:white;color:black;--ink:#000;--ink-soft:#333;--surface:#fff;--surface-2:#fff;--violet:#000}.bingo-title,.bingo-kicker,.bingo-head span{color:black!important}}

/* Revision 3: actual phone-reference placement, readable details and visible time. */
html{scroll-behavior:auto;scroll-padding-bottom:90px}
:root{--amber:#805910}
.ticket-cta{background:#663b9b;color:#fff6e5;min-height:44px}
.ticket-cta:hover{background:#4e2a7b;color:#fff6e5}
.menu-button{min-height:48px;gap:10px;border-color:#d5ad75;border-radius:26px;padding:9px 15px;color:#f2d498;font-size:13px}
.menu-button svg{width:34px;height:25px;flex:none}
.menu-button span{font:inherit}
.menu-button:focus-visible{outline-color:#f2d498}
.essential-aside{display:block;align-self:center}
.essential-aside .eye-mini{display:none}
#countdownTarget{font-size:12px;color:#eed7a5;margin:0 0 5px;line-height:1.5}
#doorsCountdown{font:600 20px/1.4 'IBM Plex Mono',monospace;color:#fff1d8;margin:0;letter-spacing:.02em;font-variant-numeric:tabular-nums}
#countdownNote{display:block;font-size:12px;line-height:1.5;color:#d9c7e2;margin-top:5px}
.verification-note{padding:13px 16px;border-left:3px solid #917044;background:#ede5d6;font-size:14px;line-height:1.6;margin:15px 0}
.verification-note a{color:#543171}
.ending-collection{margin:14px 0 0;padding:14px 0;border-top:1px solid #685273;color:#eed7a5;font-size:13px;line-height:1.6}
.ending-collection summary{min-height:44px;cursor:pointer;display:list-item}
.ending-collection ul{padding-left:22px;color:#e8ddec}
.reading-note{font-size:12px;color:var(--ink-soft)}
.card .site,.card .dir,.sources a,.lore-links a,.merch-links a{min-height:44px;display:inline-flex;align-items:center;padding-block:8px}
.gbtn,.print-bingo,.text-button{min-height:44px}
.eyebrow,.tag,.badge,.filter-note,.source-note,.source-note button,.card .meta,.hours,.local-hint,.bingo-kicker,.bingo-note,.adv-top,.adv-kicker,.adv-footer,.asc-foot,.asc-stats,.score-note,.score-head,.hud-label{font-size:12px;line-height:1.5}
.card p,.day ul,.sec-sub,.adv-text{line-height:1.65}
.adv-text{font-size:16px}.adv-choice small{font-size:13px;line-height:1.5}
.source-note button{padding-inline:0}footer p{font-size:13px;line-height:1.65}
.bingo-sq{font-size:12px;line-height:1.35}
.section-summary{font-size:13px;line-height:1.5}.section-heading .sec-num{font-size:11px}
.dow,.filter-bar .lbl,.close-time small,.art-credit,.lore-h .mono,.oracle-kicker,.asc-kicker,.adv-scene-chip{font-size:12px;line-height:1.5}
@media(max-width:1050px){
 .essential-aside{display:block;grid-column:1/-1;border:0;border-top:1px solid #604567;padding:14px 0 0}
}
@media(max-width:700px){
 .masthead{gap:9px}.wordmark{font-size:16px}.wordmark span span{font-size:8px;letter-spacing:.1em}
 .menu-button{font-size:12px;min-width:92px;padding:8px 11px;gap:7px}.menu-button span{font-size:12px}.menu-button svg{width:29px}
 .guide-ribbon{font-size:10px;line-height:1.5;letter-spacing:.03em}
 .intro-grid{min-height:365px}.poster-portal img{transform:translateX(22%);object-position:58% center}
 .poster-portal::after{background:linear-gradient(90deg,#171026ec 0%,#171026a8 45%,#1710261a 100%),linear-gradient(0deg,#171026 0%,#17102600 45%)}
 .intro-copy .eyebrow{font-size:12px;line-height:1.5;margin-bottom:20px;letter-spacing:.025em}
 .welcome{font-size:12px;line-height:1.5}.intro-deck{font-size:15px}
 .poster-portal figcaption{font-size:10px;gap:8px}.poster-portal figcaption span{font-size:10px}
 .essentials{gap:17px 12px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}.essential-time{order:1}.essential-aside{order:2;grid-column:auto;padding:0 0 0 12px;border:0;border-left:1px solid #604567}.essential-actions{order:3;grid-column:1/-1}
 .essentials .eyebrow,.essential-time h2 small,.essential-time p:last-child,.essential-actions p{font-size:12px;line-height:1.5}
 #doorsCountdown{font-size:17px}#countdownTarget,#countdownNote{font-size:12px}
 .action{font-size:13px}.directory-links a{font-size:13px;min-height:48px}.directory-group summary{min-height:44px}
 .chapter .eyebrow,.chapter>p:last-child{font-size:12px}.filter-note,.fbtn,.source-note,.source-note button{font-size:12px}
 .section-summary{font-size:13px}.section-heading .sec-num{font-size:11px}.card .meta{font-size:12px}
 .mobile-dock a,.mobile-dock button{font-size:12px;min-height:55px}
 .bingo-card{padding-inline:7px}.bingo-sq{font-size:12px;padding:7px 3px;min-height:98px}
 .bingo-view{font-size:14px}.bingo-grid.readable-list .bingo-sq{font-size:15px}
 .adv-top{gap:8px;flex-wrap:wrap}.adv-choice{font-size:15px}.adv-text{font-size:16px}
 #searchStatus,.search-label,.dialog-head .eyebrow,.menu-group h3{font-size:12px}
}
@media(max-width:360px){.wordmark svg{display:none}.wordmark{font-size:16px}.menu-button{min-width:88px}.directory-links a{font-size:12px}.bingo-sq{font-size:11px}}
@media(prefers-reduced-motion:reduce){.poster-portal img{transition:none}.adv-stage *, .asc-panel *{animation:none!important;transition:none!important}}
@media print{.ending-collection{display:none}}

/* Clear routes and readable practical controls; keep the display face for chapters. */
.directory-group summary,.guide-section .section-title{font-family:'Bricolage Grotesque',Arial,sans-serif!important;letter-spacing:-.025em}
.quick-routes-note{font:12px/1.5 'Space Mono',monospace;color:#635977;margin:0 0 14px}
.current-section{font:12px/1.3 'Space Mono',monospace;color:#c5b8dc;max-width:140px}
.top-links a[aria-current],a[data-destination][aria-current]{color:#452a70;background:#e9ddf4;border-radius:4px;box-shadow:inset 3px 0 #785099}
.top-links a[aria-current]{box-shadow:inset 0 -2px #785099}
.lore-h[id],#advText{scroll-margin-top:calc(var(--guide-header,80px) + 28px)}
.guide-credit{font-size:12px!important;max-width:630px;margin:0 auto 26px!important}
@media(max-width:950px){.current-section{display:none}}
@media(max-width:700px){.quick-routes-note{font-size:11px}.directory-group summary{font-size:23px!important}}
.poster-portal figcaption a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* Practical caveats need to be legible where the decision is made. */
@media(max-width:700px){.card .meta,.close-time small,.late-hrs,.art-credit,.local-hint,.quick-routes-note{font-size:14px;line-height:1.55}.close-time small{white-space:normal}.art-credit{display:block}.verification-note a{overflow-wrap:anywhere}}

/* Artist shortcuts are part of the existing lore section. */
.music-artist-links{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.music-listening{margin:32px 0;padding:0 0 22px;border-bottom:1px solid var(--line,#d7cfdd)}#music:focus{outline:3px solid #7554ae;outline-offset:6px;border-radius:3px}@media(max-width:700px){.music-artist-links .action{width:100%;justify-content:space-between}.music-listening .lore-h{font-size:25px}}@media(max-width:700px){}
/* Allow enlarged text to reflow inside grid and flex children. */
.feature>*,.kit-item,.kit-txt{min-width:0}
.feature .body,.kit-txt{overflow-wrap:anywhere}
@media(max-width:700px){.feature{grid-template-columns:minmax(0,1fr)}.feature .body{padding:24px 20px}.kit-list{grid-template-columns:minmax(0,1fr)}}
.night-choice{display:flex;gap:8px;grid-column:1/-1;max-width:430px;width:100%}
.night-choice button{flex:1;min-width:0;min-height:46px;padding:10px 14px;border:1px solid #897396;border-radius:5px;background:transparent;color:#f6eddd;font-size:14px;font-weight:600;text-align:left}
.night-choice button span{font-weight:400;margin-left:6px}
.night-choice button[aria-pressed=true]{background:#ead092;color:#1a1029;border-color:#ead092}
.essential-actions p a{color:inherit;text-underline-offset:3px}
@media(max-width:360px){.night-choice button{padding:10px;font-size:13px}.night-choice button span{margin-left:3px}}
@media(max-width:400px){.essentials{grid-template-columns:minmax(0,1fr)}.essential-actions{order:2}.essential-aside{order:3;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:space-between;text-align:left;border:0;border-top:1px solid #604567;padding:12px 0 0}.essential-aside #countdownTarget{font-size:11px}.essential-aside #doorsCountdown{font-size:15px}.essential-aside #countdownNote{width:100%;font-size:11px}}
/* The phone hero gives the existing tour artwork its own unobscured portal. */
@media(max-width:700px){
 .intro-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:12px;align-items:center;min-height:0;padding:22px 20px;background:#171026}
 .intro-copy{min-width:0;max-width:none}.intro-copy .eyebrow{font-size:10px;line-height:1.5;letter-spacing:0;margin:0 0 13px}
 .intro-copy h1>span{font-size:clamp(20px,5.7vw,32px);line-height:1.16;letter-spacing:0}.intro-copy h1 em{font-size:clamp(40px,11.4vw,64px);line-height:1;margin:12px 0 16px;letter-spacing:0}
 .intro-deck{font-size:13px;line-height:1.5;margin:0 0 10px}.welcome{font-size:11px;line-height:1.5}
 .poster-portal{position:relative;inset:auto;width:100%;min-width:0;max-width:none;margin:0;padding:0;align-self:center}
 .poster-portal img{position:relative;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center;transform:none;border:1px solid #b08a56;border-radius:48% 48% 10px 10px;box-shadow:0 5px 0 #352249}
 .poster-portal::after{display:none}.poster-portal figcaption{position:static;display:block;margin:12px 0 0;font-size:9px;line-height:1.5;letter-spacing:0;text-align:center}.poster-portal figcaption span{display:block;font-size:9px;margin-top:4px}
}
@media(max-width:360px){.intro-grid{padding-inline:14px;gap:10px}.intro-copy h1>span{font-size:17px}.intro-copy h1 em{font-size:34px}}
.source-details{margin:18px 0;border-top:1px solid var(--line,#cebeaf);border-bottom:1px solid var(--line,#cebeaf)}
.source-details summary{cursor:pointer;padding:14px 0;min-height:48px;font-size:14px;line-height:1.5;color:var(--violet,#663b9b)}
.source-details .verification-note{margin:0 0 12px}

/* The original artwork is a complete landscape image, never a cropped mask. */
.intro-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:38px;min-height:0;overflow:visible}
.intro-copy{min-width:0;max-width:none}
.intro-copy h1>span{font-size:clamp(34px,3.6vw,52px)}
.intro-copy h1 em{font-size:clamp(66px,6.7vw,96px)}
.poster-portal{position:relative;inset:auto;width:100%;min-width:0;max-width:none;margin:0;padding:6px;border:1px solid #b08a56;border-radius:10px;overflow:visible;background:#282341;align-self:center}
.poster-portal img{display:block;position:static;inset:auto;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;border:0;border-radius:0;box-shadow:none;clip-path:none;mask-image:none}
.poster-portal::after,.poster-portal::before{display:none}
.poster-portal figcaption{position:static;inset:auto;display:block;margin:10px 6px 5px;font-size:10px;line-height:1.5;letter-spacing:.02em;text-align:center}
.poster-portal figcaption span{display:block;margin-top:3px;font-size:10px}
@media(max-width:700px){
 .intro-grid{grid-template-columns:minmax(0,1fr);gap:16px;padding:20px}
 .intro-copy{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:12px}
 .intro-copy .eyebrow{grid-column:1/-1;margin:0 0 12px}
 .intro-copy h1{grid-column:1;grid-row:2/4}
 .intro-copy h1>span{font-size:clamp(18px,5.6vw,24px)}
 .intro-copy h1 em{font-size:clamp(34px,10.3vw,44px);margin:9px 0 0}
 .intro-deck{grid-column:2;grid-row:2;align-self:end;font-size:13px;line-height:1.5;margin:0 0 8px}
 .welcome{grid-column:2;grid-row:3;align-self:start;font-size:11px;line-height:1.5;margin:0}
 .poster-portal figcaption,.poster-portal figcaption span{font-size:10px}
}
@media(max-width:360px){.intro-grid{padding-inline:14px}}


.food-finder{margin:0 0 24px;border:1px solid #8b62aa;border-radius:8px;background:#eee6f2;overflow:visible}
.food-finder>summary{cursor:pointer;min-height:64px;padding:18px 20px;color:#372047;font-weight:700;font-size:19px;line-height:1.4}
.food-finder>summary small{display:block;margin:4px 0 0 20px;font-size:13px;font-weight:400}
.finder-body{padding:0 20px 20px}.finder-body>p{max-width:70ch}
.finder-controls{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin:20px 0 12px}
.finder-controls label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:14px;font-weight:600}
.finder-controls input,.finder-controls select{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #786183;border-radius:4px;background:#fffbf4;color:#211a36;font:inherit;font-size:16px}
.finder-status{display:flex;align-items:center;justify-content:space-between;gap:12px}.finder-status p{margin:0;font-size:14px}.finder-status button{min-height:44px;text-align:right}
.food-finder ul{list-style:none;margin:8px 0 16px;padding:0}
.food-finder li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border-top:1px solid #c7b7cd;padding:14px 0}
.food-finder li[hidden]{display:none}.food-finder li>div{min-width:0}.food-name{font-size:17px;font-weight:650;line-height:1.45;color:#3f225c}.food-finder li p{font-size:14px;line-height:1.55;margin:4px 0 0;color:#493851}
.food-route{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px;color:#48285e;font-size:14px;white-space:nowrap}.food-route span{margin-left:6px}
.finder-note{font-size:13px;line-height:1.6;color:#514159}.card[id^="food-"]:focus{outline:3px solid #8e50b2;outline-offset:5px}
@media(max-width:700px){.finder-controls{grid-template-columns:minmax(0,1fr)}.finder-body{padding:0 14px 16px}.food-finder>summary{padding:16px 14px}.food-finder li{gap:10px}.food-name{font-size:16px}.finder-status{align-items:flex-start}.finder-status p{padding-top:10px}}

.day-plan{margin:0 0 26px;padding:24px;border:1px solid #b79a63;border-radius:8px;background:#f1e8d6;color:#30223c}
.day-plan>.eyebrow{color:#6b407b;margin:0 0 9px}.day-plan>h3{font-family:'Bricolage Grotesque',serif;font-size:1.75rem;line-height:1.2;margin:0 0 12px}.day-plan>p{max-width:72ch;font-size:1rem}
.day-plan ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;list-style:none;margin:20px 0;padding:0}
.day-plan li{min-width:0;padding:18px 0;border-top:1px solid #cbb998}.day-constraint{display:block;font-size:.75rem;letter-spacing:.025em;color:#694274;font-weight:650}.day-plan h4{font-size:1.3125rem;line-height:1.3;margin:7px 0}.day-plan li p{font-size:.9375rem;line-height:1.6;margin:0 0 9px}.day-actions{display:flex;flex-wrap:wrap;gap:0 18px}.day-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;line-height:1.5;color:#5a3373;max-width:100%;overflow-wrap:anywhere}.day-plan .verification-note{font-size:.8125rem;line-height:1.6;margin-bottom:0}#day-rino:focus{outline:3px solid #8e50b2;outline-offset:5px}
@media(max-width:700px){.day-plan{padding:18px 14px}.day-plan>h3{font-size:1.5625rem}.day-plan ul{grid-template-columns:minmax(0,1fr);margin-top:12px}.day-plan li{padding:16px 0}}

/* A useful close to the field guide, with sources one action away. */
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 20px;max-width:780px;margin:14px auto 18px}
.footer-links a,.footer-links button{display:inline-flex;align-items:center;min-height:44px;padding:4px 3px;color:#edca87;font:.875rem/1.5 'Instrument Sans',Arial,sans-serif;background:none;border:0;text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-width:0;overflow-wrap:anywhere}
footer .footer-line{font-size:2.625rem}
.footer-invitation{max-width:560px;margin:0 auto;padding:16px 0 0;border-top:1px solid #543e65}
.footer-invitation p{font-size:.9375rem;line-height:1.6;color:#cfc2dd;margin:0 0 4px}
.footer-contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 14px}
.footer-contact-links .creator-credit{margin:0}
.footer-email,.creator-credit a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:4px 2px;font-size:.875rem;line-height:1.5;overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}
.creator-credit{min-width:0}
.footer-back{display:inline-flex;align-items:center;min-height:44px;margin:4px auto 8px;font-size:.8125rem}
footer .footer-disclaimer{max-width:650px;margin:0 auto;color:#bfb3cb}
footer .footer-disclaimer p{font-size:.8125rem;line-height:1.65;margin:4px auto}
.springs-maintenance{padding:18px;border:1px solid #bca984;margin-top:20px;background:#f3ead9}
.springs-maintenance h4{font-size:18px;line-height:1.4;margin:0 0 8px}.springs-maintenance p{margin:8px 0}.springs-maintenance .local-hint{font-size:13px;line-height:1.6}
/* Complete artwork and readable provenance; all original assets remain. */
.art-tile{min-width:0;overflow:visible}.art-tile img{border-radius:0}
.art-tile img.sq,.art-tile img.tall,.art-tile img.meta,.art-tile img.wide,.art-wide img{height:auto;aspect-ratio:auto;object-fit:contain}
.art-cap .art-credit{font-size:.875rem;line-height:1.55;letter-spacing:.02em}
.art-cap .edition-note{margin-top:.5rem}.edition-note a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;overflow-wrap:anywhere}
.image-context{font-size:.875rem;line-height:1.55;color:var(--ink-soft);margin:.5rem 0 .75rem}.event-photo-note{padding:0}
#art-sources summary,#buzz-sources summary{font-size:.875rem}
#art-sources .verification-note,#buzz-sources .verification-note{font-size:.875rem;line-height:1.6;background:#241a35;color:#f1e9dc;border-left-color:#e5c675}
#art-sources .verification-note a,#buzz-sources .verification-note a{color:#d1bbff}
#sourceDialog h3{font-size:1.125rem;margin:1.25rem 0 .4rem}#sourceDialog p{overflow-wrap:anywhere}
/* Original flowing word lettering; navigation and body typography stay readable. */
.masthead{height:auto;min-height:92px;gap:24px;padding-top:12px;padding-bottom:12px}
.masthead .wordmark{gap:12px;flex:0 1 312px;min-width:0}
.masthead .wordmark>svg{display:block;width:46px;height:34px;flex:0 0 46px;filter:none}
.masthead .brand-type{display:block;min-width:0;flex:1}
.masthead .wordmark .brand-lettering{display:block;width:100%;height:auto;max-height:none;filter:none}
.masthead .wordmark .brand-subtitle{font:500 .5625rem/1.4 'IBM Plex Mono',monospace;letter-spacing:.15em;margin-top:3px;color:#eee2ce}
.masthead .menu-button{flex-shrink:0;min-height:48px;font-size:.75rem;gap:8px}
@media(max-width:1000px){.masthead .current-section{display:none}}
@media(max-width:700px){.masthead{min-height:76px;gap:12px;padding:10px 20px}.masthead .wordmark{flex:1 1 auto;gap:9px}.masthead .wordmark>svg{width:32px;height:29px;flex-basis:32px}.masthead .wordmark .brand-subtitle{letter-spacing:.08em}.masthead .menu-button{padding:10px 12px}.masthead .menu-button span{font-size:inherit}}
@media(max-width:360px){.masthead{padding-left:14px;padding-right:14px}.masthead .wordmark{gap:7px}.masthead .wordmark>svg{width:29px;flex-basis:29px}.masthead .menu-button{padding:10px;gap:6px}}
@media(max-width:560px){.art-grid{grid-template-columns:minmax(0,1fr)}}
.masthead .wordmark>svg.header-eye-stack{width:34px;height:72px;flex-basis:34px}
@media(max-width:700px){.masthead .wordmark>svg.header-eye-stack{width:29px;height:61px;flex-basis:29px}}
@media(max-width:360px){.masthead .wordmark>svg.header-eye-stack{width:27px;height:57px;flex-basis:27px}}
@media(max-width:700px){.footer-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:0 12px;text-align:left;max-width:460px}.footer-links a,.footer-links button{justify-content:flex-start;text-align:left}footer .footer-line{font-size:2rem;overflow-wrap:normal}.footer-invitation{max-width:460px}}

img{height:auto}
picture{display:block}.feature .photo picture{width:100%;height:100%}
.poster-portal img,.art-tile img,.art-wide img{aspect-ratio:var(--image-ratio,auto)!important}
.bingo-view[aria-pressed=true]{background:#d2baff;color:#21152d;border-color:#d2baff}
.bingo-sq.free:disabled{opacity:1;cursor:default}
.bingo-sq{font-size:.75rem}.bingo-view{font-size:.75rem}.bingo-grid.readable-list .bingo-sq{font-size:.875rem}#bingoStorageHint{font-size:.75rem}
@media(max-width:700px){.bingo-view{font-size:.875rem}.bingo-grid.readable-list .bingo-sq{font-size:.9375rem}}
@media(max-width:360px){.bingo-sq{font-size:.6875rem}}
.bingo-grid.readable-list .bingo-sq{padding-right:52px;overflow-wrap:anywhere}.bingo-grid.readable-list .bingo-sq.stamped::after{top:50%;bottom:auto;height:30px;transform:translateY(-50%) rotate(-12deg)}

/* Exact official lettering, losslessly cropped from its transparent source. */
.masthead .wordmark{flex-basis:276px}
.masthead .brand-type{flex:0 1 230px}
.masthead .wordmark .official-wordmark{width:100%;max-width:230px;height:auto;background:transparent;filter:none;object-fit:contain}
.masthead .wordmark .brand-subtitle{white-space:normal;overflow-wrap:normal}
footer .footer-eye{width:44px;margin:0 auto 16px}
footer .footer-eye-stack{display:block;width:100%;height:auto;filter:none}
@media(max-width:700px){.masthead .wordmark{flex:1 1 auto}.masthead .brand-type{flex-basis:170px}.masthead .wordmark .official-wordmark{max-width:170px}footer .footer-eye{width:42px}}

/* Keep each new Adventure scene in view, with a direct path to its choices. */
#advPanel,#advChoices,#endingCollection{scroll-margin-top:calc(var(--guide-header,82px) + 16px)}
.adv-top{font-size:.75rem;gap:.35rem .75rem}
.adv-jump{margin-left:auto;min-height:44px;padding:8px 10px;border:1px solid #77608d;border-radius:6px;background:transparent;color:#f4d38b;font:inherit;cursor:pointer}
.adv-jump:focus-visible{outline:3px solid #f4d38b;outline-offset:3px}
.adv-dots{flex-shrink:0}
.adv-stage{height:190px}
.adv-text{font-size:1rem}
.ending-collection{font-size:.875rem}
.adv-save-note{color:#d4c8e2;font-size:.8125rem;line-height:1.6;margin:.75rem 0 0}
.adv-completion{color:#f4d38b;font-size:1rem;line-height:1.6}
#advRestart[hidden]{display:none}
@media(max-width:700px){.adv-stage{height:160px}.adv-stage .adv-eye,.adv-stage.is-ending .adv-eye{width:104px}.adv-top{padding:.6rem .8rem}.adv-top #advPathLabel{flex-basis:100%;order:3}.adv-top .adv-dots{order:4}.adv-top .adv-jump{order:2}}

.service-windows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.service-window{border:1px solid #a88d5d66;border-radius:12px;padding:16px;background:#121026}
.service-window h4{margin:0 0 4px;font-size:18px;color:#e5cc91}
.service-end{font-size:14px!important;margin:0 0 12px!important;line-height:1.5!important;color:#d5c6df!important}
.service-window dl{margin:0}.service-window dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #a88d5d33}
.service-window dt{font-size:14px;line-height:1.5;color:#eee2f2}.service-window dd{margin:0;text-align:right;white-space:nowrap;font-size:18px;font-weight:700;color:#f5ead0}
.service-window small{display:block;font-size:13px;font-weight:400;line-height:1.5}
.mask-cover-context{width:100%;height:auto!important;max-height:440px;object-fit:contain!important;background:#080609}
.inherited-mask-link{display:inline-block;font-size:14px;line-height:1.5;padding:12px 0;min-height:44px;box-sizing:border-box}
#mask-context .art-credit{font-size:14px;line-height:1.55}
@media(max-width:600px){.service-windows{grid-template-columns:1fr}.service-window{padding:14px}.service-window dt{max-width:52%}}
@media(max-width:480px){#currentSection{display:none}}
