:root{color:#fffaf2;background:#160f25;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{color:#29133f;cursor:pointer;font:inherit;background:#fee36e;border:1px solid #ffffff3d;border-radius:6px;min-height:44px;padding:0 12px;font-weight:700}.shell{grid-template-columns:minmax(0,1fr);align-items:start;min-height:100vh;display:grid}.shell--with-console{grid-template-columns:minmax(0,1fr) 340px}.game-stage{background:#120c1e;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-width:0;min-height:100svh;padding:24px;display:flex;position:relative}.game-viewport{flex:none;width:min(100%,960px);position:relative}.game-stage:has(.start-screen) .game-viewport{display:none}.game-canvas-host{aspect-ratio:16/9;flex:none;width:100%}.game-stage:has(.start-screen) .game-canvas-host{display:none}.game-canvas-host canvas{display:block}.start-screen{text-align:center;background:#20143af0;border:1px solid #fff3;border-radius:8px;place-items:center;gap:14px;width:min(92%,560px);min-height:320px;padding:32px;display:grid;box-shadow:0 24px 70px #00000052}.start-screen h1{color:#fff5c7;margin:0;font-size:46px;line-height:1}.start-screen p{color:#f7ddff;margin:0}.class-selection{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;min-width:0;margin:0;padding:0;display:grid}.class-card{color:#fffaf2;text-align:left;background:#ffffff14;border-color:#ffffff2e;align-content:start;gap:6px;min-height:116px;padding:10px;display:grid}.class-card[aria-pressed=true]{color:#29133f;background:#fee36e;border-color:#fff19c}.class-card strong{font-size:15px}.class-card span{font-size:11px;line-height:1.35}.music-status{color:#8ceaff;min-height:20px;font-size:13px;font-weight:700}.art-preview-choice{text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:44px;font-size:14px;display:grid}.art-preview-choice input{width:24px;height:24px}.art-preview-choice small{color:#f7ddff;grid-column:2}.portrait-preview{object-fit:contain;width:88px;height:92px;image-rendering:pixelated}.next-threshold{color:#ffe08a;margin:6px 0 0;font-weight:700}.seal-preview{object-fit:contain;width:64px;height:72px;image-rendering:pixelated;margin-top:8px;display:block}.game-controls{border:0;flex-wrap:wrap;justify-content:center;gap:8px;min-width:0;max-width:100%;margin:0;padding:0;display:flex}.game-controls button{touch-action:none;-webkit-user-select:none;user-select:none}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #8ceaff}button:disabled{opacity:.55;cursor:default}.music-badge{color:#8ceaff;background:#20143ad6;border-radius:8px;order:-1;align-self:flex-end;max-width:100%;padding:10px 12px;font-size:13px;font-weight:800}.quest-panel{background:#1e1232e0;border:1px solid #ffffff2e;border-radius:8px;width:min(100%,960px);padding:16px;box-shadow:0 16px 40px #0000003d}.quest-panel p{color:#f5e4ff;margin:0 0 12px}.eyebrow{color:#8ceaff;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.progress-track{background:#ffffff2e;border-radius:999px;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:#ffcf5d;height:100%;display:block}.class-progress{color:#dff9ff;border:0;grid-template-columns:1fr auto auto;align-items:center;gap:8px;min-width:0;margin:10px 0 0;padding:0;font-size:12px;font-weight:800;display:grid}.agent-draft{color:#fff4a3;background:#fff4a31f;border-radius:6px;gap:2px;margin-top:10px;padding:8px 9px;font-size:12px;font-weight:800;display:grid}.agent-draft small{color:#dff9ff;font-size:11px}.reward{color:#fff19c;margin-top:10px;display:block}.asset-fallback-note{color:#8ceaff;margin-top:8px;font-size:11px;font-weight:800;display:block}.dialogue-panel{background:#1e1232eb;border:1px solid #fff3;border-radius:8px;grid-template-columns:88px minmax(0,1fr);gap:14px;width:min(100%,960px);padding:14px;display:grid;box-shadow:0 16px 40px #0000003d}.dialogue-panel h2,.dialogue-panel p{margin:0}.portrait-placeholder{aspect-ratio:1;color:#29133f;background:#fee36e;border-radius:8px;place-items:center;font-size:42px;font-weight:900;display:grid}.dev-console{overflow-wrap:anywhere;background:#20143a;border-left:1px solid #ffffff1f;min-width:0;max-height:100svh;padding:18px;overflow:auto}.dev-console header{justify-content:space-between;align-items:center;gap:16px;display:flex}.dev-console h1{margin:0;font-size:18px}.console-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0;display:grid}.gate-status{color:#dff9ff;background:#8eeaff1f;border-radius:6px;margin:0 0 12px;padding:9px 10px;font-size:12px;font-weight:700;line-height:1.35}.dev-console pre{color:#dbeafe;background:#0000003d;border-radius:8px;max-height:50vh;padding:12px;font-size:12px;overflow:auto}.manifest-viewer{gap:8px;max-height:180px;margin-top:12px;display:grid;overflow:auto}.manifest-viewer span{color:#e0f7ff;background:#ffffff1f;border-radius:6px;padding:8px;font-size:12px}.asset-review-panel{background:#ffe36e1a;border:1px solid #ffe36e42;border-radius:8px;gap:8px;margin:0 0 12px;padding:10px;display:grid}.asset-review-panel h2,.asset-review-panel p,.asset-review-panel dl,.asset-review-panel ul{margin:0}.asset-review-panel h2{color:#fff4a3;font-size:14px}.asset-review-panel p,.asset-review-panel li,.asset-review-panel dd,.asset-review-panel dt,.asset-review-panel code,.asset-review-panel a,.asset-review-blockers span{font-size:12px;line-height:1.35}.asset-review-panel a{color:#8ceaff;font-weight:800}.asset-review-panel code{overflow-wrap:anywhere;color:#dff9ff;background:#00000038;border-radius:6px;padding:7px;display:block}.asset-review-panel dl{gap:6px;display:grid}.asset-review-panel dt{color:#8ceaff;font-weight:800}.asset-review-panel dd{color:#fffaf2}.asset-review-panel ul,.asset-review-blockers{gap:5px;display:grid}.asset-review-empty{color:#f7ddff}.asset-review-blockers{background:#ffffff1a;border-radius:6px;padding:8px}.asset-review-blockers strong{color:#fff4a3;font-size:12px}.asset-review-blockers span{color:#f7ddff}@media (width<=900px){.shell,.shell--with-console{grid-template-columns:1fr}.dev-console{border-top:1px solid #ffffff1f;border-left:0;max-height:none;overflow:visible}.game-stage{padding:16px}.start-screen{width:100%;padding:24px}.class-selection{grid-template-columns:1fr}.class-card{min-height:80px}}.field-hud{color:#fff8e6;z-index:6;pointer-events:auto;background:linear-gradient(#301e4aeb,#1c122ef0);border:2px solid #f1c96b;border-radius:14px;align-items:center;gap:10px;padding:6px 12px;font:700 12px/1.2 system-ui,sans-serif;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #14082473}.field-level{color:#ffe08a;white-space:nowrap;font-size:14px}.field-meter{grid-template-columns:auto 120px auto;align-items:center;gap:6px;display:grid}.field-meter-track{background:#00000073;border-radius:6px;height:10px;overflow:hidden}.field-meter-fill{height:100%;transition:width .12s linear;display:block}.field-meter-hp .field-meter-fill{background:linear-gradient(90deg,#ff6f8e,#ffb0a3)}.field-meter-mp .field-meter-fill{background:linear-gradient(90deg,#5aa8ff,#9fe3ff)}.field-meter-exp .field-meter-fill{background:linear-gradient(90deg,#ffd25e,#fff3a8)}.field-meter-value{font-variant-numeric:tabular-nums;min-width:54px}.field-hud-button,.field-inventory button{color:#fff8e6;cursor:pointer;background:#5b3a8c;border:2px solid #f1c96b;border-radius:10px;padding:4px 10px;font:700 12px system-ui,sans-serif}.field-hud-button[aria-pressed=true]{background:#8a5ad1}.field-map-banner{color:#fff8e6;z-index:6;pointer-events:none;background:#281842d1;border:2px solid #f1c96b;border-radius:999px;padding:4px 14px;font:800 13px system-ui,sans-serif;position:absolute;top:10px;left:50%;transform:translate(-50%)}.field-portal-hint{color:#9fe3ff;margin-left:10px}.field-toast{color:#fff8e6;z-index:6;pointer-events:none;background:#1e1232e6;border-radius:12px;align-items:center;gap:6px;padding:4px 12px;font:700 13px system-ui,sans-serif;animation:1.6s ease-out forwards field-toast;display:flex;position:absolute;top:46px;left:50%;transform:translate(-50%)}.field-toast img{width:22px;height:22px;image-rendering:pixelated}@keyframes field-toast{0%{opacity:0;transform:translate(-50%,6px)}12%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.field-inventory{color:#4a2c1a;z-index:7;pointer-events:auto;background:linear-gradient(#f8ead2,#ead3b0);border:3px solid #b77b3b;border-radius:16px;width:260px;padding:10px;font:600 12px/1.35 system-ui,sans-serif;position:absolute;top:52px;right:14px;box-shadow:0 10px 24px #1e0e2873}.field-inventory header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.field-inventory h2{margin:0;font-size:15px}.field-inventory-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.field-inventory .field-slot{aspect-ratio:1;color:#4a2c1a;background:#fff7e8;border:2px solid #d9b98a;width:100%;min-width:0;padding:2px;position:relative}.field-slot img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.field-inventory .field-slot.selected{outline-offset:1px;outline:3px solid #8a5ad1}.field-inventory .field-slot.rarity-uncommon{border-color:#3fbf6a}.field-inventory .field-slot.rarity-rare{border-color:#3f8fe0}.field-inventory .field-slot.rarity-epic{border-color:#a35ae0}.field-item-glyph{background:radial-gradient(circle at 35% 30%,#fff,#fff4d6 45%,#d9b98a);border-radius:50%;width:70%;height:70%;margin:15%;display:block}.toast-glyph,.field-toast .field-item-glyph{width:18px;height:18px;margin:0}.rarity-glyph-uncommon{background:radial-gradient(circle at 35% 30%,#fff,#7dffa1 45%,#2f9a55)}.rarity-glyph-rare{background:radial-gradient(circle at 35% 30%,#fff,#7cc8ff 45%,#2a6fb5)}.rarity-glyph-epic{background:radial-gradient(circle at 35% 30%,#fff,#d99bff 45%,#7b34b8)}.field-slot-qty{font-size:10px;font-weight:800;position:absolute;bottom:0;right:2px}.field-item-detail{gap:4px;margin-top:8px;display:grid}.field-item-detail p,.field-item-hint{margin:0}.field-item-rarity{opacity:.75;font-size:11px}.rarity-text-uncommon{color:#23864a}.rarity-text-rare{color:#1f63b0}.rarity-text-epic{color:#7b34b8}.field-inventory footer{opacity:.8;margin-top:8px;font-size:11px}@media (width<=640px){.field-hud{flex-wrap:wrap;justify-content:center;gap:6px 10px;margin-top:8px;position:static;transform:none}.field-meter{grid-template-columns:auto 72px auto}.field-map-banner{padding:2px 10px;font-size:11px;top:4px}.field-toast{top:30px}.field-inventory{z-index:30;width:auto;max-height:calc(100svh - 96px);position:fixed;top:72px;left:10px;right:10px;overflow:auto}}.player-notice{border-radius:10px;margin:8px 0 0;padding:6px 10px;font-size:.85rem;line-height:1.35}.player-notice--blocked{color:#ffe7a8;background:#ffd6782e}.player-notice--error{color:#ffd1da;background:#ff8ca033}@keyframes field-toast-fade{0%,to{opacity:0}12%,80%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}.field-toast{animation-name:field-toast-fade;transform:translate(-50%)}}:root{--ink:#49372f;--ink-soft:#6c564a;--cream:#fff9ec;--surface-solid:#fff4df;--surface-glass:#fff7e4e6;--surface-glass-strong:#fff7e4f0;--edge:#60452b33;--highlight:#fffc;--honey:#efc978;--honey-deep:#d9a645;--rose:#c74d69;--cornflower:#457bb4;--leaf:#608443;--selected:#f3dda4;--focus:#457bb4;--shadow-soft:0 10px 28px #492e1838;--radius-s:8px;--radius-m:16px;--radius-l:24px;--edge-gap:max(12px, env(safe-area-inset-left));--ui-font:"Trebuchet MS", "Nunito", ui-rounded, system-ui, sans-serif;--story-font:Georgia, "Iowan Old Style", serif;background:#2d2438}html,body{overscroll-behavior:none;height:100%;overflow:hidden}body{min-height:0}.shell,.shell--with-console{min-height:0;display:block;position:fixed;inset:0}.game-stage{min-height:0;font-family:var(--ui-font);background:radial-gradient(120% 90% at 50% 20%,#5b4a6e 0%,#33283f 60%,#241c2e 100%);gap:0;padding:0;display:block;position:fixed;inset:0}.game-viewport{width:100%;height:100%;display:block;position:absolute;inset:0}.game-stage:has(.start-screen) .game-viewport{width:100%;height:100%;display:block;position:absolute;inset:0}.game-canvas-host{aspect-ratio:auto;width:100%;height:100%;display:block}.game-stage:has(.start-screen) .game-canvas-host{aspect-ratio:auto;width:100%;height:100%;display:block}.game-canvas-host canvas{image-rendering:pixelated}.world-backdrop{object-fit:cover;filter:blur(18px)saturate(1.1)brightness(.55);pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.08)}.glass-panel{border:1px solid var(--edge);border-radius:var(--radius-m);background:var(--surface-solid);color:var(--ink);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-soft)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass-panel{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2)}.start-screen.glass-panel,.game-window.glass-panel{background:var(--surface-glass-strong);-webkit-backdrop-filter:none;backdrop-filter:none}}.glass-panel h1,.glass-panel h2,.glass-panel h3{color:var(--ink);font-family:var(--story-font)}.glass-panel p,.glass-panel small{color:var(--ink-soft)}.glass-panel .eyebrow{color:#82501a}.glass-panel button{border:1px solid var(--edge);border-radius:var(--radius-s);color:var(--ink);font-family:var(--ui-font);box-shadow:inset 0 1px 0 var(--highlight), 0 2px 0 #60452b2e;background:linear-gradient(#fffaf0,#f6e8cc);transition:transform 80ms,background-color .12s}.glass-panel button:hover{background:linear-gradient(#fffdf7,#f9edd5)}.glass-panel button:active{box-shadow:inset 0 1px 0 var(--highlight);transform:translateY(1px)}.glass-panel button[aria-pressed=true]{background:linear-gradient(#fbe9bd, var(--selected));border-color:#a6702873}.glass-panel .primary-button{background:linear-gradient(#ffe39b, var(--honey));color:#4a2f12;border-color:#a6702880;font-weight:800}.glass-panel button:focus-visible,.glass-panel input:focus-visible,.glass-panel summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}kbd{border:1px solid var(--edge);min-width:20px;height:20px;color:var(--ink-soft);font:700 11px / 1 var(--ui-font);background:#ffffffbf;border-radius:6px;place-items:center;margin-left:6px;padding:0 4px;display:inline-grid}.start-screen{z-index:20;border-radius:var(--radius-l);gap:12px;width:min(100% - 24px,620px);min-height:0;max-height:calc(100% - 24px);padding:28px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.start-screen h1{color:var(--ink);font-size:40px}.start-screen p{color:var(--ink-soft)}.class-card{border-radius:var(--radius-m);color:var(--ink)}.class-card[aria-pressed=true]{border-color:var(--honey-deep);background:linear-gradient(#fff1c9, var(--selected));color:var(--ink);box-shadow:inset 0 1px 0 var(--highlight), 0 0 0 3px #efc97873}.music-status{color:var(--cornflower)}.art-preview-choice small{color:var(--ink-soft)}.start-action{min-width:220px;font-size:17px}.location-hud{top:max(12px, env(safe-area-inset-top));left:var(--edge-gap);z-index:8;gap:6px;width:220px;padding:10px 12px;display:grid;position:absolute}.location-heading{align-items:center;gap:8px;display:flex}.location-heading h2{margin:0;font-size:16px;line-height:1.15}.location-heading .eyebrow{font-size:10px}.location-mark{background:linear-gradient(#ffe8a8, var(--honey));color:#8a5a1c;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.minimap{aspect-ratio:16/9;border:1px solid var(--edge);border-radius:var(--radius-s);background:linear-gradient(#e8f3ff,#f8ecd2);width:100%;height:auto}.minimap-frame{position:relative}.minimap-ground,.minimap-platform{fill:none;stroke:#9a7a52;stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.minimap-platform{stroke:#b89566}.minimap-marker,.minimap-marker circle{stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}.minimap-marker--player{fill:var(--rose);stroke-width:2px}.minimap-marker--portal{fill:#9a7bd866;stroke:#8a6ad0;stroke-width:2px}.minimap-marker--npc{fill:var(--honey)}.minimap-marker--quest-available circle{fill:#ffd45a;stroke:#8a5a1c}.minimap-marker--quest-ready circle{fill:var(--leaf)}.minimap-marker text{fill:#5a3410;font-family:var(--ui-font);font-weight:900}.minimap-marker--quest-ready text{fill:#fff}.minimap-marker--kiosk{fill:var(--cornflower)}.minimap-marker--station{fill:#5fb3a1}.minimap-marker--monster{fill:#e48aa6;stroke:none}.location-hud .minimap-legend-toggle{border-radius:var(--radius-s);box-shadow:none;cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:flex-end;padding:4px;display:flex;position:absolute;inset:0}.minimap-legend-toggle span{border:1px solid var(--edge);background:var(--surface-glass);color:var(--ink-soft);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.location-hud .minimap-legend-toggle:hover{background:#ffffff2e}.location-hud .minimap-legend-toggle[aria-expanded=true] span{background:var(--selected);color:var(--ink)}.minimap-legend{color:var(--ink-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin:0;padding:0;font-size:11px;list-style:none;display:grid}.minimap-legend[hidden]{display:none}.minimap-legend li{align-items:center;gap:5px;display:flex}.minimap-swatch{color:#5a3410;width:11px;height:11px;box-shadow:0 0 0 1px var(--edge);border:1.5px solid #fff;border-radius:50%;flex:none;place-items:center;font-size:8px;font-weight:900;line-height:1;display:grid}.minimap-swatch--player{background:var(--rose)}.minimap-swatch--portal{background:#9a7bd866;border-color:#8a6ad0;border-radius:45%}.minimap-swatch--quest-available{background:#ffd45a}.minimap-swatch--quest-ready{background:var(--leaf);color:#fff}.minimap-swatch--npc{background:var(--honey)}.minimap-swatch--kiosk{background:var(--cornflower);border-radius:3px}.minimap-swatch--station{background:#5fb3a1;border-radius:2px;transform:rotate(45deg)scale(.85)}.minimap-swatch--monster{background:#e48aa6;border:0;width:7px;height:7px;margin:2px}.location-card-region{z-index:9;pointer-events:none;position:absolute;top:18%;left:50%;transform:translate(-50%)}.location-card{border-radius:var(--radius-l);background:var(--surface-glass-strong);text-align:center;pointer-events:none;justify-items:center;gap:2px;min-width:min(240px,100vw - 24px);padding:12px 28px 14px;animation:1.5s ease-out both location-card-in;display:grid}.location-card-eyebrow{color:var(--honey-deep);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:800}.location-card-name{color:var(--ink);font-family:var(--story-font);font-size:24px;line-height:1.2}@keyframes location-card-in{0%{opacity:0;transform:translateY(-14px)scale(.96)}15%,80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}@keyframes location-card-fade{0%{opacity:0}15%,80%{opacity:1}to{opacity:0}}.quest-panel{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:8;width:min(300px,100% - 260px);max-height:calc(100% - 180px);padding:10px 12px;position:absolute;overflow-y:auto}.quest-panel h2{margin:2px 0 6px;font-size:17px}.quest-panel p{margin:0 0 8px;font-size:14px}.quest-toggle{justify-content:space-between;align-items:center;width:100%;min-height:44px;margin-bottom:6px;display:flex}.quest-panel .next-threshold{color:#82501a}.quest-panel .progress-track{background:#60452b24}.quest-panel .progress-track span{background:linear-gradient(90deg, var(--honey), var(--honey-deep))}.quest-panel .class-progress{color:var(--ink-soft)}.quest-panel .agent-draft{color:var(--ink);background:#efc97840}.quest-panel .agent-draft small{color:var(--ink-soft)}.hud-dock{right:0;bottom:max(10px, env(safe-area-inset-bottom));z-index:9;padding:0 var(--edge-gap);pointer-events:none;justify-items:center;gap:8px;display:grid;position:absolute;left:0}.hud-dock>*{pointer-events:auto}.status-bar{border-radius:var(--radius-l);grid-template-columns:auto minmax(220px,1fr) auto auto;align-items:center;gap:14px;width:min(100%,1040px);padding:8px 12px;display:grid}.player-identity{align-items:center;gap:10px;display:flex}.player-identity>div{line-height:1.15;display:grid}.player-identity span{color:var(--ink-soft);font-size:12px}.player-name{font-size:15px}.level-badge{background:linear-gradient(160deg, #ffe7a3, var(--honey-deep));color:#4a2f12;border:2px solid #fff;border-radius:14px;place-items:center;width:48px;height:48px;line-height:1;display:grid;box-shadow:0 3px 8px #784c144d}.level-badge small{letter-spacing:.08em;font-size:8px;font-weight:800}.level-badge strong{font-size:20px}.status-meters{gap:4px;min-width:0;display:grid}.status-meter{grid-template-columns:34px minmax(0,1fr) 84px;align-items:center;gap:8px;font-size:12px;display:grid}.status-meter-label{font-weight:800}.status-meter-track{background:#60452b1f;border:1px solid #60452b40;border-radius:999px;height:12px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}.status-meter-fill{border-radius:inherit;transform-origin:0;transition:transform .32s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.status-meter-fill:after{content:"";border-radius:inherit;background:#ffffff73;height:40%;position:absolute;inset:1px 4px auto}.status-meter--hp .status-meter-label{color:var(--rose)}.status-meter--hp .status-meter-fill{background:linear-gradient(90deg, #e56f88, var(--rose))}.status-meter--mp .status-meter-label{color:var(--cornflower)}.status-meter--mp .status-meter-fill{background:linear-gradient(90deg, #6fa3db, var(--cornflower))}.status-meter--exp .status-meter-label{color:var(--leaf)}.status-meter--exp .status-meter-fill{background:linear-gradient(90deg,#f3d86b,#8fb35a)}.status-meter-value{color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.status-meter meter{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hud-quick,.hud-menu{border:0;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;display:flex}.hud-quick button,.hud-menu button{min-height:44px;padding:0 10px;font-size:13px}.music-badge.glass-panel{color:var(--cornflower);border-radius:999px;order:0;align-self:center;padding:4px 12px;font-size:12px;font-weight:800}.music-badge:empty{display:none}.game-controls{gap:6px}.game-controls button{border:1px solid var(--edge);background:var(--surface-glass-strong);min-height:44px;color:var(--ink);font-family:var(--ui-font);box-shadow:inset 0 1px 0 var(--highlight), 0 4px 12px #492e182e;border-radius:999px;font-size:13px}.game-window{z-index:15;border-radius:var(--radius-l);width:min(100% - 24px,440px);max-height:calc(100% - 200px);padding:14px 16px 18px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-55%)}.game-window header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.game-window h2{margin:2px 0 0;font-size:22px}.close-button{width:44px;min-height:44px;padding:0;font-size:20px}.window-empty{text-align:center;justify-items:center;gap:4px;padding:12px 8px;display:grid}.window-empty h3{margin:4px 0;font-size:18px}.empty-emblem{background:radial-gradient(circle at 35% 30%, #fff, var(--selected));color:#a46a2a;border-radius:50%;place-items:center;width:56px;height:56px;font-size:26px;display:grid}.settings-content{gap:10px;display:grid}.settings-content dl{gap:6px;margin:0;display:grid}.settings-content dl>div{border-bottom:1px dashed var(--edge);justify-content:space-between;padding-bottom:4px;display:flex}.settings-content dt{color:var(--ink-soft)}.settings-content dd{margin:0;font-weight:800}.dialogue-panel{left:50%;bottom:calc(max(10px, env(safe-area-inset-bottom)) + 150px);z-index:12;border-radius:var(--radius-l);grid-template-columns:96px minmax(0,1fr);gap:14px;width:min(100% - 24px,680px);padding:14px 16px;display:grid;position:absolute;transform:translate(-50%)}.dialogue-panel h2{margin:0 0 4px;font-size:20px}.dialogue-panel p{color:var(--ink);margin:0 0 10px;font-size:16px;line-height:1.45}.dialogue-panel .portrait-preview,.portrait-placeholder{border-radius:var(--radius-m);background:linear-gradient(160deg,#fff3d4,#f2d9a8);border:2px solid #fff;width:96px;height:96px;box-shadow:0 3px 10px #492e1833}.portrait-placeholder{color:#a46a2a;font:700 36px / 1 var(--story-font);place-items:center;display:grid}.dialogue-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.field-map-banner{top:max(12px, env(safe-area-inset-top));border:1px solid var(--edge);background:var(--surface-glass-strong);color:var(--ink);font-family:var(--ui-font);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-soft);border-radius:999px}.field-portal-hint{color:#8a5a1c}.field-inventory{top:50%;right:max(12px, env(safe-area-inset-right));z-index:14;border:1px solid var(--edge);border-radius:var(--radius-l);background:var(--surface-glass-strong);color:var(--ink);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-soft);transform:translateY(-50%)}.field-inventory p,.field-inventory footer{color:var(--ink-soft)}.field-inventory.glass-panel{width:min(650px,100% - 24px);max-height:calc(100% - 210px);font-family:var(--ui-font);padding:16px;overflow-y:auto}.field-inventory-content,.field-shop-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;display:grid}.field-inventory h3,.field-shop h3{margin:0 0 10px;font-size:18px}.field-wallet,.hud-wallet{font-variant-numeric:tabular-nums;font-weight:700}.field-equipment-slots{gap:6px;display:grid}.field-inventory .field-equipment-slot{text-align:left;align-items:center;gap:8px;width:100%;min-height:52px;padding:4px 8px;display:flex}.field-equipment-slot small,.field-equipment-slot strong,.field-shop-row small{display:block}.field-equipment-slot strong,.field-shop-row strong{overflow-wrap:anywhere}.field-equipment-icon{border-radius:var(--radius-s);background:var(--cream);flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.field-equipment-icon img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.field-equipment-stats{border-top:1px solid var(--edge);grid-template-columns:1fr 1fr;gap:8px 16px;padding-top:12px;display:grid}.field-equipment-stats div{justify-content:space-between;gap:8px;display:flex}.field-equipment-stats dd{margin:0;font-weight:800}.field-inventory.glass-panel button,.field-shop button{min-width:44px;min-height:44px}.field-inventory.glass-panel .field-slot{min-width:0}.field-inventory.glass-panel button:disabled,.field-shop button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.field-shop.game-window{pointer-events:auto;width:min(760px,100% - 24px);max-height:calc(100% - 160px);margin:0;transform:translate(-50%,-50%)}.field-shop::backdrop{background:#2d24384d}.field-shop-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field-shop ul{margin:0;padding:0;list-style:none}.field-shop-row{border-bottom:1px solid var(--edge);align-items:center;gap:8px;padding:10px 0;display:flex}.field-shop-row>div{flex:1;min-width:0}.field-inventory-message,.field-shop-message{min-height:1.4em;font-weight:700}.skill-window.game-window{width:min(100% - 24px,560px)}.skill-tree .skill-sp{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.skill-tree .skill-hint{margin:4px 0 10px;font-size:13px}.skill-cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.skill-card{border:1px solid var(--edge);border-radius:var(--radius-m);background:#ffffff73;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:10px;display:grid}.skill-card.is-learned{background:linear-gradient(135deg,#ffffffb3,#f3dda48c)}.skill-glyph,.hud-skill-glyph{color:#fff;text-shadow:0 1px 2px #492e1873;place-items:center;display:grid}.skill-glyph{border:2px solid #fff;border-radius:14px;width:44px;height:44px;font-size:22px;box-shadow:0 3px 8px #784c1440}.skill-glyph--burst,.hud-skill-slot--burst .hud-skill-glyph{background:linear-gradient(160deg, #ffe7a3, var(--honey-deep))}.skill-glyph--dash,.hud-skill-slot--dash .hud-skill-glyph{background:linear-gradient(160deg, #a8d4ff, var(--cornflower))}.skill-glyph--heal,.hud-skill-slot--heal .hud-skill-glyph{background:linear-gradient(160deg, #c7e8a6, var(--leaf))}.skill-glyph--shield,.hud-skill-slot--shield .hud-skill-glyph{background:linear-gradient(160deg,#d9ecff,#7c9fc8)}.skill-glyph--passive{background:linear-gradient(160deg, #ffd0dc, var(--rose))}.skill-card h3{flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:16px;display:flex}.skill-card h3 small{font-family:var(--ui-font);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.skill-card p{margin:2px 0;font-size:13px}.skill-card .skill-effect{color:var(--ink);font-weight:700}.skill-meta{flex-wrap:wrap;gap:4px 12px;margin:4px 0 0;font-size:12px;display:flex}.skill-meta div{gap:4px;display:flex}.skill-meta dt{color:var(--ink-soft)}.skill-meta dd{font-variant-numeric:tabular-nums;margin:0;font-weight:800}.glass-panel .skill-plus{width:44px;min-height:44px;padding:0;font-size:22px;font-weight:800}.glass-panel .skill-plus:disabled,.glass-panel .hud-skill-slot:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.skill-message{min-height:1.4em;margin:10px 0 0;font-weight:700}.glass-panel .hud-skill-slot{place-items:center;width:44px;min-height:44px;padding:0;display:grid;position:relative;overflow:hidden}.hud-skill-slot kbd{z-index:2;font-size:10px;font-weight:800;position:absolute;top:1px;left:3px}.hud-skill-glyph{border-radius:10px;width:30px;height:30px;font-size:17px}.hud-skill-cooldown{z-index:1;transform-origin:bottom;pointer-events:none;background:#49372f8c;position:absolute;inset:0}.hud-skill-slot.is-low-mp .hud-skill-glyph{filter:grayscale(.7)}@media (width<=700px){.field-inventory.glass-panel{max-height:calc(100% - 220px);position:absolute;top:12px;left:12px;right:12px;transform:none}.field-inventory-content,.field-shop-columns{grid-template-columns:minmax(0,1fr)}.field-equipment-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.field-inventory-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.field-shop.game-window{max-height:calc(100% - 48px)}}.dev-drawer{z-index:4;border-radius:var(--radius-s);color:#fffaf2;background:#160f25eb;width:min(300px,100% - 16px);max-height:38vh;font-size:12px;position:absolute;top:210px;left:8px;overflow:auto}.dev-drawer summary{cursor:pointer;padding:6px 10px}@media (width<=900px){.status-bar{grid-template-columns:auto minmax(0,1fr);gap:8px 10px}.hud-quick,.hud-menu{grid-column:1/-1;justify-content:center}.quest-panel{width:min(280px,100% - 24px)}}@media (width<=640px){.location-hud{width:150px;padding:8px}.location-heading .eyebrow{display:none}.location-card-name{font-size:20px}.quest-panel{top:max(12px, env(safe-area-inset-top));width:calc(100% - 186px);max-height:280px;bottom:auto;right:12px}.music-badge.glass-panel{display:none}.start-screen{padding:20px 16px}.start-screen h1{font-size:30px}.class-selection{grid-template-columns:1fr}.class-card{min-height:0}.status-meter{grid-template-columns:30px minmax(0,1fr) 70px}.hud-quick button,.hud-menu button{min-height:44px;padding:0 8px;font-size:12px}.hud-menu kbd{display:none}.dialogue-panel{bottom:calc(max(10px, env(safe-area-inset-bottom)) + 220px);grid-template-columns:64px minmax(0,1fr)}.dialogue-panel .portrait-preview,.portrait-placeholder{width:64px;height:64px}.skill-card{grid-template-columns:minmax(0,1fr) 44px}.skill-glyph{display:none}}@media (prefers-reduced-motion:reduce){.status-meter-fill,.glass-panel button{transition:none}.location-card{animation-name:location-card-fade}}.quest-dialog.game-window{pointer-events:auto;width:min(520px,100% - 24px);max-height:calc(100% - 160px);margin:0;transform:translate(-50%,-50%)}.quest-dialog::backdrop{background:#2d24384d}.quest-dialog-line{font-size:15px;line-height:1.5}.quest-dialog-details{border:1px solid var(--edge);border-radius:var(--radius-s);background:var(--cream);gap:6px;margin:12px 0;padding:10px 12px;display:grid}.quest-dialog-details div{gap:8px;display:flex}.quest-dialog-details dt{min-width:72px;font-weight:800}.quest-dialog-details dd{overflow-wrap:anywhere;margin:0}.quest-dialog-message:empty{display:none}.quest-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.quest-dialog button,.quest-journal button{min-width:44px;min-height:44px}.quest-dialog-actions button{padding:0 18px}.quest-dialog footer{color:var(--ink-soft);margin-top:10px;font-size:12px}.quest-reward-line{margin-top:4px;display:block}.quest-journal{gap:14px;display:grid}.quest-journal h3{margin:0 0 6px;font-size:16px}.quest-journal ul{margin:0;padding:0;list-style:none}.quest-journal-entry{border-bottom:1px solid var(--edge);gap:6px;padding:10px 0;display:grid}.quest-journal-entry small{overflow-wrap:anywhere;display:block}.quest-journal-entry--done{opacity:.75}.quest-progress{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-weight:700;display:flex}.quest-progress progress{height:10px;accent-color:var(--selected);flex:1}.quest-badge{background:var(--cream);border-radius:999px;justify-self:start;padding:2px 10px;font-size:12px;font-weight:800}
