:root{--ink:#fbf5ea;--ink-2:#fbf5eacc;--ink-3:#fbf5ea8f;--glass:#16110d9e;--glass-strong:#120e0bdb;--line:#fff0d729;--gold:#ffc65c;--gold-2:#ffe1a3;--accent:#ff6a3d;--display:"Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;--sans:"Plus Jakarta Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1;background:#f3cfa6;margin:0;overflow:hidden}canvas#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:inherit}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}kbd{border:1px solid var(--line);min-width:24px;height:24px;font:700 12px var(--sans);color:var(--ink);background:#ffffff24;border-radius:7px;place-items:center;padding:0 6px;display:inline-grid}.eyebrow{font:800 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}.display{font-family:var(--display);letter-spacing:-.035em;margin:0;font-weight:800;line-height:.92}.display.big{font-size:clamp(64px,11vw,170px)}.display em{color:var(--gold);font-style:normal}.glass{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.4);border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 44px #1e0f0538}.screen{z-index:20;place-items:center;padding:24px;display:grid;position:fixed;inset:0}#loading{background:radial-gradient(at 50% 120%,#ffcf96,#ea9a5c 40%,#2c1f18 100%)}.load-inner{text-align:center;width:min(560px,100%)}.load-inner .display{font-size:clamp(48px,9vw,96px)}.bar{background:#ffffff2e;border-radius:4px;width:70%;height:4px;margin:40px auto 20px;overflow:hidden}.bar span{background:var(--gold);width:0;height:100%;transition:width .3s;display:block}.tip{color:var(--ink);min-height:1.4em;font:600 19px/1.45 var(--sans)}#title{background:linear-gradient(#140c0600 30%,#140c069e);place-items:end start;padding:clamp(24px,6vw,84px)}.title-inner{text-shadow:0 4px 40px #28140566;max-width:820px}.lede{font:600 clamp(18px, 2.1vw, 24px)/1.45 var(--sans);color:var(--ink);margin:22px 0 32px}.row{flex-wrap:wrap;gap:12px;display:flex}.hint{color:var(--ink-2);font:700 12px/1.6 var(--sans);letter-spacing:.06em;margin-top:24px}.btn{appearance:none;cursor:pointer;font:800 16px var(--sans);border:0;border-radius:999px;align-items:center;padding:16px 28px;text-decoration:none;transition:transform .2s,background .2s;display:inline-flex}.btn.primary{background:var(--gold);color:#2a1a08}.btn.primary:hover{background:var(--gold-2);transform:translateY(-2px)}.btn.ghost{color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:1px solid #ffffff57}.btn.ghost:hover{background:#ffffff3d}#units{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1c120a80}.units-inner{text-align:center;width:min(1040px,100%)}.units-inner .display{margin-bottom:38px;font-size:clamp(44px,7vw,84px)}.cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.unit{text-align:left;cursor:pointer;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:22px;padding:28px 26px 26px;transition:transform .25s,border-color .25s,background .25s}.unit:hover,.unit:focus-visible{border-color:var(--gold);background:#281c12b8;outline:none;transform:translateY(-4px)}.unit .swatch{border-radius:12px;width:42px;height:42px;margin-bottom:22px}.unit h3{font:800 36px/1 var(--display);letter-spacing:-.03em;margin:0 0 10px}.unit p{color:var(--ink-2);margin:0;font-size:16px;font-weight:500;line-height:1.5}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud>*{pointer-events:auto;transition:opacity .5s}.topbar{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:7px 8px 7px 12px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.res{border-right:1px solid var(--line);flex-direction:column;min-width:94px;padding:4px 14px;display:flex}.res .k,.lead .k{font:800 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}.res .v{font:800 16px/1 var(--sans);color:var(--ink)}.res.bump .v{color:var(--gold)}.era{font:800 20px/1 var(--display);letter-spacing:-.02em;color:var(--gold);border-right:1px solid var(--line);padding:0 16px}.lead{flex-direction:column;padding:4px 14px;display:flex}.lead .v{font:800 16px/1 var(--sans);align-items:baseline;gap:8px;display:flex}.lead i{font:700 13px/1 var(--sans);color:var(--gold);font-style:normal}.icon{appearance:none;border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:999px;place-items:center;width:38px;height:38px;font-size:17px;font-weight:700;display:grid}.icon:hover{background:#fff3}.icon.off{opacity:.45;text-decoration:line-through}#relics{border-right:1px solid var(--line);align-items:center;gap:7px;height:30px;padding:0 14px;display:flex}#relics i{border:2px solid var(--ink-3);border-radius:2px;width:10px;height:10px;transform:rotate(45deg)}#relics i.on{background:var(--gold);border-color:var(--gold);box-shadow:0 0 6px #ffc65c99}#objectives{width:290px;padding:16px 18px;position:absolute;top:90px;left:18px}#obj-toggle{appearance:none;cursor:pointer;background:0 0;border:0;gap:8px;width:100%;padding:0;display:flex}#obj-toggle span{color:var(--ink-3)}#obj-next{font:700 14px/1.4 var(--sans);margin:0;display:none}#objectives.collapsed{padding:12px 15px}#objectives.collapsed #obj-list{display:none}#objectives.collapsed #obj-next{display:block}#objectives.collapsed #obj-toggle{margin-bottom:7px}#obj-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}#obj-list li{font:600 14.5px/1.35 var(--sans);color:var(--ink);gap:10px;display:flex}#obj-list li:before{content:"";border:2px solid var(--ink-3);border-radius:4px;flex:none;width:13px;height:13px;margin-top:2px}#obj-list li.done{color:var(--ink-3);text-decoration:line-through}#obj-list li.done:before{background:var(--gold);border-color:var(--gold)}#obj-list li.secret{color:var(--ink-2)}#toasts{pointer-events:none;gap:10px;width:320px;display:grid;position:absolute;top:90px;right:18px}.toast{align-items:center;gap:12px;padding:12px 14px;animation:.5s cubic-bezier(.2,1.4,.4,1) both toast-in;display:flex}.toast.out{animation:.4s forwards toast-out}.toast .medal{color:#3b2510;width:40px;height:40px;font:800 18px var(--display);background:linear-gradient(140deg,#ffe3a3,#e0953a);border-radius:12px;flex:none;place-items:center;display:grid}.toast b{font:800 18px/1.15 var(--display);letter-spacing:-.02em;display:block}.toast span{font:500 13.5px/1.4 var(--sans);color:var(--ink-2)}.toast.wa .medal{color:#073d1d;background:#25d366}@keyframes toast-in{0%{opacity:0;transform:translate(40px)scale(.95)}}@keyframes toast-out{to{opacity:0;transform:translate(40px)}}#bubbles{pointer-events:none;position:absolute;inset:0}.bubble{color:#24170c;max-width:320px;font:600 15.5px/1.4 var(--sans);background:#fffaf1;border-radius:16px;padding:12px 16px;animation:.35s cubic-bezier(.2,1.5,.4,1) both pop;position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 30px #28140547}.bubble:after{content:"";border:8px solid #0000;border-top-color:#fffaf1;border-bottom:0;margin-left:-8px;position:absolute;bottom:-8px;left:50%}.bubble b{font:800 16px var(--display);letter-spacing:-.01em}@keyframes pop{0%{opacity:0;transform:translate(-50%,-80%)scale(.8)}}.prompt{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;font:800 15px var(--sans);background:#16110dc7;border:1px solid #ffe1a3a6;border-radius:999px;align-items:center;gap:10px;padding:9px 18px 9px 9px;animation:.3s both pop;display:flex;position:absolute;transform:translate(-50%,-100%)}.prompt kbd{background:var(--gold);color:#2a1a08;border:0;border-radius:999px;width:28px;height:28px}#step-card{text-align:center;pointer-events:auto;cursor:pointer;text-shadow:0 4px 30px #1e0f058c;width:min(880px,100vw - 36px);animation:.7s cubic-bezier(.2,1.1,.3,1) both rise;position:absolute;top:16vh;left:50%;transform:translate(-50%)}#step-card .meta{font:800 13px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}#step-card h3{font:800 clamp(48px, 7.5vw, 104px)/.92 var(--display);letter-spacing:-.04em;margin:12px 0 16px}#step-card blockquote{max-width:760px;font:600 clamp(19px, 2.2vw, 26px)/1.35 var(--sans);color:var(--ink);margin:0 auto 16px}#step-card blockquote:before{content:"“";color:var(--gold)}#step-card blockquote:after{content:"”";color:var(--gold)}#step-card .facts{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);text-shadow:none;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px 16px;display:inline-flex}#step-card .facts p{font:500 15px/1.45 var(--sans);color:var(--ink-2);text-align:left;max-width:460px;margin:0}#step-card .chip{text-align:left;background:#ffc65c29;border:1px solid #ffc65c66;border-radius:12px;padding:8px 12px}#step-card .chip span{font:800 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;display:block}#step-card .chip b{font:800 22px/1 var(--display);color:var(--ink)}#step-card .dots{justify-content:center;gap:6px;margin-top:16px;display:flex}#step-card .dots i{background:#ffffff40;border-radius:3px;width:36px;height:4px}#step-card .dots i.on{background:var(--gold)}#step-card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#0e09059e,#0e09054d 60%,#0000);position:absolute;inset:-12vh -30vw}body.step-on #objectives,body.step-on #bubbles,body.step-on #waypoint,body.step-on #prompt{opacity:0;pointer-events:none;transition:opacity .3s}#objectives,#bubbles,#waypoint,#prompt{transition:opacity .3s}body.in-activity #objectives{opacity:0;pointer-events:none}@keyframes rise{0%{opacity:0;transform:translate(-50%,30px)}}#waypoint{pointer-events:none;filter:drop-shadow(0 3px 10px #00000059);flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-50%,-50%)}#waypoint .arrow{background:var(--gold);color:#2a1a08;border-radius:999px;place-items:center;width:40px;height:40px;font-size:18px;display:grid}#waypoint .dist{font:800 13px var(--sans);background:#16110dbf;border-radius:999px;padding:3px 8px}#activity{align-items:center;gap:22px;padding:14px 20px;display:flex;position:absolute;top:88px;left:50%;transform:translate(-50%)}#activity h4{font:800 24px/1 var(--display);letter-spacing:-.02em;margin:0}#activity .sub{font:600 13px var(--sans);color:var(--ink-2);margin-top:4px}#activity .stat{text-align:center}#activity .stat span{font:800 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px;display:block}#activity .stat b{font:800 26px/1 var(--display);color:var(--gold)}#activity .exit{appearance:none;cursor:pointer;border:1px solid var(--line);font:800 13px var(--sans);background:#ffffff1a;border-radius:999px;padding:9px 14px}#crosshair{pointer-events:none;z-index:11;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair i{border:2.5px solid #fff;border-radius:999px;width:28px;height:28px;display:block;position:relative;box-shadow:0 0 0 2px #00000059}#crosshair i:after{content:"";background:var(--accent);border-radius:9px;width:5px;height:5px;margin:-2.5px;position:absolute;top:50%;left:50%}#power{background:#00000073;border-radius:9px;width:120px;height:7px;position:absolute;top:42px;left:50%;overflow:hidden;transform:translate(-50%)}#power span{background:linear-gradient(90deg, var(--gold), var(--accent));width:0;height:100%;display:block}#minimap{cursor:pointer;border-radius:20px;padding:8px;position:absolute;bottom:18px;right:18px}#minimap canvas{cursor:pointer;border-radius:14px;width:190px;height:190px;display:block}#minimap:after{content:"Map · M";font:800 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;background:var(--gold);color:#2a1a08;border-radius:999px;padding:4px 9px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.zoom-btns{gap:6px;display:grid;position:absolute;bottom:236px;right:18px}.zoom-btns .icon{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#touch{height:0;position:absolute;inset:auto 0 0}#joy{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);touch-action:none;background:#16110d61;border-radius:999px;width:124px;height:124px;position:absolute;bottom:32px;left:26px}#joy-knob{background:#fff8ece0;border-radius:999px;width:52px;height:52px;position:absolute;top:36px;left:36px}#btn-jump{background:var(--glass);width:60px;height:60px;font-size:22px;position:absolute;bottom:40px;right:226px}.touch-only{display:none}@media (pointer:coarse){.touch-only{display:block}}body.touch .touch-only{display:block}#letterbox{pointer-events:none;z-index:12;position:fixed;inset:0}#letterbox i{background:#0d0907;height:0;transition:height .9s cubic-bezier(.7,0,.2,1);position:absolute;left:0;right:0}#letterbox .top{top:0}#letterbox .bottom{bottom:0}body.cinema #letterbox i{height:11vh}body.cinema #hud>:not(#bubbles):not(#toasts){opacity:0;pointer-events:none}#chapter{z-index:13;text-align:center;pointer-events:none;place-items:center;padding:24px;display:grid;position:fixed;inset:0}#chapter .inner{text-shadow:0 6px 50px #140a03a6;max-width:1100px}#chapter .num{font:800 15px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}#chapter h2{font:800 clamp(58px, 10vw, 150px)/.9 var(--display);letter-spacing:-.045em;margin:18px 0}#chapter .log{font:600 clamp(19px, 2.3vw, 28px)/1.4 var(--sans);color:var(--ink);max-width:820px;margin:0 auto}#chapter .place{font:800 13px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-top:24px}#chapter .problem{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}#chapter .problem div{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);text-align:left;text-shadow:none;border-radius:16px;padding:12px 18px}#chapter .problem span{font:800 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;display:block}#chapter .problem b{font:800 24px/1 var(--display);letter-spacing:-.02em}#chapter .reveal>*{animation:1.1s cubic-bezier(.2,1,.3,1) both chap}#chapter .reveal>:nth-child(2){animation-delay:.15s}#chapter .reveal>:nth-child(3){animation-delay:.35s}#chapter .reveal>:nth-child(4){animation-delay:.55s}#chapter .reveal>:nth-child(5){animation-delay:.75s}#chapter.out .inner{animation:.6s forwards chap-out}@keyframes chap{0%{opacity:0;filter:blur(8px);transform:translateY(26px)}}@keyframes chap-out{to{opacity:0;filter:blur(6px);transform:translateY(-20px)}}#dialogue{z-index:14;cursor:pointer;text-align:center;width:min(980px,100vw - 36px);animation:.45s cubic-bezier(.2,1.1,.3,1) both rise;position:fixed;bottom:calc(11vh + 22px);left:50%;transform:translate(-50%)}body:not(.cinema) #dialogue{background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:22px;padding:18px 22px 14px;bottom:28px}#dialogue .who{font:800 15px var(--sans);color:var(--gold);background:#ffc65c29;border:1px solid #ffc65c66;border-radius:999px;align-items:center;gap:10px;margin-bottom:14px;padding:5px 14px 5px 5px;display:inline-flex}#dlg-portrait{object-fit:cover;background:#5a606b;border-radius:999px;width:40px;height:40px}#dlg-text{font:700 clamp(21px, 2.6vw, 33px)/1.32 var(--sans);letter-spacing:-.012em;color:#fff;text-shadow:0 2px 22px #0009;max-width:920px;min-height:2.6em;margin:0 auto}body:not(.cinema) #dlg-text{text-shadow:none;min-height:2.4em;font-size:clamp(18px,2vw,24px)}#dialogue .next{font:700 12px var(--sans);color:var(--ink-3);margin-top:12px;display:block}#dialogue .next kbd{min-width:20px;height:20px;font-size:11px}#mapview{z-index:22;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e0a07b8;place-items:center;padding:20px;animation:.3s both fade-in;display:grid;position:fixed;inset:0}.map-shell{flex-direction:column;width:min(1100px,100%);max-height:100%;display:flex}.map-head{align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.map-head .eyebrow{margin:0 0 8px}.map-head h2{font:800 clamp(36px, 5vw, 58px)/1 var(--display);letter-spacing:-.04em;flex:1;margin:0}.map-body{grid-template-columns:minmax(0,1fr) 300px;gap:16px;min-height:0;display:grid}#map-canvas{aspect-ratio:1;border:1px solid var(--line);cursor:crosshair;background:#12303d;border-radius:22px;justify-self:center;width:min(100%,72vh);height:auto}#map-list{align-content:start;gap:8px;max-height:72vh;padding-right:4px;display:grid;overflow-y:auto}#map-list h5{font:800 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:10px 0 2px}.dest{appearance:none;cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--glass);border-radius:14px;align-items:center;gap:12px;padding:11px 14px;transition:border-color .2s,transform .2s;display:flex}.dest:hover{border-color:var(--gold);transform:translate(3px)}.dest i{background:#ffc65c2e;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-style:normal;display:grid}.dest b{font:800 16px/1.1 var(--display);display:block}.dest span{font:500 12.5px var(--sans);color:var(--ink-3)}.map-hint{font:600 13px var(--sans);color:var(--ink-2);margin:12px 0 0}#menu{z-index:23;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e0a07bd;place-items:center;padding:20px;animation:.3s both fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.menu-shell{width:min(980px,100%)}.menu-shell h2{font:800 clamp(44px, 6vw, 72px)/.95 var(--display);letter-spacing:-.04em;margin:0 0 22px}.menu-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.mbtn{appearance:none;cursor:pointer;text-align:left;color:var(--ink);border:1px solid var(--line);background:var(--glass);border-radius:18px;padding:16px;text-decoration:none;transition:border-color .2s,transform .2s}.mbtn:hover{border-color:var(--gold);transform:translateY(-2px)}.mbtn b{font:800 19px/1.1 var(--display);margin-bottom:4px;display:block}.mbtn span{font:500 13px var(--sans);color:var(--ink-3)}.menu-cols{grid-template-columns:1fr 1.3fr;gap:20px;margin-top:24px;display:grid}.keys,#ach-list{font:600 14px var(--sans);color:var(--ink-2);gap:8px;margin:0;padding:0;list-style:none;display:grid}#ach-list{grid-template-columns:1fr 1fr;max-height:34vh;overflow-y:auto}#ach-list li{border:1px solid var(--line);background:#ffffff0d;border-radius:12px;padding:8px 10px}#ach-list li b{font:800 14px var(--display);color:var(--ink);display:block}#ach-list li.locked{opacity:.45}#overlay{z-index:15;background:radial-gradient(#1e120866,#1e1208c7);place-items:center;padding:24px;animation:.5s both fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.complete{text-align:center;max-width:820px}.complete .sector{font:800 13px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.complete h2{font:800 clamp(76px, 13vw, 180px)/.88 var(--display);letter-spacing:-.05em;margin:14px 0 8px}.complete .numbers{font-family:var(--display);justify-content:center;align-items:baseline;gap:18px;margin:18px 0 8px;font-weight:800;display:flex}.complete .numbers .from{color:var(--ink-3);font-size:clamp(30px,4vw,48px);text-decoration:line-through;text-decoration-thickness:3px}.complete .numbers .to{color:var(--gold);letter-spacing:-.04em;font-size:clamp(58px,8.5vw,108px)}.complete .numbers .x{font:800 16px var(--sans);background:var(--gold);color:#2a1a08;border-radius:999px;align-self:center;padding:7px 12px}.complete .note{color:var(--ink-2);font:600 17px var(--sans);margin:0 0 24px}.complete .relic{border:1px solid var(--line);background:var(--glass);font:700 15px var(--sans);border-radius:999px;align-items:center;gap:10px;margin-bottom:28px;padding:11px 18px;display:inline-flex}.complete .relic i{background:var(--gold);border-radius:3px;width:11px;height:11px;transform:rotate(45deg)}.complete .row{justify-content:center}.age-banner{text-align:center;pointer-events:none}.age-banner p{font:800 14px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0}.age-banner h2{font:800 clamp(72px, 12vw, 170px)/1 var(--display);letter-spacing:-.05em;text-shadow:0 6px 60px #ffbe5aa6;margin:12px 0;animation:1.4s cubic-bezier(.2,1,.3,1) both age}.age-banner span{color:var(--ink);font:600 19px var(--sans)}@keyframes age{0%{opacity:0;letter-spacing:.15em;filter:blur(14px)}}.diplomacy{text-align:center;width:100%;max-width:760px;padding:32px}.diplomacy h2{font:800 clamp(38px, 5.5vw, 62px)/1 var(--display);letter-spacing:-.04em;margin:0 0 12px}.diplomacy .sub{color:var(--ink-2);font:600 17px var(--sans);margin:0 0 24px}.dip-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.dip{text-align:left;border:1px solid var(--line);color:var(--ink);background:#ffffff0f;border-radius:16px;padding:18px 18px 16px;text-decoration:none;transition:transform .2s,border-color .2s,background .2s}.dip:hover{border-color:var(--gold);background:#ffc65c1a;transform:translateY(-3px)}.dip b{font:800 24px/1.1 var(--display);letter-spacing:-.02em;margin-bottom:4px;display:block}.dip span{color:var(--ink-2);font:500 14px var(--sans)}#cheat{z-index:25;align-items:center;gap:10px;width:min(460px,100vw - 32px);padding:11px 15px;display:flex;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}#cheat span{font:800 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}#cheat input{color:var(--ink);font:700 16px var(--sans);background:0 0;border:0;outline:0;flex:1}#photo{z-index:18;pointer-events:none;position:fixed;inset:0}#photo .frame{border:10px solid #fbf6ea;border-radius:6px;flex-direction:column;justify-content:flex-end;padding:26px 30px;display:flex;position:absolute;inset:22px}#photo .frame p{font:800 12px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#fbf6ea;text-shadow:0 1px 8px #0006;margin:0}#photo .frame h2{font:800 clamp(44px, 7vw, 96px)/.95 var(--display);letter-spacing:-.04em;color:#fbf6ea;text-shadow:0 4px 30px #00000059;margin:6px 0 0}#photo .frame em{color:var(--gold);font-style:normal}#photo .photo-actions{pointer-events:auto;gap:10px;display:flex;position:absolute;bottom:44px;right:44px}body.photo-mode #hud{display:none}#fade{opacity:0;pointer-events:none;z-index:30;background:#f6dcbc;transition:opacity .45s;position:fixed;inset:0}#fade.on{opacity:1}@media (max-width:860px){.cards{grid-template-columns:1fr}.unit{padding:18px}.unit h3{font-size:28px}.topbar{border-radius:18px;justify-content:flex-start;top:8px;left:8px;right:8px;overflow-x:auto;transform:none}.res{min-width:64px;padding:4px 10px}.res .v{font-size:14px}.era{padding:0 10px;font-size:16px}#objectives{width:min(240px,100vw - 170px);top:auto;bottom:8px;left:8px}#toasts{width:260px;top:76px;right:8px}#minimap{padding:6px;bottom:8px;right:8px}#minimap canvas{width:124px;height:124px}.zoom-btns{bottom:162px;right:8px}#btn-jump{bottom:170px;right:152px}#step-card{top:78px}#step-card .facts{display:grid}#joy{bottom:108px;left:18px}.map-body{grid-template-columns:1fr}#map-list{max-height:26vh}#map-canvas{width:min(100%,46vh)}.menu-grid{grid-template-columns:repeat(2,1fr)}.menu-cols,.dip-grid{grid-template-columns:1fr}#relics{padding:0 8px}#activity{gap:12px;padding:10px 14px;top:76px}}@media (max-width:620px){#res-views,#res-roas,#res-retention,#relics,.lead,#btn-sound{display:none}.topbar{justify-content:space-between;overflow:hidden}.topbar>*{flex:none}.era{text-align:center;font-size:15px;flex:1!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}#dialogue.narrating .next{visibility:hidden}#story-vignette{z-index:11;pointer-events:none;opacity:0;background:linear-gradient(90deg,#0c0805c7 0%,#0c080580 30%,#0c080500 58%);transition:opacity .6s;position:fixed;inset:0}body.story-on #story-vignette{opacity:1}body.story-on #objectives,body.story-on #bubbles,body.story-on #waypoint,body.story-on #prompt,body.story-on #step-card,body.story-on #toasts{opacity:0;pointer-events:none}#story{--coral:#ff9a7a;z-index:12;cursor:pointer;text-shadow:0 2px 24px #0a060380;width:min(540px,44vw);position:fixed;top:50%;left:clamp(18px,5.5vw,84px);transform:translateY(-50%)}#story.out{animation:.45s forwards st-out}@keyframes st-out{to{opacity:0;transform:translate(-24px,-50%)}}.st-eyebrow{font:800 13px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);opacity:0}.st-title{font:800 clamp(44px, 5.6vw, 76px)/.95 var(--display);letter-spacing:-.04em;opacity:0;margin:12px 0 26px}.st-block{margin-bottom:22px;transition:opacity .5s,filter .5s;display:none}.st-label{font:800 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;border-radius:999px;margin-bottom:12px;padding:6px 10px;display:inline-block}.st-problem .st-label{color:#2a0f06;background:var(--coral)}.st-moves .st-label{color:var(--ink);background:#ffffff24}.st-result .st-label{color:#2a1a08;background:var(--gold)}.st-problem p{font:600 clamp(20px, 2.1vw, 27px)/1.3 var(--sans);color:var(--ink);margin:0 0 14px}.st-before{text-shadow:none;background:#ff9a7a1a;border:1px solid #ff9a7a8c;border-radius:14px;align-items:baseline;gap:12px;padding:10px 14px;display:inline-flex}.st-before span{font:700 13px var(--sans);color:var(--ink-2)}.st-before b{font:800 24px/1 var(--display);color:var(--coral)}.st-moves ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.st-moves li{font:600 clamp(17px, 1.7vw, 21px)/1.3 var(--sans);opacity:0;align-items:center;gap:14px;transition:opacity .45s,transform .55s cubic-bezier(.2,1,.3,1);display:flex;transform:translate(-14px)}.st-moves li.on{opacity:1;transform:none}.st-moves li i{width:30px;height:30px;font:800 13px var(--sans);border:1.5px solid var(--line);color:var(--ink-2);text-shadow:none;border-radius:999px;flex:none;place-items:center;font-style:normal;transition:background .4s,color .4s,border-color .4s;display:grid}.st-moves li.on i{background:var(--gold);border-color:var(--gold);color:#2a1a08}.st-number{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.st-number small{font:700 clamp(18px, 2vw, 26px)/1 var(--display);color:var(--ink-3);-webkit-text-decoration:line-through #ff9a7acc;text-decoration:line-through #ff9a7acc}.st-number b{font:800 clamp(64px, 8.4vw, 120px)/.9 var(--display);letter-spacing:-.045em;color:var(--gold)}.st-rlabel{font:700 clamp(15px, 1.4vw, 18px)/1.35 var(--sans);color:var(--ink);margin:8px 0 18px}.st-rlabel em{color:var(--ink-3);font-style:normal;font-weight:600}.st-result blockquote{border:1px solid var(--line);font:italic 500 clamp(15px, 1.35vw, 17px)/1.45 var(--sans);color:var(--ink-2);text-shadow:none;background:#120e0b8c;border-radius:16px;align-items:flex-start;gap:12px;margin:0;padding:14px 16px;display:flex}.st-result blockquote img{border-radius:12px;flex:none;width:40px;height:40px}.st-hint{font:600 12px var(--sans);color:var(--ink-3);opacity:0;transition:opacity .4s}#story.beat-problem .st-eyebrow,#story.beat-problem .st-title{animation:.8s cubic-bezier(.2,1,.3,1) forwards st-in}#story.beat-problem .st-title{animation-delay:80ms}#story.beat-problem .st-problem{animation:.8s cubic-bezier(.2,1,.3,1) .25s both st-in;display:block}#story.beat-problem .st-hint{opacity:1;transition-delay:1.2s}#story.beat-moves .st-moves{animation:.6s cubic-bezier(.2,1,.3,1) both st-in;display:block}#story.beat-moves .st-problem{opacity:.42}#story.beat-result .st-result{animation:.7s cubic-bezier(.2,1,.3,1) both st-in;display:block}#story.beat-result .st-problem{display:none}#story.beat-result .st-moves{opacity:.55}#story.beat-result .st-moves li{font-size:15px}#story.beat-result .st-moves li i{width:22px;height:22px;font-size:11px}@keyframes st-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (max-width:860px){#story-vignette{background:linear-gradient(#0c080500 30%,#0c08058c 55%,#0c0805db 100%)}#story{width:auto;inset:auto 16px 18px;transform:none}#story.out{opacity:0;animation:none}.st-title{margin:8px 0 14px}.st-block{margin-bottom:14px}#story.beat-result .st-moves{display:none}}#playbook{z-index:24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0e0a07d1;padding:28px 20px 60px;animation:.3s both fade-in;position:fixed;inset:0;overflow-y:auto}.pb-shell{width:min(1180px,100%);margin:0 auto}.pb-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.pb-head h2{font:800 clamp(34px, 4.6vw, 58px)/1 var(--display);letter-spacing:-.04em;margin:0}.pb-head .eyebrow{margin-bottom:10px}.pb-tabs{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.pb-tab{appearance:none;cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--glass);color:var(--ink);border-radius:16px;padding:14px 16px;transition:border-color .2s,background .2s}.pb-tab b{font:800 19px/1.1 var(--display);display:block}.pb-tab span{font:700 13px var(--sans);color:var(--gold)}.pb-tab.on{border-color:var(--gold);background:#ffc65c1f}.pb-intro{font:600 15px/1.5 var(--sans);color:var(--ink-2);margin:4px 2px 18px}.pb-intro b{color:var(--ink)}.pb-intro span{color:var(--gold)}.pb-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.pb-card{border:1px solid var(--line);background:var(--glass-strong);border-radius:20px;flex-direction:column;gap:12px;padding:20px;display:flex}.pb-card header{align-items:baseline;gap:10px;display:flex}.pb-card h4{font:800 22px/1.1 var(--display);letter-spacing:-.02em;flex:1;margin:0}.pb-n{font:800 13px var(--sans);color:var(--ink-3)}.pb-card header em{font:800 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#2a1a08;background:var(--gold);border-radius:999px;padding:4px 8px;font-style:normal}.pb-card header em.todo{color:var(--ink-3);background:#ffffff14}.pb-problem{font:600 15px/1.45 var(--sans);color:var(--ink);margin:0}.pb-problem span{font:800 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#2a0f06;vertical-align:2px;background:#ff9a7a;border-radius:999px;margin-right:8px;padding:3px 7px;display:inline-block}.pb-problem i{color:#ff9a7a;margin-top:4px;font-size:13px;font-style:normal;display:block}.pb-card ol{font:500 14px/1.4 var(--sans);color:var(--ink-2);gap:4px;margin:0;padding-left:20px;display:grid}.pb-result{background:#ffc65c1a;border:1px solid #ffc65c4d;border-radius:14px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.pb-result b{font:800 30px/1 var(--display);color:var(--gold);letter-spacing:-.03em}.pb-result b small{color:var(--ink-3);font-size:17px}.pb-result span{font:600 13px var(--sans);color:var(--ink-2)}.pb-how{font:400 14px/1.6 var(--sans);color:var(--ink-3);margin:0}@media (max-width:860px){.pb-tabs{grid-template-columns:repeat(2,1fr)}.pb-grid{grid-template-columns:1fr}}.how{width:100%;max-width:640px}.how h2{font:800 clamp(40px, 6vw, 72px)/.95 var(--display);letter-spacing:-.04em;margin:0 0 26px}.how ol{gap:12px;margin:0 0 28px;padding:0;list-style:none;display:grid}.how li{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:18px;align-items:flex-start;gap:16px;padding:16px 18px;animation:.6s cubic-bezier(.2,1,.3,1) both st-in;display:flex}.how li:nth-child(2){animation-delay:.12s}.how li:nth-child(3){animation-delay:.24s}.how li i{background:var(--gold);color:#2a1a08;width:34px;height:34px;font:800 15px var(--sans);border-radius:999px;flex:none;place-items:center;font-style:normal;display:grid}.how li b{font:800 21px/1.15 var(--display);margin-bottom:4px;display:block}.how li span{font:500 15px/1.45 var(--sans);color:var(--ink-2)}.how .btn kbd{color:inherit;background:#00000026;margin-left:8px}.complete .recap{text-align:left;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:6px 0 22px;display:grid}.complete .recap div{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.complete .recap span{font:700 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;display:block}.complete .recap b{font:800 26px/1 var(--display);color:var(--gold);letter-spacing:-.02em;display:block}.complete .recap em{font:500 12px/1.3 var(--sans);color:var(--ink-2);margin-top:4px;font-style:normal;display:block}.st-bars{max-width:420px;text-shadow:none;gap:7px;margin:-4px 0 16px;display:grid}.st-bars .cmp{font:700 12px var(--sans);color:var(--ink-3);grid-template-columns:54px 1fr auto;align-items:center;gap:10px;display:grid}.st-bars .cmp i{background:#ffffff14;border-radius:999px;height:10px;position:relative;overflow:hidden}.st-bars .cmp i:after{content:"";width:var(--w);border-radius:inherit;animation:1.2s cubic-bezier(.2,1,.3,1) .2s both bar-grow;position:absolute;inset:0 auto 0 0}.st-bars .cmp.before i:after{background:#ff9a7a}.st-bars .cmp.after i:after{background:var(--gold);animation-delay:.5s}.st-bars .cmp b{font:800 14px var(--sans);color:var(--ink);text-align:right;min-width:52px}.st-bars .chg{font:800 12px var(--sans);letter-spacing:.04em;color:var(--gold);background:#ffc65c29;border:1px solid #ffc65c66;border-radius:999px;justify-self:start;padding:5px 10px}@keyframes bar-grow{0%{width:0}}#progress{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;border-radius:999px;align-items:center;gap:12px;padding:7px 14px;transition:opacity .3s;display:flex;position:absolute;top:74px;left:50%;transform:translate(-50%)}#progress b{font:800 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);white-space:nowrap}#progress .segs{gap:5px;display:flex}#progress .segs i{background:linear-gradient(90deg, var(--gold) var(--p), #ffffff29 var(--p));border-radius:999px;width:30px;height:6px}#progress .segs i.on{box-shadow:0 0 0 2px #ffc65c59}body.cinema #progress,body.story-on #progress,body.in-activity #progress{opacity:0}@media (max-width:860px){#progress{gap:8px;padding:5px 10px;top:66px}#progress b{font-size:10px}#progress .segs i{width:18px}}#rescue{z-index:99;text-align:center;background:#0e0a07eb;place-items:center;padding:24px;display:grid;position:fixed;inset:0}#rescue h2{font:800 clamp(32px, 6vw, 56px)/1 var(--display);letter-spacing:-.03em;margin:0 0 12px}#rescue p{font:500 16px/1.5 var(--sans);color:var(--ink-2);max-width:440px;margin:0 auto 22px}#rescue .row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}body.playing canvas#scene{cursor:grab}body.orbiting canvas#scene,body.orbiting{cursor:grabbing}#rotate{z-index:60;text-align:center;color:var(--cream,#fff6ea);background:radial-gradient(120% 90% at 50% 30%,#281c12db,#0e0a07f5);place-content:center;justify-items:center;gap:14px;padding:32px;display:grid;position:fixed;inset:0}#rotate.hidden{display:none}#rotate h2{font:800 26px var(--display,var(--sans));margin:6px 0 0}#rotate p{opacity:.8;max-width:280px;font:500 15px/1.45 var(--sans);margin:0}#rotate .btn{margin-top:10px;padding:12px 22px;font-size:14px}.rot-phone{border:3px solid var(--gold,#f2c46b);border-radius:10px;width:46px;height:80px;animation:2.4s cubic-bezier(.6,0,.3,1) infinite rot-turn;position:relative}.rot-phone i{background:var(--gold,#f2c46b);border-radius:3px;width:10px;height:3px;margin-left:-5px;position:absolute;bottom:6px;left:50%}@keyframes rot-turn{0%,25%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (orientation:landscape) and (max-height:520px){.topbar{transform-origin:top;top:6px;left:50%;right:auto;overflow:visible;transform:translate(-50%)scale(.86)}#progress{top:52px;transform:translate(-50%)scale(.85)}#res-views,#res-roas,#res-retention,#relics,.lead{display:none}#objectives{width:190px;padding:9px 12px;font-size:12px;top:8px;bottom:auto;left:8px}#objectives #obj-list{display:none}#objectives #obj-next{display:block}#toasts{width:240px;top:8px;right:8px}#minimap{padding:5px;bottom:8px;right:8px}#minimap canvas{width:92px;height:92px}#minimap:after{font-size:9px}.zoom-btns{top:50%;bottom:auto;right:8px;transform:translateY(-50%)}#joy{left:max(18px, env(safe-area-inset-left));width:108px;height:108px;bottom:16px}#joy-knob{top:28px;left:28px}#btn-jump{width:56px;height:56px;bottom:22px;right:116px}#step-card,#activity{top:46px}}body.story-on #minimap,body.story-on .zoom-btns,body.story-on #touch,body.story-on #progress{opacity:0;pointer-events:none;transition:opacity .4s}
