@font-face{font-family:Offender;src:url('../assets/anton.ttf?v=1.5.1-39f4cc743d') format('truetype');font-weight:100 1000;font-display:swap}
:root{color-scheme:dark;--ink:#052b31;--deep:#032126;--ivory:#fff3cf;--acid:#f5f731;--cyan:#58e9f0;--muted:#8bafb2;--line:#31565c;--surface:#0b343c;font-family:Arial,Helvetica,sans-serif;color:var(--ivory);background:var(--deep);font-synthesis:weight}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,canvas:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button{touch-action:manipulation}svg{width:24px;height:24px;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3,p{margin:0}h2,h3,.button,.round-action,.eyebrow,.timer,.game-hud,.wordmark-mini,.pill{font-family:Offender,'Arial Narrow',Arial,sans-serif;font-stretch:condensed}h2{font-size:clamp(32px,4vw,60px);line-height:1.02;letter-spacing:-1.5px}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.masthead{height:82px;display:flex;align-items:center;gap:24px;padding:0 4vw;border-bottom:1px solid #31565c66;max-width:1800px;margin:auto}.wordmark-mini{border:0;background:none;font-size:20px;font-weight:900;display:flex;gap:6px;align-items:center;letter-spacing:-.5px;transform:skew(-5deg)}.wordmark-mini span{color:var(--acid)}.wordmark-mini svg{width:19px}.masthead-note{font-size:10px;letter-spacing:2.4px;color:var(--muted);margin-left:auto}.icon-button{background:#0c353d;border:1px solid var(--line);width:44px;height:44px;border-radius:13px;display:inline-grid;place-items:center;flex-shrink:0}.icon-button:hover{border-color:var(--cyan);background:#13434b}.screen{max-width:1400px;margin:0 auto;padding:40px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--cyan);font-weight:800;line-height:1.5}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);margin:0 8px 1px 0;box-shadow:0 0 12px #58e9f077}.menu-screen{position:relative;min-height:calc(100svh - 82px);display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:30px;padding-bottom:95px}.logo{transform:rotate(-4deg) skew(-3deg);font-family:Offender,Impact,'Arial Black',sans-serif;font-weight:1000;font-size:clamp(55px,6.8vw,103px);letter-spacing:-5px;line-height:.91;margin:30px 0 22px;text-shadow:5px 6px 0 #001a20}.logo span,.logo strong{display:block;font-weight:1000}.logo strong{color:var(--acid)}.logo span svg{width:.67em;height:.62em;vertical-align:middle}.handwritten{font-family:'Comic Sans MS','Segoe Print',cursive;font-style:italic;font-size:25px;transform:rotate(-3deg);line-height:1.4}.menu-description{font-size:18px;line-height:1.7;margin:28px 0;color:#b7cbca}.menu-actions{display:grid;gap:12px;max-width:370px}.button{min-height:57px;display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 20px;border-radius:12px;border:1px solid var(--line);font-size:18px;font-weight:900;letter-spacing:.4px;transition:transform .15s,background .15s}@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px)}}.button:active{transform:translateY(1px)}.primary{color:#08282c;background:var(--acid);border-color:var(--acid);box-shadow:0 5px 0 #182e2b}.secondary{background:#0a343a;border-color:#65848a}.secondary span{margin-left:auto}.text-button{padding:9px 4px;background:none;border:0;color:var(--muted);font-size:12px;font-weight:700}.text-button:hover{color:var(--ivory)}.menu-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.pill{border:1px solid var(--line);padding:6px 9px;font-size:9px;letter-spacing:1px;border-radius:5px;color:#a7c5c7}.menu-art{position:relative;height:560px;isolation:isolate}.art-halo{position:absolute;inset:20px -20px 0;background:radial-gradient(ellipse at 50% 60%,#1f727966,#06323a00 65%);z-index:-1}.time-ring{position:absolute;border:1px solid #58e9f04a;width:360px;height:360px;border-radius:50%;left:50%;top:90px;transform:translateX(-50%) rotateX(30deg);box-shadow:0 0 0 35px #58e9f006,0 0 0 80px #58e9f003}.hero-sprite,.ghost-sprite{position:absolute;background-repeat:no-repeat;filter:drop-shadow(0 18px 15px #00151966)}.hero-sprite{width:320px;height:300px;background-size:1280px 900px;background-position:-640px -300px;left:calc(50% - 140px);top:210px;z-index:3;transform:rotate(-5deg)}.ghost-sprite{width:200px;height:180px;background-size:800px 540px;background-position:-200px -360px;opacity:.72;filter:drop-shadow(0 0 15px #58e9f060);animation:float 4s ease-in-out infinite}.ghost-one{left:4%;top:135px;transform:rotate(-9deg)}.ghost-two{right:4%;top:125px;animation-delay:-1.4s}.ghost-three{left:1%;top:285px;animation-delay:-2s;transform:scale(.85)}.ghost-four{right:-5%;top:280px;animation-delay:-3s;transform:scale(.85)}.art-clock{position:absolute;left:50%;top:55px;transform:translateX(-50%) rotate(4deg);color:var(--cyan);font-family:monospace;font-size:70px;letter-spacing:-6px;font-weight:900;text-shadow:0 0 30px #58e9f037;opacity:.9}.art-caption{position:absolute;bottom:10px;left:0;right:0;text-align:center;letter-spacing:2px;font-size:9px;color:var(--muted)}.menu-footer{position:absolute;left:40px;right:40px;bottom:28px;border-top:1px solid #31565c77;padding-top:20px;display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:1px;color:var(--muted)}
.section-heading{display:flex;align-items:center;gap:22px;margin-bottom:35px}.section-heading h2{margin-top:8px}.job-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.job-card{position:relative;min-height:260px;background:#0b353d;border:1px solid #46666c;border-radius:18px;text-align:left;padding:26px;overflow:hidden;display:flex;align-items:flex-end;transition:border-color .2s,transform .2s}@media(hover:hover) and (pointer:fine){.job-card:hover{border-color:var(--acid);transform:translateY(-3px)}}.job-card canvas{position:absolute;right:-10px;top:-55px;width:280px;height:373px;transform:rotate(9deg);opacity:.45;pointer-events:none}.job-card:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0a2e36 5%,#0a2e36dd 40%,#0a2e3600 100%)}.job-info{position:relative;z-index:1;max-width:85%}.job-number{font-family:monospace;color:var(--cyan);font-size:12px;display:block;margin-bottom:40px}.job-card h3{font-size:33px;letter-spacing:-1px;margin:8px 0}.job-card p{font-size:12px;color:#c2d2d1}.job-status{position:absolute;right:20px;top:20px;z-index:2;font-size:10px;letter-spacing:1px;background:var(--acid);color:var(--ink);padding:7px 9px;font-weight:bold;border-radius:4px}.job-card .eyebrow{font-size:10px}.quiet{font-size:12px;color:var(--muted);margin-top:25px}.briefing-screen{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1100px}.briefing-art{position:relative;max-width:460px;border:1px solid #456d74;border-radius:22px;overflow:hidden;box-shadow:0 20px 70px #001216aa;transform:rotate(-2deg)}.briefing-art canvas{display:block;width:100%;height:auto;aspect-ratio:3/4}.preview-stamp{position:absolute;top:22px;left:22px;background:var(--acid);color:var(--ink);padding:9px 13px;font-weight:900;font-size:13px;transform:rotate(-5deg)}.briefing-copy .eyebrow{margin:25px 0 10px}.briefing-copy h2{font-size:clamp(38px,5vw,72px);margin-bottom:14px}.briefing-copy>p:not(.handwritten){font-size:15px;line-height:1.7;color:#bdd0cf;margin-top:25px}.briefing-copy ol{padding:0;list-style:none;counter-reset:step;margin:28px 0}.briefing-copy li{counter-increment:step;display:flex;align-items:center;gap:12px;margin:14px 0;font-size:13px;line-height:1.5}.briefing-copy li:before{content:counter(step);border:1px solid var(--line);border-radius:50%;width:26px;height:26px;display:grid;place-items:center;flex-shrink:0;color:var(--cyan);font-size:12px}.briefing-rule{display:flex;gap:15px;align-items:center;border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:12px;line-height:1.7}.briefing-rule svg{color:var(--cyan);width:30px;height:30px}.briefing-rule strong{color:var(--ivory)}.briefing-copy .button{width:100%}
.game-screen{display:grid;grid-template-columns:290px minmax(320px,650px);justify-content:center;gap:45px;padding:24px 30px;align-items:center;min-height:calc(100svh - 82px)}.job-aside h2{font-size:42px;margin:10px 0 14px}.job-aside .handwritten{font-size:20px}.aside-rule{display:flex;flex-direction:column;color:var(--cyan);font-family:Offender,Impact,sans-serif;font-size:32px;line-height:1.1;margin:35px 0 25px}.job-aside>p:not(.handwritten){font-size:13px;line-height:1.8;color:var(--muted)}.keyboard-guide{display:grid;gap:15px;margin-top:35px;font-size:11px;color:var(--muted)}kbd{display:inline-block;font-family:monospace;font-size:10px;line-height:1.5;border:1px solid #49636b;border-bottom-width:2px;padding:3px 5px;border-radius:4px;color:var(--ivory);margin-right:5px}.job-aside>.text-button{margin-top:30px;font-size:9px;letter-spacing:.8px}.game-shell{border:2px solid #527e87;border-radius:25px;overflow:hidden;background:#052b31;box-shadow:0 20px 70px #00151980;width:100%;max-width:620px;height:min(1000px,calc(100svh - 130px));min-height:510px;display:flex;flex-direction:column;margin:auto}.game-hud{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#062b32;flex-shrink:0;min-height:74px}.game-hud>div:first-child{flex:1;min-width:0}.game-hud #hud-location{display:block;font-size:17px;letter-spacing:.4px}.game-hud small{display:block;color:#a8c1c2;font-family:Arial,sans-serif;letter-spacing:.6px;font-size:8px;font-weight:bold;margin-top:5px}.timer{font-size:37px;line-height:1;font-weight:900;color:var(--acid);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:95px;text-align:right}.timer span{font-size:24px}.timer.urgent{color:#ff9878}.game-hud .icon-button{width:37px;height:37px;border-radius:10px}.game-hud .icon-button svg{width:18px}.canvas-wrap{position:relative;min-height:0;flex:1;overflow:hidden;background:#05262d}#game-canvas{display:block;width:100%;height:100%;outline:0;touch-action:none}.game-hint{position:absolute;bottom:14px;left:5%;right:5%;text-align:center;background:#052b31ed;color:var(--ivory);font-size:11px;font-weight:bold;line-height:1.5;padding:10px 14px;border:1px solid #71b4ba77;border-radius:9px;pointer-events:none;box-shadow:0 5px 20px #00202944;transition:opacity .3s}.game-hint.empty{opacity:0}.game-controls{display:flex;align-items:center;gap:15px;padding:13px 16px 17px;border-top:1px solid #31565c;flex-shrink:0;background:#052b31}.joystick{position:relative;width:86px;height:86px;background:#1f434b;border:2px solid #617e86;border-radius:50%;flex-shrink:0;touch-action:none;user-select:none;cursor:grab}.joystick-cross{position:absolute;inset:0;display:grid;place-items:center;color:#7b9da4;font-size:78px;line-height:1;opacity:.6;pointer-events:none}#joystick-knob{position:absolute;top:50%;left:50%;width:36px;height:36px;background:#86a5ab;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 3px 5px #031d2866;pointer-events:none}.loop-control{flex:1;min-width:50px;align-self:center}.loop-topline{display:flex;gap:5px;justify-content:space-between;font-size:7px;letter-spacing:.5px;color:#abc3c4;margin-bottom:8px;white-space:nowrap}#echo-status{color:var(--cyan);font-size:6px}.time-track{height:13px;border:1px solid #5d838d;border-radius:9px;padding:2px;position:relative;background:#001f28}#time-fill{height:7px;width:0;background:var(--cyan);border-radius:6px}#time-playhead{position:absolute;width:2px;height:21px;top:-5px;left:0;background:var(--ivory);border-radius:2px}.time-labels{display:flex;justify-content:space-between;font-size:8px;color:#bed2d2;padding-top:6px}.loop-control .text-button{font-size:7px;letter-spacing:.8px;margin-top:5px;width:100%;padding:5px}.round-action{position:relative;width:62px;height:62px;border:2px solid #718d93;border-radius:50%;display:grid;place-items:center;background:#173f48;color:#bcd4d8;flex-shrink:0;margin-bottom:12px}.round-action>span{position:absolute;top:calc(100% + 6px);left:-10px;right:-10px;font-size:9px;text-align:center;white-space:nowrap;font-weight:800;letter-spacing:.5px}.round-action svg{width:30px;height:30px}.round-action.available{border-color:var(--cyan);color:var(--cyan);background:#164b53}.rewind-action{width:76px;height:76px;background:var(--acid);color:#062b31;border-color:#fbff92;box-shadow:0 0 20px #f5f71f12}.rewind-action span{color:var(--acid)}.rewind-action svg{width:42px;height:42px}.rewind-flash{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#052b31d9;backdrop-filter:blur(3px);color:var(--cyan);gap:12px;z-index:5}.rewind-flash svg{width:90px;height:90px;animation:rewind-in .45s ease-out}.rewind-flash b{font-family:Offender,Impact,sans-serif;font-size:40px;letter-spacing:1px}.rewind-flash span{font-size:13px;color:var(--ivory)}
dialog{background:var(--ink);color:var(--ivory);border:1px solid #61939b;border-radius:22px;box-shadow:0 30px 100px #0009;padding:32px;width:min(440px,calc(100vw - 28px));max-height:calc(100svh - 40px);overflow:auto}dialog::backdrop{background:#00191fce;backdrop-filter:blur(6px)}dialog h2{font-size:45px;margin-bottom:12px}dialog h2 span{color:var(--acid)}dialog p{font-size:13px;line-height:1.7;color:#b5cdce;margin:12px 0 22px}dialog .button{width:100%;margin-top:12px;font-size:16px;min-height:52px}dialog .small-description{display:block;font-size:10px;line-height:1.5;font-family:Arial,sans-serif;font-weight:normal;letter-spacing:0;color:#b6ced0;margin-top:3px}dialog .stack-button{display:block}dialog .text-button{width:100%;margin-top:10px}dialog .eyebrow{margin-bottom:15px}.modal-footer{display:flex;gap:12px;border-top:1px solid var(--line);margin-top:22px;padding-top:10px}.setting-row{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}.setting-row small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.toggle{border:1px solid #557b82;border-radius:20px;background:#163c45;width:54px;height:29px;padding:3px;flex-shrink:0}.toggle:before{content:'';display:block;width:21px;height:21px;border-radius:50%;background:#72949c;transition:transform .15s}.toggle[aria-checked=true]{background:var(--acid);border-color:var(--acid)}.toggle[aria-checked=true]:before{transform:translateX(24px);background:#082b31}.result-art{height:150px;position:relative;background:radial-gradient(ellipse,#45b0b52b,transparent 70%);overflow:hidden}.result-stat{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:17px;margin:20px 0;font-size:11px;letter-spacing:1px}.result-stat strong{font-size:28px;color:var(--acid);letter-spacing:-1px}.help-list{padding-left:20px;font-size:13px;color:#bfd3d3;line-height:1.7}.help-list li{margin:13px 0}.help-list b{color:var(--ivory)}.toast{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:99;padding:13px 19px;background:#103e47;border:1px solid #76c1c7;border-radius:11px;color:var(--ivory);box-shadow:0 8px 35px #00181aaa;font-size:12px;line-height:1.5;width:max-content;max-width:calc(100vw - 30px);text-align:center}.noscript{padding:30px}.loading-note{color:var(--muted)}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -8px}}@keyframes rewind-in{from{transform:scale(1.8);opacity:0}to{transform:scale(1);opacity:1}}.reduced-motion *, .reduced-motion *:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(min-width:1600px){.menu-screen{min-height:min(900px,calc(100svh - 82px))}.game-shell{max-width:620px}}
@media(max-width:1000px){.game-screen{grid-template-columns:minmax(300px,620px);padding:15px}.job-aside{display:none}.game-shell{height:calc(100svh - 113px)}.menu-screen{padding:30px;gap:0}.logo{font-size:73px}.menu-art{transform:scale(.83);transform-origin:center}.menu-copy{z-index:1}.menu-description{font-size:16px}.menu-footer{left:30px;right:30px}.briefing-screen{gap:30px;padding:30px}}
@media(max-width:1100px){.masthead{height:61px;padding:0 18px}.wordmark-mini{font-size:16px}.masthead-note{display:none}.masthead>.icon-button{margin-left:auto;width:36px;height:36px}.masthead>.icon-button svg{width:18px}.screen{padding:24px 20px}.menu-screen{display:flex;flex-direction:column;align-items:stretch;min-height:calc(100svh - 61px);padding-bottom:90px}.menu-copy{display:contents}.menu-copy>.eyebrow{font-size:9px;text-align:center;margin-top:5px;order:0}.logo{font-size:clamp(54px,14vw,88px);letter-spacing:-3px;width:max-content;max-width:100%;margin:24px auto 11px;order:1}.menu-copy>.handwritten{font-size:21px;text-align:center;order:2}.menu-art{order:3;width:100%;height:270px;transform:none;margin:3px auto 5px;max-width:410px}.hero-sprite{width:220px;height:206px;background-size:880px 618px;background-position:-440px -206px;left:calc(50% - 100px);top:56px}.ghost-sprite{width:130px;height:117px;background-size:520px 351px;background-position:-130px -234px}.ghost-one{left:7%;top:29px}.ghost-two{right:7%;top:19px}.ghost-three{left:4%;top:130px}.ghost-four{right:2%;top:125px}.art-clock{font-size:41px;letter-spacing:-3px;top:5px}.time-ring{width:210px;height:210px;top:30px}.art-halo{inset:0}.art-caption{font-size:6px;letter-spacing:1.2px;bottom:0}.menu-description{display:none}.menu-actions{order:4;max-width:none;width:100%;gap:11px}.menu-actions .button{min-height:52px;font-size:16px}.menu-meta{order:5;justify-content:center;margin-top:15px;gap:6px}.pill{font-size:7px;padding:5px 7px}.menu-footer{font-size:8px;letter-spacing:.5px;left:20px;right:20px;bottom:20px;flex-wrap:wrap;padding-top:15px}.menu-footer span:nth-child(2){font-size:8px}.section-heading{gap:15px;margin-bottom:25px}.section-heading .eyebrow{font-size:8px}.section-heading h2{font-size:36px}.job-list{grid-template-columns:1fr;gap:15px}.job-card{min-height:200px;padding:21px}.job-number{margin-bottom:22px}.job-card h3{font-size:29px}.job-card canvas{width:245px;height:327px}.briefing-screen{display:flex;flex-direction:column-reverse;gap:30px}.briefing-copy h2{font-size:43px}.briefing-copy .eyebrow{margin:14px 0 8px}.briefing-copy .handwritten{font-size:20px}.briefing-copy>p:not(.handwritten){font-size:13px;margin-top:18px}.briefing-copy ol{margin:18px 0}.briefing-rule{padding:16px 0}.briefing-art{max-width:370px;width:100%;max-height:440px}.briefing-copy .button{min-height:54px}.game-screen{padding:0;min-height:0}.game-shell{width:100%;height:calc(100dvh - 61px);min-height:440px;border:0;border-radius:0;box-shadow:none;max-width:680px}.game-hud{padding:12px 14px;min-height:65px}.game-hud #hud-location{font-size:16px}.game-hud small{font-size:7px}.timer{font-size:34px;min-width:90px}.game-controls{gap:10px;padding:10px 12px calc(15px + env(safe-area-inset-bottom));min-height:106px}.joystick{width:72px;height:72px}#joystick-knob{width:31px;height:31px}.joystick-cross{font-size:66px}.round-action{width:48px;height:48px}.round-action svg{width:25px;height:25px}.round-action>span{font-size:8px}.rewind-action{width:64px;height:64px}.rewind-action svg{width:35px;height:35px}.loop-topline>span:first-child{font-size:6px}#echo-status{display:none}.game-hint{font-size:10px;padding:8px 10px;bottom:10px}dialog{padding:25px}dialog h2{font-size:40px}.quiet{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Source rectangles for the irregular reference atlas, avoiding adjacent sprite fragments. */
.hero-sprite{--sprite-width:300px;width:var(--sprite-width);height:calc(var(--sprite-width)*1.015625);background-size:calc(var(--sprite-width)*4.8) calc(var(--sprite-width)*3.2);background-position:calc(var(--sprite-width)*-2.46875) calc(var(--sprite-width)*-1.125)}
.ghost-sprite{--sprite-width:165px;width:var(--sprite-width);height:calc(var(--sprite-width)*1.157895);background-size:calc(var(--sprite-width)*5.389474) calc(var(--sprite-width)*3.592982);background-position:calc(var(--sprite-width)*-1.631579) calc(var(--sprite-width)*-2.403509)}

@media(max-width:1100px){.hero-sprite{--sprite-width:205px}.ghost-sprite{--sprite-width:108px}.ghost-one{left:10%}.ghost-two{right:10%}.ghost-three{left:6%}.ghost-four{right:5%}}

.logo{letter-spacing:-2px;font-weight:400}.logo span,.logo strong{font-weight:400}.wordmark-mini{font-weight:400;letter-spacing:.4px}.button{font-weight:400;letter-spacing:1px}.game-hud #hud-location{font-weight:400;letter-spacing:.8px}.timer{font-weight:400}.job-card h3,h2{font-weight:400}.aside-rule{letter-spacing:1px}
.hero-sprite{--sprite-width:215px;width:var(--sprite-width);height:calc(var(--sprite-width)*1.463303);background-size:calc(var(--sprite-width)*7.045872) calc(var(--sprite-width)*4.697248);background-position:calc(var(--sprite-width)*-3.899083) calc(var(--sprite-width)*-1.642202);left:calc(50% - 90px)}
.ghost-sprite{--sprite-width:120px;width:var(--sprite-width);height:calc(var(--sprite-width)*1.59204);background-size:calc(var(--sprite-width)*7.641791) calc(var(--sprite-width)*5.094527);background-position:calc(var(--sprite-width)*-2.437811) calc(var(--sprite-width)*-3.373134)}
@media(max-width:1100px){.hero-sprite{--sprite-width:143px;left:calc(50% - 65px)}.ghost-sprite{--sprite-width:76px}.ghost-one{left:13%}.ghost-two{right:13%}.ghost-three{left:8%}.ghost-four{right:8%}}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.masthead{padding-top:env(safe-area-inset-top);height:calc(82px + env(safe-area-inset-top))}
@media(max-width:1100px){.masthead{height:calc(61px + env(safe-area-inset-top))}.game-shell{height:calc(100dvh - 61px - env(safe-area-inset-top))}}
body.is-playing{overflow:hidden;overscroll-behavior:none}

/* v1.1: standalone branding and a warmer, tactile presentation. */
body{background:radial-gradient(ellipse at 78% 32%,#0a4148 0,transparent 55%),radial-gradient(ellipse at 10% 75%,#123b3a 0,transparent 50%),#032126}
.wordmark-mini{transform:none;gap:9px;padding:0;line-height:0}
.brand-icon{width:36px;height:36px;border-radius:9px;box-shadow:0 0 0 1px #58e9f055,0 3px 12px #00151988}
.brand-logo{display:block;width:100px;height:67px;object-fit:contain}
.logo{width:min(100%,560px);margin:16px 0 0;transform:none;line-height:0;text-shadow:none}
.logo img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 14px #00171d40)}
.menu-copy>.handwritten{margin:2px 0 0 8px}
.menu-description{margin:23px 0;color:#c2d5cf}
.menu-art{filter:drop-shadow(0 5px 20px #00171d55)}
.art-halo{background:radial-gradient(ellipse at 50% 67%,#31808466,#06323a00 66%)}
.hero-sprite{filter:drop-shadow(0 16px 12px #00151988) drop-shadow(0 -1px 2px #eec87533)}
.button{transition:transform .16s,background .16s,box-shadow .16s,border-color .16s}
.primary{background:linear-gradient(160deg,#ffff61,#eef32a);border-color:#ffffa2;box-shadow:inset 0 1px 0 #fffbc8,0 4px 0 #818b22,0 8px 22px #00191d60}
.primary:hover{box-shadow:inset 0 1px 0 #fffbc8,0 6px 0 #818b22,0 12px 28px #00191d70}
.primary:active{box-shadow:inset 0 1px 0 #fffbc8,0 1px 0 #818b22,0 3px 8px #00191d60}
.secondary,.icon-button{background:linear-gradient(145deg,#17434a,#0a3038);box-shadow:inset 0 1px 0 #91c2c11c,0 3px 7px #00171d33}
.game-shell{border-color:#74a4ad;box-shadow:0 0 0 4px #021e2566,0 25px 70px #001219b3,inset 0 1px 0 #e6f8d622}
.game-hud{background:linear-gradient(130deg,#123d43,#04232c);border-bottom:1px solid #72919555}
.timer{text-shadow:0 2px 0 #00151e,0 0 22px #f5f73117}
.game-controls{background:linear-gradient(145deg,#103941,#04242c);border-top-color:#668489}
.joystick{background:radial-gradient(circle at 43% 35%,#254f58,#0d303a);box-shadow:inset 0 3px 9px #001e2b88,0 2px 0 #00171d}
#joystick-knob{background:linear-gradient(140deg,#94afb0,#597c84);box-shadow:inset 0 1px 1px #dcf4e377,0 4px 8px #001b28bb}
.time-track{box-shadow:inset 0 2px 5px #00151d;overflow:visible}
#time-fill{background:linear-gradient(#8cffff,#2ddbe7);box-shadow:0 0 9px #58e9f033}
.round-action{background:radial-gradient(circle at 35% 25%,#315962,#12333f);box-shadow:inset 0 1px 0 #b0d3ce33,0 3px 0 #011e27;transition:transform .12s,box-shadow .2s,border-color .2s}
.round-action:active{transform:translateY(2px) scale(.96)}
.round-action.available{box-shadow:0 0 0 3px #58e9f015,0 0 18px #58e9f031,inset 0 1px 0 #b0d3ce33}
.rewind-action{background:radial-gradient(circle at 35% 25%,#ffff75,#f0f025 75%);box-shadow:inset 0 1px 0 #ffffc5,0 4px 0 #778523,0 0 22px #f5f73112}
.game-hint{top:12px;bottom:auto;left:7%;right:7%;background:#092f36e8;backdrop-filter:blur(5px);border-color:#c6d8bd55;font-weight:normal;box-shadow:0 4px 18px #00171d66}
.rewind-flash{background:#052b3178;backdrop-filter:none;text-shadow:0 3px 15px #00161d}
.job-card{box-shadow:inset 0 1px 0 #92c2b91a,0 9px 25px #001b2344}
.job-card canvas{opacity:.62}.job-card:after{background:linear-gradient(90deg,#0a2e36 5%,#0a2e36df 38%,#0a2e3622 100%)}
dialog{background:radial-gradient(ellipse at 75% 0,#16484b,#082e36 65%);border-color:#6e969b;box-shadow:0 25px 90px #000d17b3,inset 0 1px 0 #b9dbd11f}
dialog[open]{animation:dialog-in .2s ease-out}
@keyframes dialog-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:1100px){.brand-icon{width:30px;height:30px;border-radius:8px}.brand-logo{width:80px;height:53px}.logo{width:min(100%,340px);margin:12px auto 0}.menu-copy>.handwritten{margin:3px 0 0}.menu-description{margin:20px 0}.game-hint{top:8px;bottom:auto;font-size:10px;left:6%;right:6%}}
.reduced-motion *, .reduced-motion *:before, .reduced-motion *:after{animation:none!important;transition:none!important}

/* Keep phone captions clear of the character artwork. */
@media(max-width:1100px) and (orientation:portrait){
  .menu-art{height:260px;flex-shrink:0}
  .hero-sprite{--sprite-width:128px;top:48px;left:calc(50% - 58px)}
  .ghost-sprite{--sprite-width:70px}
  .art-caption{font-size:7px;bottom:0;letter-spacing:.7px}
}

/* Portrait touch layout. The entire left pad accepts a neutral thumb start. */
.device-blocked{overflow:hidden}
.device-gate{min-height:100svh;max-width:600px;margin:auto;padding:28px 26px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.gate-logo{width:min(330px,68vw);height:auto;margin:-22px 0 -6px}
.gate-phone{position:relative;width:94px;height:150px;border:3px solid #7dd6dc;border-radius:21px;background:linear-gradient(145deg,#174951,#07262e);box-shadow:0 0 45px #58e9f01a,inset 0 0 0 5px #031f28;display:grid;place-items:center;margin:15px 0 30px}
.gate-phone:before{content:'';position:absolute;top:8px;width:28px;height:4px;background:#7dd6dc;border-radius:4px}
.gate-phone img{width:66px;height:66px;border-radius:15px}
.gate-phone span{display:none;position:absolute;right:-39px;top:34px;font-size:44px;color:var(--acid)}
.device-gate[data-mode=rotate] .gate-phone span{display:block}
.device-gate h1{font:clamp(28px,5vw,39px)/1.2 Offender,Impact,sans-serif;color:var(--acid);margin:14px 0 0;letter-spacing:.3px}
.device-gate p{max-width:360px;color:#b8d0cf;font-size:14px;line-height:1.7;margin:16px 0 28px}
.gate-footnote{font-size:9px;letter-spacing:1.5px;color:#90adb1}
.device-gate .eyebrow{font-size:10px}
.hero-sprite,.ghost-sprite{background-size:contain;background-position:center bottom;background-repeat:no-repeat}
.game-controls{display:grid;grid-template-columns:minmax(120px,1fr) 64px 76px;grid-template-rows:36px 110px;gap:6px 14px;padding:10px 16px calc(9px + env(safe-area-inset-bottom));min-height:0}
.loop-control{grid-column:1/-1;grid-row:1;position:relative;align-self:start;padding-right:84px;width:100%}
.loop-topline{margin-bottom:6px;font-size:9px}
.loop-topline>span:first-child{font-size:9px}
#echo-status{display:block;font-size:8px}
.time-track{height:10px}#time-fill{height:4px}#time-playhead{height:17px;top:-4px}
.time-labels{font-size:9px;padding-top:3px}
.loop-control .text-button{position:absolute;right:-2px;top:0;width:78px;min-height:36px;font-size:9px;margin:0;padding:6px;border:1px solid #31565c;border-radius:8px}
.movement-zone{grid-column:1;grid-row:2;position:relative;width:100%;height:110px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border-radius:16px;background:linear-gradient(145deg,#477c8010,#001f2819)}
.joystick{position:absolute;left:50%;top:48px;transform:translate(-50%,-50%);width:88px;height:88px;pointer-events:none;border-color:#668f96}
.joystick.active{border-color:var(--cyan);box-shadow:0 0 0 5px #58e9f00c,inset 0 3px 9px #001e2b88}
.joystick-cross{font-size:79px}#joystick-knob{width:38px;height:38px}
.movement-label{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:8px;letter-spacing:.45px;color:#9ab9be;pointer-events:none;white-space:nowrap}
.round-action{grid-column:2;grid-row:2;width:64px;height:64px;position:relative;right:auto;bottom:auto;align-self:center;justify-self:center;margin:0 0 14px;touch-action:none}
.round-action>span{font-size:10px;top:calc(100% + 8px)}.round-action svg{width:31px;height:31px}
.rewind-action{grid-column:3;width:76px;height:76px}.rewind-action svg{width:40px;height:40px}
.game-shell{min-height:0}.game-hud small{font-size:8px;letter-spacing:.3px}
@media(max-width:360px){.game-controls{grid-template-columns:minmax(112px,1fr) 60px 68px;column-gap:10px;padding-left:10px;padding-right:10px}.round-action{width:60px;height:60px}.rewind-action{width:68px;height:68px}#echo-status{display:none}.game-hud{gap:8px}.game-hud #hud-location{font-size:14px}.game-hud small{font-size:7px}.timer{font-size:30px;min-width:76px}.game-hud .icon-button{width:34px;height:34px}.movement-label{font-size:7px}}
@media(orientation:landscape){.device-gate{max-width:780px;min-height:100dvh;display:grid;grid-template-columns:200px 1fr;column-gap:36px;align-content:center;padding:16px 30px}.gate-logo{grid-column:1;grid-row:1/4;width:200px;margin:0}.gate-phone{grid-column:1;grid-row:4/7;width:63px;height:100px;margin:0 auto}.gate-phone img{width:42px;height:42px;border-radius:10px}.gate-phone span{top:17px;font-size:35px;right:-32px}.device-gate .eyebrow{grid-column:2;grid-row:2}.device-gate h1{grid-column:2;grid-row:3;font-size:30px}.device-gate p{grid-column:2;grid-row:4;margin:12px 0 18px;font-size:13px}.gate-footnote{grid-column:2;grid-row:5;font-size:8px}}
/* Keep the playfield tall and the thumb zone clear of browser safe areas. */
.is-playing .masthead{display:none}
.is-playing .game-screen{padding:0;min-height:100dvh}
.is-playing .game-shell{height:100dvh;border-radius:0;border:0;box-shadow:none}
.is-playing .game-hud{padding-top:calc(12px + env(safe-area-inset-top))}
.ghost-sprite{opacity:.92;filter:drop-shadow(0 0 3px #58e9f077) drop-shadow(0 0 15px #58e9f033)}
@media(max-width:1100px) and (orientation:portrait){
  .menu-screen{padding-top:18px;padding-bottom:68px}
  .logo{height:185px;margin-top:8px}.logo img{width:100%;height:100%;object-fit:contain}
  .menu-art{height:230px}.hero-sprite{--sprite-width:118px;top:40px;left:calc(50% - 54px)}
  .ghost-sprite{--sprite-width:62px}.ghost-three,.ghost-four{top:112px}
  .art-clock{font-size:36px}.art-caption{font-size:7px;letter-spacing:.6px}
}

/* Menu sprites are populated from the same tinted canvas cache as gameplay. */
.hero-sprite,.ghost-sprite{background-image:none}

/* v1.4: the map owns the screen; secondary decisions pause the clock. */
.continue-job{font-size:12px;color:var(--muted);text-align:center;padding:5px 8px}
.job-card{min-height:136px;padding:0 35px 0 145px;align-items:center;border-radius:14px}
.job-card canvas{left:0;right:auto;top:0;width:132px;height:176px;transform:none;opacity:1}
.job-card:after{background:linear-gradient(90deg,transparent 90px,#0a2e36 139px);pointer-events:none}
.job-info{max-width:100%;padding:15px 0;min-width:0}.job-info h3{font-size:23px;line-height:1.18;margin:0 0 9px;letter-spacing:0}
.job-location{font-size:10px;line-height:1.4;color:#b8cecd}.job-status{position:static;display:block;margin-top:12px;padding:0;background:none;color:var(--cyan);font-size:9px;letter-spacing:.5px}
.job-chevron{position:absolute;right:13px;top:45%;font-size:29px;z-index:2;color:var(--ivory)}
.job-list{gap:12px}.jobs-screen{max-width:700px}.jobs-screen .section-heading{margin-bottom:20px}.jobs-screen .section-heading .eyebrow{display:none}
.briefing-screen{display:flex;flex-direction:column;gap:14px;max-width:560px;padding-top:16px}
.briefing-copy{display:contents}.briefing-copy>.text-button{order:0;align-self:flex-start}.briefing-copy>.eyebrow{order:1;margin:0;font-size:10px}.briefing-copy>h2{order:2;font-size:35px;margin:0}.briefing-copy>.handwritten{order:3;font-size:16px}
.briefing-art{order:4;transform:none;width:100%;max-width:none;height:clamp(260px,43dvh,420px);max-height:none;border-radius:14px;box-shadow:0 12px 30px #00121655}
.briefing-art canvas{width:100%;height:100%;aspect-ratio:auto}.preview-stamp{top:12px;left:12px;background:#07333bee;color:var(--cyan);border:1px solid #58e9f05c;transform:none;font-size:10px;border-radius:6px}
.briefing-copy>#briefing-text{order:5;font-size:13px;line-height:1.55;margin:0}.briefing-copy>ol{order:6;margin:0;align-self:stretch}.briefing-copy li{margin:9px 0;font-size:12px}
.briefing-copy>#start-job-button{order:7;position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:3;min-height:54px;flex-shrink:0}
.briefing-rule{order:8;align-self:stretch;padding:12px 0;border:0;font-size:11px}
.game-shell>.loop-control{flex-shrink:0;height:44px;padding:3px 144px 8px 14px;align-self:stretch;background:#062b32;border-bottom:1px solid #31565c}
.game-shell>.loop-control .loop-topline{display:none}.game-shell>.loop-control .time-track{margin-top:7px;height:8px}.game-shell>.loop-control #time-fill{height:3px}.game-shell>.loop-control #time-playhead{height:14px}
.game-shell>.loop-control .text-button{min-height:38px;top:0;right:10px;width:64px;padding:5px;font-size:9px}
.game-shell>.loop-control #crew-button{right:80px;width:58px;color:var(--cyan)}
.game-controls{grid-template-rows:110px;padding-top:8px;padding-bottom:calc(12px + env(safe-area-inset-bottom));gap:0 14px}
.movement-zone,.round-action{grid-row:1}.game-hud small{font-size:8px;line-height:1.3;min-height:20px;max-width:220px}
.game-hint{font-size:10px;padding:7px 10px;left:8%;right:8%;top:auto;bottom:8px;background:#082d33ed}
.crew-screen{max-width:560px;min-height:calc(100dvh - 61px);display:flex;flex-direction:column;gap:15px;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}
.crew-screen .section-heading{margin:0;gap:12px}.crew-screen h2{font-size:27px;letter-spacing:0}.crew-screen .eyebrow{font-size:10px}
.crew-preview{height:150px;flex-shrink:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#082d33}.crew-preview canvas{display:block;width:100%;height:100%}
.crew-list{max-height:40dvh;min-height:110px;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--cyan) var(--deep)}
.crew-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #31565c88}.crew-row img{width:58px;height:66px;object-fit:contain;background:radial-gradient(#58e9f021,transparent)}
.crew-row>div{flex:1;min-width:0}.crew-row h3{font-size:17px;margin:0 0 5px}.crew-row p{font-size:12px;line-height:1.4}.crew-row small{font-size:10px;color:var(--muted);display:block;margin-top:5px}
.crew-track{height:4px;background:#31565c;border-radius:4px;margin-top:8px;overflow:hidden}.crew-track span{height:100%;display:block;background:var(--cyan)}
.crew-actions{display:grid;gap:10px;margin-top:auto}.crew-actions .quiet{text-align:center;margin:0}.crew-actions .button{min-height:49px;font-size:16px}
.crew-empty{font-size:14px;line-height:1.7;color:#b8cecd;padding:20px 0}
@media(max-width:1100px) and (orientation:portrait){
 .menu-screen{gap:8px;padding-top:8px}.menu-copy>.eyebrow{display:none}.logo{height:156px;margin:0 auto;max-width:300px}.menu-copy>.handwritten{font-size:19px}
 .menu-art{height:210px;margin:2px auto}.hero-sprite{--sprite-width:160px;width:160px;height:160px;top:39px;left:calc(50% - 80px);transform:none;background-size:contain}
 .ghost-sprite{--sprite-width:90px;width:90px;height:90px;background-size:contain}.ghost-one,.ghost-two{top:12px}.ghost-three,.ghost-four{top:103px}.ghost-one{left:7%}.ghost-two{right:7%}.ghost-three{left:1%}.ghost-four{right:1%}
 .art-clock{font-size:28px;top:0}.art-caption{display:none}.time-ring{height:175px;width:230px;top:21px}
 .menu-meta{display:none}.menu-actions{gap:10px}.menu-actions .button{min-height:52px}.menu-footer{position:static;order:6;margin-top:15px;padding-top:14px}.menu-screen{padding-bottom:20px}
 .job-card{min-height:136px;padding:0 31px 0 141px}.job-info h3{font-size:22px}.job-card canvas{width:132px;height:176px}.job-status{font-size:8px}
 .job-list{gap:10px}.jobs-screen .quiet{font-size:11px;margin-top:16px}.section-heading h2{font-size:31px}
}
@media(max-width:360px){.job-card{padding-left:116px;min-height:128px}.job-card canvas{width:108px;height:144px}.job-card:after{background:linear-gradient(90deg,transparent 75px,#0a2e36 115px)}.job-info h3{font-size:19px}.job-location{font-size:9px}.job-status{font-size:7px}.crew-screen h2{font-size:22px}.crew-preview{height:110px}.crew-list{max-height:32dvh}.game-controls{column-gap:10px}.game-hud small{font-size:7px}}
.game-shell>.loop-control{flex:0 0 44px}
.briefing-copy>#start-job-button{position:static}

/* Pass 02: one living street scene, with the UI on a quiet foreground layer. */
#app[data-screen="menu"]>.masthead{display:none}
#menu-screen{position:relative;isolation:isolate;height:100dvh;min-height:520px;max-width:none;padding:0;display:flex;flex-direction:column;gap:0;overflow:hidden;background:#031e29}
#menu-scene{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.menu-settings{position:absolute;right:18px;top:calc(16px + env(safe-area-inset-top));z-index:2;background:#082c36cc}
.menu-brand{text-align:center;padding-top:calc(45px + env(safe-area-inset-top));pointer-events:none}
#menu-screen .logo{width:min(78vw,390px);max-width:none;height:auto;margin:0 auto;transform:rotate(-3deg);padding:0;line-height:1}
#menu-screen .logo img{width:100%;height:auto;filter:drop-shadow(0 7px 0 #00171d66)}
.menu-brand p{font-size:18px;letter-spacing:.2px;margin:-12px 0 10px;color:#fff3cf}
.menu-brand>span{font-family:Offender,sans-serif;font-size:10px;letter-spacing:3px;color:#61e5ec}
.menu-bottom{width:min(100%,460px);margin:auto auto 0;padding:0 24px calc(20px + env(safe-area-inset-bottom))}
#menu-screen .menu-actions{display:grid;gap:10px;max-width:none}
#menu-screen .primary{min-height:62px;font-size:23px;border-radius:17px;box-shadow:0 5px 0 #919921,0 12px 32px #0005}
#menu-screen .secondary{min-height:48px;background:#0b3344e8;border-color:#426575;border-radius:13px;font-size:16px}
#menu-screen .continue-job{font-size:11px;text-align:center;color:#b8cecf;min-height:14px;margin:0}
#menu-screen .text-button{font-size:10px;letter-spacing:1.3px;padding:8px}
.menu-bottom footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px;color:#77949b;font-size:8px;letter-spacing:.6px}
.menu-bottom footer span:first-child{color:#b0c8ca;font-family:Offender,sans-serif;font-size:11px}
.menu-bottom #save-status{font-size:8px;letter-spacing:0}
.result-art{display:flex;justify-content:center;align-items:center;height:145px;overflow:visible}
.result-character{display:block;width:170px;height:170px;object-fit:contain}
@media(max-height:650px){.menu-brand{padding-top:18px}#menu-screen .logo{width:230px}.menu-brand p{font-size:15px;margin-top:-8px}.menu-brand>span{display:none}.menu-bottom{padding:0 20px 12px}#menu-screen .primary{min-height:49px;font-size:19px}#menu-screen .secondary{min-height:42px}.menu-bottom footer{margin-top:5px}#menu-screen .menu-actions{gap:7px}.menu-settings{top:12px;right:12px}}

.heist-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.heist-badges span{font:11px Offender,sans-serif;letter-spacing:.5px;padding:7px;border:1px solid #456069;border-radius:5px;color:#8fa7ab}.heist-badges .earned{color:#f5f731;border-color:#8b913f;background:#f5f7310b}

.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 0}.result-stats .result-stat{margin:0;padding:14px;flex-direction:column;align-items:flex-start;gap:6px}.result-stats .result-stat span{font-size:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.new-best{font-style:normal;font-size:8px;letter-spacing:.8px;background:var(--acid);color:var(--ink);padding:3px 5px;border-radius:3px;font-weight:900}
dialog p.result-record{font-size:11px;letter-spacing:.5px;color:var(--cyan);margin:12px 0 4px;text-align:center}
.briefing-record{order:4;margin:0;font-size:10px;font-weight:bold;letter-spacing:.8px;color:var(--acid)}.briefing-copy>p.briefing-record{color:var(--acid);font-size:10px;margin:0;line-height:1.4}
