:root{color-scheme:dark;--ink:#e8eff4;--muted:#a5b7c5;--panel:#102130;--line:#ffffff20;--cyan:#8ddbea;--bg:#07131f;--amber:#f0c17f}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--ink)}button,select,input{font:inherit}button,select{color:var(--ink);background:#152a3bcc;border:1px solid var(--line);border-radius:10px;min-height:44px;padding:10px 16px;font-size:14px}button{cursor:pointer;touch-action:manipulation;transition:background .15s,border-color .15s}button:hover{background:#294459;border-color:#91c6d76b}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.65;cursor:wait}button[aria-pressed=true]{color:var(--cyan);border-color:#8ddbea80;background:#1b3d4f}button.primary{background:var(--cyan);border-color:var(--cyan);color:#0a2632;font-weight:700}.primary:hover{background:#b2edf6}button span{margin-left:4px}h1,h2,p{margin:0}[hidden]{display:none!important}#app,#world{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#world{display:block}.menu{position:absolute;inset:0;background:linear-gradient(90deg,#04101aef 0%,#04101aca 27%,#04101a40 66%,#04101a10),linear-gradient(0deg,#04101aaf,transparent 25%);display:flex;flex-direction:column;justify-content:space-between;padding:32px 5vw 26px}.menu-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:19px;font-weight:700;letter-spacing:2px;display:flex;gap:10px;align-items:center}.brand-mark{color:var(--cyan);font-size:34px;transform:rotate(-25deg)}.menu-content{max-width:480px}.eyebrow{color:var(--cyan);font-size:13px;letter-spacing:3px;margin-bottom:18px}h1{font-size:clamp(40px,4.4vw,68px);line-height:1.25;letter-spacing:1px;font-weight:650}.intro{font-size:16px;line-height:1.85;color:var(--muted);margin-top:20px}.menu-actions{margin-top:28px;display:flex;flex-direction:column;gap:12px;max-width:280px}.menu-actions button{font-size:16px;min-height:50px;text-align:left;padding:13px 22px}.menu-actions button span{float:right}.menu-hint{font-size:13px;line-height:1.8;color:#97aabb;margin-top:20px}.menu-footer{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#b1c1ce;letter-spacing:1px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);margin-right:8px;box-shadow:0 0 12px #8ddbea99}.hud{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:linear-gradient(#03121df5,#03121d70,transparent);pointer-events:none}.hud button,.hud select{pointer-events:auto}.hud-left,.hud-right{display:flex;align-items:center;gap:10px}.hud-left strong{font-size:17px;display:block}.hud-left small{color:#b3c2ce;font-size:12px}.hunger{width:130px;margin-left:14px}.hunger span{display:flex;justify-content:space-between;font-size:12px;color:#a8bccb;margin-bottom:7px}.hunger b{font-weight:500;color:#e9f1f6}.hunger>div{height:4px;background:#abc6d529;border-radius:4px;overflow:hidden}.hunger i{display:block;background:var(--amber);height:100%;width:100%;transition:width .2s}.keyboard-help{position:absolute;bottom:17px;left:0;right:0;text-align:center;color:#d5e4edbd;font-size:13px;pointer-events:none;text-shadow:0 1px 5px #000}.keyboard-help span{margin:0 10px;color:#81adbd}.interaction{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);background:#0b202de8;border:1px solid #83c6d54a;padding:10px 17px;display:flex;align-items:center;gap:10px;border-radius:12px;font-size:15px;white-space:nowrap;pointer-events:none;backdrop-filter:blur(10px)}kbd{font:600 13px system-ui;display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid #bcd7e669;border-radius:5px;color:var(--cyan)}.notice{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);max-width:min(600px,90vw);background:#112633e8;padding:12px 20px;border-radius:12px;font-size:14px;text-align:center;pointer-events:none}.panel{position:absolute;right:18px;top:78px;bottom:50px;width:320px;overflow-y:auto;padding:20px;background:#0a1b28f5;border:1px solid #8ca6ba38;border-radius:16px;box-shadow:0 18px 60px #0007;backdrop-filter:blur(20px);touch-action:pan-y}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel-heading h2{font-size:19px;font-weight:600}.panel-heading button,.lab-box header button{background:transparent;border:none;font-size:28px;padding:0;min-width:40px}.panel-note{font-size:13px;color:#9cafbd;line-height:1.7;margin:8px 0 14px}.panel>label{display:block;font-size:14px;margin-top:14px;margin-bottom:7px;color:#c4d2dc}.panel select{width:100%;background:#183143}.switch-row{display:flex!important;gap:10px;align-items:center;margin:18px 0!important}.switch-row input{accent-color:var(--cyan);width:18px;height:18px}.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.panel-bottom{display:flex;gap:8px;margin-top:18px}.panel-bottom button{flex:1;padding:8px;font-size:13px}#warning{position:absolute;left:50%;top:90px;transform:translateX(-50%);min-width:300px;background:#3c1e25ee;border:1px solid #ff9273a0;border-radius:12px;padding:15px 20px;text-align:center;box-shadow:0 4px 40px #0005;pointer-events:none}#warning strong{font-size:18px;display:block;color:#ffb29e}#warning span{display:block;font-size:14px;margin-top:5px}#warning>div{height:4px;background:#ffb29e22;border-radius:6px;margin-top:10px;overflow:hidden}#search-bar{display:block;height:4px;background:#ffb29e;width:100%}#touch-controls{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}.dpad{display:grid;grid-template:repeat(2,54px)/repeat(3,54px);gap:7px}.dpad .up{grid-column:2}.dpad .left{grid-row:2;grid-column:1}.dpad .down{grid-row:2;grid-column:2}.dpad .right{grid-row:2;grid-column:3}.dpad button{font-size:18px;padding:0}.touch-actions{display:flex;gap:12px;align-items:end}.touch-actions button{height:76px;width:76px;border-radius:50%;font-size:15px;padding:0}.touch-actions small{display:block;font-size:11px;margin-top:3px;color:#c8dce7}.touch-actions .interact-touch{width:84px;height:84px;background:#397082b3;border-color:#94d6e2ad}.dpad button,.touch-actions button{pointer-events:auto;user-select:none;-webkit-user-select:none;touch-action:none;background-color:#102a3bbf;backdrop-filter:blur(4px);border-color:#b8d6e552}.dpad button.pressed,.touch-actions button.pressed{background:#76d4eac9;color:#092438;border-color:#d4f5ff}.mobile .keyboard-help{display:none}.mobile .interaction{bottom:145px}.mobile .notice{bottom:195px}.modal-backdrop{position:absolute;inset:0;background:#020b13b8;display:grid;place-items:center;z-index:10;backdrop-filter:blur(12px);padding:20px}.lab-box{width:min(800px,100%);max-height:95dvh;overflow:auto;background:#0d202e;border:1px solid #b4ced633;border-radius:20px;box-shadow:0 24px 120px #0008}.lab-box header{display:flex;justify-content:space-between;align-items:center;padding:20px 26px 4px}.lab-box header .eyebrow{font-size:12px;margin-bottom:6px}.lab-box h2{font-size:24px;font-weight:600}.lab-box canvas{display:block;width:100%;height:min(43vh,360px);object-fit:contain}.lab-controls{padding:10px 26px 24px;display:grid;gap:14px}.lab-controls>select{width:100%;font-size:16px}.lab-buttons{display:flex;gap:8px;flex-wrap:wrap}.lab-buttons button{min-width:48px}.lab-buttons select{margin-left:auto}.lab-controls input{width:100%;accent-color:var(--cyan);height:22px}.frame-meta{font-size:12px;color:#96adbd;display:flex;justify-content:space-between;gap:10px}.failure-box{width:min(420px,100%);padding:32px;background:#142837;border:1px solid #c3d8e029;border-radius:18px;text-align:center}.failure-box h2{font-size:24px;margin-bottom:16px}.failure-box p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--muted);margin-bottom:24px}.failure-box button{display:block;width:100%;margin-top:12px}#load-error{position:absolute;bottom:80px;max-width:500px;padding:14px;background:#58272be8;color:#ffe3da;border-radius:10px;font-size:14px}
@media(max-width:700px){.menu{padding:18px 22px 22px;background:linear-gradient(90deg,#05121be8,#05121b99 65%,#05121b33)}.brand{font-size:16px}.menu-header button{padding:8px 12px}.menu-content{margin-top:10px}h1{font-size:44px}.intro{font-size:15px}.menu-footer{font-size:11px;letter-spacing:0;flex-wrap:wrap}.menu-actions{margin-top:22px}.hud{padding:12px}.hud-left,.hud-right{gap:7px}.hud button{padding:8px 11px}.hunger{display:none}.desktop-text{display:none}.hud-left strong{font-size:15px}.panel{right:12px;top:70px;bottom:20px;width:min(320px,calc(100vw - 24px));z-index:3}.keyboard-help{font-size:11px;padding:0 10px}.keyboard-help span{margin:0 3px}.dpad{grid-template:repeat(2,48px)/repeat(3,48px);gap:5px}#touch-controls{left:14px;right:14px}.touch-actions{gap:7px}.touch-actions button{width:62px;height:62px}.touch-actions .interact-touch{width:70px;height:70px}.frame-meta{flex-direction:column;gap:4px}.lab-controls{padding:8px 16px 18px}.lab-box header{padding:14px 16px 0}.lab-buttons{gap:6px}.lab-buttons button,.lab-buttons select{padding:8px 10px}.lab-box{border-radius:14px}#warning{top:76px;min-width:270px}.notice{font-size:13px}.interaction{bottom:52px}}
@media(max-height:550px){.menu{padding:16px 4vw}.menu-content{margin:5px 0;display:grid;grid-template-columns:1fr 250px;gap:0 30px;max-width:650px;align-items:center}.menu-content .eyebrow{grid-column:1;margin-bottom:8px}h1{font-size:36px}.intro{grid-column:1;font-size:14px;margin-top:12px}.menu-actions{grid-column:2;grid-row:2/4;margin-top:0}.menu-hint{grid-column:2;grid-row:4;font-size:12px;margin-top:8px}.menu-footer{font-size:11px}.menu-header{height:40px}.hud{padding:8px 16px}.panel{top:62px;bottom:12px}.lab-box{display:grid;grid-template-columns:1fr 1fr;max-height:92dvh}.lab-box header{grid-column:1/3}.lab-box canvas{height:62vh;min-height:0}.lab-controls{align-content:center;padding:12px 20px 18px}.lab-buttons{flex-wrap:wrap}.lab-buttons select{margin-left:0}#warning{top:64px;padding:9px 18px}#warning strong{font-size:16px}.mobile .interaction{bottom:28px}.mobile .notice{bottom:78px}}
@media(prefers-reduced-motion:reduce){button,.hunger i{transition:none}}
/* Touch-sized zoom controls sit above the movement/action pads. */
.zoom-controls{position:absolute;right:max(12px,env(safe-area-inset-right));top:calc(80px + env(safe-area-inset-top));display:flex;flex-direction:column;gap:4px;padding:4px;background:#071923c9;border:1px solid #b4ced633;border-radius:12px;backdrop-filter:blur(8px)}.zoom-controls button{width:48px;height:44px;min-height:44px;padding:0;font-size:23px;line-height:1;touch-action:manipulation;background:#173245b3}.zoom-controls #zoom-reset{font-size:12px;font-variant-numeric:tabular-nums;color:var(--cyan)}.zoom-controls button:disabled{cursor:default;opacity:.35}.panel{z-index:3}@media(max-height:550px){.zoom-controls{top:calc(65px + env(safe-area-inset-top))}}
.atmosphere-toggle{width:100%;margin-top:16px;text-align:left}
.menu-utilities{display:flex;align-items:center;gap:8px}.settings-backdrop{position:absolute;inset:0;z-index:12;background:#020b1338;display:flex;justify-content:flex-end;align-items:flex-start;padding:80px 20px 20px;touch-action:pan-y}.settings-box{width:min(350px,100%);max-height:calc(100dvh - 100px);overflow-y:auto;padding:24px;background:#0c202ef5;border:1px solid #9ebdce3d;border-radius:18px;box-shadow:0 20px 70px #0008}.settings-box header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.settings-box h2{font-size:24px;font-weight:600}.settings-box .eyebrow{font-size:12px;margin-bottom:6px}.settings-box header button{border:0;background:none;font-size:28px;min-width:44px;padding:0}.graphics-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid #afc9d51f;cursor:pointer;min-height:78px}.graphics-option strong{display:block;font-size:16px;font-weight:550}.graphics-option small{display:block;font-size:13px;color:#9eb3c2;line-height:1.6;margin-top:5px}.graphics-option input{appearance:none;-webkit-appearance:none;flex:0 0 48px;width:48px;height:28px;margin:0;border:1px solid #6a829966;border-radius:16px;background:#243a49;position:relative;cursor:pointer;touch-action:manipulation}.graphics-option input:before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#a6bccb;transition:transform .15s}.graphics-option input:checked{background:#367b8a;border-color:#8ddbea99}.graphics-option input:checked:before{transform:translateX(20px);background:#c7f4fa}.settings-note{font-size:13px;line-height:1.8;color:#96adbd;margin-top:18px}.zoom-controls .settings-open{font-size:20px}@media(max-width:700px){.settings-backdrop{padding:74px 12px 16px}.settings-box{padding:20px;max-height:calc(100dvh - 90px)}.menu-utilities{gap:6px}.menu-utilities button{padding:8px 10px}}@media(max-height:550px){.settings-backdrop{padding-top:18px}.settings-box{max-height:calc(100dvh - 36px)}.settings-box header{margin-bottom:8px}.graphics-option{padding:12px 0;min-height:65px}.settings-note{margin-top:10px}.zoom-controls{gap:2px;padding:3px}.zoom-controls button{height:42px;min-height:42px}}@media(prefers-reduced-motion:reduce){.graphics-option input:before{transition:none}}

.speed-settings{border-top:1px solid #afc9d51f;padding:16px 0 22px}.settings-section{font-size:12px;letter-spacing:.12em;color:#91c8d5;margin:0 0 14px}.speed-settings label{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin:14px 0 4px}.speed-settings output{font-variant-numeric:tabular-nums;color:#c7f4fa}.speed-settings input{display:block;width:100%;height:34px;accent-color:#8ddbea;touch-action:pan-x}.speed-settings p:not(.settings-section){font-size:12px;line-height:1.7;color:#96adbd;margin:6px 0 12px}.speed-settings button{min-height:40px;font-size:13px}.touch-actions .sneak-touch{width:64px;height:56px;border-radius:16px;font-size:14px}.sneak-touch[aria-pressed=true]{background:#32616a;border-color:#9be5f0;box-shadow:0 0 0 2px #8ddbea33}.sneak-touch small{display:block;font-size:10px;margin-top:3px;color:#b1ccd5}
@media(max-width:420px){.touch-actions{display:grid;grid-template-columns:56px 64px;grid-template-rows:52px 62px;align-items:center;gap:6px}.touch-actions .sneak-touch{grid-column:1/3;justify-self:end;width:64px;height:46px}.touch-actions .search-touch{width:56px;height:56px}.touch-actions .interact-touch{width:64px;height:64px}}

.speed-stepper{display:grid;grid-template-columns:44px minmax(70px,1fr) 44px;gap:10px;align-items:center;margin:6px 0 12px}.speed-stepper button{min-width:44px;height:44px;min-height:44px;padding:0;font-size:22px;touch-action:manipulation}.speed-stepper button:disabled{opacity:.35;cursor:default}.speed-stepper input{min-width:0;touch-action:none}.speed-readout{position:absolute;left:max(16px,env(safe-area-inset-left));top:79px;pointer-events:none;padding:6px 10px;font-size:12px;color:#b6d8e1;font-variant-numeric:tabular-nums;background:#071923bd;border:1px solid #91b7c325;border-radius:8px;backdrop-filter:blur(5px)}@media(max-height:550px){.speed-readout{top:64px}}

.basin-readout{position:absolute;left:max(16px,env(safe-area-inset-left));top:116px;pointer-events:none;font-size:12px;color:#d1e2e7;padding:6px 10px;background:#071923c9;border:1px solid #a2c5d235;border-radius:8px}.touch-actions{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:58px 68px;gap:7px;align-items:center}.touch-actions button,.touch-actions .sneak-touch{width:64px;height:58px;border-radius:15px;font-size:13px}.touch-actions .guard-touch{grid-column:1;grid-row:1;background:#365662c9;border-color:#a8d8e3}.touch-actions .attack-touch{grid-column:2/4;grid-row:1;width:auto}.touch-actions .sneak-touch{grid-column:1;grid-row:2}.touch-actions .search-touch{grid-column:2;grid-row:2}.touch-actions .interact-touch{grid-column:3;grid-row:2;width:64px;height:64px}.touch-actions button:disabled{opacity:.35;cursor:default}.mobile .interaction{bottom:160px}.mobile .notice{bottom:210px}@media(max-width:440px){#touch-controls{left:8px;right:8px}.dpad{grid-template:repeat(2,44px)/repeat(3,44px);gap:3px}.touch-actions{grid-template-columns:repeat(3,52px);gap:4px;grid-template-rows:52px 56px}.touch-actions button,.touch-actions .sneak-touch,.touch-actions .search-touch,.touch-actions .interact-touch{width:52px;height:52px;font-size:12px}.touch-actions .attack-touch{width:auto}.touch-actions small{font-size:9px}.mobile .interaction{bottom:148px}.mobile .notice{bottom:194px}}@media(max-height:550px){.basin-readout{top:100px}.mobile .interaction{bottom:30px;max-width:35vw;white-space:normal;font-size:12px}.mobile .notice{bottom:168px;max-width:60vw;font-size:12px}.keyboard-help{font-size:11px}}

/* Skills extend the existing night palette and pause gameplay while choosing an unlock. */
.skills-box{width:min(540px,100%);max-height:92dvh;overflow:auto;padding:26px;background:#0d202e;border:1px solid #b4ced633;border-radius:20px;box-shadow:0 24px 100px #0008;touch-action:pan-y}.skills-box header{display:flex;justify-content:space-between;align-items:center;gap:16px}.skills-box header .eyebrow{margin-bottom:6px}.skills-box h2{font-size:26px}.skills-box header button{font-size:28px;min-width:44px;padding:0;background:transparent;border:0}.token-wallet{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:22px 0 8px;padding:16px;background:#183445;border-radius:12px;font-size:14px}.token-wallet strong{color:#f0ce8c;font-size:18px}.skill-card{padding:20px 0;border-bottom:1px solid #b4ced625}.skill-title{display:flex;justify-content:space-between;align-items:center;gap:14px}.skill-title h3{font-size:20px;margin:0}.skill-title span{font-size:13px;color:#91c8d5}.skill-card p{font-size:16px;line-height:1.7;margin:10px 0}.skill-card .skill-detail{font-size:14px;color:#a9bdca}.skill-card button{width:100%;margin-top:8px;border-color:#8ddbea70;color:#c7f4fa}.skill-card button:disabled{opacity:.55;cursor:default}.skills-footnote{font-size:13px;line-height:1.7;color:#92aab9;margin-top:18px}.skill-notice{color:#b8e7d9;font-size:14px;line-height:1.6;margin-top:12px}.passive-readout{position:absolute;top:152px;left:max(16px,env(safe-area-inset-left));white-space:pre-line;max-width:calc(100vw - 105px);padding:8px 10px;border-radius:8px;background:#0b2432da;border:1px solid #8ddbea38;color:#d9edf4;font-size:14px;line-height:1.6;pointer-events:none;font-variant-numeric:tabular-nums}.touch-actions .grab-touch{grid-row:1;grid-column:2;width:64px;height:58px;border-radius:15px;font-size:13px;background:#4c443bc9}.touch-actions .attack-touch{grid-column:3}.menu-utilities{flex-wrap:wrap;justify-content:flex-end}.menu-header .brand{flex-shrink:0}@media(max-width:440px){.touch-actions .grab-touch{width:52px;height:52px;font-size:12px}.menu-header{gap:10px;align-items:flex-start}.menu-utilities{max-width:190px}.skills-box{padding:20px}.skill-title{align-items:flex-start;flex-wrap:wrap;gap:4px}.skill-card{padding:16px 0}}@media(max-height:550px){.passive-readout{top:138px;font-size:12px;line-height:1.5}.skills-box{max-height:95dvh}}
/* Mobile movement uses one captured pointer; actions remain available to a second thumb. */
.joystick{position:relative;flex:0 0 140px;width:140px;height:140px;border-radius:50%;background:#102b3b99;border:1px solid #a4d5e45e;box-shadow:inset 0 0 22px #06142080;touch-action:none;pointer-events:auto;user-select:none;-webkit-user-select:none;backdrop-filter:blur(4px)}.joystick-ring{position:absolute;inset:22%;border:1px solid #bbdfeb33;border-radius:50%;pointer-events:none}.joystick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border:1px solid #b6e6efaa;border-radius:50%;background:#528797d9;box-shadow:0 3px 12px #0005;pointer-events:none}.joystick-label{position:absolute;left:0;right:0;bottom:-22px;text-align:center;font-size:12px;color:#bcd5df;pointer-events:none}#touch-controls{bottom:max(36px,calc(env(safe-area-inset-bottom) + 24px));gap:16px;align-items:flex-end}.touch-actions{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:none;grid-auto-rows:60px;gap:7px;align-items:center}.touch-actions button,.touch-actions .guard-touch,.touch-actions .grab-touch,.touch-actions .attack-touch,.touch-actions .sneak-touch,.touch-actions .search-touch,.touch-actions .interact-touch{grid-column:auto;grid-row:auto;width:64px;height:58px;min-height:44px;font-size:14px}.touch-actions small{font-size:11px}.looks-open{width:100%;margin-bottom:24px;text-align:left;border-color:#8ddbea66}.looks-box>label{display:flex;justify-content:space-between;margin:19px 0 8px;font-size:14px}.looks-box select{width:100%;background:#173143}.looks-box input[type=range]{width:100%;height:32px;accent-color:var(--cyan);touch-action:none}.looks-box output{color:var(--cyan);font-variant-numeric:tabular-nums}.looks-box #looks-reset{width:100%;margin-top:20px}.mobile .interaction{bottom:193px}.mobile .notice{bottom:238px}@media(max-width:440px){.joystick{flex-basis:112px;width:112px;height:112px}.joystick-knob{width:46px;height:46px}.touch-actions{grid-template-columns:repeat(2,62px);grid-auto-rows:54px;gap:5px}.touch-actions button,.touch-actions .guard-touch,.touch-actions .grab-touch,.touch-actions .attack-touch,.touch-actions .sneak-touch,.touch-actions .search-touch,.touch-actions .interact-touch{width:62px;height:52px;font-size:13px}#touch-controls{left:18px;right:14px}.touch-actions small{font-size:10px}.mobile .interaction{bottom:211px}.mobile .notice{bottom:257px}}@media(max-height:550px){.joystick{flex-basis:116px;width:116px;height:116px}.joystick-knob{width:46px;height:46px}#touch-controls{bottom:max(24px,env(safe-area-inset-bottom))}.mobile .interaction{bottom:28px}.mobile .notice{bottom:168px}}

/* One independent switch controls the complete bedroom treatment. */
.zoom-controls .detail-compare{position:absolute;right:calc(100% + 8px);top:0;min-width:64px;padding:8px 6px;font-size:14px;font-weight:600;white-space:nowrap}.zoom-controls .detail-compare[aria-pressed=true]{background:#24495bcf;border-color:#8ddbea99;color:#c6f3fb}.detail-option{border-color:#8ddbea50}.room-light-demo{width:100%;margin:0 0 18px;border-color:#8ddbea50;color:#c5e9f2;font-size:14px}.detail-option small{max-width:320px}@media(max-width:440px){.zoom-controls .detail-compare{min-width:60px;padding:8px 4px}}
.temporary-slot{position:absolute;right:max(18px,env(safe-area-inset-right));top:86px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;min-width:175px;padding:10px 12px;background:#0c2230e8;border:1px solid #8ddbea45;border-radius:12px}.temporary-slot small{color:#a7bac7;font-size:10px;letter-spacing:1px}.temporary-slot strong{grid-column:1;font-size:13px;font-weight:500}.temporary-slot button{grid-column:2;grid-row:1 / 3;font-size:12px;padding:6px 9px;min-height:44px}.temporary-slot button:disabled{cursor:default}.hearing-readout{position:absolute;right:18px;top:159px;color:#bddaf0;background:#102536d9;padding:7px 10px;border-radius:8px;font-size:12px;pointer-events:none}.touch-actions .item-touch{background:#34505dd9;border-color:#91d3d665}.touch-actions .item-touch:disabled{opacity:.35;cursor:default}#figurine-dialog{z-index:40}#figurine-dialog .failure-box p{line-height:1.8}#figurine-dialog .failure-box button{display:block;width:100%;margin-top:12px}@media(max-width:440px){.temporary-slot{top:100px;right:14px;min-width:148px;padding:7px 9px;gap:2px 6px}.temporary-slot strong{font-size:11px}.temporary-slot button{padding:4px 7px;font-size:11px}.hearing-readout{right:14px;top:173px;font-size:10px}.touch-actions .item-touch{width:62px;height:52px;font-size:13px}}@media(max-height:550px){.temporary-slot{top:69px;right:18px;padding:6px 9px}.hearing-readout{top:132px;font-size:11px}}

/* v13: zoom occupies the old mobile overview position; utilities sit below to the right. */
.level-progress{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:18px;font-size:14px}.level-progress>div{width:100%;height:6px;background:#34505d;border-radius:8px;overflow:hidden}.level-progress i{display:block;height:100%;background:#91d3d6;width:0}.music-settings{border-top:1px solid #afc9d51f;padding:18px 0}.music-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.music-choices button{font-size:14px;padding:8px;min-height:44px}.music-choices button[aria-pressed=true]{background:#32616a;border-color:#9be5f0}#music-preview-status{font-size:12px;color:#a9bdca;line-height:1.6;margin-top:10px}
.mobile #overview{display:none!important}.mobile .zoom-controls{top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));flex-direction:row;padding:0;gap:4px;background:none;border:none;backdrop-filter:none}.mobile .zoom-controls #zoom-in{order:1}.mobile .zoom-controls #zoom-reset{order:2}.mobile .zoom-controls #zoom-out{order:3}.mobile .zoom-controls .settings-open{position:absolute;right:0;top:54px;width:44px}.mobile .zoom-controls .detail-compare{position:absolute;right:50px;top:54px;min-width:66px;width:66px;font-size:12px}.mobile .hud-right{position:absolute;right:max(12px,env(safe-area-inset-right));top:112px}.mobile .hud-right button{height:44px;font-size:12px}.mobile .temporary-slot{top:168px;right:max(12px,env(safe-area-inset-right));min-width:148px;padding:6px 9px}.mobile .hearing-readout{top:239px;right:12px;font-size:10px}.mobile .hunger{display:none}.mobile .zoom-controls button{width:44px;min-width:44px;height:44px;min-height:44px}.mobile .hud-left{max-width:calc(100vw - 166px)}
@media(max-height:550px){.mobile .hud-right{top:62px;right:136px}.mobile .temporary-slot{top:115px}.mobile .hearing-readout{top:183px}.mobile .zoom-controls .settings-open,.mobile .zoom-controls .detail-compare{top:52px}.mobile .panel{top:112px}.mobile .hud-left{max-width:calc(100vw - 340px)}}

.mobile .passive-readout{max-width:min(280px,calc(100vw - 196px));font-size:12px;overflow-wrap:anywhere}.mobile .speed-readout{max-width:calc(100vw - 184px);font-size:11px}

.rage-skill{position:absolute;right:22px;bottom:88px;display:flex;align-items:center;gap:10px;min-width:86px;border:2px solid #993d44;background:#351e2b;z-index:4}.rage-skill b{font:bold 30px Georgia;color:#ff5b64}.rage-skill small{font-size:13px}.rage-skill.ready{animation:rage-glow .65s ease-in-out infinite alternate;border-color:#ff8585;cursor:pointer}.rage-skill:disabled{cursor:default}.token-readout{position:absolute;left:22px;top:100px;font-size:13px;color:#d1dce6;pointer-events:none}.mobile .rage-skill{right:18px;bottom:225px}.mobile .token-readout{left:14px;top:83px}@keyframes rage-glow{from{box-shadow:0 0 6px #f34c5c55}to{box-shadow:0 0 24px #f34c5cbb;background:#6b293b}}@media(prefers-reduced-motion:reduce){.rage-skill.ready{animation:none;box-shadow:0 0 18px #f34c5c99}}
/* 0.18 — quiet transitions, compact translucent controls and a spatial pocket. */
button,.loot-panel,.failure-box{transition:background .16s,border-color .16s,opacity .2s,box-shadow .2s}.modal-backdrop:not([hidden]),.settings-backdrop:not([hidden]),.panel:not([hidden]),.loot-panel:not([hidden]){animation:panel-in .22s ease-out}.notice:not([hidden]),.interaction:not([hidden]){animation:soft-in .2s ease-out}@keyframes panel-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes soft-in{from{opacity:0}to{opacity:1}}
.touch-actions{display:block;width:220px;height:174px;position:relative}.touch-actions button,.touch-actions .guard-touch,.touch-actions .grab-touch,.touch-actions .attack-touch,.touch-actions .sneak-touch,.touch-actions .search-touch,.touch-actions .interact-touch,.touch-actions .item-touch{position:absolute;width:51.2px;height:51.2px;min-height:0;border-radius:50%;padding:7px 0 4px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;font-size:10px;background:#112d3b88;border:1px solid #c1e3eb70;box-shadow:inset 0 0 12px #b5e8ef0a;backdrop-filter:blur(3px);touch-action:none}.touch-actions svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.touch-actions button span{margin:0;line-height:12px}.touch-actions .interact-touch{right:0;bottom:0;background:#376d7e77}.touch-actions .passive-touch{right:62px;bottom:0}.touch-actions .item-touch{right:124px;bottom:0}.touch-actions .sneak-touch{right:0;bottom:62px}.touch-actions .guard-touch{right:62px;bottom:62px}.touch-actions .grab-touch{right:124px;bottom:62px}.touch-actions .attack-touch{right:124px;bottom:0}.touch-actions .search-touch{right:62px;bottom:62px}.mobile .rage-skill{position:fixed;right:100px;bottom:36px;min-width:0;width:51.2px;height:51.2px;border-radius:50%;padding:0;display:flex;flex-direction:column;gap:0;background:#512a3977}.mobile .rage-skill b{font-size:24px;line-height:25px}.mobile .rage-skill small{font-size:9px}.mobile .hud button,.mobile .zoom-controls button{border-radius:50%;width:39px;height:39px;min-height:39px;padding:0;font-size:11px}.mobile .phone-toggle{font-size:17px!important}.mobile .hud-right{top:63px;right:60px}.mobile .temporary-slot{display:none}.mobile .zoom-controls .settings-open{top:53px}.mobile .hearing-readout{top:114px}.mobile .basin-readout{display:none}.mobile .passive-readout{top:114px;font-size:10px;background:#0b243277;padding:5px}.mobile .interaction{bottom:150px;font-size:12px;max-width:80vw;white-space:normal}.mobile .notice{bottom:195px}.mobile .joystick{width:112px;height:112px;flex-basis:112px;background:#102b3b66}.mobile .joystick-knob{width:42px;height:42px}.mobile .joystick-label{font-size:10px}.mobile #touch-controls{bottom:36px;right:38px}.mobile .rage-skill{right:100px}.stage-readout{position:absolute;left:22px;top:128px;color:#9db8c4;font-size:11px;pointer-events:none}.mobile .stage-readout{left:14px;top:102px;font-size:10px}#pocket-toggle{position:absolute;right:84px;top:168px;border-radius:50%;width:44px;height:44px;padding:0;font-size:11px;background:#17354599}.mobile #pocket-toggle{top:64px;right:146px;width:39px;height:39px;min-height:39px}.infiltration{position:absolute;top:36%;left:50%;transform:translate(-50%,-50%);width:min(470px,76vw);text-align:center;padding:19px 22px;color:#fff9ea;pointer-events:none;z-index:6;border:2px solid #eee9dcaa;background:#06142144;letter-spacing:4px}.infiltration strong{font-size:clamp(22px,4vw,38px);font-weight:850;text-shadow:1px 3px 4px #051522}.infiltration i{display:block;position:absolute;left:-2px;right:-2px;height:7px;top:-9px;background:repeating-linear-gradient(130deg,#fff8e7bb 0 16px,transparent 16px 30px);animation:notice-bars 1.2s linear infinite}.infiltration i:last-child{top:auto;bottom:-9px;animation-direction:reverse}@keyframes notice-bars{to{background-position:30px 0}}.loot-panel{position:absolute;z-index:7;left:50%;top:50%;translate:-50% -50%;width:min(550px,92vw);max-height:80dvh;overflow:auto;border:1px solid #a2d4e052;border-radius:18px;padding:20px;background:#0b1f2cef;box-shadow:0 22px 90px #0007;backdrop-filter:blur(10px);touch-action:pan-y}.loot-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.loot-panel header small{color:#91becd;letter-spacing:2px}.loot-panel h2{font-size:20px;margin-top:4px}.loot-panel header button{border:0;background:none;font-size:24px;border-radius:50%;padding:0;width:40px;height:40px}.loot-columns{display:flex;gap:22px;justify-content:center}.loot-columns>div{flex:1;max-width:235px}.loot-columns h3{font-size:12px;font-weight:500;color:#a9c5d1;margin:0 0 10px}.loot-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;aspect-ratio:1;position:relative}.loot-cell{border:1px solid #a6c9d51e;border-radius:7px;background:#050f1980;min-width:0;min-height:0}.loot-item{z-index:1;min-width:0;min-height:0;padding:3px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;touch-action:none;position:relative;overflow:visible;user-select:none;background:#153040cc}.loot-item span{margin:0;font-size:10px;text-align:center;line-height:1.2}.loot-item b{font-size:24px;color:#8badbf}.loot-icon{width:46px;height:46px;max-width:90%;display:block;background-repeat:no-repeat}.rarity-0{border-color:#589cca80}.rarity-1{border-color:#b982d380;background:#32244499}.rarity-2{border-color:#edc17699;background:#4b3a2299}.rarity-3{border-color:#ef838499;background:#502a3199}.search-glass{font:30px Georgia;position:absolute;color:#d0edf4;animation:magnify 1.2s ease-in-out infinite}.loot-item em{position:absolute;left:5%;bottom:4px;width:90%;height:2px;background:linear-gradient(90deg,#b0d5e0 var(--progress),#ffffff12 var(--progress))}@keyframes magnify{0%,100%{transform:translate(-10px,-3px) rotate(-20deg)}50%{transform:translate(10px,3px) rotate(10deg)}}#loot-help{font-size:12px;color:#bdd2dc;line-height:1.7;margin-top:15px}.loot-live{font-size:11px;color:#849eaa;margin-top:5px}#victory-animation{display:block;margin:-8px auto 0;max-width:100%;height:150px;object-fit:contain}#voucher-reward{font-size:21px!important;color:#bddccb!important;margin-bottom:8px!important}.failure-box{max-height:94dvh;overflow:auto}.supply-shop{border-top:1px solid #c4dfeb25;margin-top:20px;padding-top:12px}.supply-shop h3{font-size:16px}.supply-shop p{font-size:12px;color:#aac3cf}.supply-shop button{margin-top:9px;font-size:12px}#layout-toolbar{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:8px;border:1px solid #b7d6e966;border-radius:16px;padding:10px;background:#102d41f2;font-size:12px;white-space:nowrap}.editing-controls #touch-controls,.editing-controls #rage-skill{z-index:50}.editing-controls .touch-actions button,.editing-controls #joystick,.editing-controls #rage-skill{outline:2px dashed #9edcde;cursor:move}.editing-controls #game-ui>.hud{opacity:.2}.editing-controls #passive-touch{pointer-events:auto}@media(max-width:440px){.touch-actions button,.touch-actions .guard-touch,.touch-actions .grab-touch,.touch-actions .attack-touch,.touch-actions .sneak-touch,.touch-actions .search-touch,.touch-actions .interact-touch,.touch-actions .item-touch{width:49.6px;height:49.6px;font-size:10px}.mobile #touch-controls{right:16px}.mobile .rage-skill{right:78px;width:49.6px;height:49.6px}.loot-panel{padding:15px}.loot-columns{gap:12px}.loot-icon{width:37px;height:37px}.loot-item span{font-size:9px}.mobile .interaction{max-width:85vw}.mobile .passive-readout{max-width:210px}}@media(max-height:550px){.loot-panel{top:46%;max-height:84dvh;width:440px;padding:14px}.loot-columns>div{max-width:160px}.loot-panel header{margin-bottom:8px}.loot-icon{width:34px;height:34px}.loot-panel h3{margin-bottom:5px}#loot-help{margin-top:9px}.loot-live{display:none}.mobile .interaction{bottom:28px;max-width:42vw}.mobile .notice{bottom:90px;max-width:46vw}.failure-box{padding:18px}#victory-animation{height:110px}.mobile .rage-skill{bottom:36px}.mobile .hud-left{max-width:calc(100vw - 220px)}}
/* Settlement choreography: backdrop, card, character/rewards, then actions. */
#failure:not([hidden]){animation:result-dim .35s ease-out both}#failure:not([hidden]) .failure-box{animation:result-card .46s cubic-bezier(.18,.7,.28,1) .08s both;transform-origin:50% 70%}#failure:not([hidden]) #victory-animation{animation:soft-in .3s ease-out .28s both}#failure:not([hidden]) #voucher-reward,#failure:not([hidden]) #round-xp{animation:result-reward .3s ease-out .55s both}#failure:not([hidden]) #retry,#failure:not([hidden]) #failure-menu{animation:soft-in .3s ease-out .95s both}#failure:not([hidden]) #failure-menu{animation-delay:1.08s}@keyframes result-dim{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px)}}@keyframes result-card{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-reward{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){#failure:not([hidden]),#failure:not([hidden]) .failure-box,#failure:not([hidden]) #victory-animation,#failure:not([hidden]) #voucher-reward,#failure:not([hidden]) #round-xp,#failure:not([hidden]) #retry,#failure:not([hidden]) #failure-menu{animation:soft-in .18s ease-out both}.infiltration i,.search-glass{animation:none}}
.whale-banknote{display:inline-block;width:48px;height:36px;background-image:url(assets/loot-icons-v18.webp?v=0fb716b833401de5574c);background-size:400% 400%;background-position:33.3333% 100%;background-repeat:no-repeat}.token-wallet{align-items:center}.loot-item{cursor:grab}.loot-item:active{cursor:grabbing}
.stage-select{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#05121aea;backdrop-filter:blur(10px);padding:24px;animation:soft-in .35s ease-out}.stage-select>button{position:absolute;left:max(20px,env(safe-area-inset-left));top:20px;border-radius:50%;width:44px;height:44px;padding:0}.stage-eyebrow{color:#accbd5;font-size:12px;letter-spacing:4px;margin-bottom:24px}.stage-carousel{display:flex;align-items:center;gap:28px;max-width:100%;width:700px;justify-content:center}.stage-arrow{border-radius:50%;width:44px;height:44px;min-width:44px;padding:0;font-size:32px;background:#152f3d88}.stage-arrow:disabled{opacity:.2;cursor:default}.stage-card{position:relative;isolation:isolate;width:460px;max-width:calc(100vw - 160px);min-height:420px;overflow:hidden;border:1px solid #aacdda48;border-radius:22px;background:#0c2230;transition:opacity .17s ease,transform .2s ease;box-shadow:0 18px 70px #0006}.stage-card.stage-switching{opacity:0;transform:translateY(4px)}.stage-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#091c2b 0%,#0b1b2888 55%,#06142111),url(assets/scene.webp?v=3308b72917002c3874ad) center/cover;opacity:.65}.stage-number{position:absolute;right:23px;top:10px;font-size:90px;line-height:1.1;font-weight:200;color:#d5e9f051;letter-spacing:-5px}.stage-content{padding:165px 30px 30px}.stage-content>p:first-child{font-size:11px;color:#aedccd;letter-spacing:2px}.stage-content h2{font-size:29px;margin:10px 0 14px;font-weight:550}.stage-content>p{font-size:13px;line-height:1.8;color:#bccdd5}#stage-facts{font-size:11px;color:#8faab8;line-height:1.8;margin:10px 0 20px}#stage-play{width:100%;min-height:46px}.stage-select #stage-counter{margin-top:20px;font-size:12px;letter-spacing:3px;color:#b4cfda}#stage-lock-hint{font-size:11px;color:#7994a3;margin-top:9px}#settlement-conversion{position:relative;margin:0 0 18px}.settlement-wallet{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px;border:1px solid #99c4bf38;background:#17383355;border-radius:10px;font-size:11px;color:#b6d0cb}.settlement-wallet strong{font-size:18px;font-variant-numeric:tabular-nums}.settlement-wallet .whale-banknote{width:36px;height:29px}.settlement-items{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}.settlement-loot{position:relative;display:flex;flex-direction:column;align-items:center;width:70px;padding:5px;border:1px solid #98c9df44;border-radius:8px;transition:opacity .15s,transform .15s}.settlement-loot .loot-icon{width:34px;height:34px}.settlement-loot span{font-size:9px}.settlement-loot small{font-size:10px;color:#b1d6c8;margin-top:3px}.settlement-loot.converted:after{content:'✓';position:absolute;right:3px;top:0;color:#c5eadb;font-size:11px}.flying-note{position:absolute;width:32px;height:24px;pointer-events:none;opacity:0}.empty-haul{font-size:12px!important;margin:7px 0!important;color:#819ba8!important}.failure-box{width:min(440px,100%)}@media(max-width:520px){.stage-select{padding:14px}.stage-carousel{gap:10px}.stage-card{max-width:calc(100vw - 122px);min-height:360px}.stage-content{padding:125px 19px 20px}.stage-content h2{font-size:25px}.stage-eyebrow{font-size:10px;letter-spacing:2px}.stage-arrow{width:36px;min-width:36px;height:36px;min-height:36px}.stage-number{font-size:74px}.settlement-loot{width:61px}}@media(max-height:580px){.stage-select{padding:12px}.stage-eyebrow{margin-bottom:10px}.stage-card{min-height:0;max-height:75dvh;width:430px}.stage-content{padding:44px 27px 20px}.stage-content h2{margin-top:7px}.stage-number{font-size:62px}.stage-select #stage-counter{margin-top:10px}.stage-select #stage-lock-hint{margin-top:5px}.failure-box{padding:16px}#victory-animation{height:90px}.settlement-loot .loot-icon{width:26px;height:26px}.settlement-loot{padding:3px}.settlement-items{margin-top:7px}#settlement-conversion{margin-bottom:10px}.failure-box p:not(.eyebrow){margin-bottom:10px}}@media(prefers-reduced-motion:reduce){.stage-select{animation-duration:.18s}.stage-card{transition:opacity .1s}.flying-note{display:none}}

/* v19 — compact announcement, a landscape settlement, and a shared grab meter. */
.infiltration{top:23%;width:min(32vw,310px);padding:9px 13px;border-width:2px}.infiltration strong{font-size:clamp(15px,2.4vw,28px);letter-spacing:2px}.infiltration i{width:7px;height:7px}
.mobile .hud .phone-toggle .desktop-text{display:none!important}.mobile .hud .phone-toggle{font-size:24px;padding:0;line-height:1;overflow:hidden}
.grab-status{position:absolute;top:22%;left:50%;transform:translateX(-50%);width:min(260px,46vw);padding:9px 13px;background:#10202ce8;border:1px solid #f5b59c8a;border-radius:12px;pointer-events:none;box-shadow:0 5px 20px #0005;animation:soft-in .15s ease-out}.grab-status span{display:block;font-size:12px;text-align:center;color:#ffdbc1;margin-bottom:6px}.grab-status>div{height:7px;overflow:hidden;border-radius:5px;background:#ffffff22}.grab-status i{display:block;height:100%;width:0;background:#ee987b;transition:width .06s linear}
#failure .failure-box{width:min(780px,94vw);max-height:90dvh;overflow:auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:28px;padding:30px;text-align:left}
.result-summary{align-self:center}.result-summary h2{font-size:clamp(21px,3.2vw,30px)}.result-summary .eyebrow{font-size:11px;margin-bottom:14px;letter-spacing:2px}.result-summary p:not(.eyebrow){font-size:12px;line-height:1.8;color:#aec2ce}
.result-details{align-self:center;border-left:1px solid #ffffff15;padding-left:24px;min-width:0}.result-details #round-xp{font-size:13px;color:#adc7d3;margin:8px 0}.result-details #voucher-reward{font-size:18px;margin:8px 0;color:#b3e6d4}.result-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #ffffff15;padding-top:18px;margin-top:18px}.result-actions button{width:auto;min-width:115px;margin:0}.result-details .settlement-items{justify-content:flex-start}.result-details .settlement-wallet{justify-content:flex-start}#victory-animation{display:none!important}.loot-panel{animation:soft-in .2s ease-out both}
@media(max-height:580px){#failure .failure-box{padding:20px;column-gap:20px}.result-details{padding-left:18px}.result-actions{padding-top:12px;margin-top:12px}.infiltration{top:24%;width:min(32vw,290px)}}
@media(max-width:450px) and (orientation:portrait){#failure .failure-box{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);padding:14px;column-gap:12px}.result-details{padding-left:12px}.result-summary h2{font-size:19px}.result-actions button{min-width:0;font-size:12px}.result-details .settlement-loot{width:52px}.settlement-wallet span{display:none}}

/* The equipped slot stays visibly empty until an item is acquired. */
#item-touch:disabled,#temporary-use:disabled{opacity:.72;cursor:default}#item-touch .loot-icon{width:37px;height:37px}#item-touch img,#temporary-use img{width:35px;height:35px;object-fit:contain}#temporary-use{width:48px;height:48px;min-height:48px;padding:4px;display:grid;place-items:center}#temporary-use .loot-icon{width:38px;height:38px}.temporary-slot #temporary-name:empty{display:none}.temporary-slot #temporary-use:empty{border-style:dashed;background:#0b253244}.mobile #item-touch:empty{border-style:dashed;background:#0b253244}

/* 0.21 — preparation surfaces only. Existing in-game control skins are preserved. */
.menu{background:linear-gradient(90deg,#08131df2,#08131dbd 38%,#07152228 80%),linear-gradient(0deg,#07131faa,transparent 25%)}
.menu .eyebrow,.stage-eyebrow{color:#aac5ce;letter-spacing:2.5px}.menu h1{font-weight:530;letter-spacing:0}.menu .primary,#stage-play{background:#b8d0d4;border-color:#b8d0d4;font-weight:600;color:#132c38;box-shadow:none}.menu .primary:hover,#stage-play:hover{background:#ccdee0}.menu .menu-utilities button{background:#14273499;border-color:#beced122;font-size:13px}.menu .status-dot{box-shadow:none;background:#a9c8c9}.menu-footer{color:#8eabb8}
.stage-select{background:#081722e8}.stage-preparation{position:absolute;right:max(22px,env(safe-area-inset-right));top:18px;display:flex;align-items:center;gap:10px}.stage-preparation>span{font-size:12px;color:#9cb9c5;margin-right:10px;font-variant-numeric:tabular-nums}.stage-preparation button{width:54px;min-height:58px;padding:7px 4px;display:flex;align-items:center;flex-direction:column;gap:4px;font-size:11px;background:#1329368c;border-color:#b9cdd32c}.stage-preparation button span{margin:0}.stage-preparation svg{width:24px;height:24px;stroke:#c4d9df;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.stage-preparation i{height:24px}.stage-card{border-radius:13px;border-color:#b3c9d333;box-shadow:0 15px 50px #0003}.stage-art{opacity:.7}.stage-number{color:#e0ebed44}.stage-content h2{letter-spacing:1px}.stage-arrow{background:transparent;border-color:#c5d9df33}.stage-select #stage-lock-hint{color:#7993a0}
.preparation-modal{z-index:40;background:#050d17b3;backdrop-filter:blur(9px)}.preparation-box{width:min(700px,94vw);max-height:90dvh;overflow:auto;border:1px solid #b5ccd32e;border-radius:14px;background:linear-gradient(130deg,#152632,#0c1c28);box-shadow:0 20px 75px #0005;padding:24px;text-align:left;touch-action:pan-y}.preparation-box header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.preparation-box header h2{font-size:23px;font-weight:550;letter-spacing:.5px}.preparation-box .eyebrow{margin-bottom:7px;font-size:10px;color:#95b0bc;letter-spacing:2px}.preparation-box header>button{width:34px;height:34px;min-height:34px;padding:0;border:0;background:transparent;font-size:24px;color:#a7bec7}.preparation-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0 18px;border-bottom:1px solid #aac8d222}.preparation-summary .token-wallet{margin:0;padding:0;background:none;border:0;font-size:12px;gap:10px;color:#a8bec9}.preparation-summary .token-wallet strong{font-size:20px;color:#e0ebed;font-variant-numeric:tabular-nums}.preparation-summary .level-progress{width:225px;max-width:55%;margin:0;gap:5px;font-size:11px}.preparation-summary .level-progress>div{height:3px;background:#ffffff12}.preparation-summary .level-progress i{background:#9cbdc5}.skill-list{margin-top:3px}.preparation-box .skill-card{display:flex;align-items:center;gap:14px;border:0;border-bottom:1px solid #bdd0d217;border-radius:0;background:transparent;padding:14px 0;margin:0}.catalog-icon,.catalog-prop{width:51px;height:51px;min-width:51px;display:grid;place-items:center;border:1px solid #b1cbd02d;border-radius:50%;background-color:#1a334044}.catalog-icon svg{width:29px;height:29px;fill:none;stroke:#bdd2da;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.catalog-prop{object-fit:contain;background-repeat:no-repeat;border:0}.skill-copy{flex:1;min-width:0}.preparation-box .skill-title{display:flex;align-items:baseline;justify-content:flex-start;gap:11px}.preparation-box h3{font-size:14px;font-weight:550;margin:0}.preparation-box .skill-title span,.catalog-tag{font-size:10px;color:#89a9b7;white-space:nowrap}.preparation-box .skill-copy p,.shop-row p{font-size:11px;color:#a1b6c1;line-height:1.65;margin:6px 0 0}.skill-actions{min-width:111px;text-align:right}.preparation-box .skill-actions button,.shop-row button{min-height:33px;padding:7px 10px;font-size:11px;border-radius:7px;background:#203c4855;border-color:#abc8d33b;margin:0;white-space:nowrap}.preparation-box button:disabled{cursor:default;opacity:.4}.skill-actions button[aria-pressed=true]{background:#29454066;color:#bfd9ce;border-color:#aacbbb55}.catalog-tag{padding:0 7px}.preparation-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:7px;border-top:1px solid #adc6cd22;font-size:11px;color:#8ea8b5}.preparation-footer button{padding:5px 8px;min-height:30px;font-size:10px;background:transparent}.preparation-box .skill-notice{font-size:11px;min-height:18px;margin:8px 0 0;color:#b8cfcd}.shop-wallet{display:flex;gap:9px;align-items:center;font-size:12px;color:#aac3cd;padding-bottom:14px;border-bottom:1px solid #b5ccd321}.shop-wallet strong{font-size:20px;margin-left:auto;color:#e0ecee;font-variant-numeric:tabular-nums}.shop-wallet .whale-banknote{width:35px;height:27px}.shop-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(160px,.8fr);gap:24px;margin-top:12px}.shop-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #bdd0d217}.shop-row>div{flex:1;min-width:0}.shop-row h3 small{display:block;font-size:9px;color:#89a6b2;margin-top:3px;font-weight:400}.shop-row .catalog-prop{width:47px;min-width:47px;height:47px}.shop-row p{font-size:10px}.preparation-bag{border-left:1px solid #b4ccd321;padding-left:20px}.preparation-bag h3{font-size:11px;display:flex;justify-content:space-between;margin:16px 0 8px}.preparation-bag small{font-weight:400;color:#87a4b2;font-size:10px}.prep-equipment{display:flex;gap:16px}.prep-equipment>div{display:flex;flex-direction:column;gap:7px;align-items:center}.prep-equipment span{font-size:10px;color:#9bb4bf}#prepared-slot,#prepared-basin{width:51px;height:51px;min-height:51px;padding:4px;border-radius:50%;display:grid;place-items:center;border:1px solid #b4cbd344;background:#132d3977}#prepared-slot:empty,#prepared-basin:empty{border-style:dashed;background:transparent}#prepared-slot .loot-icon,#prepared-basin img{width:38px;height:38px;object-fit:contain}.preparation-bag>p{font-size:10px;line-height:1.6;color:#819daa;margin:8px 0 0}.preparation-bag .loot-item span{font-size:9px}.preparation-bag .loot-icon{width:35px;height:35px}
/* Restrained panel styling does not target gameplay buttons. */
#settings .settings-box,#looks-panel .settings-box,#tools.panel,.loot-panel{border-color:#acc8d22c;border-radius:13px;background:#0d202cee;box-shadow:0 15px 55px #0004}.settings-box header h2,.loot-panel h2{font-weight:550}.settings-section{letter-spacing:1px;color:#a2bec8}.loot-panel .loot-cell{background:#0716219c;border-color:#a6c9d51c;border-radius:5px}.loot-panel .loot-item,.preparation-bag .loot-item{background:#1a303e77;border-radius:5px}.loot-panel .rarity-1,.preparation-bag .rarity-1{background:#2c263b66}.loot-panel .rarity-2,.preparation-bag .rarity-2{background:#3b342666}.loot-panel .rarity-3,.preparation-bag .rarity-3{background:#39282c66}.loot-panel .loot-item span{color:#c2d4dc}.loot-icon{object-fit:contain}.loot-panel header small{letter-spacing:1px;color:#839fab}#failure .failure-box{border-radius:14px;border:1px solid #b8cdd332;background:linear-gradient(120deg,#162936,#0b1e29);box-shadow:0 24px 75px #0005}#failure .result-actions button{font-size:12px;min-height:38px;font-weight:500}#failure .primary{background:#b5cec9;border-color:#b5cec9}#failure .settlement-wallet{background:#1a35363b;border-color:#b4d0ce25}#failure .settlement-loot{background:#142c3766;border-radius:5px}
/* Restore original announcement proportions and stripe rails, uniformly scaled in JS. */
.infiltration{top:23%;width:min(470px,76vw);padding:19px 22px;letter-spacing:4px}.infiltration strong{font-size:clamp(22px,4vw,38px);letter-spacing:4px}.infiltration i{width:auto;height:7px}
/* Requested layout changes only: remove zoom and reserve room above interaction for dodge. */
.touch-actions .sneak-touch{bottom:124px}.touch-actions .passive-touch-2{right:0;bottom:62px}.touch-actions .guard-touch{right:186px;bottom:0}.zoom-controls .settings-open{position:static!important}.mobile .zoom-controls .settings-open{position:static!important}.touch-actions{width:238px}
@media(max-height:580px){.stage-preparation{top:12px;right:16px}.stage-preparation button{width:48px;min-height:50px;font-size:10px;padding:5px}.stage-preparation>span{font-size:10px}.stage-eyebrow{margin-top:40px;font-size:10px;margin-bottom:7px}.stage-card{max-height:67dvh}.stage-content{padding:30px 25px 16px}.stage-content h2{font-size:24px;margin:7px 0}.stage-content>p{font-size:11px}#stage-facts{font-size:10px;margin:6px 0 12px}#stage-play{min-height:38px;font-size:12px}.stage-select #stage-counter{margin-top:6px}.stage-select #stage-lock-hint{font-size:10px}.preparation-box{padding:17px 20px;max-height:94dvh}.preparation-box header{margin-bottom:10px}.preparation-box header h2{font-size:20px}.preparation-summary{padding:5px 0 10px}.preparation-box .skill-card{padding:9px 0}.catalog-icon{width:44px;height:44px;min-width:44px}.catalog-icon svg{width:26px;height:26px}.shop-row{padding:9px 0}.shop-wallet{padding-bottom:8px}.shop-layout{margin-top:5px}.preparation-bag .loot-grid{max-width:146px}.preparation-box .skill-notice{margin-top:5px}.preparation-footer{margin-top:3px;padding-top:8px}}
@media(max-width:540px){.stage-preparation>span{display:none}.preparation-box{padding:17px}.shop-layout{grid-template-columns:1fr}.preparation-bag{border-left:0;border-top:1px solid #b4ccd321;padding:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.preparation-bag .loot-grid{grid-column:2;grid-row:1 / 4;max-width:165px}.preparation-bag h3{grid-column:1;font-size:10px;margin:2px 0}.preparation-bag>p{grid-column:1}.preparation-box .skill-card{gap:9px}.preparation-box .skill-title{display:block}.preparation-box .skill-title span{display:block;margin-top:3px}.skill-actions{min-width:94px}.catalog-tag{font-size:9px;padding:0}.preparation-box .skill-copy p{font-size:10px}.preparation-box .skill-actions button{font-size:10px}.preparation-summary{gap:12px}}

/* Requested A/B/C motion comparison; existing in-game button appearance stays unchanged. */
.panic-settings{border-bottom:1px solid #b5ccd323;padding-bottom:15px;margin-bottom:16px}.panic-choices{display:flex;gap:8px;margin:10px 0}.panic-choices button{flex:1;min-height:36px;padding:7px;font-size:12px}.panic-settings p#panic-current{font-size:12px;color:#a3bdc9;margin:8px 0}.panic-settings #panic-demo{font-size:12px;min-height:34px;padding:7px 12px;background:transparent}.shop-row:has(#buy-soap) h3,.shop-row:has(#buy-glue) h3{color:#e3c391}

#entry-fade{position:fixed;inset:0;z-index:1000;background:#000;touch-action:none;pointer-events:auto}

#runtime-diagnostic-status{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:160px;overflow:auto}

/* Existing round control skins are reused for active skills. */
.active-skills-desktop{position:fixed;bottom:24px;right:28px;display:flex;gap:12px}.active-skills-desktop button{width:62px;height:62px;border-radius:50%;background:#102b3ba8;border:1px solid #a9d0db66;color:#c8e6ed;position:relative;display:grid;place-content:center;gap:2px;font-size:10px}.active-skills-desktop svg{width:25px;height:25px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.active-skills-desktop small,.passive-touch small{position:absolute;right:3px;top:3px;font-size:10px}.mobile .active-skills-desktop{display:none}.skill-equip{display:flex;gap:4px;margin-top:5px}.skill-equip button{padding:5px 8px!important;font-size:11px}.skill-ready{box-shadow:inset 0 0 12px #8eced50c}.skill-actions{flex-wrap:wrap}.preparation-box .skill-list{max-height:52dvh;overflow-y:auto}.shop-catalog{max-height:none;overflow:visible}
.touch-actions .tracking-touch{right:0;bottom:62px}.tracking-touch small{position:absolute;right:3px;top:3px;font-size:10px}

/* The shop has one shared scroll surface, including both catalog and carried items. */
.shop-layout{align-items:start}.preparation-bag{position:sticky;top:0;align-self:start}.shop-box{overscroll-behavior:contain}.shop-catalog,.preparation-bag{touch-action:pan-y}@media(max-width:540px){.preparation-bag{position:static;grid-row:1}.shop-catalog{grid-row:2}}

.online-screen{position:fixed;inset:0;z-index:25;padding:26px max(24px,calc((100vw - 1050px)/2));overflow:auto;touch-action:pan-y;background:linear-gradient(125deg,#102531f5,#061621fa);color:#d8e5eb;animation:online-in .25s ease-out}.online-header{display:flex;align-items:center;gap:18px;margin-bottom:22px}.online-header>button:last-child{margin-left:auto}.online-header h2{font-size:26px;font-weight:550}.online-header .eyebrow{margin:0 0 6px;font-size:12px}.online-screen button,.online-modal button{min-height:38px;border-radius:8px;font-size:14px;padding:8px 15px}.online-card{border:1px solid #c0d8df29;border-radius:14px;background:#122b3880;padding:22px}.online-card header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.online-card h3{font-size:18px;font-weight:500}.online-card p{color:#94b0bd;font-size:14px;line-height:1.7}.online-card input[type=text],.online-card input:not([type]),.online-card select{display:block;width:100%;margin:9px 0 18px;border:1px solid #a7c6d13b;border-radius:7px;background:#081b28;padding:11px;color:#deebf0;font:inherit}.online-card label{font-size:14px;color:#b5ccd5}.nickname-card{max-width:400px;margin:8vh auto}.nickname-card h3{margin-bottom:24px}.nickname-card .primary{margin-top:16px}.online-profile{display:flex;gap:25px;align-items:center;padding:15px 0 22px;border-bottom:1px solid #accbd127;margin-bottom:20px}.online-profile strong{font-size:18px;font-weight:550}.online-profile span{display:block;font-size:12px;color:#89aab9;margin-top:6px}.online-profile>button{margin-left:auto}.online-profile #online-my-stats{font-size:14px;line-height:1.8;color:#a8c2cf}.online-lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.matchmaking{display:flex;flex-direction:column;gap:9px;align-self:start}.matchmaking h3{margin-bottom:15px}.matchmaking select{margin:0 0 6px}.online-divider{height:1px;background:#c8dae321;margin:9px 0}.online-check{display:flex;align-items:center;gap:9px}.online-check input{width:17px;height:17px;accent-color:#9fcac9}.room-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid #b5d4dd20}.room-row>div{flex:1}.room-row strong{font-size:16px;font-weight:500}.room-row small{display:block;color:#91adba;margin-top:6px;font-size:12px}.room-row button{white-space:nowrap}.online-seats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.online-seat{padding:22px;background:#071d295c;border:1px solid #c7dfe523;border-radius:10px;min-width:0}.online-seat strong{display:block;font-size:21px;font-weight:550;overflow-wrap:anywhere}.online-seat .seat-role{font-size:14px;display:block;color:#a2cbd3;margin-bottom:12px}.online-seat small{display:block;font-size:12px;color:#8eabb9;line-height:1.7;margin-top:8px}.room-options{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}.room-options .primary{margin-left:auto}.current-room{margin-top:20px}.online-modal{z-index:55;background:#030e18be;backdrop-filter:blur(7px)}.records-card{width:min(720px,94vw);max-height:88dvh;overflow:auto;touch-action:pan-y;background:#102531}.records-card h2{font-weight:500;font-size:22px}.records-card table{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px}.records-card td,.records-card th{padding:13px 9px;text-align:left;border-bottom:1px solid #c2dbe21c;overflow-wrap:anywhere}.records-card th{font-weight:400;color:#8bafbd}.records-card td small{display:block;font-size:12px;color:#7e9daa}.records-card button[aria-pressed=true]{background:#a9cdce;color:#102734}.online-loading{position:fixed;inset:0;z-index:65;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;background:#081b29f7;transition:opacity .3s;pointer-events:auto}.online-loading .online-seats{width:min(680px,85vw)}.online-loading #online-countdown{font-size:42px;color:#b5dfe3}.online-loading>p{font-size:14px;color:#97b6c3}.online-connection{position:fixed;z-index:70;top:10px;left:50%;transform:translateX(-50%);padding:8px 16px;border-radius:9px;background:#193545e8;color:#d4e4eb;font-size:13px;max-width:90vw;text-align:center}#online-notice{color:#e0bfa3;font-size:14px;min-height:22px;margin-bottom:8px}body.in-online-match #open-tools,body.in-online-match #tools,body.in-online-match .stage-readout{display:none!important}@keyframes online-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-height:580px){.online-screen{padding:15px max(18px,calc((100vw - 1050px)/2))}.online-header{margin-bottom:9px}.online-card{padding:16px}.online-profile{margin-bottom:12px;padding:8px 0 12px}.online-header h2{font-size:23px}.online-loading{gap:13px}.online-seat{padding:16px}.online-loading .eyebrow{margin:0}.online-loading #online-countdown{font-size:32px}}@media(max-width:580px){.online-lobby-layout{grid-template-columns:1fr}.matchmaking{grid-row:1}.online-profile{gap:13px;flex-wrap:wrap}.online-seats{gap:10px}.online-seat{padding:13px}.online-seat strong{font-size:18px}.online-header{gap:10px}.online-header>button{padding:8px 11px}.room-options .primary{margin-left:0}}

/* Shared camera controls retain the original circular mobile skin. */
.zoom-controls #zoom-reset{min-width:54px;font-variant-numeric:tabular-nums}.mobile .zoom-controls #zoom-reset{min-width:44px;width:44px;font-size:11px}.mobile .zoom-controls .settings-open{order:4}.zoom-controls button:disabled{opacity:.38}
.keybinding-box{width:min(600px,94vw)}.keybinding-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.keybinding-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:8px 0;border-bottom:1px solid #acc8d21c;font-size:14px}.keybinding-row button{min-height:34px;min-width:74px;max-width:135px;padding:6px 9px;font-size:13px;white-space:normal}.keybinding-row button.listening{border-color:#8ebcc8;background:#274654}.keybinding-box #keybinding-status{min-height:2.7em}.keybinding-box #reset-keyboard{margin-top:2px}
@media(max-width:550px){.keybinding-list{grid-template-columns:1fr}.keybinding-box{width:94vw}}

#online-open:disabled{cursor:default;font-size:14px;}

/* Independent new-map test UI; legacy campaign and online HUD retain their layout. */
.new-map-mode #game-ui>:not(#touch-controls){display:none!important}
.new-map-mode #touch-controls .touch-actions>button:not(#interact-touch):not(#sneak-touch):not(#search-touch):not(#grab-touch){display:none!important}
#new-map-ui{position:absolute;inset:0;pointer-events:none}
.new-map-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;background:linear-gradient(#04131feb,transparent)}
.new-map-header>div,.new-map-header nav{display:flex;align-items:center;gap:10px}.new-map-header strong{font-size:16px;font-weight:600}.new-map-header small{display:block;font-size:12px;color:#b0c4cf;margin-top:4px}.new-map-header button,.new-map-tools select{pointer-events:auto}.new-map-header button{min-width:42px}
.new-map-tools{position:absolute;top:82px;left:20px;display:flex;align-items:center;gap:9px;font-size:12px;color:#b0c3cb;text-shadow:0 1px 3px #000}.new-map-tools select{padding:6px 10px;font-size:12px;min-height:36px;background:#0b1e2de3}.new-map-tools span{padding:6px 10px;background:#091b29bc;border-radius:6px}
.new-map-hint{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);padding:9px 16px;background:#0b202de8;border:1px solid #83c6d54a;border-radius:10px;color:#d4e6ec;font-size:14px;white-space:nowrap}.new-map-help{position:absolute;bottom:17px;left:10px;right:10px;text-align:center;font-size:12px;color:#c5d6df;text-shadow:0 1px 5px #000}.mobile .new-map-help{display:none}.mobile .new-map-hint{bottom:146px}.new-map-mode .touch-actions .sneak-touch{bottom:96px;right:0}
@media(max-width:680px){.new-map-header{padding:9px 12px;gap:6px}.new-map-header>div,.new-map-header nav{gap:5px}.new-map-header strong{font-size:12px}.new-map-header button{padding:8px;min-width:36px;font-size:12px}.new-map-tools{left:12px;top:70px;gap:6px}.new-map-tools span{font-size:10px}.new-map-tools label{display:none}}
@media(max-height:610px){.menu-content h1{font-size:32px}.menu-content .intro{margin-top:9px;font-size:13px}.menu-actions{margin-top:12px;gap:7px}.menu-actions button{min-height:39px;padding:8px 18px;font-size:14px}.menu-hint{margin-top:10px;font-size:11px}.menu-content .eyebrow{margin-bottom:8px}}

.new-map-foundation{position:absolute;right:20px;top:86px;pointer-events:auto;color:#d4e6ec;background:#091b29ed;border:1px solid #83c6d54a;border-radius:10px;font-size:14px;max-width:260px}.new-map-foundation summary{padding:10px 14px;cursor:pointer}.new-map-foundation>div{display:grid;gap:10px;padding:0 14px 14px}.new-map-foundation button{font-size:14px;padding:8px}.new-map-foundation input{width:100%;min-height:32px;accent-color:#97cbd4}.new-map-foundation output{float:right}.new-map-foundation small{font-size:12px;color:#a5bac5}@media(max-width:680px){.new-map-foundation{right:12px;top:114px;max-width:230px}}

.new-map-mode #game-ui>#loot-panel{display:block!important}.new-map-mode #game-ui>#loot-panel[hidden]{display:none!important}#new-map-washer{position:absolute;right:110px;bottom:160px;pointer-events:auto;background:#254452e8}.new-map-tools{flex-wrap:wrap}.new-map-tools label{display:flex;align-items:center;gap:6px}.new-map-tools select{max-width:170px}.new-map-tools #new-map-token-count{padding:7px;background:#102130d9;border-radius:8px}.new-map-mode #loot-panel{z-index:20}

.loot-glyph{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:24px;font-weight:600;letter-spacing:-1px}

/* v56: testing controls stay in one collapsed, touch-sized menu. */
.new-map-header{padding:8px 12px;background:linear-gradient(#04131f99,transparent)}
.new-map-header>div,.new-map-header nav{gap:7px}.new-map-header small{margin:0;font-size:13px}
.new-map-header #new-map-token-count{font-size:12px;color:#c5dbe3;background:#091b29b0;border-radius:7px;padding:7px}
.new-map-test-menu{position:relative;pointer-events:auto;z-index:24;font-size:14px}
.new-map-test-menu>summary{list-style:none;cursor:pointer;padding:10px 12px;border:1px solid #83c6d54a;border-radius:9px;background:#102b3bea}
.new-map-test-body{position:absolute;right:0;top:48px;width:min(310px,calc(100vw - 24px));max-height:calc(100dvh - 80px);overflow:auto;padding:12px;background:#0b202df5;border:1px solid #83c6d54a;border-radius:12px;box-shadow:0 12px 30px #0005}
.new-map-test-menu .new-map-view-tools{display:flex;gap:6px;flex-wrap:wrap}
.new-map-test-menu .new-map-tools{position:static;display:grid;grid-template-columns:auto 1fr;gap:9px;margin-top:12px;font-size:14px}
.new-map-test-menu .new-map-tools label{display:flex;font-size:14px}.new-map-test-menu .new-map-tools label:last-child{grid-column:1/-1;justify-content:space-between}
.new-map-test-menu .new-map-tools select{font-size:14px;max-width:190px}
.new-map-test-menu .new-map-foundation{position:static;max-width:none;margin-top:12px;background:transparent}
.new-map-header button{min-height:36px;padding:7px 10px;font-size:13px}.new-map-help{font-size:11px;opacity:.65}

.new-map-hide-speed{margin:10px 0}.new-map-hide-speed label{display:block;margin:10px 0}.new-map-hide-speed input{display:block;width:100%}.new-map-hide-speed output{float:right}

#new-map-punch{position:absolute;right:115px;bottom:65px;pointer-events:auto;background:#254452e8;border:1px solid #83c6d56a;border-radius:50%;width:78px;height:78px;font-size:13px}.new-map-test-body details{margin-top:10px}.new-map-test-body details button{margin:5px 0}

#new-map-punch,#new-map-washer,#new-map-use-item{touch-action:none;user-select:none;-webkit-user-select:none}#new-map-use-item{position:absolute;right:205px;bottom:65px;pointer-events:auto;background:#254452e8;border:1px solid #83c6d56a;border-radius:50%;width:78px;height:78px;font-size:13px}.new-map-test-body small{display:block;color:#a8c0cb;line-height:1.5;margin:7px 0}.new-map-test-body select{max-width:100%}.new-map-test-body>button{width:100%;margin:5px 0}

/* v61: reuse legacy compact translucent touch buttons and its saved layout. */
#new-map-actions{position:absolute;right:16px;bottom:36px;width:238px;height:174px;pointer-events:none}
#new-map-actions>button{position:absolute;width:49.6px;height:49.6px;min-height:0;padding:7px 0 4px;border-radius:50%;font-size:10px;background:#102a3b66;border:1px solid #b8d6e552;backdrop-filter:blur(4px);pointer-events:auto;touch-action:none}
#new-map-punch{right:62px;bottom:0}#new-map-use-item{right:124px;bottom:0}#new-map-washer{right:62px;bottom:62px}
.new-map-mode #touch-controls .sneak-touch{bottom:124px}.new-map-mode #game-ui>#layout-toolbar{display:flex!important}.new-map-mode #game-ui>#layout-toolbar[hidden]{display:none!important}
.editing-controls #new-map-ui{z-index:50}.editing-controls #new-map-actions button{outline:2px dashed #9edcde;cursor:move}
.new-map-header{background:transparent;padding:6px 10px}.new-map-header nav{position:absolute;right:16px;bottom:228px;gap:5px}.new-map-header button,.new-map-test-menu>summary{min-height:28px;padding:5px 7px;font-size:11px;background:#102a3b55;border-color:#b8d6e530}.new-map-header small{font-size:11px}.new-map-header #new-map-token-count{font-size:10px;padding:4px;background:#091b2955}
.new-map-test-body{top:auto;bottom:36px;max-height:calc(100dvh - 285px);min-height:100px}.new-map-hint{font-size:11px;padding:5px 9px;background:#0b202d70;border:0;bottom:30px}.mobile .new-map-hint{bottom:24px}.new-map-help{display:none}

/* Match legacy interaction placement at each viewport breakpoint. */
.new-map-hint.interaction{bottom:66px}.mobile .new-map-hint.interaction{bottom:150px;max-width:80vw;white-space:normal}
@media(max-height:580px){.new-map-hint.interaction{bottom:52px}}
@media(max-height:550px){.mobile .new-map-hint.interaction{bottom:28px;max-width:42vw}}
#new-map-punch{gap:0!important;padding:3px 0!important}#new-map-punch svg{width:22px;height:18px}#new-map-punch span{font-size:9px;line-height:10px;text-align:center}
.coop-preparation{margin-top:12px;max-width:420px;font-size:14px}.coop-preparation label{display:inline-block;margin:8px}.coop-preparation p{font-size:12px;color:#a9bec9}.coop-actions{position:absolute;right:22px;bottom:118px;display:flex;gap:8px;pointer-events:auto}.coop-actions button{width:50px;height:50px;padding:2px;background:#14263288;border:1px solid #aacbd066;border-radius:50%;color:#c3d8de;font-size:20px;touch-action:none}.coop-actions span{display:block;font-size:10px}.special-equipment{padding:16px 0}#special-catalog{display:flex;gap:8px;flex-wrap:wrap}#special-catalog button{display:grid;justify-items:center;width:100px;border-color:#93444e}#special-catalog img{width:44px;height:44px;object-fit:contain}#special-catalog small{font-size:12px}.rarity-4{border-color:#d34759!important;background:#652535!important}.loot-item.rarity-4[data-source="container"]{animation:special-gold-burst .6s ease-out,special-shimmer 1.3s .6s infinite alternate}@keyframes special-gold-burst{from{box-shadow:0 0 36px 15px #ffe49b}to{box-shadow:0 0 4px #ffd77b}}@keyframes special-shimmer{from{filter:brightness(1)}to{filter:brightness(1.65);box-shadow:0 0 12px #f4d69b}}.online-count{display:block;font-size:13px;color:#9bb4bf;margin-top:8px}.coop-result{position:fixed;inset:0;background:#07121cbb;display:grid;place-items:center;z-index:200}.coop-result>div{padding:30px;background:#132535;border:1px solid #7798a7;border-radius:16px;text-align:center}

.journal-box{width:min(760px,94vw);max-height:85vh;overflow:auto}.journal-box header{display:flex;justify-content:space-between}.journal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.journal-grid button{min-height:90px;display:grid;justify-items:center;align-content:center}.journal-grid img{width:40px;height:40px;object-fit:contain}.journal-grid .unseen{filter:grayscale(1);opacity:.4}.journal-grid span{font-size:12px}.journal-description{position:sticky;bottom:0;background:#132535;padding:12px}

.coop-preparation{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:180;background:#112330;border:1px solid #8bb5c177;border-radius:16px;padding:24px;width:min(420px,94vw);max-height:90vh;overflow:auto}.coop-preparation h2{font-size:20px;margin-bottom:12px}.online-count{margin:0}.menu{overflow-y:auto}.menu-actions{gap:6px}
/* Night-house menu; game art remains at its original exposure. */
#menu{background:linear-gradient(90deg,rgba(5,16,26,.94),rgba(5,16,26,.72) 31%,rgba(5,16,26,.12) 65%),url('assets/house-coop-map-v52.webp?v=497f899590d974ad1aa2') center/cover no-repeat;padding:clamp(18px,3vh,36px) 5vw;overflow:auto}
#menu .menu-content{display:block;max-width:350px;margin:auto 0;padding:20px 0 96px}#menu h1{font-size:clamp(34px,4.6vw,64px);letter-spacing:5px;font-weight:650;text-shadow:0 4px 22px #0009}#menu .intro{font-size:14px;margin:12px 0 26px;color:#c3d0d3}#menu .menu-actions{width:260px;max-width:100%;gap:10px;margin-top:0}#menu .menu-actions button{min-height:48px;background:#132735dc;border:1px solid #a3c4cb40;border-radius:8px;font-size:17px;text-align:left;padding:10px 20px;box-shadow:0 5px 20px #0002}#menu .menu-actions .primary{background:#bbd2d5;color:#122833}#menu .menu-actions button:hover{border-color:#cce7e9;background:#30515e}#menu .recommend{float:right;color:#f6d496;font-size:12px;border:1px solid #d6b47b66;border-radius:4px;padding:2px 6px;margin-top:2px}#menu .menu-hint{font-size:12px;max-width:300px;margin-top:18px}#menu .main-journal{position:absolute;left:5vw;bottom:42px;display:flex;align-items:center;gap:10px;background:#0d2130c9;border:1px solid #d8cda04d;width:138px;height:72px;padding:6px 12px;box-shadow:0 5px 20px #0004}#menu .main-journal img{width:65px;height:58px;object-fit:contain}#menu .main-journal span{font-size:17px;margin:0}.menu-footer{min-height:20px}.coop-preparation .preparation-tools{display:flex;gap:8px;margin:14px 0}.new-user-test{display:grid;grid-template-columns:1fr 1fr;gap:6px}.new-user-test button{font-size:13px;padding:5px}.new-user-test h4{grid-column:1/-1;margin:8px 0}.loot-grid{align-content:start}.main-journal:focus-visible{outline:2px solid #f6d496}
@media(max-height:600px){#menu .menu-content{margin:12px 0;max-width:640px;display:grid;grid-template-columns:260px 250px;gap:8px 32px;padding:4px 0 65px}#menu .menu-content .eyebrow{grid-column:1;margin:0}#menu .menu-content h1{grid-column:1;font-size:38px}#menu .menu-content .intro{grid-column:1;margin:0}#menu .menu-content .menu-actions{grid-column:2;grid-row:1/5;gap:7px}#menu .menu-actions button{min-height:42px}#menu .menu-hint{grid-column:1;margin:0}#menu .main-journal{bottom:29px;height:56px;width:124px}#menu .main-journal img{height:45px;width:50px}}
@media(max-width:550px) and (min-height:601px){#menu{background-position:62% center}#menu .menu-content{padding-bottom:100px}#menu h1{font-size:42px}#menu .menu-actions{width:270px}.menu-footer{font-size:11px}#menu .main-journal{bottom:45px}}
/* Shared old-mode stage screen; only map and cooperation additions differ. */
#stage-select.coop-selection .stage-art{background-image:url('assets/house-coop-map-v52.webp?v=497f899590d974ad1aa2');background-size:cover;background-position:center}
.coop-invite-panel{position:absolute;left:24px;top:28%;width:170px;display:grid;gap:12px;padding:14px;background:#0c2230cc;border:1px solid #9cc3cf30;border-radius:12px;font-size:13px}.coop-invite-panel label{display:grid;gap:6px}.coop-invite-panel select{width:100%}.coop-invite-panel p{font-size:12px;line-height:1.5;color:#b1c6cd}
.new-map-header nav{position:fixed;top:10px;bottom:auto;right:16px;display:flex;align-items:center}.new-map-test-body{top:calc(100% + 8px);bottom:auto;max-height:calc(100dvh - 66px);min-height:0;overscroll-behavior:contain;touch-action:pan-y;z-index:100}
.new-map-mode #interact-touch,.new-map-mode #new-map-punch,#coop-roll,#coop-skill-2,#coop-special{position:fixed;width:50px;height:50px;min-height:0;border-radius:50%;padding:4px;background:#102a3b66;border:1px solid #b8d6e552;touch-action:none;pointer-events:auto;font-size:10px}
.new-map-mode #interact-touch{right:16px;bottom:36px}.new-map-mode #new-map-punch{right:78px;bottom:36px}#coop-roll{right:78px;bottom:98px}#coop-skill-2{right:16px;bottom:98px}#coop-special{right:16px;bottom:160px}#coop-special img{display:block;object-fit:contain;width:26px;height:26px;margin:auto}#coop-special span{font-size:9px;margin:0;white-space:nowrap}.coop-actions{position:static}.coop-actions svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5}.coop-actions button>span{display:block;margin:0;font-size:10px}.new-map-mode #sneak-touch{position:fixed;right:78px;bottom:160px}.new-map-mode #new-map-use-item{position:fixed;right:140px;bottom:36px}.new-map-mode #new-map-washer{position:fixed;right:140px;bottom:98px}.coop-actions button[aria-label='按住铁盆防御']{position:fixed;right:202px;bottom:36px}.coop-actions button[title='按住两秒']{position:fixed;right:140px;bottom:160px}
@media(orientation:landscape) and (max-height:600px){.new-map-test-body{width:310px;max-height:calc(100dvh - 60px)}.coop-selection .stage-carousel{margin-left:150px}.coop-invite-panel{left:12px;top:80px;width:150px;padding:10px;gap:8px}.coop-invite-panel button,.coop-invite-panel select{min-height:32px;padding:5px 7px;font-size:12px}.coop-selection .stage-preparation{top:10px}.coop-selection .stage-eyebrow{margin-bottom:10px}#menu .menu-content{padding-top:6px;padding-bottom:64px}#menu .intro{margin:6px 0 10px}#menu .menu-actions{gap:6px}#menu .menu-actions button{min-height:36px;padding:6px 14px}#menu h1{font-size:32px}#menu .menu-hint{margin-top:8px}.coop-selection .stage-card{max-height:calc(100dvh - 120px)}}
#new-map-pocket{border-radius:50%;width:44px!important;height:44px;min-height:44px;padding:0;font-size:11px;background:#17354599}.mobile #new-map-pocket{width:39px!important;height:39px;min-height:39px}

/* v68: same button size, 10% tighter centre spacing, lower baseline. */
.new-map-mode #interact-touch{right:16px;bottom:22px}.new-map-mode #new-map-punch{right:71.8px;bottom:22px}#coop-roll{right:71.8px;bottom:77.8px}#coop-skill-2{right:16px;bottom:77.8px}#coop-special{right:16px;bottom:133.6px}.new-map-mode #sneak-touch{right:16px;bottom:189.4px}.new-map-mode #new-map-use-item{right:127.6px;bottom:22px}.new-map-mode #new-map-washer{right:127.6px;bottom:77.8px}.coop-actions button[aria-label='按住铁盆防御']{right:183.4px;bottom:22px}.coop-actions button[title='按住两秒']{right:127.6px;bottom:133.6px}
.new-map-zoom-tools{position:fixed;top:66px;right:16px;display:flex;gap:5px;pointer-events:auto}.new-map-zoom-tools button{min-height:32px;padding:5px 10px;font-size:12px;background:#102a3b99}.coop-invite-panel{top:95px;width:142px;padding:8px;gap:6px}.coop-role-cards{display:flex;gap:4px}.coop-role-card{min-width:0!important;min-height:0!important;flex:1;padding:3px!important;display:flex;align-items:center;flex-direction:column;gap:3px}.coop-role-card[aria-pressed=true]{border-color:#b5d8e4;background:#3b5c70aa}.coop-role-card img{width:54px;height:80px;object-fit:contain}.coop-role-card strong{font-size:11px}.coop-role-card span{display:flex;gap:3px}.coop-role-card svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}.coop-invite-panel p{font-size:10px;margin:0}.coop-selection .stage-carousel{margin-left:126px}
@media(orientation:landscape) and (max-height:600px){.coop-invite-panel{top:65px;width:125px;padding:6px;gap:4px}.coop-role-card img{height:58px;width:44px}.coop-selection .stage-carousel{margin-left:118px}.coop-invite-panel button{min-height:25px;font-size:11px}.new-map-zoom-tools{top:57px}}
#coop-special[hidden]{display:none!important}

#coop-user-skill{position:fixed;right:76px;bottom:139px;max-width:112px;padding:5px;font-size:11px;pointer-events:auto;background:#102a3b99}#coop-user-skill[hidden]{display:none}

.new-map-mode #new-map-washer{display:none!important}

.stage-fullscreen{display:inline-flex;gap:6px;align-items:center;justify-content:center}.stage-fullscreen svg{width:18px;height:18px}#box-peek-v90{touch-action:none}#box-peek-v90 small{display:block;font-size:10px}

.shop-row>.catalog-prop{position:relative;display:block;flex-shrink:0}.shop-row>.catalog-prop>.loot-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;margin:0}

/* v93: entry and its lock hint share the visible card, at every viewport height. */
.stage-select{display:grid;grid-template-rows:42px minmax(0,1fr) 18px;justify-items:center;gap:10px;padding:80px 24px 16px;overflow:auto}
.stage-eyebrow{margin:0;align-self:center}.stage-carousel{min-height:0;height:100%;width:min(900px,100%)}
.stage-mode-wrap{height:100%;min-height:0;flex:1}.stage-card,.coop-selection .stage-card{height:100%;min-height:0;max-height:none;max-width:100%;width:100%}
.stage-content{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;gap:6px;padding:90px 26px 16px}
.stage-content>p,.stage-content h2,#stage-facts{margin:0}.stage-content>p:nth-of-type(2){overflow:auto;min-height:0}
#stage-play{min-height:44px}#stage-lock-hint{margin:0;text-align:center;font-size:11px;line-height:1.5}.stage-select #stage-counter{margin:0}
.stage-preparation #stage-fullscreen{background:transparent;border-color:transparent;color:inherit;flex:none}.stage-preparation #stage-fullscreen svg{width:24px;height:24px}
@media(max-height:600px){.stage-select{padding:64px 18px 8px;grid-template-rows:0 minmax(0,1fr) 14px;gap:5px}.stage-eyebrow{display:none}.stage-mode-wrap{flex-direction:row;gap:10px}.stage-mode-wrap>.round-mode-controls{flex-direction:column;gap:10px}.round-mode-controls button{width:58px;height:58px;font-size:12px}.stage-content{padding:42px 20px 10px;gap:4px}.stage-content h2{font-size:22px}.stage-content>p{font-size:11px;line-height:1.4}#stage-facts{font-size:10px;line-height:1.4}#stage-play{min-height:38px;font-size:13px}.stage-card>.map-name{top:10px}.coop-selection .stage-carousel{width:calc(100% - 138px);margin-left:138px}.coop-invite-panel{top:68px;bottom:22px;overflow:auto}#stage-lock-hint{font-size:10px}}
@media(orientation:landscape){body.mobile #touch-controls,body.mobile .coop-actions,body.mobile .new-map-actions,body.mobile .new-map-zoom-tools{zoom:1.1}body.mobile #touch-controls{width:calc(100% / 1.1 - 48px);right:auto}body.mobile .hud{zoom:1.1;width:calc(100% / 1.1);right:auto}body.mobile .new-map-header{zoom:1.1}body.mobile .interaction,body.mobile #new-map-hint{font-size:16.5px;padding:11px 18.7px;gap:11px}body.mobile .new-map-test-body{font-size:15.4px;gap:13.2px}}
.fox-walk-compare-v105{display:grid;grid-template-columns:1fr 1.7fr;gap:6px;padding:7px 0 10px;border-bottom:1px solid #ffffff20}.fox-walk-compare-v105>small{grid-column:1/-1;margin:0}.fox-walk-compare-v105>button{padding:8px 4px;font-size:12px;border:1px solid #dbefff45;background:#ffffff0c;border-radius:7px}.fox-walk-compare-v105>button[aria-pressed="true"]{background:#eef7ff20;border-color:#e5f5ffc0}

/* The journey card occupies a fixed viewport layer, never changes map scale. */
#entry-journey{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,22px)}
#entry-journey[hidden]{display:none}
.journey-window{width:min(70vw,660px);height:min(31vw,290px);max-height:43vh;overflow:hidden;border:1px solid #fff2;border-radius:14px;background:linear-gradient(145deg,#ffffff08,#ffffff02);box-shadow:0 0 38px #d9e6ff08,inset 0 0 32px #0008}
#journey-actors{width:100%;height:100%;display:block}
.journey-caption{margin:0;color:#ffffffe0;font-family:"STKaiti","KaiTi","Kaiti SC",serif;font-size:clamp(18px,2.8vw,31px);font-weight:600;letter-spacing:.12em;transform:rotate(-2deg);text-shadow:0 2px 0 #9daeb21f,0 0 13px #eef6ff25;animation:journey-breathe 1.3s ease-in-out infinite}
.journey-caption span{display:inline-block;animation:journey-dots .85s ease-in-out infinite alternate}
@keyframes journey-breathe{0%,100%{opacity:.6;transform:translateY(0) rotate(-2deg)}50%{opacity:.88;transform:translateY(-2px) rotate(-2deg)}}
@keyframes journey-dots{from{opacity:.35;transform:translateX(-1px)}to{opacity:.9;transform:translateX(1px)}}
