:root{color-scheme:dark;--ink: #080914;--ink-soft: #101326;--panel: rgba(12, 15, 31, .9);--panel-solid: #101326;--line: rgba(195, 207, 255, .22);--line-bright: rgba(220, 228, 255, .42);--text: #f3f1ec;--muted: #a8abc2;--dim: #7d819d;--cyan: #6de4e0;--cyan-soft: #3ba8b0;--gold: #e8bb69;--red: #ef6b72;--red-deep: #9b2f4e;--violet: #8b79ee;--green: #92d3a3;--shadow: 0 24px 80px rgba(0, 0, 0, .38);font-family:Manrope,system-ui,sans-serif;font-synthesis:none;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--modal-gutter: 20px;--card-pad: 38px;--prompt-bottom: 26%;--onboarding-h: 150px;--pad-clear: 224px}body.has-onboarding{--prompt-bottom: 46%}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--ink);color:var(--text)}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;box-shadow:0 0 0 5px #6de4e024}.is-hidden{display:none!important}.screen{position:fixed;inset:0;z-index:20}.boot-screen{display:grid;place-content:center;gap:18px;background:radial-gradient(circle at 50% 40%,#1b2142,var(--ink) 62%);text-align:center}.boot-screen p{margin:0;color:var(--muted);font:11px DM Mono,monospace;letter-spacing:.14em;text-transform:uppercase}.boot-mark{width:56px;height:56px;display:grid;place-items:center;margin:auto;border:1px solid var(--gold);color:var(--gold);font:600 14px Unbounded,sans-serif;letter-spacing:-.1em;transform:rotate(45deg)}.boot-mark:first-line{transform:rotate(-45deg)}.boot-track{width:180px;height:2px;overflow:hidden;background:var(--line)}.boot-track span{display:block;width:42%;height:100%;background:var(--cyan);animation:boot 1.1s ease-in-out infinite}@keyframes boot{0%{transform:translate(-120%)}to{transform:translate(340%)}}.boot-screen p{max-width:46ch;margin-inline:auto;line-height:1.9;text-transform:none;letter-spacing:.02em}.boot-screen small{display:block;max-width:52ch;margin-inline:auto;color:#cbd6e2ad;font:12px/1.7 DM Mono,monospace}.boot-screen[data-webgl-fallback] .boot-track{display:none}.boot-screen[data-webgl-fallback] p{color:var(--gold)}body.is-webgl-fallback .boot-screen{z-index:40}body.is-context-lost #game-canvas{filter:brightness(.35) saturate(.2)}.title-screen{display:grid;place-items:center start;overflow:hidden;padding:7vh clamp(28px,8vw,120px);background:linear-gradient(90deg,#05060ee0,#05060e8f 42%,#05060e1f 72%,#05060e7a),linear-gradient(180deg,rgba(5,6,14,.42),transparent 46%,rgba(5,6,14,.78))}.title-screen:before{content:"";position:absolute;inset:-20%;background:radial-gradient(ellipse at 72% 40%,transparent 0 18%,rgba(5,6,14,.08) 46%,rgba(5,6,14,.72) 100%);pointer-events:none}.title-vignette{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(circle,#000 20%,transparent 72%)}.title-content{position:relative;z-index:1;width:min(720px,calc(100% - 40px));padding:28px 32px 30px;border-left:2px solid rgba(109,228,224,.54);background:linear-gradient(90deg,#05060e7a,#05060e14);text-align:left}.eyebrow{margin:0 0 14px;color:var(--gold);font:10px DM Mono,monospace;letter-spacing:.3em;text-transform:uppercase}.title-content h1{margin:0;color:#f5f0e6;font:600 clamp(52px,12vw,116px)/.88 "Unbounded",sans-serif;letter-spacing:-.09em;text-shadow:0 3px 0 rgba(8,9,20,.72),0 0 50px rgba(109,228,224,.16)}.title-content h1 span{color:var(--red);text-shadow:0 3px 0 rgba(8,9,20,.72),0 0 30px rgba(239,107,114,.22)}.title-subtitle{margin:20px 0 0;color:var(--cyan);font:11px DM Mono,monospace;letter-spacing:.42em}.title-copy{margin:30px 0 32px;color:var(--muted);font-size:15px;line-height:1.8}.title-actions{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:10px}.title-note{margin:38px 0 0;color:var(--dim);font:10px DM Mono,monospace;letter-spacing:.08em}.title-footer{position:absolute;right:calc(28px + var(--safe-right));bottom:calc(22px + var(--safe-bottom));left:calc(28px + var(--safe-left));z-index:1;display:flex;justify-content:center;gap:26px;color:var(--dim);font:10px DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.title-screen:after{content:"";position:absolute;inset:22px;border:1px solid rgba(220,228,255,.12);pointer-events:none}body[data-screen=title] .game-shell{background:transparent}body[data-screen=title] #game-canvas{filter:saturate(.88) contrast(1.06)}body[data-screen=title] .screen-tint{opacity:.42}body[data-screen=title] #hud,body[data-screen=title] .quest-panel,body[data-screen=title] .stats-panel,body[data-screen=title] .minimap-wrap,body[data-screen=title] .interaction,body[data-screen=title] .alert-meter,body[data-screen=title] .boss-hud,body[data-screen=title] .dialogue,body[data-screen=title] .cutscene,body[data-screen=title] .mobile-controls,body[data-screen=title] .toast,body[data-screen=title] .command-feedback,body[data-screen=cutscene] #hud,body[data-screen=cutscene] .quest-panel,body[data-screen=cutscene] .stats-panel,body[data-screen=cutscene] .minimap-wrap,body[data-screen=cutscene] .interaction,body[data-screen=cutscene] .alert-meter,body[data-screen=cutscene] .boss-hud,body[data-screen=cutscene] .mobile-controls,body[data-screen=cutscene] .toast,body[data-screen=cutscene] .command-feedback,body[data-screen=dialogue] #hud,body[data-screen=dialogue] .quest-panel,body[data-screen=dialogue] .stats-panel,body[data-screen=dialogue] .minimap-wrap,body[data-screen=dialogue] .interaction,body[data-screen=dialogue] .alert-meter,body[data-screen=dialogue] .boss-hud,body[data-screen=dialogue] .mobile-controls,body[data-screen=dialogue] .toast,body[data-screen=dialogue] .command-feedback{opacity:0;visibility:hidden}.button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 18px;border:1px solid var(--line-bright);border-radius:3px;background:#ffffff08;color:var(--text);cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;touch-action:manipulation;user-select:none;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.button:hover{transform:translateY(-2px);border-color:var(--cyan);background:#6de4e01a}.button:active{transform:translateY(0)}.button span{color:var(--gold);font-size:16px}.button-primary{border-color:var(--cyan);background:var(--cyan);color:#071419;box-shadow:0 0 30px #6de4e01f}.button-primary:hover{border-color:#b8fffa;background:#b8fffa;color:#071419}.button-ghost{background:#08091457}.button-primary span,.button-primary:hover span{color:inherit}.game-shell{position:fixed;inset:0;overflow:hidden;background:#0c1020}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.screen-tint{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 38%,rgba(4,6,15,.3) 100%),linear-gradient(180deg,rgba(4,6,15,.14),transparent 22%,transparent 76%,rgba(4,6,15,.3))}.grain{position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");mix-blend-mode:screen}.hit-flash{position:absolute;z-index:4;inset:0;opacity:0;background:radial-gradient(circle at center,transparent 38%,rgba(239,107,114,.2) 74%,rgba(126,24,44,.58));pointer-events:none;transition:opacity .08s linear}.damage-layer{position:absolute;z-index:14;inset:0;overflow:hidden;pointer-events:none}.damage-number{position:absolute;left:0;top:0;min-width:34px;padding:4px 7px;border:1px solid currentColor;background:#080914db;color:var(--gold);font:800 22px/1 Unbounded,sans-serif;letter-spacing:.04em;text-align:center;text-shadow:0 2px 0 var(--ink),0 0 12px currentColor;transform:translate(-50%,-50%);animation:damage-rise .72s cubic-bezier(.18,.8,.28,1) forwards;will-change:transform,opacity}.damage-number.enemy{color:var(--gold)}.damage-number.heavy{color:#fff1c7;font-size:28px}.damage-number.player{color:var(--red)}@keyframes damage-rise{0%{opacity:0;scale:.72}14%{opacity:1;scale:1.12}to{opacity:0;translate:0 -52px;scale:.94}}.panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);backdrop-filter:blur(14px);text-shadow:0 1px 2px var(--ink)}.hud{position:absolute;z-index:5;pointer-events:none}.hud-top{top:0;right:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:calc(18px + var(--safe-top)) calc(24px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(24px + var(--safe-left));background:linear-gradient(180deg,rgba(5,6,15,.94),rgba(5,6,15,.52) 68%,transparent)}.hud-brand{min-width:0;display:flex;align-items:center;gap:9px;color:var(--text);font:10px DM Mono,monospace;letter-spacing:.16em;text-shadow:0 1px 3px var(--ink)}.hud-brand small{margin-left:6px;color:var(--gold);font-size:10px}.brand-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--red);box-shadow:0 0 16px var(--red)}.hud-center{min-width:0;text-align:center;text-shadow:0 1px 3px var(--ink)}.hud-center span{display:block;color:var(--cyan);font:10px DM Mono,monospace;letter-spacing:.25em}.hud-center strong{display:block;margin-top:5px;color:var(--text);font-size:14px;letter-spacing:.02em}.hud-actions{display:flex;justify-content:flex-end;gap:7px;pointer-events:auto}.icon-button{width:44px;height:44px;min-width:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:3px;background:#080914b8;color:var(--muted);cursor:pointer;font:14px DM Mono,monospace;touch-action:manipulation;transition:color .18s,border-color .18s,background .18s,transform .18s}.icon-button:hover,.icon-button[aria-pressed=true],.icon-button:active{border-color:var(--cyan);color:var(--cyan);background:#6de4e01a}#hud-stack{display:contents}.quest-panel{position:absolute;z-index:5;top:calc(94px + var(--safe-top));left:calc(24px + var(--safe-left));width:min(268px,calc(100% - 48px));padding:15px 16px 14px;pointer-events:none}.panel-label{color:var(--dim);font:10px/1.3 DM Mono,monospace;letter-spacing:.18em}.quest-objective{margin-top:0;color:var(--text);font-size:13px;font-weight:700;line-height:1.35;text-wrap:balance}.quest-progress{height:4px;margin-top:14px;overflow:hidden;background:#ffffff1a}.quest-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--red));box-shadow:0 0 12px var(--gold);transition:width .3s ease}.quest-count{margin-top:8px;color:var(--muted);font:10px/1.35 DM Mono,monospace;text-wrap:pretty}.stats-panel{position:absolute;z-index:5;right:calc(24px + var(--safe-right));bottom:calc(28px + var(--safe-bottom));width:min(255px,calc(100% - 48px));padding:15px;pointer-events:none}.stat-line{display:grid;grid-template-columns:58px minmax(0,1fr) 34px;align-items:center;gap:8px;margin-bottom:11px;color:var(--dim);font:10px/1.2 DM Mono,monospace}.stat-line b{color:var(--muted);font-size:10px;font-weight:400;text-align:right}.meter{height:7px;overflow:hidden;background:#ffffff1a}.meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--red-deep),var(--red));box-shadow:0 0 10px #ef6b7299;transition:width .25s ease}.meter.stamina i{background:linear-gradient(90deg,var(--cyan-soft),var(--cyan));box-shadow:0 0 10px #6de4e080}.stat-row{display:flex;justify-content:space-between;margin-top:10px;color:var(--dim);font:10px/1.3 DM Mono,monospace}.stat-row b{color:var(--gold);font-weight:500}.minimap-wrap{position:absolute;z-index:5;right:calc(24px + var(--safe-right));top:calc(94px + var(--safe-top));width:192px;padding:8px;pointer-events:none}#minimap{width:174px;height:174px;display:block;border:1px solid rgba(109,228,224,.28);background:#08091461}.minimap-caption{display:flex;justify-content:space-between;padding:8px 2px 1px;color:var(--dim);font:8px/1.2 DM Mono,monospace;letter-spacing:.1em;white-space:nowrap}.minimap-caption span:first-child{color:var(--gold)}.interaction{position:absolute;z-index:6;bottom:var(--prompt-bottom);left:50%;display:flex;align-items:center;gap:9px;transform:translate(-50%);max-width:calc(100% - 28px);min-height:44px;padding:8px 12px;border:1px solid var(--line-bright);background:#080914e0;color:var(--text);font-size:11px;text-shadow:0 1px 3px var(--ink);pointer-events:none}.keycap{display:inline-grid;min-width:23px;height:23px;place-items:center;padding:0 5px;border:1px solid var(--gold);color:var(--gold);font:10px DM Mono,monospace}.interaction{overflow:hidden}.interaction-fill{position:absolute;left:0;bottom:0;width:0;height:2px;background:linear-gradient(90deg,var(--gold),#ff9a5c);box-shadow:0 0 10px #e8bb6999;transition:width .05s linear}.interaction.is-charging{border-color:#e8bb69b3;box-shadow:0 0 22px #e8bb692e}.ward-row{padding-top:7px;border-top:1px solid rgba(109,228,224,.14);white-space:nowrap}.ward-row>span{display:flex;gap:8px;min-width:0}.ward-row>span:last-child{flex:1;justify-content:flex-end;overflow:hidden;text-overflow:ellipsis}.ward-row.is-warm #ward-aura{color:var(--gold)}.ward-row.is-warm #ward-value{color:#ff9a5c}.ward-row.is-full #ward-value{color:var(--green)}.interaction.is-guide{border-color:#e8bb6999;color:var(--gold)}.interaction.is-guide .keycap{border-color:var(--gold);color:var(--gold);font-size:13px}.command-feedback{position:absolute;z-index:6;top:auto;bottom:calc(var(--prompt-bottom) + 52px);left:50%;max-width:min(360px,calc(100% - 28px));padding:7px 12px;border:1px solid rgba(145,212,188,.55);background:#080914e0;color:var(--green);font:9px/1.4 DM Mono,monospace;letter-spacing:.1em;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity .2s,transform .2s;pointer-events:none}.command-feedback.is-visible{opacity:1;transform:translate(-50%)}.toast{position:absolute;z-index:12;top:auto;bottom:calc(var(--prompt-bottom) + 96px);left:50%;max-width:min(420px,calc(100% - 28px));padding:10px 14px;border:1px solid var(--line-bright);background:#080914e6;color:var(--text);font-size:12px;line-height:1.4;text-align:center;text-shadow:0 1px 3px var(--ink);transform:translate(-50%,-10px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.is-visible{opacity:1;transform:translate(-50%)}.boss-hud{position:absolute;z-index:7;top:calc(78px + var(--safe-top));left:50%;width:min(460px,calc(100% - 28px));padding:9px 12px 10px;border:1px solid var(--line);background:#080914d6;box-shadow:var(--shadow);backdrop-filter:blur(10px);transform:translate(-50%);text-align:center;pointer-events:none}.boss-name span{display:block;color:var(--red);font:700 14px Unbounded,sans-serif;letter-spacing:.14em;text-shadow:0 1px 4px var(--ink)}.boss-name small{display:block;margin-top:5px;color:var(--muted);font:9px DM Mono,monospace;letter-spacing:.18em}.boss-meter{height:7px;margin-top:11px;overflow:hidden;border:1px solid rgba(239,107,114,.5);background:#080914b3}.boss-meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--red-deep),var(--red),var(--gold));box-shadow:0 0 16px #ef6b728c;transition:width .3s}.boss-phase{margin-top:7px;color:var(--gold);font:700 9px DM Mono,monospace;letter-spacing:.16em;text-shadow:0 1px 4px var(--ink)}.dialogue{position:absolute;z-index:15;right:calc(10% + var(--safe-right));bottom:calc(7% + var(--safe-bottom));left:calc(10% + var(--safe-left));display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:start;gap:14px;min-width:0;max-width:calc(100% - 28px);padding:18px 20px;border:1px solid var(--line-bright);background:#080914e6;box-shadow:var(--shadow)}.dialogue-mark{color:var(--gold);font-size:20px}.dialogue strong{color:var(--gold);font:10px DM Mono,monospace;letter-spacing:.15em;text-transform:uppercase}.dialogue p{max-width:68ch;margin:6px 0 0;color:var(--text);font-size:14px;line-height:1.6}.dialogue-prompt{align-self:end;min-height:44px;padding:0 10px;border:1px solid var(--line);background:#ffffff08;color:var(--dim);font:9px DM Mono,monospace;white-space:nowrap;cursor:pointer}.cutscene{position:absolute;z-index:18;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:calc(7vh + var(--safe-top)) calc(9vw + var(--safe-right)) calc(7vh + var(--safe-bottom)) calc(9vw + var(--safe-left));background:linear-gradient(180deg,#03040ae0,#03040a61 45%,#03040af0)}.cutscene-top{display:flex;justify-content:space-between;gap:16px;color:var(--gold);font:10px DM Mono,monospace;letter-spacing:.22em}.cutscene-copy{max-width:700px;min-width:0}.cutscene-copy p{max-width:100%;margin:0;color:#f5f1e8;font-size:clamp(21px,3.5vw,40px);line-height:1.25;text-wrap:balance}.cutscene .button{align-self:flex-end}.mobile-controls{--stick-size: 122px;--look-size: 118px;--pad-size: 58px;--pad-gap: 6px;position:absolute;z-index:10;right:calc(10px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));left:calc(10px + var(--safe-left));display:none;align-items:flex-end;justify-content:space-between;pointer-events:none}.stick{position:relative;flex:0 0 auto;width:var(--stick-size);height:var(--stick-size);border-radius:50%;pointer-events:auto;touch-action:none}.stick-look{width:var(--look-size);height:var(--look-size)}.stick-ring{position:absolute;inset:0;border:1px solid rgba(145,212,188,.34);border-radius:50%;background:radial-gradient(circle,#08091480 38%,#0809142e);opacity:.34;transition:opacity .18s ease}.stick-knob{position:absolute;top:50%;left:50%;width:42%;height:42%;margin:-21% 0 0 -21%;border:1px solid rgba(220,228,255,.5);border-radius:50%;background:#6de4e029;box-shadow:0 0 14px #6de4e02e;opacity:.5;pointer-events:none;transform:translate(0);transition:transform .05s linear,opacity .18s ease}.stick-tag{position:absolute;bottom:7px;left:50%;transform:translate(-50%);color:var(--dim);font:7px DM Mono,monospace;letter-spacing:.18em;pointer-events:none}.stick.is-active .stick-ring{opacity:.62}.stick.is-active .stick-knob{opacity:.95}.stick.is-active .stick-tap{opacity:.8}.stick-tap{position:absolute;width:34px;height:34px;min-width:0;min-height:0;padding:0;border:0;background:transparent;color:var(--text);font:11px/1 DM Mono,monospace;opacity:.22;touch-action:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:opacity .18s ease}.stick-tap[data-move=w]{top:0;left:50%;transform:translate(-50%)}.stick-tap[data-move=s]{bottom:0;left:50%;transform:translate(-50%)}.stick-tap[data-move=a]{top:50%;left:0;transform:translateY(-50%)}.stick-tap[data-move=d]{top:50%;right:0;transform:translateY(-50%)}.action-zone{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:var(--pad-gap)}.action-stack{position:relative}.action-pad,.kit-drawer{display:grid;grid-template-columns:repeat(3,var(--pad-size));gap:var(--pad-gap)}.action-pad{pointer-events:auto}.kit-drawer{position:absolute;right:0;bottom:calc(100% + var(--pad-gap));pointer-events:auto}.kit-drawer[hidden]{display:none}.action-pad button,.kit-drawer button{width:var(--pad-size);min-width:var(--pad-size);height:var(--pad-size);min-height:var(--pad-size);padding:2px;border:1px solid var(--line-bright);background:#080914b3;color:var(--muted);font:8px/1.05 DM Mono,monospace;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent}.action-pad button[data-action=attack],.kit-drawer button[data-action=attack]{border-color:var(--red);color:var(--red)}.action-pad button[data-action=dodge],.kit-drawer button[data-action=dodge]{border-color:var(--cyan);color:var(--cyan)}.action-pad button[data-action=parry],.kit-drawer button[data-action=parry]{border-color:var(--gold);color:var(--gold)}.action-pad button[data-action=companion],.kit-drawer button[data-action=companion]{border-color:var(--green);color:var(--green)}.action-pad button:active,.action-pad button.is-held,.kit-drawer button:active,.kit-drawer button.is-held{transform:scale(.96);background:#6de4e029}.action-pad .kit-toggle{border-style:dashed;color:var(--dim)}.action-pad .kit-toggle[aria-expanded=true]{border-color:var(--cyan);color:var(--cyan)}.dead-overlay{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:24px;background:#04050cb8;backdrop-filter:blur(8px) saturate(.35);pointer-events:none}.dead-card{width:min(420px,100%);padding:30px 26px;border:1px solid rgba(239,107,114,.7);background:#080914eb;box-shadow:0 24px 80px #0000007a;text-align:center}.dead-card .eyebrow{color:var(--red)}.dead-card h2{margin:14px 0 22px;color:var(--text);font:500 clamp(24px,5vw,38px)/1.15 "Unbounded",sans-serif}.dead-card strong{display:block;color:var(--red);font:20px DM Mono,monospace;letter-spacing:.2em}.dead-card strong span{color:var(--text)}.dead-card p:last-child{margin:18px 0 0;color:var(--muted);font:11px/1.5 DM Mono,monospace}body.has-dead #game-canvas{filter:saturate(.25) brightness(.48)}body.has-dead #hud,body.has-dead .quest-panel,body.has-dead .stats-panel,body.has-dead .minimap-wrap,body.has-dead .interaction,body.has-dead .alert-meter,body.has-dead .boss-hud,body.has-dead .command-feedback,body.has-dead .toast,body.has-dead .onboarding-panel,body.has-dead .mobile-controls{opacity:0;visibility:hidden}body.has-dead #game-shell{pointer-events:none}body.has-dead .dead-overlay{opacity:1;visibility:visible}.modal{position:fixed;z-index:40;inset:0;display:grid;place-items:center;overflow-y:auto;overscroll-behavior:contain;padding:max(var(--modal-gutter),var(--safe-top)) max(var(--modal-gutter),var(--safe-right)) max(var(--modal-gutter),var(--safe-bottom)) max(var(--modal-gutter),var(--safe-left));background:#020308c7;backdrop-filter:blur(14px)}.modal-card{position:relative;width:min(680px,100%);max-width:100%;min-width:0;max-height:min(800px,calc(100vh - var(--modal-gutter) - var(--modal-gutter)));max-height:min(800px,calc(100dvh - var(--modal-gutter) - var(--modal-gutter) - var(--safe-top) - var(--safe-bottom)));overflow:auto;overscroll-behavior:contain;padding:var(--card-pad);border:1px solid var(--line-bright);background:linear-gradient(145deg,#13172ffa,#080914fa);box-shadow:0 30px 100px #00000094}.modal-card h2{max-width:calc(100% - 48px);margin:0 0 18px;overflow-wrap:anywhere;font:500 clamp(24px,4vw,40px)/1.1 "Unbounded",sans-serif;letter-spacing:-.04em}.modal-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-size:20px;line-height:1;touch-action:manipulation}.modal-close:hover{color:var(--text);border-color:var(--cyan)}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:25px 0}.guide-grid>div{min-width:0;padding:15px;border:1px solid var(--line);background:#ffffff06}.guide-grid .keycap{margin-bottom:10px}.guide-grid strong{display:block;color:var(--text);font-size:13px}.guide-grid p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.modal-note,.forge-copy{color:var(--muted);font-size:12px;line-height:1.7}.forge-card{width:min(820px,100%)}.vrm-workbench{position:relative;height:250px;margin:18px 0;overflow:hidden;border:1px solid var(--line);background:radial-gradient(circle at 50% 30%,#1a2146,#090b16 75%)}.vrm-workbench canvas{width:100%;height:100%;display:block}.vrm-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:var(--dim);font:10px DM Mono,monospace;letter-spacing:.18em;text-transform:uppercase}.forge-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-label,.file-label{display:block;min-width:0;color:var(--muted);font:9px DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.field-label input{display:block;width:100%;height:44px;margin-top:7px;padding:0 11px;border:1px solid var(--line);background:#0003;color:var(--text);font:12px DM Mono,monospace}.file-label{position:relative;height:44px;display:flex;align-items:center;margin-top:25px;padding:0 12px;border:1px dashed var(--line-bright);color:var(--cyan);cursor:pointer}.file-label input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.forge-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:15px}.text-link{color:var(--cyan);font:10px DM Mono,monospace;text-decoration:none}.text-link:hover{color:var(--text)}.forge-status{min-height:18px;margin:14px 0 0;color:var(--muted);font:10px DM Mono,monospace;line-height:1.5}.forge-status.is-error{color:var(--red)}.pause-card,.victory-card{text-align:center}.pause-card{width:min(760px,100%)}.pause-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 26px;margin-top:20px;text-align:left}.pause-col{display:flex;flex-direction:column;min-width:0}.pause-actions{position:sticky;z-index:2;bottom:calc(-1 * var(--card-pad));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:24px calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad));padding:14px var(--card-pad) var(--card-pad);background:linear-gradient(180deg,#0a0c1a33,#090b18f7 42%)}.pause-actions #resume-button{grid-column:1 / -1}.victory-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:25px 0}.victory-stats>div{min-width:0;padding:14px 8px;border:1px solid var(--line)}.victory-stats strong,.victory-stats span{display:block}.victory-stats strong{color:var(--gold);font:18px Unbounded,sans-serif}.victory-stats span{margin-top:6px;color:var(--dim);font:8px DM Mono,monospace;letter-spacing:.12em}.hud-brand em{margin-left:8px;padding-left:8px;border-left:1px solid var(--line);color:var(--gold);font:8px DM Mono,monospace;font-style:normal;letter-spacing:.12em}.content-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.content-output{max-height:180px;overflow:auto;margin:10px 0 0;padding:12px;border:1px solid var(--line);background:#00000038;color:var(--muted);font:10px/1.6 DM Mono,monospace;white-space:pre-wrap}.campaign-card,.party-card{width:min(900px,100%)}.campaign-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.campaign-grid>div{padding:13px;border:1px solid var(--line);background:#ffffff06}.campaign-grid span,.campaign-grid strong{display:block}.campaign-grid span{color:var(--dim);font:8px DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.campaign-grid strong{margin-top:7px;color:var(--text);font-size:12px}.campaign-choices{display:grid;gap:8px;margin:15px 0 22px}.campaign-choice{min-height:44px;padding:12px 14px;border:1px solid var(--line);background:#ffffff06;color:var(--text);cursor:pointer;text-align:left}.campaign-choice:hover{border-color:var(--cyan);background:#6de4e014}.campaign-choice small{display:block;margin-top:4px;color:var(--muted);font:9px DM Mono,monospace}.party-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}.party-member{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:14px;border:1px solid var(--line);background:#ffffff06}.party-avatar{display:grid;width:48px;height:48px;place-items:center;border:1px solid var(--line-bright);color:var(--gold);font:16px Unbounded,sans-serif}.party-member strong{display:block;font-size:13px}.party-member p{margin:5px 0 8px;color:var(--muted);font-size:11px;line-height:1.45}.party-member small{color:var(--cyan);font:9px DM Mono,monospace}.party-member .party-bond{margin:0 0 8px;color:var(--gold);font:9px DM Mono,monospace;letter-spacing:.04em}.tutorial-panel{position:fixed;z-index:24;inset:auto calc(20px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(20px + var(--safe-left));display:flex;justify-content:center;pointer-events:none}.tutorial-card{width:min(520px,100%);max-height:calc(100dvh - 48px - var(--safe-top) - var(--safe-bottom));overflow:auto;padding:18px;pointer-events:auto}.tutorial-card h2{margin:9px 0;font-size:18px}.tutorial-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.tutorial-actions{display:flex;justify-content:space-between;gap:8px;margin-top:16px}.tutorial-progress{margin-top:10px;color:var(--gold);font:9px DM Mono,monospace;text-align:right}:root{--muted: #c3c7d8;--dim: #a6abc2;--panel: rgba(10, 13, 29, .94)}.title-goal{display:flex;align-items:center;gap:12px;width:min(440px,100%);margin:0 0 24px;padding:11px 13px;border:1px solid rgba(109,228,224,.38);background:#0809149e}.title-goal-mark{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:1px solid var(--gold);color:var(--gold);font:10px DM Mono,monospace}.title-goal strong,.title-goal span{display:block}.title-goal strong{color:var(--cyan);font:9px DM Mono,monospace;letter-spacing:.14em}.title-goal div span{margin-top:4px;color:var(--text);font-size:11px;line-height:1.4}.title-actions{max-width:690px}.title-actions .button-primary{flex:1 0 100%;min-height:54px;font-size:13px}.title-note{max-width:620px;line-height:1.5}.onboarding-panel{position:absolute;z-index:8;bottom:calc(28px + var(--safe-bottom));left:calc(24px + var(--safe-left));width:min(370px,calc(100% - 48px));padding:14px 15px 13px;pointer-events:auto}.onboarding-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--gold);font:9px DM Mono,monospace;letter-spacing:.12em}.onboarding-steps{display:flex;flex:0 1 92px;gap:3px}.onboarding-steps i{flex:1;height:3px;background:#ffffff4d}.onboarding-steps i.is-done{background:var(--cyan);box-shadow:0 0 8px #6de4e08c}.onboarding-hint{color:var(--dim);font:9px DM Mono,monospace}.onboarding-close{width:32px;height:32px;min-width:32px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1}.onboarding-close:hover{border-color:var(--cyan);color:var(--cyan)}.onboarding-panel h2{margin:10px 0 5px;color:var(--text);font-size:17px}.onboarding-panel p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.onboarding-action{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--cyan);font:10px DM Mono,monospace}.onboarding-action .keycap{color:var(--gold)}.onboarding-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px}.onboarding-footer .button{min-height:38px;padding:0 12px;font-size:9px}.onboarding-footer>span{color:var(--gold);font:9px DM Mono,monospace}.settings-grid{display:grid;gap:10px;margin-top:0;text-align:left}.setting-row{display:grid;grid-template-columns:92px minmax(0,1fr) 42px;align-items:center;gap:10px;min-height:44px;color:var(--muted);font:10px DM Mono,monospace}.setting-row input[type=range]{width:100%;min-height:44px;accent-color:var(--cyan);cursor:pointer}.setting-row output{color:var(--text);text-align:right}.setting-select select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line-bright);background:var(--ink-soft);color:var(--text);cursor:pointer}.setting-motion{width:100%;margin-top:10px;text-align:left}.key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:2px 16px;margin:14px 0 0;padding:11px 12px;border:1px solid var(--line);color:var(--muted);font:9px/1.5 DM Mono,monospace}.key-grid>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:baseline;min-width:0;padding:2px 0}.key-grid dt{color:var(--gold);letter-spacing:.06em}.key-grid dd{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pause-vitals{margin-top:0;padding:12px 13px 2px;border:1px solid var(--line);background:#ffffff05}.pause-vitals .stat-row:first-child{margin-top:0}.result-row span,.result-row strong{display:block}.result-row span{color:var(--dim);font:8px DM Mono,monospace;letter-spacing:.12em}.result-row strong{margin-top:6px;color:var(--gold);font:16px Unbounded,sans-serif}.share-status{display:block;min-height:16px;margin-top:12px;color:var(--cyan);font:9px DM Mono,monospace}.dead-overlay{pointer-events:auto}.dead-card{width:min(480px,100%)}.dead-card>p:not(.eyebrow){margin:0;color:var(--muted);font-size:12px;line-height:1.55}.dead-card .result-row strong{color:var(--gold)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffffff;outline-offset:3px;box-shadow:0 0 0 5px #6de4e047,0 0 24px #6de4e03d}[data-controller-focus]:focus,[data-controller-focus].controller-focused{outline:3px solid #ffffff;outline-offset:3px;box-shadow:0 0 0 5px #6de4e047,0 0 24px #6de4e03d}@media(max-width:760px){.title-goal{margin-bottom:18px}.title-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.title-actions .button-primary{grid-column:1 / -1}.title-note{margin-top:18px}.settings-grid{gap:8px}.setting-row{grid-template-columns:82px minmax(0,1fr) 40px;gap:7px}.victory-actions,.dead-actions{flex-direction:column;align-items:stretch}.pause-body{grid-template-columns:minmax(0,1fr);gap:16px}.key-grid{grid-template-columns:repeat(auto-fit,minmax(126px,1fr))}.victory-actions .button,.dead-actions .button{width:100%}}@media(max-width:760px){.campaign-grid{grid-template-columns:repeat(2,1fr)}.party-grid{grid-template-columns:1fr}.hud-brand em{display:none}}.alert-meter{position:absolute;z-index:7;top:calc(86px + var(--safe-top));left:50%;width:min(220px,calc(100% - 28px));transform:translate(-50%);padding:7px 9px;border:1px solid var(--line);background:#080914c2;pointer-events:none}.alert-meter span{display:block;color:var(--gold);font:600 9px/1.2 DM Mono,monospace;letter-spacing:.14em;text-align:center}.alert-meter>div{height:4px;margin-top:5px;overflow:hidden;background:#ffffff1f}.alert-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--red));box-shadow:0 0 10px var(--red);transition:width .2s ease}body.has-boss .alert-meter{top:calc(214px + var(--safe-top))}.ward-alert{position:absolute;z-index:7;top:calc(86px + var(--safe-top));left:50%;width:min(260px,calc(100% - 28px));transform:translate(-50%);padding:7px 9px;border:1px solid rgba(194,90,106,.62);background:#14080ed6;pointer-events:none}.ward-alert span{display:block;color:#f0a0aa;font:600 9px/1.2 DM Mono,monospace;letter-spacing:.1em;text-align:center}.ward-alert>div{height:4px;margin-top:5px;overflow:hidden;background:#ffffff1f}.ward-alert i{display:block;width:0;height:100%;background:linear-gradient(90deg,#c25a6a,#ff9a5c);box-shadow:0 0 10px #ff9a5c;transition:width .1s linear}body.has-ward-alert .alert-meter{top:calc(126px + var(--safe-top))}body.has-boss .ward-alert{top:calc(214px + var(--safe-top))}body.has-boss.has-ward-alert .alert-meter{top:calc(254px + var(--safe-top))}.ward-row.is-snuffed #ward-aura{color:#f0a0aa}@media(max-width:420px)and (max-height:520px){.ward-alert{display:none}}body[data-screen=title] .ward-alert,body[data-screen=cutscene] .ward-alert,body[data-screen=dialogue] .ward-alert,body.has-dead .ward-alert{opacity:0;visibility:hidden}body:not(.motion-full) .ward-alert,body:not(.motion-full) .ward-alert i{transition:none;animation:none}@media(max-width:420px)and (max-height:520px){.alert-meter{display:none}}body[data-screen=title] .onboarding-panel{display:none!important}body.has-dead #game-shell{pointer-events:auto}.dead-card{max-height:calc(100dvh - 32px);overflow:auto}.controller-status{padding:6px 7px;border:1px solid var(--line);color:var(--dim);font:8px DM Mono,monospace;letter-spacing:.08em;white-space:nowrap}.controller-status[data-controller-status=connected]{border-color:var(--cyan);color:var(--cyan)}.controller-status[data-controller-status=virtual]{border-color:var(--gold);color:var(--gold)}[data-controller-focus]:focus,[data-controller-focus].controller-focused{outline:2px solid var(--cyan);outline-offset:3px;box-shadow:0 0 0 5px #6de4e01a,0 0 24px #6de4e02e}[data-animation-bench-ready=true]{isolation:isolate}body[data-screen=title] .game-shell,body[data-screen=field-guide] .game-shell,body[data-screen=forge] .game-shell{pointer-events:none}body[data-screen=title] .title-screen,body[data-screen=field-guide] #help-modal,body[data-screen=forge] #forge-modal,body[data-screen=cutscene] #cutscene,body[data-screen=gameplay] #game-shell,body[data-screen=stealth] #game-shell,body[data-screen=battle] #game-shell,body[data-screen=boss] #game-shell,body[data-screen=snuffer] #game-shell,body[data-screen=dialogue] #dialogue,body[data-screen=pause] #pause-modal,body[data-screen=victory] #victory-modal{pointer-events:auto}body[data-screen=title] .title-screen,body[data-screen=field-guide] #help-modal,body[data-screen=forge] #forge-modal,body[data-screen=cutscene] #cutscene,body[data-screen=gameplay] #game-shell,body[data-screen=stealth] #game-shell,body[data-screen=battle] #game-shell,body[data-screen=boss] #game-shell,body[data-screen=snuffer] #game-shell,body[data-screen=dialogue] #dialogue,body[data-screen=pause] #pause-modal,body[data-screen=victory] #victory-modal{--screen-accent: var(--cyan)}@media(max-width:760px){.controller-status{display:none}}@media(max-width:760px),(pointer:coarse)and (max-height:520px){:root{--modal-gutter: 12px;--card-pad: 22px;--onboarding-h: 200px;--pad-clear: 276px;--prompt-bottom: calc(var(--pad-clear) + var(--safe-bottom))}body.has-onboarding{--prompt-bottom: calc(var(--pad-clear) + var(--onboarding-h) + 10px + var(--safe-bottom))}.hud-top{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:calc(14px + var(--safe-top)) calc(15px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(15px + var(--safe-left))}.hud-center{display:none}.hud-brand{min-width:0;gap:7px;font-size:9px}.hud-brand small,.hud-brand em{display:none}.hud-brand>span:not(.brand-dot){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-actions{gap:4px}.icon-button{width:44px;height:44px}#hud-stack{position:absolute;z-index:9;top:calc(88px + var(--safe-top));right:calc(14px + var(--safe-right));left:calc(14px + var(--safe-left));display:flex;flex-direction:column;gap:8px;pointer-events:none}#hud-stack>*{position:static;width:auto;max-width:none;transform:none}.quest-panel{padding:8px 10px}.quest-objective{margin-top:6px;overflow-wrap:anywhere}.quest-progress{margin-top:9px}.stats-panel{padding:9px 10px}.stats-panel .stat-row{display:none}.stat-line{grid-template-columns:52px minmax(0,1fr) 30px;margin-bottom:7px}.stat-line:last-child{margin-bottom:0}.alert-meter{padding:6px 9px}.boss-hud{text-align:center}body.has-boss .quest-panel{padding:7px 10px}body.has-boss .quest-panel .quest-progress{display:none}body.has-boss .quest-panel .quest-objective{margin-top:0;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.interaction{top:auto;left:calc(14px + var(--safe-left));right:auto;max-width:calc(100% - 28px);transform:none;text-align:left}.command-feedback{max-width:min(320px,calc(100% - 28px))}.onboarding-panel{right:calc(14px + var(--safe-right));bottom:calc(var(--pad-clear) + var(--safe-bottom));left:calc(14px + var(--safe-left));width:auto;height:var(--onboarding-h);padding:10px 11px;overflow:hidden}.onboarding-panel h2{font-size:14px}.onboarding-panel p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:10px;line-height:1.4}.minimap-wrap{display:none}.mobile-controls{display:flex}.dialogue{right:calc(14px + var(--safe-right));bottom:28%;left:calc(14px + var(--safe-left));grid-template-columns:24px minmax(0,1fr);padding:14px}.dialogue-prompt{display:inline-flex;grid-column:2;justify-self:end;align-items:center}.dialogue p{font-size:13px;line-height:1.5}.cutscene{padding:calc(8vh + var(--safe-top)) calc(24px + var(--safe-right)) calc(8vh + var(--safe-bottom)) calc(24px + var(--safe-left))}.pause-body{gap:14px}.modal-card h2{max-width:calc(100% - 40px)}.modal-close{top:10px;right:10px}.guide-grid,.forge-controls{grid-template-columns:1fr}.file-label{margin-top:0}.title-screen{place-items:center;overflow-y:auto;padding:calc(32px + var(--safe-top)) calc(16px + var(--safe-right)) calc(76px + var(--safe-bottom)) calc(16px + var(--safe-left))}.title-content{width:100%;padding:0;border-left:0;background:none;text-align:center}.title-content h1{font-size:clamp(44px,13vw,72px)}.title-subtitle{margin-top:16px;font-size:10px;letter-spacing:.3em}.title-copy{margin:24px auto 26px;font-size:13px;line-height:1.65}.title-actions{gap:8px}.title-note{margin-top:24px;font-size:9px;line-height:1.5}.title-footer{right:calc(16px + var(--safe-right));bottom:calc(14px + var(--safe-bottom));left:calc(16px + var(--safe-left));flex-wrap:wrap;gap:6px 14px;font-size:9px;line-height:1.4}.title-actions{justify-content:center}.victory-stats{gap:6px}.victory-stats>div{padding:12px 4px}}@media(prefers-reduced-motion:reduce){body:not(.motion-full) *,body:not(.motion-full) *:before,body:not(.motion-full) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}body:not(.motion-full) .boot-track span,body:not(.motion-full) .quest-progress span,body:not(.motion-full) .meter i,body:not(.motion-full) .boss-meter i,body:not(.motion-full) .command-feedback,body:not(.motion-full) .toast,body:not(.motion-full) .button,body:not(.motion-full) .icon-button,body:not(.motion-full) .stick-ring,body:not(.motion-full) .stick-knob,body:not(.motion-full) .stick-tap,body:not(.motion-full) .action-pad button,body:not(.motion-full) .kit-drawer button{animation:none!important;transition:none!important}body:not(.motion-full) .button:hover,body:not(.motion-full) .button:active,body:not(.motion-full) .action-pad button:active,body:not(.motion-full) .action-pad button.is-held,body:not(.motion-full) .kit-drawer button:active,body:not(.motion-full) .kit-drawer button.is-held{transform:none}}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}body.reduced-motion .button:hover,body.reduced-motion .button:active,body.reduced-motion .icon-button:hover,body.reduced-motion .icon-button:active,body.reduced-motion .action-pad button:active,body.reduced-motion .action-pad button.is-held,body.reduced-motion .kit-drawer button:active,body.reduced-motion .kit-drawer button.is-held{transform:none!important}body.reduced-motion .hit-flash{display:none}body.reduced-motion .damage-number{animation-name:damage-fade}@keyframes damage-fade{0%,70%{opacity:1}to{opacity:0}}.button,.campaign-choice,.modal-close,.text-link{overflow-wrap:anywhere}.button{max-width:100%;white-space:normal}.title-footer span,.dialogue>*,.party-member>*,.forge-actions>*{min-width:0}.dialogue strong,.dialogue p,.guide-grid p,.modal-note,.forge-copy,.content-output,.campaign-grid strong,.party-member p{overflow-wrap:anywhere}.text-link{min-width:0;min-height:44px;display:inline-flex;align-items:center}.cutscene{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.cutscene-top,.cutscene-copy{min-width:0}.cutscene-top{flex-wrap:wrap}.cutscene-copy p{overflow-wrap:anywhere}.cutscene .button{max-width:100%}.modal{overflow-x:hidden}.modal-card{max-height:min(800px,calc(100dvh - max(var(--modal-gutter),var(--safe-top)) - max(var(--modal-gutter),var(--safe-bottom))))}.tutorial-card{max-width:100%}.button[aria-pressed=true],.campaign-choice[aria-pressed=true],.modal-close[aria-pressed=true],.action-pad button[aria-pressed=true],.kit-drawer button[aria-pressed=true]{border-color:var(--cyan);background:#6de4e024;color:var(--cyan)}.button:disabled,.icon-button:disabled,.modal-close:disabled,.campaign-choice:disabled,.action-pad button:disabled,.kit-drawer button:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.5)}.button:disabled:hover,.icon-button:disabled:hover,.modal-close:disabled:hover,.campaign-choice:disabled:hover,.action-pad button:disabled:hover,.kit-drawer button:disabled:hover{transform:none;border-color:var(--line);background:#ffffff08;color:var(--muted)}.action-pad button:focus-visible,.kit-drawer button:focus-visible,.stick-tap:focus-visible,.modal-close:focus-visible,.campaign-choice:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}@media(pointer:coarse){.mobile-controls{display:flex}}@media(pointer:fine)and (min-width:761px){.mobile-controls{display:none}}@media(max-width:760px){.title-screen{place-content:start center}.title-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}.title-actions .button{width:100%;min-width:44px;padding-right:10px;padding-left:10px}.title-actions .button-primary{grid-column:1 / -1}.dialogue{width:auto}.dialogue>div{min-width:0}.campaign-grid,.party-grid{min-width:0}.campaign-grid>div,.party-member{min-width:0}.forge-actions{align-items:stretch}.forge-actions .text-link{flex:1 1 100%}}@media(max-width:420px){.title-content h1{font-size:clamp(36px,12vw,64px);overflow-wrap:anywhere}.campaign-grid{grid-template-columns:1fr}.mobile-controls{right:calc(8px + var(--safe-right));left:calc(8px + var(--safe-left));gap:4px}.action-pad button{overflow-wrap:anywhere}}@media(max-width:420px)and (max-height:520px){.stats-panel{display:none}.action-pad,.kit-drawer{gap:4px}.action-pad button,.kit-drawer button{font-size:7px;line-height:1.1}}@media(prefers-reduced-motion:reduce){body:not(.motion-full) .campaign-choice,body:not(.motion-full) .modal-close{transition:none!important}body:not(.motion-full) .button:hover,body:not(.motion-full) .button:active,body:not(.motion-full) .icon-button:hover,body:not(.motion-full) .icon-button:active,body:not(.motion-full) .modal-close:hover,body:not(.motion-full) .campaign-choice:hover,body:not(.motion-full) .action-pad button:active,body:not(.motion-full) .kit-drawer button:active{transform:none!important}}@media(max-width:420px){.title-content h1{font-size:clamp(40px,13vw,64px)}}@media(pointer:coarse)and (max-height:520px){:root{--pad-clear: 152px;--prompt-bottom: calc(var(--pad-clear) + var(--safe-bottom))}body.has-onboarding{--prompt-bottom: calc(var(--pad-clear) + var(--safe-bottom))}#hud-stack{right:292px;left:292px;gap:6px;max-height:calc(100dvh - var(--pad-clear) - 92px - var(--safe-top) - var(--safe-bottom))}#hud-stack>*{flex:0 0 auto}#hud-stack>.quest-panel{flex:0 1 auto;min-height:38px;overflow:auto;overscroll-behavior:contain}.key-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:2px 12px}.key-grid>div{grid-template-columns:44px minmax(0,1fr);gap:6px}.onboarding-panel{top:auto;right:auto;bottom:calc(var(--pad-clear) + var(--safe-bottom));left:calc(14px + var(--safe-left));width:270px;height:auto;max-height:calc(100dvh - var(--pad-clear) - 92px - var(--safe-top) - var(--safe-bottom));padding:7px 9px;overflow:auto}.onboarding-panel h2{margin:4px 0 3px;font-size:12px}.onboarding-panel p{-webkit-line-clamp:4;font-size:9px;line-height:1.3}.onboarding-action{margin-top:5px;font-size:8px}.onboarding-footer{margin-top:6px}.onboarding-footer .button{min-height:32px;padding:0 9px}.onboarding-head{font-size:8px}.onboarding-close{width:28px;height:28px;min-width:28px}.interaction,.command-feedback,.toast{left:auto;right:calc(14px + var(--safe-right));max-width:260px;transform:none;text-align:left}.interaction{top:auto}.command-feedback{bottom:calc(var(--prompt-bottom) + 48px)}.command-feedback.is-visible{transform:none}.toast{top:auto;bottom:calc(var(--prompt-bottom) + 90px)}.toast.is-visible{transform:none}.mobile-controls{--stick-size: 112px;--look-size: 118px;--pad-size: 56px;--pad-gap: 6px}.action-zone{flex-direction:row;align-items:flex-end;gap:8px}.action-pad{grid-template-columns:repeat(6,var(--pad-size))}.kit-drawer{grid-template-columns:repeat(3,var(--pad-size));right:calc(100% + 10px);bottom:0}}@media(pointer:coarse)and (min-width:761px)and (min-height:521px){.onboarding-panel{top:calc(104px + var(--safe-top));right:auto;bottom:auto;left:50%;width:min(420px,calc(100% - 48px));transform:translate(-50%)}}.title-screen{background:linear-gradient(90deg,#080c16 5%,#080c16ed 43%,#080c1661),url(/assets/world/vespera-mmo-map-v1.png) center / cover}.title-content{position:relative;z-index:2;max-width:600px}.title-character{position:absolute;right:3%;bottom:0;width:min(48vw,620px);height:90%;pointer-events:none;mask-image:linear-gradient(#000 80%,transparent)}.title-character img{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 55px #384c62)}.title-character span{position:absolute;bottom:12%;left:8%;color:#e5cf9c;letter-spacing:.24em;font-size:11px}.title-actions{max-width:500px}.title-atlas{display:inline-block;margin-top:12px;color:var(--gold);font-size:12px;text-decoration:none}.dialogue{left:10%;right:10%;bottom:max(30px,var(--safe-bottom));width:auto;min-height:190px;display:block;padding:24px 28px 24px min(29%,250px);border-color:#897959;border-radius:12px 12px 3px 3px;background:linear-gradient(125deg,#0f1923fa,#070b14f7)}.dialogue-portrait{position:absolute;left:-30px;bottom:0;width:min(32%,280px);height:360px;object-fit:contain;object-position:bottom;pointer-events:none;filter:drop-shadow(6px 0 15px rgba(0,0,0,.4))}.dialogue-heading{display:flex;justify-content:space-between;gap:16px;color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:9px}.dialogue #dialogue-speaker{font-size:22px;color:#eee6d6}.dialogue #dialogue-text{font-size:16px;line-height:1.65;max-width:65ch;margin:12px 0 18px}.dialogue-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.dialogue-prompt{min-height:44px;padding:10px;border:1px solid #6c6553;border-radius:4px}[hidden]{display:none!important}.party-avatar{overflow:hidden;width:90px;height:120px;border-radius:6px;background:#19202b}.party-avatar img{width:100%;height:100%;object-fit:cover;object-position:top}.party-status{color:var(--gold);font-size:12px}@media(max-width:760px){.title-character{opacity:.2;width:90%;right:-25%}.title-character span{display:none}.title-screen{overflow-y:auto}.dialogue{left:12px;right:12px;bottom:max(12px,var(--safe-bottom));padding:20px;min-height:220px}.dialogue-portrait{bottom:100%;left:8px;width:135px;height:200px}.dialogue #dialogue-text{font-size:15px}.dialogue-heading{font-size:9px}}.party-member{grid-template-columns:90px minmax(0,1fr)}.style-kit{position:absolute;z-index:4;bottom:calc(20px + var(--safe-bottom));left:50%;transform:translate(-50%);width:min(390px,42vw);padding:12px;border:1px solid #6b6352;border-radius:8px;background:#080e18eb}.style-kit strong{font-size:11px;color:var(--gold)}.style-kit span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.style-kit progress{display:block;width:100%;height:5px;margin:8px 0;accent-color:var(--cyan)}.style-buttons{display:flex;gap:8px}.style-buttons button{flex:1;min-height:40px;border:1px solid #6a746e;border-radius:4px;background:#1d2b38;color:#ede6d7;font-size:10px;cursor:pointer}.style-buttons button:disabled{opacity:.5;cursor:default}body:not([data-screen=gameplay]):not([data-screen=battle]):not([data-screen=boss]):not([data-screen=stealth]):not([data-screen=snuffer]) .style-kit{display:none}@media(max-width:760px){.style-kit{left:auto;right:12px;bottom:27%;transform:none;width:min(270px,66vw);padding:8px}.style-kit span{display:none}.style-buttons button{font-size:9px}}.style-kit[data-style=human]{border-color:#b9a16d}.style-kit[data-style=vampire]{border-color:#ba5864}.style-kit[data-style=werewolf]{border-color:#79b}.style-kit[data-style=vampire] strong{color:#ef929b}.style-kit[data-style=werewolf] strong{color:#bad6f5}
