:root{--ink: #f4f1ea;--ink-dim: rgba(244, 241, 234, .62);--accent: #f2c66d;--accent-2: #7fd3e0;--glass: rgba(10, 18, 28, .42);--line: rgba(255, 255, 255, .14);--font: -apple-system, "SF Pro Display", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#0d1620;color:var(--ink);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#game{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}#ui{position:fixed;inset:0;pointer-events:none}.menu{position:absolute;inset:0;pointer-events:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);grid-template-rows:1fr auto;padding:calc(28px + var(--safe-t)) calc(36px + var(--safe-r)) calc(18px + var(--safe-b)) calc(40px + var(--safe-l));transition:opacity .45s ease}.menu.hidden{opacity:0;pointer-events:none}.menu-shade{position:absolute;inset:0;background:radial-gradient(120% 90% at 85% 50%,#050c149e,#050c1426 55%,#050c1400 75%),linear-gradient(180deg,#050a1240,#050a1200 30%,#050a1259);pointer-events:none}.menu.in-game .menu-shade{background:#060c148c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.menu-brand{position:relative;align-self:center;grid-column:1;grid-row:1}.menu.in-game .menu-brand{opacity:.35}.menu-kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;text-shadow:0 1px 12px rgba(0,0,0,.5)}.menu-title{margin:0;font-weight:200;font-size:clamp(38px,7.2vw,92px);line-height:.95;letter-spacing:.02em;text-shadow:0 4px 40px rgba(0,0,0,.45);display:flex;flex-direction:column}.menu-title span{font-size:.32em;font-weight:400;letter-spacing:.5em;text-transform:uppercase;margin:.35em 0 .3em .1em;color:var(--ink-dim)}.menu-panel{position:relative;grid-column:2;grid-row:1;align-self:center;max-height:100%;overflow-y:auto;scrollbar-width:none;padding:4px 2px}.menu-panel::-webkit-scrollbar{display:none}.menu-heading h2{margin:0;font-weight:300;font-size:28px;letter-spacing:.04em}.menu-heading p{margin:4px 0 14px;color:var(--ink-dim);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.menu-list{display:flex;flex-direction:column;gap:4px}.menu-row{position:relative;padding:11px 16px;border-radius:12px;cursor:pointer;transition:background .18s ease,transform .18s ease;border:1px solid transparent}.menu-row .line{display:flex;align-items:center;justify-content:space-between;gap:16px}.menu-row{text-shadow:0 1px 8px rgba(0,0,0,.55)}.menu-row .label{font-size:16px;letter-spacing:.03em}.menu-button .label{font-size:19px;font-weight:300;letter-spacing:.08em}.menu-button.primary .label{font-weight:500}.menu-row em{font-style:normal;font-size:12px;color:var(--ink-dim);margin-left:8px}.menu-row.focused{background:linear-gradient(90deg,#ffffff29,#ffffff0d);border-color:var(--line);transform:translate(-4px)}.menu-row.focused:before{content:"";position:absolute;left:-2px;top:22%;bottom:22%;width:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 12px var(--accent)}.menu-row.disabled{opacity:.55}.menu-row .value{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:15px;white-space:nowrap}.menu-row .value b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:400;color:var(--ink-dim);background:#ffffff12}.menu-row .info{color:var(--ink-dim);font-size:13px;text-align:right;max-width:62%}.menu-row .bar{height:3px;margin-top:8px;background:#ffffff1f;border-radius:3px;overflow:hidden}.menu-row .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.menu-row .switch{width:42px;height:24px;border-radius:12px;background:#ffffff29;position:relative;transition:background .2s ease}.menu-row .switch i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s ease}.menu-row .switch.on{background:var(--accent)}.menu-row .switch.on i{transform:translate(18px)}.menu-hint{font-size:12px;color:var(--ink-dim);margin-top:6px;display:none}.menu-row.focused .menu-hint{display:block}.menu-info .label{color:var(--ink-dim)}.menu-info{cursor:default}.menu-progress{margin:18px 16px 0;height:2px;background:#ffffff26;position:relative;border-radius:2px}.menu-progress i{display:block;height:100%;background:var(--accent);transition:width .3s ease}.menu-progress span{position:absolute;top:8px;left:0;font-size:12px;color:var(--ink-dim);letter-spacing:.06em}.menu-footer{grid-column:1 / span 2;grid-row:2;position:relative;font-size:12px;color:var(--ink-dim);letter-spacing:.06em;text-align:right}@media(max-width:720px)and (orientation:portrait){.menu{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;padding:calc(40px + var(--safe-t)) 22px calc(18px + var(--safe-b))}.menu-brand{grid-row:1;align-self:start}.menu-panel{grid-column:1;grid-row:2;align-self:end}.menu-footer{grid-column:1;grid-row:3;text-align:center}.menu-shade{background:linear-gradient(180deg,#050c1459,#050c1400 35%,#050c14b3)}}@media(max-height:460px){.menu{padding-top:calc(14px + var(--safe-t));padding-bottom:calc(10px + var(--safe-b))}.menu-row{padding:7px 14px}.menu-button .label{font-size:17px}.menu-heading h2{font-size:22px}.menu-heading p{margin-bottom:8px}}:root{--ui-scale: 1;--u: calc(1px * var(--ui-scale))}.hud{position:absolute;inset:0;pointer-events:none;font-size:calc(14 * var(--u))}.hud.hidden{display:none}.hud-vitals{position:absolute;left:calc(28 * var(--u) + var(--safe-l));bottom:calc(30 * var(--u) + var(--safe-b));width:calc(340 * var(--u));display:flex;flex-direction:column;gap:calc(7 * var(--u))}.bar{position:relative;height:calc(12 * var(--u));border-radius:calc(7 * var(--u));background:#080e168c;box-shadow:inset 0 0 0 1px #ffffff1f,0 2px 10px #00000059;overflow:hidden}.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit}.bar.hp .lag{background:#ffdcbebf}.bar.hp .fill{background:linear-gradient(180deg,#ff7f6b,#d9363a 70%,#a61f2c);box-shadow:0 0 calc(10 * var(--u)) #ff5a5080}.bar.hp span{position:absolute;right:calc(8 * var(--u));top:50%;transform:translateY(-50%);font-size:calc(10 * var(--u));font-weight:600;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.8)}.bar.st{height:calc(7 * var(--u));width:82%;transition:opacity .4s ease}.bar.st .fill{background:linear-gradient(90deg,#9fe36a,#e9d65a);box-shadow:0 0 calc(8 * var(--u)) #d2f06e80}.bar.st.exhausted .fill{background:linear-gradient(90deg,#d9853a,#e0603a);animation:blink .6s infinite alternate}@keyframes blink{to{opacity:.45}}.hud.low-hp .bar.hp{animation:pulseHp .9s infinite alternate}@keyframes pulseHp{to{box-shadow:inset 0 0 0 1px #ff786e99,0 0 calc(18 * var(--u)) #ff3c3c99}}.hud-quest{position:absolute;right:calc(30 * var(--u) + var(--safe-r));top:calc(26 * var(--u) + var(--safe-t));max-width:calc(360 * var(--u));text-align:right;text-shadow:0 1px 6px rgba(0,0,0,.7)}.hud-quest .qt{font-size:calc(11 * var(--u));letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.hud-quest .qo{margin-top:calc(4 * var(--u));font-size:calc(16 * var(--u));font-weight:400}.hud-quest .qo:before{content:"◆ ";color:var(--accent-2)}.hud-quest.pulse .qo{animation:questPulse 1.6s ease}@keyframes questPulse{0%{color:var(--accent);transform:translate(-6px)}to{color:var(--ink);transform:none}}.hud-perf{position:absolute;top:calc(10 * var(--u) + var(--safe-t));left:calc(14 * var(--u) + var(--safe-l));padding:calc(6 * var(--u)) calc(10 * var(--u));border-radius:calc(6 * var(--u));background:#050a108c;font:calc(11 * var(--u)) / 1.45 ui-monospace,Menlo,Consolas,monospace;color:#cfe7e4}.hud-prompt{position:absolute;left:50%;bottom:30%;transform:translate(-50%,8px);padding:calc(7 * var(--u)) calc(16 * var(--u));border-radius:calc(20 * var(--u));background:#080e169e;border:1px solid rgba(255,255,255,.14);font-size:calc(15 * var(--u));opacity:0;transition:opacity .2s ease,transform .2s ease}.hud-prompt.show{opacity:1;transform:translate(-50%)}.hud-prompt b,.hud-controls b{display:inline-block;min-width:calc(22 * var(--u));padding:0 calc(6 * var(--u));margin:0 calc(5 * var(--u)) 0 calc(10 * var(--u));border-radius:calc(5 * var(--u));background:#ffffff29;text-align:center;font-weight:600}.hud-prompt b{margin-left:0;background:var(--accent);color:#1b1408}.hud-prompt span{color:var(--accent)}.hud-controls{position:absolute;right:calc(24 * var(--u) + var(--safe-r));bottom:calc(22 * var(--u) + var(--safe-b));font-size:calc(12 * var(--u));color:var(--ink-dim);text-shadow:0 1px 4px rgba(0,0,0,.8);max-width:55vw;text-align:right;line-height:2}.hud-toasts{position:absolute;left:calc(28 * var(--u) + var(--safe-l));bottom:calc(90 * var(--u) + var(--safe-b));display:flex;flex-direction:column;gap:calc(6 * var(--u))}.toast{padding:calc(6 * var(--u)) calc(14 * var(--u));border-radius:calc(8 * var(--u));background:linear-gradient(90deg,#0a121cc7,#0a121c00);font-size:calc(14 * var(--u));opacity:0;transform:translate(-10px);transition:opacity .3s ease,transform .3s ease}.toast.show{opacity:1;transform:none}.hud-enemies .ebar{position:absolute;left:0;top:0;width:calc(120 * var(--u));text-align:center;font-size:calc(11 * var(--u));text-shadow:0 1px 3px rgba(0,0,0,.9)}.ebar div{height:calc(5 * var(--u));margin-top:calc(3 * var(--u));background:#00000080;border-radius:3px;overflow:hidden}.ebar i{display:block;height:100%;background:linear-gradient(90deg,#e86a4a,#f2b04a)}.hud-crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#ffffffd9;box-shadow:0 0 4px #000c;display:none}.hud-crosshair.show{display:block}.hud-death{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#28000033,#140000bf);opacity:0;transition:opacity 1s ease}.hud-death.show{opacity:1}.hud-death h2{font-weight:200;font-size:calc(48 * var(--u));letter-spacing:.12em;margin:0}.hud-death p{color:var(--ink-dim)}.cine{position:absolute;inset:0;pointer-events:none}.letterbox{position:absolute;left:0;right:0;height:0;background:#000;transition:height .8s ease}.letterbox.top{top:0}.letterbox.bottom{bottom:0}.cine.letterboxed .letterbox{height:11vh}.skip-hint{position:absolute;right:calc(24 * var(--u));bottom:3vh;font-size:calc(11 * var(--u));color:#ffffff73;display:none}.cine.letterboxed .skip-hint{display:block}.subtitle{position:absolute;left:50%;bottom:14vh;transform:translate(-50%);max-width:min(80vw,calc(900 * var(--u)));text-align:center;font-size:calc(19 * var(--u));line-height:1.45;text-shadow:0 2px 6px rgba(0,0,0,.9),0 0 20px rgba(0,0,0,.6);opacity:0;transition:opacity .3s ease}.subtitle.show{opacity:1}.subtitle b{display:block;font-size:calc(12 * var(--u));letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:calc(3 * var(--u))}.fade{position:absolute;inset:0;background:#000;opacity:0}.fx-layer{position:absolute;inset:0;opacity:0;transition:opacity .4s ease}.fx-layer.on{opacity:1}.fx-alarm.on{background:radial-gradient(circle,#f000 40%,#ff141473);animation:alarm .8s infinite alternate}@keyframes alarm{0%{opacity:.25}to{opacity:1}}.fx-plasma{background:radial-gradient(ellipse at 50% 120%,#ffa028bf,#ff3c0a59 45%,#ff3c0a00 70%);mix-blend-mode:screen}.vignette-dmg{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at center,#a0000000 55%,#aa0a0a8c)}.inventory{position:absolute;inset:0;display:grid;place-items:center;background:#04090f9e;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);pointer-events:auto;font-size:calc(14 * var(--u))}.inventory.hidden{display:none}.inv-panel{width:min(94vw,calc(980 * var(--u)));max-height:88vh;display:flex;flex-direction:column;background:linear-gradient(160deg,#141e28eb,#0a1018f0);border:1px solid rgba(255,255,255,.1);border-radius:calc(16 * var(--u));box-shadow:0 20px 80px #00000080;overflow:hidden}.inv-head{display:flex;align-items:center;gap:calc(20 * var(--u));padding:calc(16 * var(--u)) calc(22 * var(--u));border-bottom:1px solid rgba(255,255,255,.08)}.inv-head .tabs span{margin-right:calc(18 * var(--u));font-size:calc(18 * var(--u));font-weight:300;letter-spacing:.06em;color:var(--ink-dim);cursor:pointer;padding-bottom:calc(4 * var(--u))}.inv-head .tabs span.on{color:var(--ink);border-bottom:2px solid var(--accent)}.inv-head .eq{flex:1;text-align:right;font-size:calc(12 * var(--u));color:var(--ink-dim)}.inv-close{background:none;border:none;color:var(--ink-dim);font-size:calc(18 * var(--u));cursor:pointer}.inv-body{display:grid;grid-template-columns:1.4fr 1fr;gap:calc(20 * var(--u));padding:calc(20 * var(--u)) calc(22 * var(--u));overflow:auto}.inv-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:calc(6 * var(--u));align-content:start}.slot{position:relative;aspect-ratio:1;border-radius:calc(8 * var(--u));background:#ffffff0d;border:1px solid rgba(255,255,255,.07);display:grid;place-items:center;font-size:calc(22 * var(--u));cursor:pointer}.slot em{position:absolute;right:4px;bottom:2px;font-style:normal;font-size:calc(10 * var(--u));color:var(--ink-dim)}.slot.eq{border-color:#7fd3e099}.slot.sel{background:#f2c66d2e;border-color:var(--accent);box-shadow:0 0 12px #f2c66d59}.inv-detail h3{margin:0 0 calc(4 * var(--u));font-weight:400;font-size:calc(20 * var(--u))}.inv-detail .cat{font-size:calc(11 * var(--u));letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}.inv-detail p{line-height:1.5}.inv-detail .act b{padding:1px 6px;border-radius:5px;background:var(--accent);color:#1b1408;margin-right:6px}.inv-detail ol li.done{color:var(--ink-dim);text-decoration:line-through}.muted{color:var(--ink-dim)}.q-list .qrow{padding:calc(10 * var(--u)) calc(12 * var(--u));border-radius:calc(8 * var(--u));cursor:pointer;display:flex;flex-direction:column;gap:2px}.q-list .qrow span{font-size:calc(12 * var(--u));color:var(--ink-dim)}.q-list .qrow.sel{background:#f2c66d24}.inv-foot{padding:calc(10 * var(--u)) calc(22 * var(--u));font-size:calc(11 * var(--u));color:var(--ink-dim);border-top:1px solid rgba(255,255,255,.08)}.touch{position:absolute;inset:0;display:none}.touch.show{display:block;pointer-events:auto}.touch-zone{position:absolute;top:0;bottom:0;touch-action:none}.touch-zone.left{left:0;width:45%}.touch-zone.right{right:0;width:55%}.stick-base{position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:#ffffff0f;opacity:0;transition:opacity .15s ease;pointer-events:none}.stick-base.active{opacity:1}.stick-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;background:#ffffff8c;transform:translate(-50%,-50%)}.tbtn{position:absolute;border:1.5px solid rgba(255,255,255,.4);background:#0a121c4d;color:#fff;border-radius:50%;font-size:22px;touch-action:none}.tbtn:active{background:#ffffff4d}.tbtn.jump{width:76px;height:76px;right:calc(28px + var(--safe-r));bottom:calc(34px + var(--safe-b))}.tbtn.sprint{width:52px;height:52px;right:calc(196px + var(--safe-r));bottom:calc(24px + var(--safe-b))}.tbtn.attack{width:64px;height:64px;right:calc(118px + var(--safe-r));bottom:calc(30px + var(--safe-b))}.tbtn.dodge{width:52px;height:52px;right:calc(40px + var(--safe-r));bottom:calc(124px + var(--safe-b))}.tbtn.use{width:48px;height:48px;right:calc(120px + var(--safe-r));bottom:calc(112px + var(--safe-b))}.tbtn.pause{width:42px;height:42px;font-size:12px;right:calc(16px + var(--safe-r));top:calc(12px + var(--safe-t))}.fatal{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:24px;background:#0d1620;pointer-events:auto}.fatal h2{font-weight:300}
