/* Casa Verde Halloween 2026 — "Case File CV-1031"
   Ground: near-black navy. One accent: electric blue. Chrome for the lockup. Red only for stamps. */
:root{
  --bg:#03050c;--bg2:#070b17;--bg3:#0c1226;
  --fg:#eef2f8;--mute:#9aa7bb;--dim:#7f8ca1;
  --acc:#4da3ff;--acc2:#9fd6ff;--acc-ink:#03050c;--acc-soft:rgba(77,163,255,.12);--acc-line:rgba(77,163,255,.32);
  --warm:#ffcf6b;--red:#ff3b3b;--steel:#2c3140;--hoa:#7fbf3f;
  --line:rgba(238,242,248,.09);
  --fd:'Michroma','Noto Sans','Eurostile','Bank Gothic',system-ui,sans-serif;
  --fb:'Barlow','Noto Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fm:'IBM Plex Mono','Noto Sans',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:3px;--r2:6px;--r3:8px;--max:1120px;--pad:clamp(20px,5vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.65 var(--fb);overflow-x:hidden;min-height:100vh}
img,svg{max-width:100%;display:block}
[hidden]{display:none!important}
a{color:inherit}
h1,h2{font-family:var(--fd);font-weight:400;text-transform:uppercase;letter-spacing:.04em;line-height:1.1;margin:0;text-wrap:balance}
h3{font:700 1.05rem/1.2 var(--fb);text-transform:uppercase;letter-spacing:.1em;margin:0}
.chrome,.chrome .dw{background:linear-gradient(180deg,#ffffff 0%,#e3eaf3 42%,#a4b4c9 50%,#e6edf6 58%,#ffffff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.chrome{filter:drop-shadow(0 0 18px rgba(77,163,255,.38))}
p{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
::selection{background:var(--acc);color:var(--acc-ink)}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}

/* stars */
.sky{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.sky canvas{position:absolute;inset:0;width:100%;height:100%}
.sky .tw{animation:twinkle 4.5s ease-in-out infinite alternate}
.sky::before{content:"";position:absolute;inset:0;z-index:1;background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 4px)}
@keyframes twinkle{from{opacity:.25}to{opacity:.9}}

/* type helpers */
.eyebrow{font:600 .78rem/1.3 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc);display:flex;gap:.8em;align-items:center}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--acc);border-radius:2px}
.lead{color:var(--mute);font-size:1.05rem;max-width:58ch}
.h2{font-size:clamp(1.45rem,3vw,2.2rem);margin:.7rem 0 1rem;color:var(--fg);overflow-wrap:anywhere}
.ph{border-bottom:1px dashed var(--acc-line);cursor:help;text-decoration:none}
.redact{position:relative;background:var(--fg);color:transparent;border-radius:2px;padding:.15em .3em;transition:color .25s,background .25s;user-select:none;cursor:help}
.redact:hover,.redact:focus{background:var(--acc-soft);color:var(--acc)}
.stamp{position:relative;display:inline-block;font:700 .72rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--red);border:2px solid var(--red);padding:.5em .7em .45em;border-radius:4px;transform:rotate(-5deg);opacity:.88;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 -.4 1.4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 -.4 1.4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mask-size:cover;-webkit-mask-size:cover}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:44px;font:700 .86rem/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;padding:.9em 1.4em;border-radius:var(--r);border:1px solid var(--acc);color:var(--acc);background:transparent;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s,color .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{background:var(--acc-soft);transform:translateY(-1px)}
.btn.pri{background:var(--acc);color:var(--acc-ink);box-shadow:0 0 0 0 rgba(77,163,255,.35)}
.btn.pri:hover{box-shadow:0 0 28px 0 rgba(77,163,255,.35);background:#6db3ff}
.btn.sm{padding:.6em 1em;font-size:.78rem}
.btn.danger{border-color:rgba(255,46,46,.35);color:var(--red)}.btn.danger:hover{background:rgba(255,46,46,.1)}
.btn .i{width:16px;height:16px;flex:none}
.i{width:1em;height:1em;display:inline-block;vertical-align:-.15em}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(5,6,10,.94);border-bottom:1px solid var(--line)}
.navr{display:flex;gap:.5rem;align-items:center}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--fg);border-radius:var(--r);cursor:pointer;align-items:center;justify-content:center}
.burger .i{width:20px;height:20px}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:600 .74rem/1.2 var(--fb);letter-spacing:.16em;text-transform:uppercase}
.cv{display:inline-flex;align-items:center;font-family:var(--fd);text-transform:uppercase;letter-spacing:0;line-height:1}
.cv .ah{height:.62em;width:auto;margin:0 .04em;transform:translateY(.04em)}
.brand .cv{font-size:1.5rem;font-weight:400}
.brand small{display:block;font-weight:400;color:var(--mute);letter-spacing:.1em;font-size:.7rem;white-space:nowrap}
.nav .links{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.nav .links a{display:inline-block;padding:.9rem 0;font:500 .78rem/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--mute);transition:color .2s}
.nav .links a:hover{color:var(--acc)}
@media (max-width:1100px){.hide-sm{display:none}}
@media (max-width:960px){.burger{display:inline-flex}.nav .links{display:none;position:absolute;left:0;right:0;top:64px;background:#03050c;border-bottom:1px solid var(--line);padding:.6rem var(--pad) 1rem;flex-direction:column;gap:0}.nav .links.open{display:flex}.nav .links a{display:block;padding:.9rem 0;font-size:.95rem;border-top:1px solid var(--line)}}

/* hero */
.hero{padding:clamp(48px,8vw,104px) 0 clamp(40px,6vw,72px);position:relative}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.lockup{margin:1rem 0 1.2rem}
.lockup .cv{font-size:clamp(5rem,11vw,9rem);letter-spacing:-.02em;margin-left:-.04em}
.hero h1{font-size:clamp(1.15rem,2.3vw,1.62rem);letter-spacing:.085em;margin:.35rem 0 .7rem;line-height:1.1;white-space:nowrap}
.tag{font:600 .8rem/1.3 var(--fb);letter-spacing:.3em;text-transform:uppercase;color:var(--acc2)}
.hero .sub{color:var(--mute);font-size:1.05rem;max-width:54ch}
.meta{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:1.6rem 0 1.8rem;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.meta span{display:inline-flex;align-items:center;gap:.5em;color:var(--fg)}
.meta .i{width:15px;height:15px;color:var(--acc)}
.cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.cta .btn.pri{min-height:52px;font-size:.95rem;padding-inline:1.6em}
.cta-hint{margin:.6rem 0 0}
.hero .meta{margin:1.4rem 0 1rem}
.hero .sub{margin-bottom:.2rem}
.count{margin-top:2.2rem;display:inline-grid;grid-auto-flow:column;gap:1.4rem;padding:1rem 1.3rem;border:1px solid var(--line);border-radius:var(--r2);background:rgba(11,15,26,.6)}
.count b{display:block;font:600 clamp(1.6rem,3vw,2.2rem)/1 var(--fb);color:var(--acc);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.count small{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:.5em}
.count .lbl{align-self:center;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);writing-mode:vertical-rl;transform:rotate(180deg);border-left:1px solid var(--line);padding-left:.4rem}
.scene{position:relative;aspect-ratio:600/640;max-width:600px;margin-inline:auto;width:100%;min-width:0;overflow:hidden}
.scene svg{width:100%;height:100%;overflow:hidden}
.hero .stampwrap{position:absolute;right:var(--pad);top:14px}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}.scene{max-width:420px;aspect-ratio:600/480;margin-top:.5rem}.cta{flex-direction:column}.cta .btn{width:100%}.hero{padding-top:clamp(28px,6vw,48px)}.count{width:100%;grid-auto-flow:row;grid-template-columns:repeat(3,1fr);gap:.8rem}.count .lbl{display:none}}

/* invasion scene */
.ship{animation:drift 14s ease-in-out infinite}
.core{animation:charge 3.6s ease-in-out infinite;transform-origin:420px 200px}
.beam{animation:flick 5s ease-in-out infinite;transform-origin:420px 205px}
.ring{animation:ringpulse 3.6s ease-in-out infinite;transform-origin:420px 200px}
.mote{animation:rise 7s linear infinite}
.cow{animation:abduct 9s ease-in-out infinite;transform-origin:420px 520px}
@keyframes abduct{0%{transform:translateY(40px) rotate(-8deg);opacity:0}10%{opacity:1}55%{transform:translateY(-130px) rotate(7deg)}90%{opacity:1}100%{transform:translateY(-300px) rotate(-5deg);opacity:0}}
.mote:nth-child(2){animation-delay:-2.3s}.mote:nth-child(3){animation-delay:-4.6s}.mote:nth-child(4){animation-delay:-1.1s}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(-6px,4px)}}
@keyframes charge{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
@keyframes flick{0%,100%{opacity:.85}40%{opacity:.6}55%{opacity:.9}70%{opacity:.65}}
@keyframes ringpulse{0%,100%{opacity:.35}50%{opacity:.8}}
@keyframes rise{from{transform:translateY(0);opacity:0}10%{opacity:.7}90%{opacity:.5}to{transform:translateY(-360px);opacity:0}}

/* ticker */
.ticker{border-block:1px solid var(--acc-line);background:#000;overflow:hidden;padding:.75rem 0;white-space:nowrap}
.ticker .track{display:inline-flex;gap:3rem;animation:slide 60s linear infinite;will-change:transform}
.ticker span{font:600 .72rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc);display:inline-flex;align-items:center;gap:3rem}
.ticker span::after{content:"//";opacity:.45}
@keyframes slide{to{transform:translateX(-50%)}}

/* sections */
.sec{padding:clamp(56px,9vw,120px) 0;position:relative}
.sec + .sec{border-top:1px solid var(--line)}
.sec .head{max-width:640px;margin-bottom:clamp(28px,4vw,48px)}
.sec.alt{background:linear-gradient(180deg,rgba(11,15,26,0),rgba(11,15,26,.8) 30%,rgba(11,15,26,.8) 70%,rgba(11,15,26,0))}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
.reveal:nth-child(2){transition-delay:.08s}.reveal:nth-child(3){transition-delay:.16s}.reveal:nth-child(4){transition-delay:.24s}

/* cards */
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.g2,.g4{grid-template-columns:1fr}}
.card{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r3);padding:1.5rem;transition:border-color .25s,transform .25s}
.card:hover{border-color:var(--acc-line);transform:translateY(-2px)}
.card .ic{width:40px;height:40px;border-radius:var(--r);border:1px solid var(--acc-line);background:var(--acc-soft);display:grid;place-items:center;color:var(--acc);margin-bottom:1.1rem}
.card .ic .i{width:20px;height:20px}
.card h3{margin-bottom:.6rem}
.card p,.card li{color:var(--mute);font-size:.95rem}
.card .stamp{position:absolute;top:14px;right:14px}
.card .kv{font-size:.95rem;color:var(--fg)}
.card .kv + .kv{margin-top:.35rem}

/* briefing */
.brief{grid-template-columns:repeat(3,1fr)}
.brief .wide{grid-column:1/-1}
@media (max-width:900px){.brief{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.brief{grid-template-columns:1fr}}
.plan{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;counter-reset:step}
.plan li{position:relative;padding-top:1rem;border-top:1px solid var(--line);font-size:.86rem;color:var(--mute)}
.plan li::before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 10px var(--acc)}
.plan li b{display:block;width:max-content;color:var(--acc);font:400 .95rem/1 var(--fd);letter-spacing:.04em;font-variant-numeric:tabular-nums;margin-bottom:.35rem}
.plan li>span{display:block}
@media (max-width:900px){.plan{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.plan{grid-template-columns:repeat(2,1fr)}}

/* forms */
.form{display:grid;gap:1rem}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.form .row{grid-template-columns:1fr}}
label.f,.f{display:grid;gap:.45rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
label.f input,label.f select{font:400 .95rem/1.2 var(--fb);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:.85em 1em;width:100%;transition:border-color .2s;appearance:none;-webkit-appearance:none}
label.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234da3ff' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;padding-right:2.6em}
label.f input:focus,label.f select:focus{border-color:var(--acc);outline:none}
label.f input::placeholder{color:var(--dim)}
label.chk{display:flex;align-items:center;gap:.8em;font-size:.9rem;color:var(--fg);cursor:pointer;min-height:44px}
label.chk input{width:22px;height:22px;accent-color:var(--acc);margin:0;flex:none}
.hint{font-size:13px;color:var(--dim);line-height:1.6}
.ok{display:none;border:1px solid var(--acc-line);background:var(--acc-soft);border-radius:var(--r2);padding:1.2rem 1.4rem;color:var(--fg)}
.ok.show{display:block}
.ok b{color:var(--acc)}
.err{color:var(--red);font-size:.78rem;display:none}
.err.show{display:block}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:600 .82rem/1 var(--fb);min-height:44px;display:inline-flex;align-items:center;padding:.7em 1em;border:1px solid var(--line);border-radius:var(--r);background:transparent;color:var(--fg);cursor:pointer;transition:border-color .2s,background .2s}
.chip:hover,.chip.on{border-color:var(--acc);background:var(--acc-soft);color:var(--acc)}

/* two-col section layouts */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.split>*{min-width:0}
.split .h2{font-size:clamp(1.3rem,2.4vw,1.8rem)}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.panel{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r3);padding:clamp(20px,3vw,32px)}

/* progress */
.prog{margin:1.2rem 0 1.6rem}
.prog .bar{height:14px;background:var(--bg3);border-radius:999px;overflow:hidden;border:1px solid var(--line);position:relative}
.prog .fill{height:100%;background:linear-gradient(90deg,var(--acc-line),var(--acc));border-radius:999px;width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 18px rgba(77,163,255,.45)}
.prog .nums{display:flex;justify-content:space-between;margin-top:.7rem;font-size:.8rem;color:var(--mute);font-variant-numeric:tabular-nums}
.prog .nums b{color:var(--fg);font-family:var(--fd);font-weight:400;font-size:1.15rem}
.gcash{display:grid;grid-template-columns:150px 1fr;gap:1.2rem;align-items:center}
@media (max-width:480px){.gcash{grid-template-columns:1fr}}
.qr{width:150px;height:150px;border-radius:var(--r2);background:var(--fg);display:grid;place-items:center;position:relative;overflow:hidden}
.qr .fake{position:absolute;inset:12px;background:repeating-conic-gradient(var(--bg) 0 25%,transparent 0 50%) 0 0/16px 16px;filter:blur(2.5px);opacity:.55}
.qr .lbl{position:relative;font:700 .7rem/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--bg);background:var(--fg);padding:.5em .7em;border-radius:6px;text-align:center}
.qr canvas,.qr img{padding:10px;border-radius:var(--r2)}
.gcash .num{font:400 1.25rem/1.2 var(--fd);letter-spacing:.04em}
.gcash .who{color:var(--mute);font-size:.85rem;margin-top:.3rem}
.pledges{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.5rem}
.pledges li{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.86rem;padding:.7rem 0;border-top:1px solid var(--line)}
.pledges li:first-child{border-top:0}
.pledges .amt{font-weight:700;font-variant-numeric:tabular-nums}
.badge{font:600 .72rem/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;padding:.5em .7em;border-radius:var(--r);border:1px solid var(--line);color:var(--mute)}
.badge.v{color:var(--acc);border-color:var(--acc-line);background:var(--acc-soft)}

/* pixel bullets */
.rules{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.rules{counter-reset:r}
.rules li{position:relative;padding-left:2.8em;color:var(--mute);font-size:.9rem;counter-increment:r}
.rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:0;font:600 .72rem/1.9 var(--fb);color:var(--acc);letter-spacing:.1em}

/* categories */
.cat{display:grid;gap:.4rem}
.cat .prize{margin-top:.8rem;padding-top:.8rem;border-top:1px dashed var(--line);font-size:.82rem;color:var(--mute)}
.cat .prize b{color:var(--fg);display:block;font-size:.95rem}

/* faq */
.faq{display:grid;gap:.6rem;max-width:760px}
.faq details{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);padding:0 1.25rem;transition:border-color .2s}
.faq details[open]{border-color:var(--acc-line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;font:600 1.02rem/1.3 var(--fb)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--acc);font:400 1.2rem/1 var(--fd);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--mute);font-size:.9rem;padding:0 0 1.2rem}

/* footer */
.foot{border-top:1px solid var(--line);padding:2.6rem 0 2.2rem;color:var(--mute);font-size:.8rem}
.foot .wrap{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:start}
@media (max-width:700px){.foot .wrap{grid-template-columns:1fr}}
.foot ul{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.foot a{text-decoration:none;color:var(--fg)}
.foot a:hover{color:var(--acc)}
.foot .by{text-align:left;line-height:1.9}
.foot .by strong{color:var(--fg)}

/* preview bar (in-flow, scrolls away, never covers a control) */
.preview{background:#000;border-bottom:1px solid var(--acc-line);color:var(--mute);font:500 12px/1.4 var(--fb);padding:.55rem var(--pad);text-align:center}
.preview span{color:var(--acc);font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-right:.6em}

/* vote page */
.vote{max-width:560px;margin:0 auto;padding:clamp(24px,5vw,48px) var(--pad) 96px}
.vote h1{font-size:clamp(1.5rem,6vw,2.2rem);margin:.6rem 0 1rem}
.step{display:none}
.step.on{display:block}
.vcat{margin:1.6rem 0 0;padding-top:1.2rem;border-top:1px solid var(--line)}
.vhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.vhead h2{font-size:1.05rem;letter-spacing:.08em}
.vstate{font:600 .7rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);display:inline-flex;gap:.4em;align-items:center}
.vcat.done .vstate{color:var(--acc)}
.vstate .i{width:14px;height:14px}
.entries{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.entry{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;cursor:pointer;text-align:left;padding:0;color:inherit;font:inherit;transition:border-color .2s,transform .2s;position:relative}
.entry:hover{transform:translateY(-2px)}
.entry.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc),0 0 24px rgba(77,163,255,.25)}
.entry .pic{aspect-ratio:4/5;background:var(--bg3);display:grid;place-items:center;position:relative;overflow:hidden}
.entry .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.entry .pic svg{width:100%;height:100%;color:var(--dim)}
.entry .num{position:absolute;top:8px;left:8px;font:600 .74rem/1 var(--fb);letter-spacing:.14em;background:var(--bg);border:1px solid var(--line);padding:.5em .6em;border-radius:6px;color:var(--acc)}
.entry .tick{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--acc);color:var(--acc-ink);display:none;place-items:center}
.entry.on .tick{display:grid}
.entry .tick .i{width:14px;height:14px}
.entry .cap{padding:.8rem .9rem .9rem}
.entry .cap b{display:block;font:700 .92rem/1.2 var(--fb);text-transform:uppercase;letter-spacing:.06em}
.entry .cap span{font-size:.72rem;color:var(--mute)}
.votebar{position:fixed;left:0;right:0;bottom:0;background:rgba(6,8,14,.9);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:.9rem var(--pad);display:flex;justify-content:space-between;align-items:center;gap:1rem;z-index:40}
.votebar .st{font-size:.8rem;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
.votebar .st b{color:var(--acc)}
.big{width:100%;justify-content:center;padding:1.1em}

/* host page */
.host{max-width:1120px;margin:0 auto;padding:clamp(24px,4vw,48px) var(--pad) 80px}
.host h1{font-size:clamp(1.5rem,3.4vw,2.2rem);margin:.6rem 0 1.5rem}
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:2rem}
@media (max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);padding:1.1rem 1.2rem}
.stat b{display:block;font:600 1.7rem/1 var(--fb);color:var(--acc);font-variant-numeric:tabular-nums}
.stat small{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:.5em}
.tally{display:grid;gap:.6rem}
.tally .rowt{display:grid;grid-template-columns:2.4em 1fr auto;gap:.9rem;align-items:center;font-size:.9rem}
.tally .rowt .bar{height:10px;background:var(--bg3);border-radius:999px;overflow:hidden}
.tally .rowt .bar i{display:block;height:100%;background:var(--acc);width:0;transition:width .8s ease}
.tally .rowt .n{font-variant-numeric:tabular-nums;color:var(--mute);min-width:2.5em;text-align:right}
.tally .rowt.win b{color:var(--acc)}
.tally.hidden .rowt .bar i{background:var(--dim)}
table.t{width:100%;border-collapse:collapse;font-size:.86rem}
table.t th,table.t td{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
table.t th{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-weight:700}
table.t td.n{font-variant-numeric:tabular-nums}
.tbl{overflow-x:auto}
.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin:2.2rem 0 1rem}
.toolbar h2{font-size:1.1rem}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.search{font:400 .9rem var(--fb);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:.6em .9em;min-height:44px;min-width:200px}
.entryform{margin-bottom:1rem}
.row3{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;align-items:end}
@media (max-width:700px){.row3{grid-template-columns:1fr}}
.file input{position:absolute;opacity:0;width:1px;height:1px}
.file{position:relative}
.filebtn{display:inline-flex;align-items:center;gap:.6em;min-height:44px;padding:.6em 1em;border:1px dashed var(--acc-line);border-radius:var(--r);color:var(--acc);font:700 .8rem/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.file:focus-within .filebtn{outline:2px solid var(--acc);outline-offset:2px}
.filename{font-size:12px;color:var(--dim);text-transform:none;letter-spacing:0}
.thumb{width:44px;height:44px;object-fit:cover;border-radius:var(--r)}
.winner{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}
@media (max-width:900px){.winner{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.winner{grid-template-columns:1fr}}
.winner .card{text-align:center;padding:1.6rem 1.2rem}
.winner .card .num{font:600 .7rem/1 var(--fb);letter-spacing:.2em;color:var(--acc)}
.winner .card h3{margin:.6rem 0 .3rem;text-wrap:balance}
.winner .card p{font-size:.8rem}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ===== effects ===== */
.fx .hero h1{opacity:0}
.dw{display:inline-block;white-space:pre;overflow:hidden;vertical-align:bottom;text-align:left}
.typing::after{content:"▍";color:var(--acc);animation:blink 1s steps(1,end) infinite;margin-left:.1em}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.flash{position:fixed;inset:0;z-index:200;background:#fff;opacity:0;pointer-events:none;transition:opacity .9s ease}
.flash.on{opacity:1;transition:opacity .06s}
.flash.on{animation:flashout 1.2s ease forwards}
@keyframes flashout{0%{opacity:1}12%{opacity:1}100%{opacity:0}}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);z-index:150;background:#000;border:1px solid var(--acc-line);color:var(--fg);font-size:.82rem;padding:.8rem 1.1rem;border-radius:var(--r);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:min(92vw,640px);text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.6);display:flex;gap:.4em;align-items:center;justify-content:center;flex-wrap:wrap}
.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:var(--acc)}
.shake{animation:shake .45s ease}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}

/* ===== the signal ===== */
.gl{width:1em;height:1em;display:inline-block;vertical-align:-.15em;fill:currentColor}
.gl.inline{width:1.1em;height:1.1em;color:var(--acc)}
.brand{position:relative}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}
.stamp.clicky{cursor:pointer;transition:transform .2s,box-shadow .2s}
.stamp.clicky::after{content:"";position:absolute;inset:-12px}
.stamp.clicky:hover{transform:rotate(-3deg) scale(1.04)}
.stamp.declass{color:var(--acc);border-color:var(--acc);transform:rotate(-2deg);mask-image:none;-webkit-mask-image:none;display:inline-flex;gap:.7em;align-items:center}
.frag{display:inline-flex;gap:.6em;align-items:center;padding:.3em .6em;border:1px solid var(--acc-line);border-radius:var(--r);background:var(--acc-soft);color:var(--acc);font:600 .8rem/1 var(--fb);vertical-align:middle;margin-left:.5em}
.frag span{display:inline-flex;gap:.3em;align-items:center}.frag .gl{width:1.1em;height:1.1em}
.redact.open{background:var(--acc-soft);color:var(--acc)}
.buried{display:inline-flex;align-items:center;gap:.5em;min-height:44px;margin-top:.8rem;padding:.4em .9em;color:var(--dim);cursor:pointer;border:1px dashed var(--line);border-radius:var(--r);background:none;font:600 .7rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;transition:color .2s,border-color .2s}
.buried:hover{color:var(--acc);border-color:var(--acc-line)}
.buried .gl{width:1em;height:1em}

.console{border:1px solid var(--acc-line);background:#030407;color:var(--fg);padding:0;width:min(92vw,680px);max-height:92vh;border-radius:var(--r2);box-shadow:0 0 0 1px rgba(77,163,255,.08),0 30px 90px rgba(0,0,0,.8),0 0 80px rgba(77,163,255,.08);font-family:var(--fb)}
.console::backdrop{background:rgba(3,4,7,.78);backdrop-filter:blur(6px)}
.con-head{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);background:#000}
.con-dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red);animation:pulse 1.4s ease-in-out infinite;flex:none}
.con-title{font:600 .74rem/1.3 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--acc);flex:1;min-height:1em}
.con-x{background:none;border:1px solid var(--line);color:var(--mute);width:44px;height:44px;border-radius:var(--r);cursor:pointer;display:grid;place-items:center}
.con-x .i{width:18px;height:18px}
.con-x:hover{color:var(--fg);border-color:var(--acc-line)}
.con-body{padding:1.2rem 1.2rem 1.4rem;display:grid;gap:.9rem;overflow:auto;max-height:calc(92vh - 50px)}
.con-line{font-size:.86rem;color:var(--mute);min-height:1.2em}
.con-msg{display:flex;flex-wrap:wrap;gap:.6em 1.4em;font-size:clamp(1.3rem,4vw,1.9rem);color:var(--acc);padding:1rem 1.1rem;border:1px solid var(--acc-line);border-radius:var(--r);background:var(--acc-soft);line-height:1}
.con-msg .w{display:inline-flex;gap:.28em}
.con-msg .gl{filter:drop-shadow(0 0 6px rgba(77,163,255,.6))}
.con-keyhead{display:flex;justify-content:space-between;font:600 .7rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:.3rem}
.con-key{display:grid;grid-template-columns:repeat(13,1fr);gap:.35rem}
@media (max-width:560px){.con-key{grid-template-columns:repeat(9,1fr)}}
.kp{display:grid;justify-items:center;gap:.25rem;padding:.4rem .2rem .3rem;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);font-size:.95rem}
.kp b{font:600 .74rem/1 var(--fb);color:var(--fg)}
.kp.bad{border-style:dashed;color:var(--dim)}.kp.bad b{color:var(--red)}
.con-hint{font-size:13px;color:var(--dim)}
.con-form{display:grid;grid-template-columns:1fr auto;gap:.8rem;align-items:end}
@media (max-width:480px){.con-form{grid-template-columns:1fr}}
.con-form input{text-transform:uppercase;letter-spacing:.08em}
.con-granted{display:grid;gap:.9rem;border-top:1px solid var(--acc-line);padding-top:1rem}
.con-big{font:400 1.5rem/1 var(--fd);text-transform:uppercase;color:var(--acc);letter-spacing:.06em}
.con-granted p{font-size:.88rem;color:var(--mute)}.con-granted p b{color:var(--fg)}
.con-rank{display:flex;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--acc-line);border-radius:var(--r);background:var(--acc-soft);font-size:.9rem}
.con-rank small{color:var(--mute)}
.con-num{font:400 1.8rem/1 var(--fd);color:var(--acc)}

/* signal section */
.sig{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:900px){.sig{grid-template-columns:1fr}}
.sig-screen{position:relative;border:1px solid var(--acc-line);border-radius:var(--r2);background:#030407;padding:1.4rem;overflow:hidden;box-shadow:inset 0 0 60px rgba(77,163,255,.06)}
.sig-screen::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(77,163,255,.05) 0 1px,transparent 1px 4px);pointer-events:none}
.sig-screen .con-msg{border:0;background:none;padding:0;font-size:clamp(1.5rem,4.6vw,2.2rem);filter:blur(.6px)}
.sig-screen .meta-row{display:flex;justify-content:space-between;font:600 .72rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:1.2rem}
.sig-screen .meta-row b{color:var(--red)}
.sig-stats{display:flex;gap:1.6rem;margin-top:1.4rem;font-size:.8rem;color:var(--mute)}
.sig-stats b{color:var(--acc);font:600 1.4rem/1 var(--fb);font-variant-numeric:tabular-nums}

/* readiness + candy + disguise */
.ready{margin-top:1rem;display:grid;gap:.45rem;font-size:.72rem;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
.ready .segs{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.ready .segs i{display:block;height:8px;background:var(--bg3);border:1px solid var(--line);border-radius:2px}
.ready .segs i.on{background:var(--acc);border-color:var(--acc);box-shadow:0 0 8px rgba(77,163,255,.5)}
.ready .lvl{display:flex;justify-content:space-between}
.ready .lvl b{color:var(--fg)}
.candy{margin-top:1.4rem}
.candy .chips{margin-top:.5rem}
.candy .chip{cursor:default;color:var(--fg);border-color:var(--acc-line)}
.candy .chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc);display:inline-block;margin-right:.5em;box-shadow:0 0 6px var(--acc)}
.gen{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--line)}
.gen .out{margin-top:1rem;display:grid;gap:.25rem}
.gen .out:empty{display:none}
.gen .gname{font:700 1.15rem/1.2 var(--fb);text-transform:uppercase;color:var(--acc);letter-spacing:.06em}
.gen .out small{font:600 .72rem/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.gen .out p{color:var(--mute);font-size:.95rem;margin-top:.3rem}
.seg.who{margin-bottom:.8rem}
.seg.who label span{min-height:40px;padding:0 .9em;font-size:.8rem}

.con-title:focus{outline:none}

.qrpanel{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center}
.qrpanel p{font-size:.92rem}
@media (max-width:560px){.qrpanel{grid-template-columns:1fr}}
.subhead{font:600 .74rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:1.8rem 0 .2rem}
.pledges .pr{display:flex;gap:.8rem;align-items:center;flex:none}
.pinbox{display:grid;gap:.2rem;margin:1rem 0;padding:1rem 1.1rem;border:1px dashed var(--acc-line);border-radius:var(--r);background:#000}
.pinbox span{font:600 .7rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.pinbox b{font:400 2rem/1 var(--fd);color:var(--acc);letter-spacing:.16em}
.pinbox small{font-size:13px;color:var(--dim)}
.seg{border:0;padding:0;margin:0;display:grid;gap:.45rem}
.seg legend{padding:0;margin-bottom:.45rem}
.seg>label{display:inline-flex;align-items:center;min-height:44px}
.seg label input{position:absolute;opacity:0;width:1px;height:1px}
.seg label span{display:inline-flex;align-items:center;min-height:44px;padding:0 1.1em;border:1px solid var(--line);border-radius:var(--r);font:600 .86rem/1 var(--fb);color:var(--mute);cursor:pointer}
.seg label input:checked+span{border-color:var(--acc);color:var(--acc);background:var(--acc-soft)}
.seg label input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.seg>div{display:flex;flex-wrap:wrap}

.split3{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"intro form" "extra form";gap:0 clamp(24px,4vw,56px);align-items:start}
.split3>*{min-width:0}
.split3 .intro{grid-area:intro}.split3 .extra{grid-area:extra}.split3 .formarea{grid-area:form;align-self:start}
.split3 .h2{font-size:clamp(1.3rem,2.4vw,1.8rem)}
.split3 .extra{margin-top:1.8rem}
@media (max-width:900px){.split3{grid-template-columns:1fr;grid-template-areas:"intro" "form" "extra"}.split3 .formarea{margin-top:1.4rem}.split3 .extra{margin-top:2rem}}

.console,.console .con-title,.console .con-line,.console .con-keyhead,.console .kp b,.console .con-hint,.console .con-form input,.frag,.typing{font-family:var(--fm)}
.console .btn,.console label.f{font-family:var(--fb)}
.console .con-big{font-family:var(--fd)}
.sky::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 55% at 60% -10%,rgba(77,163,255,.14),transparent 60%),radial-gradient(ellipse 40% 30% at 15% 110%,rgba(77,163,255,.08),transparent 60%)}
/* agents */
.agent .pic{aspect-ratio:3/4;background:linear-gradient(180deg,#0a1024,#03050c);border-radius:var(--r);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;position:relative;margin-bottom:1rem}
.agent .pic svg{width:70%;height:70%}
.agent .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.agent .rank{font:600 .7rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc)}
.agent h3{margin:.4rem 0 .5rem;font-size:1.1rem}
.agent q{display:block;color:var(--mute);font-size:.95rem;quotes:"“" "”"}
/* credits */
.credits{display:grid;grid-template-columns:repeat(3,auto);gap:2.4rem;align-items:end;margin-top:1.4rem}
@media (max-width:700px){.credits{grid-template-columns:1fr;gap:1.2rem}}
.credits small{display:block;font:600 .72rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:.4rem}
.credits b{font:700 .95rem/1.2 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.script{font:400 2.1rem/1 'Great Vibes',cursive;color:var(--hoa);display:block}
.hoa{display:block;font:500 .72rem/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--hoa);opacity:.9}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.agent .pic.ph{border-bottom:1px solid var(--line)}
.ph.pic::after{content:attr(data-ph);position:absolute;bottom:8px;left:8px;font:600 .7rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}

/* ===== projector view ===== */
.results{max-width:1400px;margin:0 auto;padding:clamp(24px,4vw,56px) var(--pad) 60px}
.rhead{display:flex;align-items:center;gap:clamp(16px,3vw,40px);flex-wrap:wrap;margin-bottom:clamp(20px,3vw,40px)}
.rhead .cv{font-size:clamp(3rem,7vw,5.5rem)}
.rhead h1{font-size:clamp(1.3rem,3vw,2.4rem);letter-spacing:.08em}
.rhead .tag{width:100%;margin-top:.2rem}
.rgrid{gap:1.2rem}
.rcat h2{font-size:clamp(1rem,1.8vw,1.3rem);letter-spacing:.08em;margin-bottom:1rem;color:var(--acc2)}
.rrow{display:grid;grid-template-columns:3.2em 1.5fr minmax(60px,.8fr) 2.4em;gap:1rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line);font-size:clamp(1rem,1.6vw,1.3rem)}
.rrow .num{color:var(--acc);font-family:var(--fd);font-size:.9em}
.rrow .who{display:grid}.rrow .who b{font-weight:600}.rrow .who small{color:var(--mute);font-size:.75em}
.rrow .bar{height:10px;background:var(--bg3);border-radius:999px;overflow:hidden}.rrow .bar i{display:block;height:100%;background:var(--acc);transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.rrow .n{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fg)}
.rrow.win .who b{color:var(--acc2)}.rrow.win .num{color:var(--acc2)}
.rrow.win .bar i{background:linear-gradient(90deg,var(--acc),var(--acc2));box-shadow:0 0 14px rgba(77,163,255,.5)}
.results .hint{margin-top:1.6rem;text-align:center}
.acts{display:flex;gap:.4rem}

[data-ev]{white-space:nowrap}
.agent.more{display:grid;align-content:center;text-align:center;border-style:dashed}
.agent.more h3{margin:.4rem 0 .6rem}
.agents{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.split3.pay{grid-template-areas:"intro" "extra" "form"}.split3.pay .formarea{margin-top:2rem}}

@media (max-width:640px){.agent:not(.more){display:grid;grid-template-columns:96px 1fr;grid-template-areas:"pic rank" "pic name" "pic quote";grid-template-rows:auto auto 1fr;gap:.2rem 1rem;align-items:start;padding:1rem}.agent:not(.more) .pic{grid-area:pic;aspect-ratio:3/4!important;margin:0;align-self:center}.agent:not(.more) .rank{grid-area:rank}.agent:not(.more) h3{grid-area:name;margin:.1rem 0 .2rem}.agent:not(.more) q{grid-area:quote}.agent.more{display:block;text-align:center}.agent.more .hint{margin:0 auto}.agents{grid-template-columns:1fr}.agent.more{grid-column:auto}.ph.pic::after{display:none}}

.redact::after{content:"";position:absolute;inset:-12px -6px}
/* host on phones: brand text + Site button go, three actions fit */
@media (max-width:600px){.host-nav .brand>span:not(.cv){display:none}.host-nav .navr .hide-sm{display:none}}
.brand .cv .ah{min-width:.62em}
/* results: sealed rows don't reserve the bar column; winner photo */
.rrow.sealed{grid-template-columns:3.5em 1fr auto}
.rcat h2{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}

.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--dim);cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.linkbtn:hover{color:var(--acc)}
table.t td.acts{position:sticky;right:0;background:var(--bg);box-shadow:-12px 0 12px -8px rgba(0,0,0,.6)}

/* days-only countdown shrink-wraps on every width */
.count.cd-days-only{display:inline-grid;width:auto;grid-auto-flow:column;grid-template-columns:auto}
/* brief grid: 641–900px, the dress-code card takes the full row instead of leaving an empty cell */
@media (min-width:641px) and (max-width:900px){.brief .card:nth-child(3){grid-column:1/-1}}
/* results fits a 1080p projector when revealed */
.rrow .wpic{grid-column:1/-1;width:auto;max-height:clamp(120px,22vh,300px);object-fit:cover;border-radius:var(--r);border:1px solid var(--acc-line);box-shadow:0 0 40px rgba(77,163,255,.25);margin:.4rem auto 0;justify-self:center}
.rcat.haspic .rrow{padding:.45rem 0;font-size:clamp(.92rem,1.1vw,1.1rem)}
@media (min-width:1600px){.results{max-width:1880px}.rgrid{grid-template-columns:repeat(4,1fr)}.rhead{margin-bottom:1.2rem}}
.rback{position:fixed;right:14px;bottom:14px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r);color:var(--dim);text-decoration:none;opacity:.35}
.rback:hover,.rback:focus-visible{opacity:1;color:var(--acc)}
/* intercept console: key legible on a phone, tap-to-highlight */
.kp .gl{width:1.35em;height:1.35em}
@media (max-width:560px){.con-key{grid-template-columns:repeat(7,1fr)}}
.gb{background:none;border:0;padding:.18em;margin:-.18em;font:inherit;line-height:1;color:inherit;cursor:pointer;display:inline-grid;place-items:center;border-radius:3px;position:relative}
.gb::after{content:"";position:absolute;inset:-6px}
.gb .gl{width:1em;height:1em}
.gb.hl .gl,.kp.hl{outline:2px solid var(--acc2);outline-offset:2px}
.kp.hl{background:var(--acc-soft);border-color:var(--acc)}

.vcat .entries{margin-top:.8rem}
.cat{align-content:start}

/* persistent register bar on phones — until the household has registered */
.regbar{display:none}
@media (max-width:900px){
  .regbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:45;display:flex;align-items:center;justify-content:center;gap:.6em;min-height:56px;padding:.8em 1.2em;border-radius:var(--r);background:var(--acc);color:var(--acc-ink);font:700 .95rem/1 var(--fb);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);transform:translateY(120%);transition:transform .3s ease}
  .regbar span{font:500 .72rem/1 var(--fb);letter-spacing:.06em;text-transform:none;opacity:.8;margin-left:.2em}
  .regbar .i{width:18px;height:18px}
  .regbar.show{transform:none}
  .regbar[hidden]{display:none}
  body.has-regbar .toast{bottom:84px}
  body.has-regbar{padding-bottom:80px}
}
@media (max-width:900px){.hero .stampwrap{position:static;display:flex;justify-content:flex-end;padding:0 var(--pad);margin:-.4rem 0 .6rem}.hero .stampwrap .stamp{transform:rotate(-4deg)}}
/* attendees + invite */
.people{display:grid;gap:.5rem}
.prow{display:grid;grid-template-columns:1fr 150px 44px;gap:.5rem}
@media (max-width:480px){.prow{grid-template-columns:1fr 44px}.prow .prole{grid-column:1/2}}
.prow input,.prow select{font:400 .95rem/1.2 var(--fb);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:.8em .9em;min-height:44px;appearance:none;-webkit-appearance:none}
.prow select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234da3ff' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8em center;padding-right:2.2em}
.prow input:focus,.prow select:focus{border-color:var(--acc);outline:none}
.prm{width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:var(--r);cursor:pointer;display:grid;place-items:center}
.prm:hover{color:var(--red);border-color:rgba(255,59,59,.4)}.prm .i{width:16px;height:16px}
#addperson{justify-self:start}
.invtext{white-space:pre-wrap;font:400 .9rem/1.6 var(--fb);color:var(--fg);background:var(--bg);border:1px dashed var(--acc-line);border-radius:var(--r);padding:1rem;margin:.9rem 0 0;user-select:all}
.names{white-space:normal;min-width:220px;line-height:1.5}
/* field question page */
.qpage{max-width:600px}
.qagent{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:center}
.qagent img{width:96px;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);border:1px solid var(--line)}
.qagent .rank{font:600 .7rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc)}
.qagent h1{font-size:1.2rem;margin:.3rem 0 .3rem;letter-spacing:.06em}
.qagent q{color:var(--mute);font-size:.92rem;quotes:"“" "”"}
.qq{font:600 1.35rem/1.3 var(--fb);text-transform:none;letter-spacing:0;margin:.5rem 0 1rem}
.qopts{display:grid;gap:.6rem}
.qopt{text-align:left;font:500 1.05rem/1.3 var(--fb);color:var(--fg);background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;min-height:56px;cursor:pointer;transition:border-color .2s,background .2s}
.qopt:hover{border-color:var(--acc-line);background:var(--acc-soft)}
.qopt.bad{border-color:rgba(255,59,59,.5);color:var(--mute);text-decoration:line-through}
.qprog{margin-top:1.4rem}.qprog b{color:var(--acc)}
.fragbox{margin-top:1rem;padding:1rem 1.1rem;border:1px dashed var(--acc-line);border-radius:var(--r);background:#000;display:grid;gap:.6rem}
.fragbox>span{font:600 .7rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.fragpairs{display:flex;flex-wrap:wrap;gap:1rem}
.fragpairs .pair{display:inline-flex;align-items:center;gap:.5em;font:700 1.4rem/1 var(--fb);color:var(--acc)}
.fragpairs .gl{width:1.4em;height:1.4em}
.fragbox small{font-size:13px;color:var(--dim)}

.agent .more{display:inline-flex;align-items:center;gap:.5em;margin-top:.8rem;font:600 .72rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--acc);text-decoration:none;border-bottom:1px solid var(--acc-line);padding-bottom:.2em}
.agent .more .i{width:14px;height:14px}
.steps .card .num{font:400 .8rem/1 var(--fd);color:var(--acc);letter-spacing:.1em;margin-bottom:.8rem}
.steps .card p b{color:var(--fg)}
.g3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.g3{grid-template-columns:1fr}}
@media (max-width:640px){.agent:not(.more) .more{grid-column:2;grid-row:4}.agent:not(.more){grid-template-areas:"pic rank" "pic name" "pic quote" "pic link";grid-template-rows:auto auto auto auto}}
.qrgrid .qrcard{display:grid;justify-items:start;gap:.4rem}
.qrgrid .qr{width:180px;height:180px;margin-bottom:.6rem}
.qrgrid .qr canvas,.qrgrid .qr img{padding:8px}
.qrgrid .off{opacity:.55;border-style:dashed}
.qrgrid .rank{font:600 .7rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc)}
.qrgrid .mono{font-family:var(--fm);font-size:12px;word-break:break-all}
.qrgrid .ans{font-size:13px;color:var(--mute);line-height:1.6}.qrgrid .ans b{color:var(--acc);margin-right:.3em}
.qagent img.sil{object-fit:contain;background:radial-gradient(ellipse at 50% 60%,rgba(77,163,255,.35),transparent 70%)}

/* known aliens */
.suspect .pic{aspect-ratio:3/4;border-radius:var(--r);background:radial-gradient(ellipse at 50% 60%,rgba(77,163,255,.3),transparent 70%),#050813;border:1px solid var(--line);display:grid;place-items:center;margin-bottom:.9rem;overflow:hidden}
.suspect .pic img{width:78%;height:88%;object-fit:contain}
.suspect .rank{font:600 .7rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--acc)}
.suspect h3{margin:.4rem 0 .3rem;font-size:1.05rem}
.suspect .aka{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:.4rem}
.suspect q{display:block;color:var(--mute);font-size:.92rem;quotes:"“" "”"}
.suspect .more{display:inline-flex;align-items:center;gap:.5em;margin-top:.8rem;font:600 .72rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--acc);text-decoration:none;border-bottom:1px solid var(--acc-line);padding-bottom:.2em}
.suspect .more .i{width:14px;height:14px}
@media (max-width:640px){.suspects{grid-template-columns:repeat(2,1fr)}.suspect .pic{margin-bottom:.6rem}}
.suspect .pic.art img{width:100%;height:100%;object-fit:cover}
.qagent img.sil[src$='.jpg']{object-fit:cover}
.btn.locked{opacity:.62;cursor:not-allowed;box-shadow:none}
