/* Public pages: one home page, three legal pages, a 404. Light only. Loaded after app.css (fonts, .brand). */
body.site{
  --ink:#12151C;--paper:#F5F6F8;--hair:#DDE1E8;--soft:#586070;--blue:#2457F5;--blue-deep:#173BB8;
  --go:#17703E;--go-soft:#DDF1E5;--wait:#8A5A00;--wait-soft:#FBEBC8;--stop:#A32B2B;--stop-soft:#F7DEDC;
  --bg:var(--paper);--surface:#fff;--fg:var(--ink);--muted:var(--soft);--line:var(--hair);--accent:var(--blue);--accent-ink:#fff;
  background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.6;color-scheme:light;padding-bottom:0;
}
.site a{color:inherit}
.site h1,.site h2,.site h3{font-family:var(--f-display);letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--ink)}
.site p{margin:0}
.site :focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;z-index:50;border-radius:6px}
.skip:focus{left:8px}
.w{width:min(1080px,100% - 40px);margin-inline:auto}

.sh{border-bottom:1px solid var(--hair)}
.sh .w{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.sh .brand{font-size:19px;color:var(--ink)}
.sbtn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:10px;font-weight:650;font-size:15px;text-decoration:none;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-family:inherit}
a.sbtn:hover{background:rgba(18,21,28,.06)}
.sbtn.fill{background:var(--blue);border-color:var(--blue);color:#fff}
a.sbtn.fill:hover{background:var(--blue-deep);border-color:var(--blue-deep)}
.sbtn.big{min-height:52px;padding:0 28px;font-size:16px}

.hero{padding:72px 0 64px}
.hero .w{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center}
.hero h1{font-size:clamp(34px,5vw,56px);max-width:15ch}
.lede{margin-top:20px;font-size:18px;color:var(--soft);max-width:54ch}
.cta{margin-top:28px}
.fine{margin-top:14px;font-size:14px;color:var(--soft)}
.ticket{margin:0;background:#fff;border:1.5px solid var(--ink);border-radius:14px;overflow:hidden;box-shadow:8px 8px 0 var(--ink)}
.ticket figcaption{background:var(--wait-soft);color:var(--wait);font-weight:700;padding:10px 20px;border-bottom:1.5px solid var(--ink);font-size:14px}
.t-body{padding:22px 20px 24px;display:grid;gap:8px}
.t-what{font-family:var(--f-display);font-weight:700;font-size:21px;line-height:1.25}
.t-meta{color:var(--soft);font-size:14px}
.t-note{font-size:14px;color:var(--wait);font-weight:600}
.t-btns{display:flex;gap:10px;margin-top:10px}
.t-btns .sbtn{min-height:40px;pointer-events:none}

.rules{background:#fff;border-block:1px solid var(--hair);padding:64px 0}
.rules h2,.data h2{font-size:clamp(26px,3.4vw,36px)}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.col{border-radius:12px;padding:22px;border:1px solid var(--hair)}
.col h3{font-size:19px;margin-bottom:12px}
.col ul{margin:0;padding-left:18px;display:grid;gap:7px}
.col.now{background:var(--go-soft);border-color:#B7DEC4}.col.now h3{color:var(--go)}
.col.ask{background:var(--wait-soft);border-color:#EBCF8E}.col.ask h3{color:var(--wait)}
.col.never{background:var(--stop-soft);border-color:#EBB9B6}.col.never h3{color:var(--stop)}
.foot-note{margin-top:24px;color:var(--soft)}
.data{padding:56px 0 72px}
.data p{margin-top:12px;max-width:62ch;color:var(--soft)}
.data a{color:var(--blue);text-underline-offset:3px}

.phd{padding:48px 0 12px}.phd h1{font-size:clamp(30px,4vw,42px)}.phd p{margin-top:8px;color:var(--soft)}
.prose{max-width:72ch;padding:12px 0 72px}
.prose h2{font-size:22px;margin:34px 0 10px}
.prose p,.prose ul,.prose ol{margin:10px 0}
.prose li{margin:5px 0}
.prose a{color:var(--blue);text-underline-offset:3px}
.nf{padding:96px 0}.nf-code{font-family:var(--f-display);font-weight:800;font-size:72px;color:var(--blue);line-height:1}
.nf h1{font-size:34px;margin-top:10px}.nf p+p{margin-top:12px}.nf-links{margin-top:24px}

.sf{border-top:1px solid var(--hair);padding:28px 0 40px;font-size:14px;color:var(--soft)}
.sf nav{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:14px}
.sf nav a{font-weight:600;color:var(--ink);text-underline-offset:3px}
.sf p{max-width:80ch}

@media (max-width:820px){
  .hero{padding:40px 0}
  .hero .w{grid-template-columns:1fr;gap:36px}
  .cols{grid-template-columns:1fr}
  .ticket{box-shadow:5px 5px 0 var(--ink)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* spacing polish */
.hero-copy h1 { margin-bottom: 20px; }
.hero-copy .cta { margin: 24px 0 12px; }
.foot-note { margin-top: 24px; }
