@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{--ink:#080808;--acid:#d8ff00;--paper:#f2f0e9;--muted:#9b9b91;--aim-x:50%;--aim-y:50%}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;overflow-x:hidden;background:var(--ink);color:var(--paper);font-family:'IBM Plex Mono',monospace}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--acid);color:var(--ink)}
.grain{position:fixed;inset:0;z-index:50;opacity:.055;pointer-events:none;background-image: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='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.topbar{height:72px;padding:0 26px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #282828;position:relative;z-index:10}.wordmark{display:flex;align-items:center;gap:12px;font-size:.78rem;letter-spacing:.14em}.gem{display:grid;place-items:center;width:31px;height:31px;background:var(--acid);color:var(--ink);font-family:'Archivo Black',sans-serif;font-size:1rem;transform:rotate(-4deg)}.signal{font-size:.63rem;letter-spacing:.17em;color:#8d8d84}.signal span{display:inline-block;width:7px;height:7px;background:var(--acid);border-radius:50%;margin-right:8px;box-shadow:0 0 16px var(--acid);animation:pulse 1.6s infinite}.sound-toggle{justify-self:end;border:0;background:none;color:#8d8d84;font-size:.68rem;letter-spacing:.13em;cursor:pointer}
.hero{min-height:calc(100vh - 72px);position:relative;overflow:hidden;border-bottom:1px solid #282828;padding:62px 28px 88px}.ticker{position:absolute;left:0;width:100%;height:30px;overflow:hidden;background:var(--acid);color:var(--ink);font-size:.68rem;font-weight:600;letter-spacing:.14em;line-height:30px;white-space:nowrap;z-index:5}.ticker div{width:max-content;animation:marquee 18s linear infinite}.ticker-top{top:0;transform:rotate(-1deg) scale(1.02)}.ticker-bottom{bottom:0;transform:rotate(1deg) scale(1.02)}.ticker-bottom div{animation-direction:reverse;animation-duration:23s}
.hero-copy{position:relative;z-index:2;margin-top:38px}.edition{font-size:.62rem;letter-spacing:.18em;color:#85857e;margin:0 0 14px}.hero h1{font-family:'Archivo Black',sans-serif;font-size:clamp(5.3rem,16.2vw,15.5rem);line-height:.74;letter-spacing:-.075em;margin:0;text-transform:uppercase}.hero h1 span{display:block}.line-one{margin-left:-.04em}.line-two{color:transparent;-webkit-text-stroke:2px var(--paper);margin-left:.42em}.manifesto{position:absolute;left:3%;top:58%;font-size:clamp(.72rem,1vw,.9rem);line-height:1.55;color:#aaa99f;text-transform:uppercase;letter-spacing:.08em}
.specimen{--cut-pct:50%;position:absolute;right:5vw;top:17%;width:min(37vw,530px);aspect-ratio:.92;display:grid;grid-template-rows:1fr auto auto;align-items:center;z-index:3;isolation:isolate;outline:none;user-select:none;-webkit-user-select:none}.specimen:focus-visible{outline:1px solid var(--acid);outline-offset:8px}.fruit-stage{position:relative;width:100%;aspect-ratio:1;grid-row:1;touch-action:none;cursor:ew-resize;filter:drop-shadow(0 24px 42px rgba(0,0,0,.45))}.object-half{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;transition:transform .48s cubic-bezier(.18,.9,.24,1);will-change:transform}.object-half img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.object-left{clip-path:inset(0 calc(100% - var(--cut-pct)) 0 0)}.object-right{clip-path:inset(0 0 0 var(--cut-pct))}.cut-line{position:absolute;top:8%;bottom:5%;left:var(--cut-pct);width:2px;background:var(--paper);z-index:5;box-shadow:0 0 18px rgba(255,255,255,.65);transform:translateX(-1px);transition:opacity .2s}.cut-line:before{content:"";position:absolute;left:50%;top:-2px;width:42px;height:42px;border:1px solid var(--paper);border-radius:50%;transform:translate(-50%,-50%);background:rgba(8,8,8,.72)}.cut-line:after{content:"↕";position:absolute;left:50%;top:-2px;transform:translate(-50%,-50%) rotate(90deg);font-size:.75rem}.cut-line span{position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);font-size:.5rem;letter-spacing:.14em;color:#8b8b83}.cut-result{grid-row:2;margin:8px 0 9px;text-align:center;color:var(--acid);font-family:'Archivo Black';font-size:clamp(1rem,1.8vw,1.5rem);line-height:1;letter-spacing:-.02em;min-height:1.2em;text-transform:uppercase}.interaction-hint{grid-row:3;margin:0;text-align:center;font-size:.56rem;letter-spacing:.14em;color:#777770}.mobile-hint{display:none}.specimen.aiming .cut-line{background:var(--acid);box-shadow:0 0 22px var(--acid)}.specimen.cut .object-left{transform:translate(-13px,8px) rotate(-3deg)}.specimen.cut .object-right{transform:translate(13px,-8px) rotate(3deg)}.specimen.perfect .cut-result{animation:perfect-flash .5s steps(2, end) 3}
.game-list{position:relative;z-index:6;margin:clamp(170px,20vw,290px) 0 0 4%;max-width:690px}.game-docket{border-top:1px solid #363633;padding:17px 0;display:grid;grid-template-columns:70px 1.25fr 1fr auto;gap:24px;align-items:center}.docket-no{font-family:'Archivo Black';font-size:2.5rem;color:var(--acid)}.eyebrow{font-size:.58rem;letter-spacing:.17em;color:#8c8c84}.game-docket h2,.game-teaser h2{margin:5px 0 0;font-family:'Archivo Black';font-size:1.55rem}.game-docket p{font-size:.67rem;line-height:1.6;color:#aaa99f}.game-docket p strong{color:var(--paper)}.arrow-link{font-size:.61rem;letter-spacing:.12em;white-space:nowrap}.arrow-link span{display:inline-grid;place-items:center;width:32px;height:32px;margin-left:8px;border:1px solid #555;border-radius:50%;transition:.2s}.arrow-link:hover span{background:var(--acid);border-color:var(--acid);color:var(--ink);transform:rotate(45deg)}.game-teaser{border-top:1px solid #363633;border-bottom:1px solid #363633;padding:15px 0;display:grid;grid-template-columns:70px 1fr;gap:24px;align-items:center;overflow:hidden}.game-teaser .docket-no{color:#45453f}.game-teaser h2{font-size:clamp(1.5rem,2.4vw,2.4rem);letter-spacing:-.04em;color:#777770;transition:color .2s,transform .2s}.game-teaser:hover h2{color:var(--paper);transform:translateX(5px)}
.intermission{min-height:76vh;background:var(--acid);color:var(--ink);display:grid;grid-template-columns:1fr 110px 1fr;align-items:center;padding:6vw;font-family:'Archivo Black';font-size:clamp(3.4rem,8vw,8rem);line-height:.85;letter-spacing:-.07em}.intermission p:first-child{text-align:right}.slash{height:70%;width:2px;background:var(--ink);justify-self:center;transform:rotate(18deg)}
.footer{padding:7vw 4vw 0;background:var(--ink)}.footer-statement{font-family:'Archivo Black';font-size:clamp(4rem,11.5vw,12rem);line-height:.76;letter-spacing:-.075em;color:var(--paper)}.blink{color:var(--acid);animation:blink .8s step-end infinite}.footer-columns{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;margin:8vw 0 5vw;border-top:1px solid #2d2d2a;padding-top:26px}.footer-columns>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-columns span{font-size:.59rem;color:#66665f;letter-spacing:.16em;margin-bottom:8px}.footer-columns a{font-size:.75rem}.footer-columns a:hover{color:var(--acid)}.legal-strip{border-top:1px solid #2d2d2a;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#66665f;font-size:.55rem;letter-spacing:.08em}

/* Content and legal pages */
.content-page{background:#ebe9e0;color:#0c0c0b;min-height:100vh}.content-page .topbar{border-color:#cbc9c0}.content-page .wordmark .gem{background:#0c0c0b;color:var(--acid)}.content-page .back-link{justify-self:end;font-size:.65rem;letter-spacing:.12em}.page-hero{padding:11vw 5vw 6vw;border-bottom:1px solid #c7c5bc;position:relative;overflow:hidden}.page-hero:after{content:attr(data-index);position:absolute;right:2vw;bottom:-.2em;font-family:'Archivo Black';font-size:clamp(10rem,28vw,28rem);line-height:.8;color:transparent;-webkit-text-stroke:1px #cfcdc4;z-index:0}.page-hero>*{position:relative;z-index:1}.page-label{font-size:.62rem;letter-spacing:.18em}.page-hero h1{font-family:'Archivo Black';font-size:clamp(4rem,10vw,9rem);line-height:.82;letter-spacing:-.07em;margin:.25em 0}.page-intro{max-width:720px;font-size:clamp(1rem,1.8vw,1.4rem);line-height:1.45}.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.tag{border:1px solid #aaa89f;border-radius:99px;padding:8px 12px;font-size:.58rem;letter-spacing:.08em}.legal-layout{display:grid;grid-template-columns:280px minmax(0,820px);gap:7vw;padding:6vw 5vw 10vw;justify-content:center}.legal-nav{position:sticky;top:30px;align-self:start;display:flex;flex-direction:column;border-top:2px solid #111}.legal-nav a{border-bottom:1px solid #cbc9c0;padding:11px 2px;font-size:.64rem;text-transform:uppercase}.legal-nav a:hover{padding-left:8px;background:var(--acid)}.legal-body section{padding:0 0 44px;margin:0 0 44px;border-bottom:1px solid #cbc9c0;scroll-margin-top:20px}.legal-body h2{font-family:'Archivo Black';font-size:clamp(1.45rem,2.5vw,2.3rem);letter-spacing:-.04em;margin:0 0 22px}.legal-body h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin:28px 0 8px}.legal-body p,.legal-body li{font-family:Arial,sans-serif;font-size:1rem;line-height:1.72;color:#31312e}.legal-body a{text-decoration:underline;text-underline-offset:3px}.legal-callout{background:var(--acid);padding:24px;margin:26px 0;font-family:Arial,sans-serif;line-height:1.55}.simple-footer{background:#0b0b0b;color:#eee;padding:32px 5vw}.simple-footer .legal-strip{border:0;min-height:0}
.game-page .page-hero{min-height:68vh;background:var(--acid);display:flex;flex-direction:column;justify-content:flex-end}.game-page .page-hero:after{content:'50';-webkit-text-stroke:1px rgba(0,0,0,.18);color:transparent}.game-page .page-hero h1{font-size:clamp(5rem,15vw,15rem)}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #222;border-left:1px solid #222;margin:0 5vw 8vw}.mode{padding:32px;min-height:220px;border-right:1px solid #222;border-bottom:1px solid #222}.mode span{font-size:.58rem;letter-spacing:.14em}.mode h2{font-family:'Archivo Black';font-size:2rem;margin:50px 0 10px}.mode p{font-family:Arial,sans-serif;line-height:1.5}.support-band{margin:0 5vw 8vw;background:#0b0b0b;color:#eee;padding:42px;display:flex;justify-content:space-between;align-items:center;gap:30px}.support-band h2{font-family:'Archivo Black';font-size:clamp(2rem,5vw,4rem);margin:0}.support-band a{border:1px solid #777;padding:15px 20px;font-size:.7rem;letter-spacing:.1em}.support-band a:hover{background:var(--acid);color:#111;border-color:var(--acid)}

@keyframes marquee{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.25}}@keyframes blink{50%{opacity:0}}@keyframes perfect-flash{50%{opacity:.2;transform:scale(1.08)}}
@media (min-width:901px){
  .hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(0,1.62fr) minmax(340px,.78fr);grid-template-rows:auto 1fr auto;column-gap:clamp(28px,4vw,78px);align-items:start;padding:72px 3.5vw 86px}
  .hero-copy{grid-column:1;grid-row:1/3;min-width:0;margin-top:18px}
  .hero h1{font-size:clamp(6rem,10.8vw,13.2rem);line-height:.78;letter-spacing:-.068em}
  .line-two{margin-left:.14em}
  .manifesto{position:static;max-width:390px;margin:clamp(30px,4vh,54px) 0 0 4vw}
  .specimen{position:relative;right:auto;top:auto;grid-column:2;grid-row:1/4;width:100%;max-width:560px;justify-self:end;align-self:center;margin-top:12px}
  .game-list{grid-column:1;grid-row:3;width:min(100%,760px);max-width:none;margin:28px 0 0 4vw}
}
@media (max-width:900px){.topbar{grid-template-columns:1fr auto}.signal{display:none}.hero{min-height:auto;padding-left:18px;padding-right:18px}.hero h1{font-size:clamp(5.1rem,25vw,10rem);line-height:.76}.line-two{margin-left:.08em}.manifesto{position:static;margin:28px 0 0}.specimen{position:relative;right:auto;top:auto;width:min(88vw,440px);margin:8vw auto 0;aspect-ratio:.93}.mobile-hint{display:inline}.desktop-hint{display:none}.game-list{margin:30px 0}.game-docket{grid-template-columns:55px 1fr}.game-docket p{grid-column:2}.game-docket .arrow-link{grid-column:2}.game-teaser{grid-template-columns:55px 1fr}.intermission{grid-template-columns:1fr;gap:30px;text-align:center;min-height:58vh}.intermission p:first-child{text-align:center}.slash{width:50%;height:2px;transform:rotate(-5deg)}.footer-columns{grid-template-columns:1fr 1fr}.footer-columns>div:first-child{grid-column:1/-1}.legal-strip{flex-direction:column;align-items:flex-start;padding:22px 0}.legal-layout{grid-template-columns:1fr}.legal-nav{position:static;display:grid;grid-template-columns:repeat(2,1fr)}.mode-grid{grid-template-columns:1fr}.mode{min-height:auto}.support-band{align-items:flex-start;flex-direction:column}}
@media (max-width:520px){.topbar{height:62px;padding:0 15px;gap:10px}.wordmark{font-size:.66rem;min-width:0}.wordmark>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sound-toggle{font-size:.56rem;min-height:44px}.hero{padding-top:54px;padding-bottom:70px}.hero-copy{margin-top:28px}.hero h1{font-size:23vw}.edition{font-size:.57rem}.manifesto{font-size:.68rem;line-height:1.55}.specimen{width:calc(100vw - 52px);margin:30px auto 0;aspect-ratio:.9}.cut-result{font-size:1rem;min-height:2em;display:grid;place-items:center}.interaction-hint{font-size:.5rem;line-height:1.5}.game-list{margin:24px 0 30px}.game-docket{grid-template-columns:42px minmax(0,1fr);gap:10px 14px;padding:14px 0}.game-docket h2{font-size:1.25rem}.game-docket p{font-size:.64rem;margin:0}.game-docket .arrow-link{display:flex;align-items:center;min-height:44px;font-size:.58rem;white-space:normal}.game-docket .arrow-link span{flex:0 0 32px}.game-teaser{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:14px 0}.game-teaser h2{font-size:1.55rem;overflow-wrap:anywhere}.docket-no{font-size:1.55rem}.footer{padding-top:18vw}.footer-columns{grid-template-columns:1fr}.footer-columns>div:first-child{grid-column:auto}.page-hero{padding-top:20vw}.legal-layout{padding-top:12vw}.legal-nav{grid-template-columns:1fr 1fr}.simple-footer .legal-strip{font-size:.52rem}.support-band{padding:26px}}
@media (max-width:360px){.wordmark{gap:8px}.wordmark>span:last-child{max-width:118px}.hero h1{font-size:22.5vw}.game-teaser h2{font-size:1.35rem}.legal-nav{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* The footer carries its own colours.
   It has a dark background (--ink) but `a { color: inherit }` means its links
   take whatever the page body sets. That is fine on the landing page, which
   is dark with light text — and invisible on .content-page, which is a light
   theme with near-black text, so every footer link rendered near-black on
   near-black. Stating the colours here rather than relying on inheritance
   means the footer looks the same wherever it is put. */
.footer, .simple-footer { color: var(--paper); }
.footer a, .simple-footer a { color: var(--paper); }
.footer .footer-columns span { color: #8e8e85; }
.footer .legal-strip, .simple-footer .legal-strip { color: var(--muted); }
.footer a:hover, .simple-footer a:hover { color: var(--acid); }

/* Launch countdown and the notify list.
   Sets its own colours rather than inheriting, for the same reason the footer
   does: this band is dark and it sits on the light .content-page as well as
   the dark landing page, so anything it leaves to inheritance renders
   correctly in exactly one of the two places. */
.launch{margin:0 5vw 8vw;background:#0b0b0b;color:var(--paper);padding:clamp(26px,5vw,56px);display:grid;gap:clamp(22px,4vw,40px)}
.launch-label{margin:0;font-size:.62rem;letter-spacing:.18em;color:var(--acid)}
.launch h2{margin:.2em 0 0;font-family:'Archivo Black';font-size:clamp(2.2rem,6.4vw,5rem);line-height:.86;letter-spacing:-.055em;text-transform:uppercase}
.launch-sub{margin:14px 0 0;max-width:46ch;font-size:.8rem;line-height:1.65;color:#a5a59b}

.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(7px,1.5vw,18px);max-width:620px}
.countdown div{border-top:1px solid #2f2f2b;padding-top:11px}
.countdown b{display:block;font-family:'Archivo Black';font-size:clamp(1.7rem,4.8vw,3.2rem);line-height:1;letter-spacing:-.04em;color:var(--acid);font-variant-numeric:tabular-nums}
.countdown span{font-size:.54rem;letter-spacing:.15em;color:#8e8e85}

.notify{display:grid;gap:13px;max-width:560px;margin:0}
.notify-row{display:flex;gap:10px;flex-wrap:wrap}
.notify input[type=email]{flex:1 1 230px;min-width:0;padding:15px 16px;border:1px solid #474742;background:transparent;color:var(--paper);font:inherit;font-size:.84rem;border-radius:0}
.notify input[type=email]::placeholder{color:#6b6b64}
.notify input[type=email]:focus{outline:none;border-color:var(--acid)}
.notify button{padding:15px 22px;border:0;background:var(--acid);color:var(--ink);font:inherit;font-size:.68rem;font-weight:600;letter-spacing:.12em;cursor:pointer}
.notify button:hover{background:var(--paper)}
.notify button[disabled]{opacity:.45;cursor:default}
.notify-consent{margin:0;font-size:.65rem;line-height:1.65;color:#8e8e85}
.notify-consent a{color:#c9c9bf;text-decoration:underline;text-underline-offset:3px}
.notify-consent a:hover{color:var(--acid)}
/* Reserves its line so the layout doesn't jump when a message appears. */
.notify-status{margin:0;min-height:1.3em;font-size:.72rem;line-height:1.3}
.notify-status.is-ok{color:var(--acid)}
.notify-status.is-bad{color:#ff9070}

/* The honeypot. Off-screen rather than display:none, because some bots skip
   fields they can tell are hidden — and hidden from assistive tech too, so
   nobody using a screen reader is ever asked to fill it in. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (max-width:520px){.countdown{gap:6px}.countdown span{font-size:.5rem;letter-spacing:.1em}.notify button{width:100%}}
