:root{color-scheme:light;--paper:#f8f9f5;--ink:#333333;--muted:#64665d;--line:#d9dcd1;--accent:#c6df4d;--olive:#51620e;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--olive);outline-offset:5px}button:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}.shell{max-width:1280px;margin:auto;padding:0 56px}.masthead{display:flex;align-items:center;justify-content:space-between;min-height:112px;border-bottom:1px solid var(--ink);gap:20px}.identity{display:flex;align-items:baseline;gap:24px}.wordmark{font-size:36px;letter-spacing:-2px;font-weight:900}.brand-dot{color:var(--olive)}.subtitle{font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.2px}.languages{display:flex;align-items:center;gap:4px;font-size:14px}.languages button{border:0;background:none;min-width:44px;min-height:44px;color:var(--muted)}.languages button[aria-pressed=true]{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:6px}.intro{text-align:center;margin:44px 0 34px}.eyebrow{font-size:14px;line-height:1.5;color:var(--muted);margin:0 0 14px}h1{font-size:clamp(32px,4.1vw,58px);letter-spacing:-2px;line-height:1.04;font-weight:750;margin:0 auto;max-width:750px;text-wrap:balance}h1:focus{outline:none}.instruction{font-size:16px;line-height:1.5;margin:18px 0 0;color:var(--muted)}.duel-meta{display:flex;justify-content:space-between;gap:12px;padding:16px 0;border-top:1px solid var(--line);font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.4px}.projection-meta{color:var(--muted)}.arena{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:10px 0 16px;border-bottom:1px solid var(--line)}.territory{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;border:0;background:transparent;padding:10px 16px 8px;border-radius:0;text-align:center}.territory-heading{display:flex;align-items:center;justify-content:center;gap:12px;font-size:22px;font-weight:600;min-height:54px}.letter{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;border:1px solid #85897a;width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:50%;color:var(--muted)}.territory svg{display:block;width:100%;max-width:400px;height:auto;overflow:visible}.land{fill:var(--ink);transition:fill 150ms}.ghost{stroke:#707466;stroke-width:1;stroke-dasharray:3 4;opacity:0;vector-effect:non-scaling-stroke}.revealed .ghost,.revealing .ghost{opacity:.7}.territory.winner .land{fill:#7a8f13}.territory.winner .territory-name{text-decoration:underline;text-decoration-color:var(--olive);text-underline-offset:7px}.area-value{font-size:clamp(19px,2.6vw,30px);font-weight:600;letter-spacing:-.7px;min-height:37px;white-space:nowrap}.area-value small{font-size:14px;letter-spacing:0;font-weight:400}.choice-label{font-size:13px;min-height:24px;margin-top:5px;color:var(--muted);line-height:1.5}.versus{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font:italic 22px Georgia,serif;color:var(--muted)}.initial-note{display:flex;align-items:center;justify-content:center;gap:12px;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1px;color:var(--muted);margin:23px 0 30px}.small-line{width:24px;height:2px;background:var(--olive)}#reveal{display:grid;grid-template-columns:1fr auto;gap:12px 40px;padding:24px 0 20px}.verdict{color:var(--olive);font-size:14px;font-weight:700;margin:0 0 8px}.result-copy h2{font-size:28px;letter-spacing:-.8px;margin:0 0 8px;line-height:1.15}.result-copy p:not(.verdict){font-size:16px;line-height:1.5;margin:4px 0}.result-copy .micro{color:var(--muted)}.result-action{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:12px}#mini-score{font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.primary{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:52px;padding:14px 21px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:16px}.primary:hover{background:var(--olive);border-color:var(--olive)}.result-note{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.65;margin:4px 0 0}footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0 24px;border-top:1px solid var(--ink);font-size:12px;line-height:1.6;color:var(--muted)}footer p{margin:0}.text-button{padding:10px 0;min-height:44px;font-size:14px;background:none;border:0;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}.text-button:hover{color:var(--olive)}#final{text-align:center;min-height:640px;padding:72px 0 80px}#final h1{font-size:clamp(116px,18vw,220px);letter-spacing:-12px;font-weight:600;line-height:1.1;margin:24px auto}.score-slash{font-size:.52em;letter-spacing:-5px;color:var(--muted);font-weight:400;margin-left:12px}#final h2{font-size:28px;letter-spacing:-.5px;margin:20px 0 12px}#final p:not(.eyebrow){font-size:16px;color:var(--muted)}#final .primary{margin:34px auto 0;min-width:240px}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--ink);padding:32px 40px;max-width:680px;width:calc(100% - 32px);max-height:85dvh;line-height:1.65}dialog::backdrop{background:rgba(30,33,25,.45)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:-32px;background:var(--paper)}.dialog-top .eyebrow{margin:0}dialog h2{font-size:32px;line-height:1.1;letter-spacing:-1px;margin:20px 0}dialog h3{font-size:17px;margin:28px 0 8px}dialog p{font-size:16px;margin:0 0 10px}.sources{padding-left:20px;font-size:14px}a{color:var(--olive)}.source-date{font-size:12px;color:var(--muted);margin-top:24px}.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}.skip{position:fixed;top:-80px;left:16px;background:var(--ink);color:white;padding:16px;z-index:5}.skip:focus{top:16px}#error{padding:20px;border:1px solid var(--ink)}
@media(hover:hover){.territory:not(:disabled):hover .land{fill:var(--olive)}.territory:not(:disabled):hover .territory-name{text-decoration:underline;text-underline-offset:7px}}
@media(min-width:1200px) and (min-height:900px){.intro{margin-top:56px;margin-bottom:42px}}
@media(max-width:900px){.shell{padding:0 32px}.identity{gap:16px}.subtitle{font-size:11px}.arena{gap:24px}.territory{padding:8px}.territory-heading{font-size:20px}.letter{display:none}.intro{margin:34px 0 26px}.territory svg{max-width:340px}}
@media(max-width:600px){.shell{padding:0 20px}.masthead{min-height:89px;gap:12px}.identity{display:block}.wordmark{font-size:29px;letter-spacing:-1.6px}.subtitle{display:block;font-size:10px;letter-spacing:.8px;margin-top:4px}.languages{gap:0}.languages button{min-width:44px}.intro{margin:30px 0 25px}.eyebrow{font-size:12px;max-width:290px;margin:0 auto 14px;line-height:1.5}h1{font-size:36px;letter-spacing:-1.4px;max-width:350px}.instruction{font-size:14px;max-width:270px;margin:14px auto 0}.duel-meta{font-size:10px;letter-spacing:0;padding:13px 0}.arena{gap:12px;padding:2px 0 10px}.territory{padding:4px 0}.territory-heading{font-size:16px;line-height:1.25;min-height:56px;max-width:150px}.territory svg{margin:4px 0 6px}.versus{font-size:16px;top:48%}.area-value{font-size:19px;min-height:25px;letter-spacing:-.6px}.area-value small{font-size:12px}.choice-label{font-size:11px;min-height:33px;max-width:145px}.initial-note{margin:18px 0 22px;font-size:10px}#reveal{grid-template-columns:1fr;gap:16px;padding:18px 0}.result-copy h2{font-size:25px}.result-copy p:not(.verdict){font-size:14px}.result-action{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.primary{font-size:14px;padding:12px 16px;gap:16px;min-height:48px}.result-note{font-size:11px;margin:0}footer{align-items:flex-start;gap:12px;padding:15px 0 20px;font-size:10px}footer p{max-width:200px}footer .text-button{font-size:12px;padding:0;min-height:44px}#final{min-height:530px;padding:55px 0 60px}#final h1{letter-spacing:-8px}#final h2{font-size:25px}#final p:not(.eyebrow){font-size:14px}dialog{padding:20px;max-height:90dvh}.dialog-top{top:-20px}.dialog-top .eyebrow{margin:0}dialog h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.land{fill:ButtonText}.territory.winner .land{fill:Highlight}.ghost{stroke:GrayText}.primary{border:1px solid ButtonText}}
/* Reserve the scrollbar before the reveal: no incidental change of SVG scale. */
html{overflow-y:scroll}
@media(max-width:600px){.instruction{min-height:42px}}
@media(max-width:900px){.subtitle{font-size:12px}}
@media(max-width:600px){.subtitle{font-size:12px;letter-spacing:.3px}.languages button{min-width:44px}.duel-meta{font-size:12px}.projection-meta{text-align:right;max-width:62%}.choice-label{font-size:12px;min-height:36px}.initial-note{font-size:12px}.result-note{font-size:12px}footer{font-size:12px}footer p{max-width:185px}footer .text-button{min-height:44px}}
/* V1: keep the next action within reach, and the final score uncluttered. */
#final .final-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}
#final .final-actions .primary{margin:0;min-width:220px;justify-content:center}
#replay{background:transparent;color:var(--ink)}#replay:hover{background:var(--accent)}
#share:disabled{opacity:.65;cursor:wait}
#share-status{line-height:1.5;max-width:540px;margin:24px auto}
#share-manual{display:block;max-width:540px;margin:20px auto;text-align:left;font-size:14px;line-height:1.5}
#share-text{display:block;width:100%;margin-top:10px;padding:12px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--ink);resize:vertical}
#share-text:focus-visible{outline:3px solid var(--olive);outline-offset:3px}
.territory-heading{overflow-wrap:anywhere}
@media(max-width:600px){
 .has-reveal .shell{padding-bottom:82px}
 #reveal .result-action{position:fixed;z-index:3;bottom:0;left:0;right:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
 #finish{width:100%;min-height:48px}
 #final .final-actions{flex-direction:column;align-items:stretch}
 #final h1{font-size:clamp(104px,29vw,160px);letter-spacing:-6px}
 .score-slash{letter-spacing:-3px;margin-left:8px}
}
@media(min-width:601px){
 .masthead{min-height:88px}.intro{margin:26px 0 22px}
 h1{font-size:clamp(36px,3.5vw,48px);max-width:820px}
 .eyebrow{margin-bottom:10px}.instruction{margin-top:12px}
 .territory svg{max-width:280px}.territory-heading{min-height:44px}
 .area-value{font-size:26px;min-height:32px}
 #reveal{padding:18px 0;gap:10px 30px}.result-copy h2{font-size:25px}
}
@media(min-width:601px) and (max-height:800px){
 .has-reveal .shell{padding-bottom:68px}
 #reveal .result-action{position:fixed;z-index:3;bottom:16px;right:max(32px,calc((100vw - 1168px)/2));}
}
@media(max-width:600px){
 .masthead{min-height:80px}.intro{margin:22px 0 18px}
 h1{font-size:30px;letter-spacing:-1px;line-height:1.08}
 .eyebrow{margin-bottom:10px}.instruction{margin-top:12px}
 .result-copy h2{font-size:22px}
}
/* V1.1 theatrical layer: geographic origin and result share one stable arena. */
.arena{isolation:isolate;min-height:0}.map-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:visible}
.world-land{fill:#91958a}.world-group{opacity:.13}.entering .world-group{opacity:.45}
.graticule{stroke:#777d6c;stroke-width:.007}.equator{stroke:#6a715e;stroke-width:.012}
.extracted{fill:var(--ink)}.territory{position:relative}.entering .territory svg{visibility:hidden}
.entering .map-scene{z-index:1}.entity-type{display:block;margin-top:7px;font:11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.8px;color:var(--muted)}
.territory.selected .territory-name{text-decoration:underline;text-underline-offset:6px}.territory.winner .land{fill:#7a8f13}
.duel-meta{align-items:center}.pace{border:1px solid var(--line);background:transparent;min-height:44px;padding:6px 12px;font:12px Arial}.pace[aria-pressed=false]{background:var(--accent)}
#last-round{font-size:11px;letter-spacing:.4px;color:var(--olive)}
#question{min-height:1.1em}.intro{min-height:146px}.revealed #question{color:var(--ink);font-size:clamp(32px,4vw,52px)}
#reveal{display:block;min-height:100px;text-align:center;padding:14px 0 20px;cursor:pointer}
#reveal .micro{font-size:16px;line-height:1.4;margin:0 0 16px}.countdown{height:3px;background:var(--line);max-width:260px;margin:0 auto;overflow:hidden}
#time-bar{display:block;width:100%;height:100%;background:var(--olive);transform-origin:left}
.advance-hint{font:12px/1.4 Arial;color:var(--muted);margin:9px 0 0}
#entry-note{min-height:24px;margin:18px 0;text-align:center;font:13px/1.4 Arial;color:var(--muted);letter-spacing:0}
#challenge-code{font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:1px}
@media(min-width:601px){.territory svg{max-width:320px}.intro{margin:22px 0 14px}.territory-heading{min-height:58px}}
@media(max-width:600px){
 .intro{margin:20px 0 12px;min-height:153px}.revealed #question{font-size:32px;min-height:65px}
 .duel-meta{gap:8px;flex-wrap:wrap;padding:7px 0}.projection-meta{font-size:10px;max-width:50%;margin-left:auto}.pace{font-size:11px;min-height:44px;padding:5px 8px}
 .entity-type{font-size:10px;letter-spacing:.2px;min-height:12px}.territory-heading{font-size:15px;min-height:67px}
 .area-value{font-size:16px;letter-spacing:-.4px}.choice-label{font-size:11px;min-height:31px}
 #reveal{min-height:105px;padding:12px 0 16px}#reveal .micro{font-size:14px;margin-bottom:12px}
 #last-round{font-size:10px}.instruction{min-height:38px}
}
@media(forced-colors:active){.world-land{fill:GrayText}.extracted{fill:ButtonText}.pace{border-color:ButtonText}.countdown{background:Canvas}.countdown span{background:ButtonText}}

.origin-marker{fill:none;stroke:#536410;stroke-width:1.5px}.countdown{pointer-events:none}

/* V1.2: a symmetric editorial rail keeps the pace control centred over the map. */
.duel-meta{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
.round-meta{display:flex;align-items:center;gap:10px;min-width:0;justify-self:start}
.duel-meta .pace{justify-self:center}
.duel-meta .projection-meta{justify-self:end;text-align:right;min-width:0}
.locating .world-group{opacity:.5}
.locating .origin-marker{stroke-width:2px}
.locating .extracted path{fill:#667a12;stroke:var(--paper);stroke-width:.8px;vector-effect:non-scaling-stroke}

/* Footer links form one compact editorial line. */
.footer-nav{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.footer-nav .text-button,.footer-nav .all-games-link,.footer-nav .manoux-signature{display:inline-flex;align-items:center;min-height:34px;padding:0;color:var(--ink);font-size:12px;font-weight:600;line-height:1;text-decoration:none;text-underline-offset:4px;white-space:nowrap}
.footer-nav .text-button{border:0;background:none}
.footer-nav .text-button:hover,.footer-nav .all-games-link:hover,.footer-nav .manoux-signature:hover{color:var(--olive);text-decoration:underline}
.manoux-signature{gap:7px}
.manoux-orb{display:grid;place-items:center;width:34px;height:34px;overflow:hidden;border-radius:50%;background:var(--ink);flex:none}
.manoux-orb img{display:block;width:34px;height:34px;flex:none}
.footer-separator{color:var(--muted);line-height:1}
.final-ecosystem{display:flex;flex-direction:column;align-items:center;gap:18px;margin:34px auto 0}
.final-ecosystem .all-games-link{font-size:15px;font-weight:700}

@media(max-width:600px){
 .duel-meta{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px;flex-wrap:nowrap}
 .round-meta{align-items:flex-start;flex-direction:column;gap:2px}
 .duel-meta .projection-meta{max-width:none;margin-left:0;line-height:1.25}
 footer{display:grid;grid-template-columns:1fr;gap:9px}
 footer p{max-width:none}
 .footer-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 8px;width:100%}
 .footer-nav .all-games-link{align-self:center}
 .footer-nav .text-button{min-height:32px}
 .footer-nav .manoux-signature{width:100%;justify-content:flex-end;margin-top:3px}
 .footer-nav .manoux-orb{width:31px;height:31px}
 .footer-nav .manoux-orb img{width:31px;height:31px}
 .footer-separator{display:none}
 .final-ecosystem{gap:16px;margin-top:30px}
}

/* V1.3: the final world is a non-interactive, low-contrast narrative layer. */
#final{position:relative;isolation:isolate;overflow:hidden}
#final-world{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.final-content{position:relative;z-index:2;isolation:isolate}
#final-perspective{font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:.25px;margin:16px auto 0;max-width:360px;color:var(--muted)!important}

/* RC3: olive controls keep dark text in every interactive state. */
.primary:hover,.primary:active{background:var(--olive);border-color:var(--olive);color:var(--ink)}
@media(max-width:600px){
 #final{min-height:570px;padding-top:48px}
 #final-perspective{font-size:11px;margin-top:13px;max-width:290px}
}
