:root{
  --ink:#1c1412;
  --plum:#24151c;
  --plum-2:#331f2a;
  --cream:#f3ebe0;
  --paper:#fbf6ee;
  --paper-2:#efe4d4;
  --copper:#c44b2b;
  --copper-2:#e06a3f;
  --gold:#c9a15b;
  --gold-2:#e8c98a;
  --sage:#3d5a4c;
  --line:#d7c8b4;
  --mute:#6d5f55;
  --white:#fffaf3;
  --header:76px;
  --dock:78px;
  --display:"Cormorant Garamond","Palatino Linotype",Georgia,serif;
  --body:"Lora","Iowan Old Style",Georgia,serif;
  --ui:"Schibsted Grotesk","Segoe UI",system-ui,sans-serif;
  --mono:"Inconsolata","Cascadia Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  min-height:100%;
  background:
    radial-gradient(900px 420px at 110% -10%,rgba(196,75,43,.12),transparent 46%),
    radial-gradient(700px 380px at -12% 18%,rgba(201,161,91,.14),transparent 50%),
    linear-gradient(180deg,#efe4d2 0%,var(--cream) 28%,#eadfcf 100%);
  color:var(--ink);
  font-family:var(--body);
  font-size:18.5px;
  line-height:1.72;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.22;
  background-image:
    linear-gradient(rgba(28,20,18,.04) 1px,transparent 1px),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  background-size:100% 28px, 180px 180px;
}
a{color:#9a3412;text-decoration-thickness:1px;text-underline-offset:3px}
img{max-width:100%;height:auto;display:block}
button{font:inherit;cursor:pointer}
.skip{position:absolute;left:-999px;top:8px}
.skip:focus{left:12px;z-index:90;background:var(--paper);color:var(--ink);padding:8px 12px}
.pergola{width:min(1120px,calc(100% - 28px));margin:0 auto;position:relative;z-index:1}

/* floating copper motes */
.motes{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.motes i{
  position:absolute;width:7px;height:7px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#f0d08a,#c44b2b);
  opacity:.35;animation:float 14s linear infinite;
}
.motes i:nth-child(1){left:8%;top:18%;animation-duration:16s}
.motes i:nth-child(2){left:72%;top:12%;animation-duration:19s}
.motes i:nth-child(3){left:88%;top:62%;animation-duration:13s}
.motes i:nth-child(4){left:22%;top:74%;animation-duration:21s}
@keyframes float{
  0%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-28px) scale(1.15)}
  100%{transform:translateY(0) scale(1)}
}

/* header */
.kiosk{
  position:sticky;top:0;z-index:50;height:var(--header);
  background:rgba(36,21,28,.94);
  backdrop-filter:blur(14px) saturate(130%);
  border-bottom:2px solid var(--gold);
}
.kiosk-in{
  width:min(1120px,calc(100% - 20px));margin:0 auto;height:100%;
  display:flex;align-items:center;gap:14px;
}
.seal{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--white);min-width:0}
.seal img{width:40px;height:40px;border-radius:50%;border:1px solid rgba(201,161,91,.5)}
.seal b{font-family:var(--display);font-size:26px;font-weight:600;letter-spacing:.02em;line-height:1}
.seal small{display:block;font-family:var(--ui);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.lane-nav{display:flex;gap:16px;flex:1;justify-content:center;flex-wrap:wrap}
.lane-nav a{
  color:#f6ead8;text-decoration:none;font-family:var(--ui);font-size:13.5px;font-weight:600;
}
.lane-nav a:hover{color:var(--gold-2)}
.wax-row{display:flex;gap:8px;flex-shrink:0}
.wax{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:0 16px;border-radius:999px;
  font-family:var(--ui);font-weight:700;font-size:14px;letter-spacing:.02em;
  text-decoration:none;border:0;white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease;
}
.wax-in{
  background:linear-gradient(180deg,var(--copper-2),var(--copper));
  color:#fff8f3;
  box-shadow:0 0 0 0 rgba(196,75,43,.55);
  animation:pulse 2.2s ease-out infinite;
}
.wax-up{
  background:transparent;color:var(--gold-2);
  border:1.5px solid var(--gold);
}
.wax:hover{transform:translateY(-1px)}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(196,75,43,.5)}
  70%{box-shadow:0 0 0 12px rgba(196,75,43,0)}
  100%{box-shadow:0 0 0 0 rgba(196,75,43,0)}
}
.burger{
  display:none;width:42px;height:42px;border-radius:10px;
  border:1px solid rgba(232,201,138,.4);background:transparent;color:var(--gold-2);
}

/* ribbon ticker */
.ribbon{
  overflow:hidden;background:var(--ink);color:var(--gold-2);
  border-bottom:1px solid rgba(201,161,91,.25);
}
.ribbon-track{
  display:flex;width:max-content;gap:0;
  animation:crawl 28s linear infinite;
  font-family:var(--ui);font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  padding:9px 0;
}
.ribbon-track b{padding:0 36px;font-weight:600;white-space:nowrap}
.ribbon-track i{color:var(--copper-2);font-style:normal;margin:0 8px}
@keyframes crawl{to{transform:translateX(-50%)}}

/* hero */
.folio{
  padding:34px 0 18px;
}
.folio-grid{
  display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:stretch;
}
.crumb{font-family:var(--ui);font-size:13px;color:var(--mute);margin:0 0 12px}
.crumb a{color:var(--sage);text-decoration:none}
.kicker{
  font-family:var(--ui);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--copper);margin:0 0 8px;font-weight:700;
}
.folio h1{
  font-family:var(--display);font-weight:600;font-size:clamp(36px,5.4vw,62px);
  line-height:1.05;margin:0 0 14px;letter-spacing:-.02em;
}
.folio h1 em{font-style:italic;color:var(--copper);font-weight:500}
.lede{font-size:19px;max-width:38ch;margin:0 0 18px;color:#3a2d28}
.meta-line{display:flex;flex-wrap:wrap;gap:14px;font-family:var(--ui);font-size:13px;color:var(--mute);margin-top:14px}
.arch{
  position:relative;background:var(--plum);color:var(--white);
  border-radius:140px 140px 22px 22px;padding:22px 22px 18px;
  min-height:280px;overflow:hidden;
  box-shadow:0 18px 40px rgba(36,21,28,.22);
}
.arch::before{
  content:"PB";position:absolute;right:12px;bottom:-18px;
  font-family:var(--display);font-size:120px;color:rgba(201,161,91,.12);line-height:1;
}
.slide{display:none;position:relative;z-index:1}
.slide.is-on{display:block;animation:rise .45s ease}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.slide h2{font-family:var(--display);font-size:30px;margin:8px 0 10px;font-weight:600}
.slide p{margin:0;color:#f0e2d2}
.dots{display:flex;gap:8px;margin-bottom:10px}
.dots button{
  width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,250,243,.28);padding:0;
}
.dots button.on{background:var(--gold-2)}

/* ticket desk */
.kiosk-desk{
  margin:10px 0 36px;background:var(--paper);
  border:1px solid var(--line);border-radius:18px;
  box-shadow:0 10px 30px rgba(28,20,18,.06);
  overflow:hidden;
}
.desk-bar{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:16px 20px 8px;
}
.live{
  font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  background:#3d5a4c;color:#f4efe6;padding:5px 10px;border-radius:999px;
}
.desk-bar h2{font-family:var(--display);margin:0;font-size:34px}
.stubs{display:flex;overflow:hidden}
.stub-track{
  display:flex;gap:14px;padding:8px 20px 22px;
  animation:stubslide 22s linear infinite;
}
.kiosk-desk:hover .stub-track{animation-play-state:paused}
@keyframes stubslide{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.stub{
  flex:0 0 280px;background:
    radial-gradient(circle at 0 50%,transparent 8px,var(--paper-2) 8px),
    radial-gradient(circle at 100% 50%,transparent 8px,var(--paper-2) 8px);
  background-color:var(--paper-2);
  border:1px dashed #c9b49a;border-radius:12px;padding:16px 18px;
}
.stub strong{display:block;font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--copper)}
.stub a{font-family:var(--mono);font-size:14px;word-break:break-all;color:var(--ink);text-decoration:none}
.stub span{display:block;margin-top:8px;font-family:var(--ui);font-size:12px;color:var(--mute)}
.addr-row{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  padding:0 20px 20px;
}
.addr-row a{
  font-family:var(--mono);font-size:15.5px;color:var(--ink);
  background:var(--cream);padding:10px 12px;border-radius:10px;border:1px solid var(--line);
  word-break:break-all;flex:1;min-width:220px;text-decoration:none;
}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 18px}
.chip{
  font-family:var(--ui);font-size:12px;padding:5px 10px;border-radius:999px;
  background:#efe0cf;color:#5a4034;
}

/* articles */
.gazette{
  background:var(--paper);border:1px solid var(--line);
  border-radius:4px 18px 18px 4px;
  padding:28px 28px 22px;margin:0 0 28px;
  box-shadow:8px 0 0 var(--copper) inset, 0 12px 28px rgba(28,20,18,.05);
}
.byline{font-family:var(--ui);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 8px}
.gazette h2{
  font-family:var(--display);font-size:clamp(28px,4vw,42px);
  line-height:1.12;margin:0 0 16px;font-weight:600;
}
.gazette h3{font-family:var(--display);font-size:26px;margin:22px 0 8px}
.columns{columns:2;column-gap:28px}
.columns p{margin:0 0 14px}
.columns p:first-of-type::first-letter{
  font-family:var(--display);font-size:58px;float:left;line-height:.82;
  padding:6px 8px 0 0;color:var(--copper);font-weight:600;
}
.pull{
  break-inside:avoid;margin:16px 0;padding:14px 16px;
  border-left:3px solid var(--gold);background:#f6eee3;
  font-family:var(--display);font-size:22px;font-style:italic;
}
.note{
  break-inside:avoid;margin:16px 0;padding:12px 14px;
  background:#f4e6d8;border:1px solid #e2c8b0;
  font-family:var(--ui);font-size:14.5px;
}

/* games rail */
.games{
  margin:8px 0 28px;padding:22px;border-radius:18px;
  background:var(--plum);color:var(--white);overflow:hidden;
}
.games h2{font-family:var(--display);margin:0 0 6px;font-size:36px}
.games > p{margin:0 0 16px;color:#ead9c8;max-width:48ch}
.rail{overflow:hidden}
.rail-track{display:flex;gap:12px;width:max-content;animation:rail 26s linear infinite}
.games:hover .rail-track{animation-play-state:paused}
@keyframes rail{to{transform:translateX(-50%)}}
.game{
  flex:0 0 168px;background:linear-gradient(180deg,#3a2430,#2a1822);
  border:1px solid rgba(201,161,91,.28);border-radius:14px;padding:16px 14px;
}
.game strong{display:block;font-family:var(--display);font-size:24px}
.game span{font-family:var(--ui);font-size:12px;color:var(--gold-2)}

/* review + event */
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 28px}
.panel,.poster{
  background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px;
}
.score{font-family:var(--display);font-size:64px;line-height:1;margin:4px 0}
.stars{color:var(--copper);letter-spacing:2px;margin:0 0 10px}
.poster{background:
  linear-gradient(165deg,rgba(36,21,28,.94),rgba(61,90,76,.88)),
  var(--plum);color:var(--white);border-color:transparent}
.poster .kicker{color:var(--gold-2)}
.poster h2{font-family:var(--display);margin:8px 0 10px;font-size:32px}
.when{font-family:var(--mono);font-size:14px;color:var(--gold-2)}

/* faq */
.faq{margin:0 0 40px}
.faq h2{font-family:var(--display);font-size:40px;margin:0 0 12px}
.faq details{
  background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--copper);
  border-radius:0 12px 12px 0;padding:4px 16px;margin:0 0 8px;
}
.faq summary{
  font-family:var(--ui);font-weight:700;cursor:pointer;padding:12px 0;list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq details p{margin:0 0 12px;color:#3f322c}

footer{
  background:var(--ink);color:#ead9c8;padding:36px 0 110px;
  font-family:var(--ui);font-size:14px;
}
.langs{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px}
.langs a{color:var(--gold-2);text-decoration:none}
.legal{max-width:70ch;color:#c9b8a8}
footer a{color:var(--gold-2)}

.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:45;
  display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(36,21,28,.94);border-top:2px solid var(--gold);
}
.dock .wax{flex:1;min-height:48px;font-size:16px}

@media (max-width:860px){
  .folio-grid,.split,.columns{grid-template-columns:1fr;columns:1}
  .lane-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--plum-2);flex-direction:column;padding:14px 18px 18px;gap:12px;
  }
  .lane-nav.open{display:flex}
  .burger{display:inline-flex;align-items:center;justify-content:center}
  .wax-row .wax{min-height:40px;padding:0 12px;font-size:13px}
  .arch{border-radius:80px 80px 18px 18px;min-height:240px}
  .gazette{padding:22px 16px;box-shadow:6px 0 0 var(--copper) inset}
  .desk-bar{flex-direction:column;align-items:flex-start}
  .seal small{display:none}
  .kiosk{height:auto;min-height:var(--header)}
  .kiosk-in{padding:8px 0}
}
@media (max-width:420px){
  .seal b{font-size:20px}
  .wax-row .wax{padding:0 10px;font-size:12.5px}
}
@media (min-width:861px){
  .dock{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}
