:root{--ink:#0b2c3d;--navy:#0c3b50;--cream:#fff8df;--paper:#f9edc8;--teal:#13aab4;--teal-dark:#087787;--lava:#ff5a30;--orange:#ff8b2d;--yellow:#ffd44a;--green:#35b76b;--muted:#5a6c70;font-family:"Avenir Next","Trebuchet MS",system-ui,sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html,body{width:100%;height:100%;min-width:1080px}body{margin:0;overflow:hidden;background:#092b3b}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:4px solid #fff;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.game{height:100vh;min-height:720px;display:grid;grid-template-rows:72px 1fr;background:var(--navy)}.hud{z-index:20;display:grid;grid-template-columns:280px 1fr auto;align-items:center;gap:24px;padding:10px 26px;color:#fff;background:#082f41;border-bottom:3px solid #061f2b;box-shadow:0 5px 0 rgba(0,0,0,.12)}.brand,.meters{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:45px;height:45px;display:grid;place-items:center;border:3px solid #fff;border-radius:14px;background:var(--orange);box-shadow:0 4px 0 #bc501d;font-size:28px;font-weight:1000;transform:rotate(-4deg)}.brand small,.mission small,.meter small{display:block;color:#a9e6e9;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.brand strong{font-size:20px;letter-spacing:.08em}.mission{text-align:center}.mission strong{display:block;margin-top:2px;font-size:18px}.meters{gap:8px}.meter{min-width:75px;padding:7px 11px;border:2px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(255,255,255,.06);text-align:center}.meter strong{font-size:17px}.meter.streak strong{color:#ffd55c}.mute{width:44px;height:44px;border:2px solid rgba(255,255,255,.35);border-radius:13px;color:#fff;background:rgba(255,255,255,.08);cursor:pointer;font-size:22px;font-weight:1000}.sound-off,.mute[aria-pressed=true] .sound-on{display:none}.mute[aria-pressed=true] .sound-off{display:inline}
.playfield{position:relative;min-height:0;overflow:hidden}.world-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05) brightness(.88)}.playfield:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,36,47,.45),transparent 27%,transparent 76%,rgba(6,36,47,.32));pointer-events:none}.sun-glow{position:absolute;left:50%;top:0;width:750px;height:360px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(255,238,156,.5),transparent 68%);pointer-events:none}.status-ribbon{position:absolute;z-index:6;top:16px;left:50%;width:min(880px,calc(100% - 420px));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:16px}.status-ribbon>span{padding:7px 13px;border:2px solid var(--ink);border-radius:999px;color:#fff;background:var(--orange);box-shadow:0 3px 0 var(--ink);font-size:11px;font-weight:1000;letter-spacing:.12em;text-transform:uppercase}.campaign-pips{display:flex;gap:8px}.campaign-pips i{width:42px;height:8px;border:2px solid var(--ink);border-radius:99px;background:#fff8df}.campaign-pips i.done{background:var(--green)}.campaign-pips i.current{background:var(--yellow);transform:scaleY(1.35)}.difficulty{display:flex;align-items:center;gap:9px;padding:6px 10px;border:2px solid var(--ink);border-radius:12px;background:rgba(255,248,223,.94);font-size:10px;font-weight:900;text-transform:uppercase}.difficulty i{width:92px;height:8px;overflow:hidden;border-radius:99px;background:#c8d5cc}.difficulty i b{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--orange));transition:width .25s ease-out}.difficulty small{color:var(--teal-dark);font-weight:1000}
.geo{position:absolute;z-index:8;left:8px;bottom:0;width:224px;height:530px;pointer-events:none}.geo img{position:absolute;left:4px;bottom:-100px;width:215px;height:auto;filter:drop-shadow(0 10px 0 rgba(5,34,45,.25));transform-origin:50% 80%;transition:transform .18s ease-out}.speech{position:absolute;z-index:2;top:50px;left:72px;width:190px;padding:13px 15px;border:3px solid var(--ink);border-radius:19px 19px 19px 5px;background:var(--cream);box-shadow:5px 5px 0 var(--ink);font-size:13px;font-weight:900;line-height:1.25}.geo.is-cheering img{animation:geo-cheer .65s ease-out}.geo.is-thinking img{transform:rotate(-2deg) translateY(3px)}
.earth-lab{--move:0px;position:absolute;z-index:4;left:50%;top:58px;width:min(880px,calc(100% - 420px));height:510px;transform:translateX(-50%);overflow:hidden;border:4px solid var(--ink);border-radius:30px;background:linear-gradient(#8adce7 0 30%,#ef8743 30%);box-shadow:0 10px 0 rgba(4,31,42,.34),inset 0 0 0 3px rgba(255,255,255,.36)}.cutaway{width:100%;height:100%;display:block}.stage-label{position:absolute;z-index:5;left:18px;top:16px;display:flex;align-items:center;gap:8px}.stage-label span,.stage-label strong{padding:7px 11px;border:2px solid var(--ink);border-radius:10px;background:rgba(255,248,223,.94);font-size:11px;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.stage-label strong{min-width:30px;text-align:center;color:#fff;background:var(--navy)}.ocean{fill:#6ed5e0}.wave{fill:#23adbf}.crust{fill:#5f6870;stroke:var(--ink);stroke-width:7;stroke-linejoin:round}.land{fill:#68c46e;stroke:var(--ink);stroke-width:6}.land-left,.land-right{opacity:0}.earth-lab[data-surface=continents] .land,.earth-lab[data-surface=subduction] .land-right{opacity:1}.mantle{fill:#e86d36}.mantle-specks{fill:url(#mantlePattern);opacity:.5}.mantle-flow path{fill:none;stroke:#ffd15a;stroke-width:13;stroke-linecap:round;stroke-dasharray:28 17;animation:flow 2.6s linear infinite}.plate{transition:transform .7s cubic-bezier(.18,.83,.28,1.12)}.grab-dot{fill:var(--yellow);stroke:var(--ink);stroke-width:6}.grab-line{stroke:var(--ink);stroke-width:7;stroke-linecap:round}.motion path{fill:none;stroke:#fff;stroke-width:12;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 0 var(--ink));opacity:0}.earth-lab[data-boundary=divergent] .motion-apart path,.earth-lab[data-boundary=convergent] .motion-together path,.earth-lab[data-boundary=transform] .motion-past path{opacity:1}.feature{opacity:0;transition:opacity .2s}.feature path{stroke:var(--ink);stroke-width:6;stroke-linejoin:round}.magma,.lava{fill:var(--lava);filter:url(#softGlow)}.new-rock,.mountains>path:first-child,.volcano{fill:#596871}.fold{fill:none;stroke:var(--yellow)!important;stroke-width:11!important}.subduct{fill:#475662}.crack{fill:none;stroke-width:13!important}.quake-ring{fill:none;stroke:var(--lava)!important;stroke-width:7!important}.mantle-label{fill:#fff;font-size:15px;font-weight:1000;letter-spacing:.09em}.earth-lab.is-running[data-boundary=divergent] .plate-left{transform:translateX(-34px)}.earth-lab.is-running[data-boundary=divergent] .plate-right{transform:translateX(34px)}.earth-lab.is-running[data-boundary=convergent] .plate-left{transform:translateX(27px)}.earth-lab.is-running[data-boundary=convergent] .plate-right{transform:translateX(-27px)}.earth-lab.is-running[data-boundary=transform] .plate-left{transform:translateY(-15px)}.earth-lab.is-running[data-boundary=transform] .plate-right{transform:translateY(15px)}.earth-lab.is-revealed[data-result=ridge] .ridge,.earth-lab.is-revealed[data-result=mountains] .mountains,.earth-lab.is-revealed[data-result=volcanoes] .volcanoes,.earth-lab.is-revealed[data-result=fault] .fault{opacity:1}.earth-lab.is-running[data-boundary=transform]{animation:shake .12s linear 6}.result-art{position:absolute;z-index:3;left:50%;bottom:155px;opacity:0;pointer-events:none;filter:drop-shadow(0 8px 0 rgba(8,42,56,.22));transform:translate(-50%,35px) scale(.2);transition:opacity .22s,transform .5s cubic-bezier(.18,.9,.22,1.25)}.mountain-art{width:235px}.volcano-art{width:190px}.earth-lab.is-revealed[data-result=mountains] .mountain-art,.earth-lab.is-revealed[data-result=volcanoes] .volcano-art{opacity:1;transform:translate(-50%,0) scale(1)}.drag-hint{position:absolute;z-index:5;left:50%;top:143px;transform:translateX(-50%);padding:8px 13px;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);box-shadow:0 3px 0 var(--ink);font-size:11px;font-weight:1000}.earth-lab.is-running .drag-hint,.earth-lab.is-revealed .drag-hint{display:none}.earth-lab.is-highlighted{box-shadow:0 0 0 8px var(--yellow),0 12px 0 rgba(4,31,42,.34)}.map-clue{position:absolute;z-index:4;inset:54px 72px 132px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:22px;background:#82dbe2;box-shadow:0 7px 0 var(--ink)}.mini-map{position:relative;width:100%;height:100%;overflow:hidden}.continent{position:absolute;width:180px;height:125px;border:4px solid var(--ink);background:#6ac46d;clip-path:polygon(4% 25%,25% 5%,55% 13%,87% 2%,98% 34%,75% 52%,91% 82%,57% 96%,31% 76%,8% 88%,18% 53%)}.continent.one{left:24px;top:34px}.continent.two{right:24px;bottom:25px;transform:rotate(180deg)}.mini-map b{position:absolute;left:50%;top:13%;width:18px;height:75%;transform:translateX(-50%);border:5px solid var(--ink);border-radius:50%;background:var(--yellow)}.map-clue.mountains .mini-map b{top:48%;width:63%;height:26px;transform:translate(-50%,-50%) rotate(-7deg);clip-path:polygon(0 100%,8% 15%,17% 100%,28% 8%,40% 100%,52% 0,64% 100%,76% 12%,86% 100%,94% 20%,100% 100%)}.map-clue p{position:absolute;bottom:8px;margin:0;padding:7px 13px;border:2px solid var(--ink);border-radius:10px;background:var(--cream);font-size:12px;font-weight:900}.earth-lab.is-map .cutaway{opacity:.18}
.mission-card{position:absolute;z-index:10;left:50%;bottom:18px;width:min(980px,calc(100% - 330px));min-height:170px;transform:translateX(-50%);display:grid;grid-template-columns:300px 1fr;align-items:center;gap:24px;padding:20px 24px;border:4px solid var(--ink);border-radius:25px;background:rgba(255,248,223,.97);box-shadow:0 9px 0 rgba(6,31,42,.36)}.prompt-copy span{color:var(--lava);font-size:10px;font-weight:1000;letter-spacing:.14em;text-transform:uppercase}.prompt-copy h1{margin:5px 0 5px;font-size:24px;line-height:1.07;letter-spacing:-.025em}.prompt-copy p{margin:0;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.actions{min-width:0}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice{min-height:83px;padding:10px 11px;border:3px solid #9ab3ad;border-radius:15px;background:#fff;box-shadow:0 4px 0 #9ab3ad;cursor:pointer;text-align:left;transition:transform .14s ease-out,border-color .14s}.choice:hover{transform:translateY(-3px);border-color:var(--teal-dark)}.choice:active{transform:translateY(3px);box-shadow:0 1px 0 #7f9f98}.choice b{display:block;color:var(--teal-dark);font-size:21px}.choice strong,.choice small{display:block}.choice strong{margin-top:3px;font-size:14px}.choice small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:700}.primary{min-height:54px;padding:0 24px;border:3px solid #8d3a1c;border-radius:15px;color:#fff;background:var(--orange);box-shadow:0 6px 0 #8d3a1c;cursor:pointer;font-weight:1000}.primary:hover{filter:brightness(1.06);transform:translateY(-2px)}.primary:active{transform:translateY(4px);box-shadow:0 2px 0 #8d3a1c}.primary.teal{border-color:#075969;background:var(--teal);box-shadow-color:#075969}.action-row{display:flex;align-items:center;justify-content:flex-end;gap:16px}.action-row p{max-width:430px;margin:0;color:var(--muted);font-size:12px;font-weight:800}.motion-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.motion-button{min-height:80px;border:3px solid var(--ink);border-radius:16px;background:#fff;box-shadow:0 5px 0 var(--ink);cursor:pointer;font-weight:1000}.motion-button span{display:block;color:var(--orange);font-size:25px}.motion-button:hover{background:#fff4bd;transform:translateY(-2px)}.feedback-panel{display:flex;align-items:center;justify-content:space-between;gap:16px}.feedback-panel strong{display:block;font-size:18px}.feedback-panel p{max-width:460px;margin:3px 0 0;color:var(--muted);font-size:12px;font-weight:700}.toast{position:absolute;z-index:30;left:50%;top:38%;max-width:480px;transform:translate(-50%,-12px);padding:12px 18px;border:3px solid var(--ink);border-radius:14px;background:var(--cream);box-shadow:0 6px 0 var(--ink);opacity:0;pointer-events:none;font-weight:900;transition:.18s ease-out}.toast.is-showing{opacity:1;transform:translate(-50%,0)}.celebration{position:absolute;z-index:40;inset:0;display:grid;place-content:center;justify-items:center;background:rgba(6,45,58,.5);opacity:0;pointer-events:none}.celebration img{width:260px;filter:drop-shadow(0 12px 0 rgba(0,0,0,.2));transform:scale(.4)}.celebration b{margin-top:-18px;padding:12px 22px;border:4px solid var(--ink);border-radius:15px;color:var(--ink);background:var(--yellow);box-shadow:0 6px 0 var(--ink);font-size:28px}.celebration.is-showing{animation:celebration 1s ease-out}.celebration.is-showing img{animation:treasure-pop .7s cubic-bezier(.16,.85,.2,1.25)}.earth-lab.is-miss{animation:miss .12s linear 4}.snap-burst{position:absolute;z-index:6;left:50%;top:42%;width:10px;height:10px;pointer-events:none}.snap-burst i{position:absolute;width:9px;height:34px;border-radius:9px;background:var(--yellow);opacity:0}.earth-lab.is-pop .snap-burst i{animation:ray .55s ease-out}.snap-burst i:nth-child(2){transform:rotate(60deg)}.snap-burst i:nth-child(3){transform:rotate(120deg)}.snap-burst i:nth-child(4){transform:rotate(180deg)}.snap-burst i:nth-child(5){transform:rotate(240deg)}.snap-burst i:nth-child(6){transform:rotate(300deg)}
@keyframes flow{to{stroke-dashoffset:-45}}@keyframes shake{25%{transform:translateX(calc(-50% - 5px))}75%{transform:translateX(calc(-50% + 5px))}}@keyframes miss{25%{transform:translateX(calc(-50% - 5px))}75%{transform:translateX(calc(-50% + 5px))}}@keyframes geo-cheer{35%{transform:translateY(-20px) rotate(-4deg)}70%{transform:translateY(2px) rotate(3deg)}}@keyframes ray{0%{opacity:1;transform:translate(0,0) scale(.3)}100%{opacity:0;transform:translate(0,-90px) scale(1)}}@keyframes celebration{0%,100%{opacity:0}15%,78%{opacity:1}}@keyframes treasure-pop{0%{transform:scale(.35) rotate(-8deg)}65%{transform:scale(1.12) rotate(3deg)}100%{transform:scale(1)}}
@media(max-height:790px){.earth-lab{height:455px}.geo{height:460px}.geo img{width:185px}.mission-card{min-height:154px}.choice{min-height:70px}.game{grid-template-rows:66px 1fr}.hud{padding-block:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.choice-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
