:root{--indigo-900: #241f46;--indigo-800: #2f2a58;--indigo-700: #3d386b;--indigo-500: #5b56a0;--indigo-300: #9d98d4;--mint-600: #34ad86;--mint-500: #4dc79c;--mint-300: #9be6cd;--sky-600: #2f8fd6;--sky-500: #56aae8;--sky-300: #a9d9f5;--coral-600: #e2554f;--coral-500: #f0736c;--coral-300: #ffb3ad;--gold-500: #f5c145;--gold-300: #ffe19a;--paper: #ffffff;--paper-dim: #f4f6fb;--ink: var(--indigo-900);--ink-soft: #6a6590;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--r-pill: 999px;--sh-sm: 0 2px 6px rgba(36, 31, 70, .1), 0 1px 2px rgba(36, 31, 70, .06);--sh-md: 0 8px 24px rgba(36, 31, 70, .14), 0 2px 6px rgba(36, 31, 70, .08);--sh-lg: 0 20px 56px rgba(36, 31, 70, .22), 0 4px 12px rgba(36, 31, 70, .1);--sh-glow: 0 0 0 4px rgba(255, 255, 255, .5);--font: "Baloo 2", "Quicksand", "Nunito", "Varela Round", ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", system-ui, -apple-system, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-back: cubic-bezier(.34, 1.56, .64, 1);--hud-gap: 18px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--indigo-800);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{touch-action:none}#app{position:fixed;inset:0;overflow:hidden}.game-canvas{display:block;width:100%;height:100%;touch-action:none}button{font-family:inherit;font-weight:700;cursor:pointer;border:0;background:none;color:inherit}#ui{position:fixed;inset:0;pointer-events:none;z-index:10}.loader,.title,.scrim,.panel,.dialogue,.counter,.objective,.icon-btn,.clock,.minimap,.poi-marker,.btn,.btn-primary,.cat-swatch,.toggle,.seg,.stick,.touch-btn,.bubble,.bubble__next,.panel__x{pointer-events:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--indigo-800);transition:opacity .8s var(--ease-out),visibility .8s}.loader.is-gone{opacity:0;visibility:hidden;pointer-events:none}.loader__inner{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 24px}.wordmark{display:flex;flex-direction:column;align-items:center;line-height:.8;user-select:none}.wordmark__top,.wordmark__bottom{font-weight:800;text-transform:uppercase;paint-order:stroke fill;-webkit-text-stroke:.022em currentColor}.wordmark__top{font-size:clamp(36px,7vw,88px);letter-spacing:.012em;color:#fff}.wordmark__bottom{font-size:clamp(48px,9.4vw,118px);letter-spacing:.006em;color:var(--mint-500);margin-top:-.02em}.loader__count{margin-top:26px;font-size:clamp(26px,3.4vw,40px);font-weight:600;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.02em}.loader__label{margin-top:6px;font-size:14px;font-weight:600;color:#ffffff80;min-height:1.2em}.spinner{margin-top:30px;width:30px;height:30px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:#ffffffd9;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader__legal{position:fixed;left:0;right:0;bottom:calc(18px + var(--safe-b));text-align:center;font-size:13px;font-weight:600;line-height:1.5;padding:0 20px;color:#ffffffe0}.loader__legal span{color:var(--mint-300)}.title{position:fixed;inset:0;z-index:60;display:grid;grid-template-rows:1fr auto;justify-items:center;padding:max(28px,4vh) 20px calc(28px + var(--safe-b));background:linear-gradient(to bottom,#241f461f,#241f4600 34% 62%,#241f4629);transition:opacity .7s var(--ease-out),visibility .7s}.title.is-gone{opacity:0;visibility:hidden;pointer-events:none}.title__head{display:flex;flex-direction:column;align-items:center;text-align:center;animation:rise .9s var(--ease-out)}.title__kicker{font-size:clamp(18px,2.4vw,30px);font-weight:600;color:#fff;text-shadow:0 2px 12px rgba(36,31,70,.32);margin-bottom:2px}.title .wordmark__top,.title .wordmark__bottom{color:#fff;text-shadow:0 6px 26px rgba(36,31,70,.28)}.title__foot{display:flex;flex-direction:column;align-items:center;gap:16px;animation:rise .9s .18s var(--ease-out)}@keyframes rise{0%{transform:translateY(22px)}to{transform:none}}.btn-primary{display:inline-flex;align-items:center;gap:14px;padding:14px 30px 14px 12px;border-radius:var(--r-pill);background:var(--paper);color:var(--indigo-900);font-size:clamp(16px,1.5vw,20px);font-weight:700;box-shadow:var(--sh-md);transition:transform .28s var(--ease-back),box-shadow .28s var(--ease-out)}.btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:var(--sh-lg)}.btn-primary:active{transform:translateY(0) scale(.99)}.btn-primary__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--sky-300);font-size:19px}.title__secondary{text-align:center;font-size:15px;font-weight:600;color:#fff;text-shadow:0 2px 10px rgba(36,31,70,.4)}.title__secondary button{display:block;margin:2px auto 0;color:#fff;text-decoration:underline;text-underline-offset:4px;font-size:15px}.title__cats{display:flex;gap:10px;margin-top:4px}.cat-swatch{width:40px;height:40px;border-radius:50%;box-shadow:var(--sh-sm),inset 0 0 0 3px #ffffffd9;transition:transform .24s var(--ease-back)}.cat-swatch:hover{transform:scale(1.12)}.cat-swatch.is-on{box-shadow:var(--sh-md),inset 0 0 0 3px #fff,0 0 0 4px #ffffffa6;transform:scale(1.14)}.hud{position:fixed;inset:0;pointer-events:none;display:none}.hud.is-on{display:block;animation:hud-in .6s var(--ease-out)}@keyframes hud-in{0%{transform:translateY(-6px)}to{transform:none}}.hud>*{pointer-events:auto}.counters{position:absolute;top:calc(var(--hud-gap) + var(--safe-t));left:calc(var(--hud-gap) + var(--safe-l));display:flex;gap:8px}.counter{display:flex;align-items:center;gap:7px;padding:8px 14px 8px 9px;border-radius:var(--r-pill);background:#fffffff0;backdrop-filter:blur(8px);box-shadow:var(--sh-sm);font-size:15px;font-weight:700;color:var(--indigo-900);font-variant-numeric:tabular-nums;transition:transform .3s var(--ease-back)}.counter__icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--paper-dim);font-size:14px}.counter.is-bump{transform:scale(1.14)}.hud-actions{position:absolute;top:calc(var(--hud-gap) + var(--safe-t));right:calc(var(--hud-gap) + var(--safe-r));display:flex;gap:8px}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fffffff0;backdrop-filter:blur(8px);box-shadow:var(--sh-sm);font-size:18px;color:var(--indigo-900);transition:transform .24s var(--ease-back),box-shadow .24s}.icon-btn:hover{transform:scale(1.09);box-shadow:var(--sh-md)}.icon-btn:active{transform:scale(.96)}.icon-btn.is-off{opacity:.5}.icon-btn--close{width:52px;height:52px;font-size:20px;background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #ffffffb3;backdrop-filter:none}.icon-btn--close:hover{background:#ffffff29}.clock{position:absolute;top:calc(var(--hud-gap) + var(--safe-t) + 54px);right:calc(var(--hud-gap) + var(--safe-r));padding:6px 14px;border-radius:var(--r-pill);background:#ffffffe6;box-shadow:var(--sh-sm);font-size:13px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px}.objective{position:absolute;top:calc(var(--hud-gap) + var(--safe-t) + 58px);left:calc(var(--hud-gap) + var(--safe-l));width:min(300px,62vw);padding:13px 16px;border-radius:var(--r-md);background:#fffffff0;backdrop-filter:blur(8px);box-shadow:var(--sh-sm);transition:transform .4s var(--ease-out),opacity .4s}.objective.is-hidden{opacity:0;transform:translate(-14px);pointer-events:none}.objective__top{display:flex;align-items:center;gap:9px;margin-bottom:5px}.objective__icon{font-size:17px}.objective__title{font-size:14px;font-weight:800;color:var(--indigo-900);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.objective__count{font-size:12px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}.objective__brief{font-size:12.5px;font-weight:600;color:var(--ink-soft);line-height:1.4;margin-bottom:8px}.bar{height:6px;border-radius:var(--r-pill);background:var(--paper-dim);overflow:hidden}.bar__fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--mint-500),var(--sky-500));transition:width .5s var(--ease-out)}.prompt{position:absolute;left:50%;bottom:calc(112px + var(--safe-b));transform:translate(-50%,12px);display:flex;align-items:center;gap:10px;padding:10px 20px 10px 12px;border-radius:var(--r-pill);background:#fffffff5;box-shadow:var(--sh-md);font-size:14px;font-weight:700;color:var(--indigo-900);opacity:0;transition:opacity .28s var(--ease-out),transform .28s var(--ease-back);white-space:nowrap}.prompt.is-on{opacity:1;transform:translate(-50%)}.key{display:grid;place-items:center;min-width:26px;height:26px;padding:0 7px;border-radius:8px;background:var(--indigo-900);color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.04em}.hint-bar{position:absolute;left:50%;bottom:calc(18px + var(--safe-b));transform:translate(-50%);display:flex;gap:14px;padding:8px 16px;border-radius:var(--r-pill);background:#241f4657;backdrop-filter:blur(10px);font-size:12px;font-weight:700;color:#fffffff0;transition:opacity .6s}.hint-bar.is-hidden{opacity:0;pointer-events:none}.hint-bar span{display:inline-flex;align-items:center;gap:6px}.hint-bar .key{background:#ffffffe6;color:var(--indigo-900);height:22px;min-width:22px;font-size:11px}@media (max-width: 720px){.hint-bar{display:none}}.poi-layer{position:fixed;inset:0;pointer-events:none;z-index:8;display:none}.poi-layer.is-on{display:block;animation:hud-in .6s var(--ease-out)}.poi-marker{position:absolute;top:0;left:0;display:flex;align-items:center;gap:8px;padding:5px 14px 5px 5px;border-radius:var(--r-pill);background:#fffffff2;box-shadow:var(--sh-sm);pointer-events:auto;will-change:transform,opacity;transition:box-shadow .24s,background .24s}.poi-marker:hover{box-shadow:var(--sh-md);background:#fff}.poi-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--poi-color, var(--gold-500));font-size:14px;flex:none}.poi-icon{filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}.poi-label{font-size:13px;font-weight:800;color:var(--indigo-900);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}.poi-marker:not(.is-discovered) .poi-label{opacity:.55}.poi-marker:not(.is-discovered) .poi-dot{animation:poi-pulse 2.1s ease-in-out infinite}.poi-marker.is-close{box-shadow:var(--sh-md),0 0 0 3px #fff9}@keyframes poi-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.16)}}.scrim{position:fixed;inset:0;z-index:40;display:none;background:#241f4657;backdrop-filter:blur(5px)}.scrim.is-on{display:block;animation:scrim-in .3s var(--ease-out)}@keyframes scrim-in{0%{backdrop-filter:blur(0)}to{backdrop-filter:blur(5px)}}.panel{position:fixed;z-index:45;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:min(76vh,680px);display:none;flex-direction:column;border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-lg);overflow:hidden}.panel.is-on{display:flex;animation:panel-in .4s var(--ease-back)}@keyframes panel-in{0%{transform:translate(-50%,-50%) scale(.9)}to{transform:translate(-50%,-50%) scale(1)}}.panel__hero{position:relative;padding:26px 26px 20px;background:linear-gradient(135deg,var(--panel-a, var(--sky-300)),var(--panel-b, var(--mint-300)));color:var(--indigo-900)}.panel__badge{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#ffffffe6;box-shadow:var(--sh-sm);font-size:28px;margin-bottom:14px}.panel__eyebrow{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.66;margin-bottom:3px}.panel__title{font-size:clamp(23px,3.2vw,31px);font-weight:800;line-height:1.1;margin:0}.panel__x{position:absolute;top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ffffffb8;font-size:16px;color:var(--indigo-900);transition:transform .22s var(--ease-back),background .22s}.panel__x:hover{background:#fff;transform:rotate(90deg)}.panel__body{padding:22px 26px 26px;overflow-y:auto;overscroll-behavior:contain}.panel__body p{margin:0 0 14px;font-size:15px;font-weight:600;line-height:1.62;color:var(--indigo-700)}.panel__tip{display:flex;gap:11px;padding:13px 15px;border-radius:var(--r-md);background:var(--paper-dim);font-size:13.5px;font-weight:600;line-height:1.5;color:var(--ink-soft)}.panel__tip strong{color:var(--indigo-900)}.panel__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip{padding:6px 13px;border-radius:var(--r-pill);background:var(--paper-dim);font-size:12px;font-weight:700;color:var(--ink-soft)}.chip--on{background:var(--mint-300);color:var(--indigo-900)}.panel__foot{padding:0 26px 26px;display:flex;gap:10px}.btn{flex:1;padding:13px 20px;border-radius:var(--r-pill);background:var(--paper-dim);color:var(--indigo-900);font-size:14.5px;font-weight:800;transition:transform .22s var(--ease-back),background .22s}.btn:hover{transform:translateY(-2px);background:#e9edf6}.btn:active{transform:none}.btn--go{background:var(--indigo-900);color:#fff}.btn--go:hover{background:var(--indigo-700)}.row-list{display:flex;flex-direction:column;gap:9px}.row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--paper-dim)}.row__icon{font-size:19px;width:24px;text-align:center;flex:none}.row__main{flex:1;min-width:0}.row__title{font-size:14px;font-weight:800;color:var(--indigo-900)}.row__sub{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:2px;line-height:1.4}.row__right{font-size:12.5px;font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums;flex:none}.row.is-done{background:#eafaf3}.row.is-done .row__right{color:var(--mint-600)}.row.is-locked{opacity:.5}.toggle{position:relative;width:46px;height:26px;border-radius:var(--r-pill);background:#d6dbe8;flex:none;transition:background .24s}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--sh-sm);transition:transform .26s var(--ease-back)}.toggle.is-on{background:var(--mint-500)}.toggle.is-on:after{transform:translate(20px)}.seg{display:flex;gap:4px;padding:4px;border-radius:var(--r-pill);background:#e4e8f2;flex:none}.seg button{padding:6px 13px;border-radius:var(--r-pill);font-size:12px;font-weight:800;color:var(--ink-soft);transition:background .2s,color .2s}.seg button.is-on{background:#fff;color:var(--indigo-900);box-shadow:var(--sh-sm)}.dialogue{position:fixed;z-index:50;top:calc(40px + var(--safe-t));left:50%;transform:translate(-50%);width:min(540px,calc(100vw - 40px));display:none}.dialogue.is-on{display:block;animation:bubble-in .38s var(--ease-back)}@keyframes bubble-in{0%{transform:translate(-50%,-18px) scale(.96)}to{transform:translate(-50%) scale(1)}}.bubble{position:relative;padding:24px 30px 26px;border-radius:var(--r-lg);background:#fff;box-shadow:var(--sh-md);text-align:center}.bubble:before{content:"";position:absolute;top:10px;left:14px;width:92px;height:52px;border-radius:50%;background:#a9d9f54d;filter:blur(2px);pointer-events:none}.bubble__tail{position:absolute;bottom:-13px;left:50%;transform:translate(-50%);width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:14px solid #fff;filter:drop-shadow(0 3px 3px rgba(36,31,70,.08))}.bubble__text{position:relative;font-size:clamp(16px,1.8vw,20px);font-weight:700;line-height:1.42;color:var(--indigo-900);min-height:1.4em}.bubble__caret{display:inline-block;width:2px;height:1em;vertical-align:-.16em;background:var(--indigo-500);margin-left:2px;animation:blink .9s steps(1) infinite}@keyframes blink{50%{opacity:0}}.bubble__who{position:absolute;top:-14px;right:14px;display:flex;align-items:center;gap:5px;padding:7px 12px;border-radius:12px;background:var(--coral-500);box-shadow:var(--sh-sm);transform:rotate(-4deg)}.bubble__who i{width:5px;height:5px;border-radius:50%;background:#fff;animation:dot 1.2s ease-in-out infinite}.bubble__who i:nth-child(2){animation-delay:.15s}.bubble__who i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.bubble__next{position:absolute;bottom:8px;right:16px;width:26px;height:26px;display:grid;place-items:center;color:var(--coral-600);font-size:15px;animation:nudge 1.3s ease-in-out infinite}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.toasts{position:fixed;z-index:55;left:50%;bottom:calc(76px + var(--safe-b));transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:11px 20px 11px 12px;border-radius:var(--r-pill);background:#fffffff7;box-shadow:var(--sh-md);animation:toast-in .5s var(--ease-back);max-width:min(420px,calc(100vw - 32px))}.toast.is-out{animation:toast-out .4s var(--ease-out) both}.toast__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--paper-dim);font-size:16px;flex:none}.toast--discover .toast__icon{background:var(--gold-300)}.toast--success .toast__icon{background:var(--mint-300)}.toast--info .toast__icon{background:var(--sky-300)}.toast__title{font-size:12px;font-weight:800;color:var(--ink-soft);letter-spacing:.02em}.toast__body{font-size:14px;font-weight:800;color:var(--indigo-900);margin-top:1px}@keyframes toast-in{0%{transform:translateY(18px) scale(.9)}to{transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(-10px) scale(.96)}}.pickup-pop{position:fixed;z-index:30;pointer-events:none;font-size:20px;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(36,31,70,.5);animation:pop-up 1s var(--ease-out) both;white-space:nowrap}@keyframes pop-up{0%{opacity:0;transform:translate(-50%) scale(.6)}18%{opacity:1;transform:translate(-50%,-14px) scale(1.14)}to{opacity:0;transform:translate(-50%,-62px) scale(.95)}}.minimap{position:absolute;bottom:calc(var(--hud-gap) + var(--safe-b));right:calc(var(--hud-gap) + var(--safe-r));width:172px;height:172px;border-radius:50%;background:#ffffffe6;box-shadow:var(--sh-md);overflow:hidden;transition:transform .3s var(--ease-back)}.minimap:hover{transform:scale(1.04)}.minimap canvas{display:block;width:100%;height:100%}.minimap__ring{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 4px #fffffff2,inset 0 0 20px #241f461a;pointer-events:none}.minimap__n{position:absolute;top:7px;left:50%;transform:translate(-50%);font-size:10px;font-weight:800;color:var(--coral-600);pointer-events:none}@media (max-width: 720px){.minimap{width:116px;height:116px;bottom:calc(140px + var(--safe-b))}}.bigmap{position:relative;width:min(100%,46vh);aspect-ratio:1;margin:0 auto;border-radius:var(--r-md);overflow:hidden;background:#dfeaf5}.bigmap canvas{display:block;width:100%;height:100%}.touch-controls{position:fixed;inset:0;z-index:12;pointer-events:none;display:none}.touch-controls.is-on{display:block}.stick{position:absolute;left:calc(26px + var(--safe-l));bottom:calc(30px + var(--safe-b));width:128px;height:128px;border-radius:50%;background:#ffffff3d;box-shadow:inset 0 0 0 3px #ffffff80;backdrop-filter:blur(4px);pointer-events:auto;touch-action:none}.stick__knob{position:absolute;top:50%;left:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fffffff0;box-shadow:var(--sh-md);transition:transform .1s linear}.touch-btns{position:absolute;right:calc(24px + var(--safe-r));bottom:calc(34px + var(--safe-b));display:grid;grid-template-columns:repeat(2,auto);gap:12px;pointer-events:auto}.touch-btn{width:66px;height:66px;border-radius:50%;background:#ffffffeb;box-shadow:var(--sh-md);font-size:13px;font-weight:800;color:var(--indigo-900);display:grid;place-items:center;line-height:1.1;touch-action:none}.touch-btn:active,.touch-btn.is-down{transform:scale(.93);background:#fff}.touch-btn--jump{grid-column:2;grid-row:1 / span 2;height:144px;border-radius:34px}.vignette-flash{position:fixed;inset:0;z-index:35;pointer-events:none;background:radial-gradient(circle at 50% 55%,#fff0 42%,#ffffff80);opacity:0;transition:opacity .5s var(--ease-out)}.vignette-flash.is-on{opacity:1}.debug{position:fixed;bottom:6px;left:8px;z-index:90;font-family:ui-monospace,monospace;font-size:10.5px;color:#ffffffb3;text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none;white-space:pre;display:none}.debug.is-on{display:block}.status.is-hidden .vitals{transform:translateY(-260%)}.status.is-hidden .chat{transform:translateY(160%)}.vitals{position:absolute;top:calc(var(--hud-gap) + var(--safe-t) + 58px);right:calc(var(--hud-gap) + var(--safe-r));display:flex;flex-direction:column;gap:6px;padding:11px 13px;border-radius:var(--r-md);background:#fffffff0;backdrop-filter:blur(8px);box-shadow:var(--sh-sm);transition:transform .45s var(--ease-back)}.vital{display:flex;align-items:center;gap:8px}.vital__icon{font-size:13px;width:16px;text-align:center;line-height:1}.vital__track{display:block;width:92px;height:8px;border-radius:var(--r-pill);background:#241f461a;overflow:hidden}.vital__fill{display:block;height:100%;width:100%;border-radius:var(--r-pill);transform-origin:left center;transition:width .35s var(--ease-out)}.vital.is-low .vital__icon{animation:vital-pulse 1.1s var(--ease-out) infinite}@keyframes vital-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.28)}}.chat{position:absolute;bottom:calc(var(--hud-gap) + var(--safe-b));right:calc(var(--hud-gap) + var(--safe-r) + 188px);width:min(320px,42vw);display:flex;flex-direction:column;gap:6px;pointer-events:auto;transition:transform .45s var(--ease-back)}.chat__log{max-height:148px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding:4px 2px;scrollbar-width:thin}.chat__log::-webkit-scrollbar{width:5px}.chat__log::-webkit-scrollbar-thumb{background:#ffffff80;border-radius:var(--r-pill)}.chat__line{font-size:12.5px;line-height:1.35;padding:4px 9px;border-radius:var(--r-sm);background:#ffffffeb;box-shadow:var(--sh-sm);color:var(--ink);word-break:break-word;align-self:flex-start;max-width:100%}.chat__line--self{align-self:flex-end;background:var(--mint-300)}.chat__line--system{background:#ffffffc7;font-style:italic;color:var(--ink-soft)}.chat__who{font-weight:700;margin-right:5px;color:var(--indigo-500)}.chat__line--self .chat__who{color:var(--mint-600)}.chat__form{display:flex;gap:6px;align-items:center}.chat__input{flex:1 1 auto;min-width:0;font:inherit;font-size:13px;padding:9px 13px;border:0;border-radius:var(--r-pill);background:#fffffff0;box-shadow:var(--sh-sm);color:var(--ink);outline:none}.chat__input::placeholder{color:var(--ink-soft)}.chat__input:focus{box-shadow:var(--sh-sm),var(--sh-glow)}.chat__send{flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;background:var(--mint-500);color:#fff;font-size:14px;cursor:pointer;box-shadow:var(--sh-sm);transition:transform .2s var(--ease-back)}.chat__send:hover{transform:scale(1.1)}.nameplate{position:absolute;transform:translate(-50%,-100%);padding:3px 10px;border-radius:var(--r-pill);background:#ffffffeb;box-shadow:var(--sh-sm);font-size:11.5px;font-weight:700;color:var(--indigo-700);white-space:nowrap;pointer-events:none;will-change:transform}.nameplate__dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint-500);margin-right:5px;vertical-align:middle}.nameplate__say{display:block;margin-top:3px;font-weight:500;font-size:11px;color:var(--ink-soft);max-width:190px;white-space:normal}.cutscene{position:absolute;inset:0;z-index:80;pointer-events:none}.cutscene.is-off{display:none}.cutscene__bar{position:absolute;left:0;right:0;height:13vh;background:var(--indigo-900);transition:transform .55s var(--ease-out)}.cutscene__bar--top{top:0;transform:translateY(-100%)}.cutscene__bar--bottom{bottom:0;transform:translateY(100%)}.cutscene.is-on .cutscene__bar--top,.cutscene.is-on .cutscene__bar--bottom{transform:translateY(0)}.cutscene__card{position:absolute;left:50%;top:34%;width:min(620px,82vw);text-align:center;transform:translate(-50%,26px) scale(.94);transition:transform .5s var(--ease-back);color:#fff;text-shadow:0 3px 18px rgba(36,31,70,.55)}.cutscene__card.is-in{transform:translate(-50%) scale(1)}.cutscene__kicker{font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--mint-300);margin-bottom:6px}.cutscene__title{font-size:clamp(30px,5.4vw,56px);font-weight:800;line-height:1.08}.cutscene__caption{position:absolute;left:50%;bottom:16vh;width:min(720px,88vw);text-align:center;font-size:clamp(15px,2.1vw,20px);font-weight:600;line-height:1.5;color:#fff;text-shadow:0 2px 14px rgba(36,31,70,.65);transform:translate(-50%,22px) scale(.98);transition:transform .42s var(--ease-back)}.cutscene__caption.is-in{transform:translate(-50%) scale(1)}.cutscene__skip{position:absolute;right:calc(var(--hud-gap) + var(--safe-r));bottom:calc(3vh + var(--safe-b));padding:8px 18px;border:0;border-radius:var(--r-pill);background:#ffffffe6;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;pointer-events:auto;box-shadow:var(--sh-sm);transform:translateY(140%);transition:transform .5s var(--ease-back) .4s}.cutscene.is-on .cutscene__skip{transform:translateY(0)}.cutscene__skip:hover{transform:translateY(-2px) scale(1.04)}.hud.is-cinematic .counters,.hud.is-cinematic .hud-actions,.hud.is-cinematic .clock,.hud.is-cinematic .objective{transform:translateY(-260%)}.hud.is-cinematic .hint-bar,.hud.is-cinematic .prompt{transform:translate(-50%,260%)}@media (max-width: 780px){.chat{right:calc(var(--hud-gap) + var(--safe-r));bottom:calc(var(--hud-gap) + var(--safe-b) + 186px);width:min(280px,62vw)}.chat__log{max-height:96px}.vitals{padding:8px 10px;gap:5px}.vital__track{width:66px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.08s!important}}
