:root{--glass-fill-thin: rgba(20, 22, 28, .4);--glass-fill-mid: rgba(20, 22, 28, .55);--glass-fill-thick: rgba(20, 22, 28, .72);--glass-blur: 12px;--glass-saturate: 1.4;--glass-saturate-emphasis: 1.6;--specular-edge: rgba(255, 255, 255, .12);--specular-edge-emphasis: rgba(255, 255, 255, .2);--depth-shadow: 0 4px 24px rgba(0, 0, 0, .28);--depth-shadow-lift: 0 8px 32px rgba(0, 0, 0, .36);--text-primary: rgba(255, 255, 255, .96);--text-secondary: rgba(255, 255, 255, .68);--text-tertiary: rgba(255, 255, 255, .44);--ok-green: #2EBD68;--warn-amber: #FFB938;--err-red: #FF453A;--info-blue: #4B8DFF;--type-normal: #B6B5A2;--type-fire: #FF4D29;--type-water: #2E9EFF;--type-electric: #FFD126;--type-grass: #5AD66E;--type-ice: #7AD9DA;--type-fighting: #C13C46;--type-poison: #B450C7;--type-ground: #E5B956;--type-flying: #A5BEF0;--type-psychic: #FF5C82;--type-bug: #A4BB39;--type-rock: #B89B47;--type-ghost: #6E5BA6;--type-dragon: #7B5BFA;--type-dark: #5F4F44;--type-steel: #B8BAC4;--type-fairy: #FF93C8;--peach: #F4C47A;--coral: #E8745A;--olive: #6B6F3A;--gold: #A88542;--paper: #FDF4DC;--paper-tint: #F4E9C8;--ink: #3F3A2C;--ink-soft: #6F6A56}.dialogue-overlay{position:absolute;box-sizing:border-box;border:none;border-radius:8px;padding:12px 16px;background:var(--glass-fill-mid);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:0 1px 0 0 inset var(--specular-edge),var(--depth-shadow);color:var(--text-primary);pointer-events:auto}body.dialog-luma-light .dialogue-overlay{background:#14161c8c;-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4)}body.dialog-luma-mid .dialogue-overlay{background:#14161c9e;-webkit-backdrop-filter:blur(12px) saturate(1.5);backdrop-filter:blur(12px) saturate(1.5)}body.dialog-luma-dark .dialogue-overlay{background:#14161cb8;-webkit-backdrop-filter:blur(12px) saturate(1.6);backdrop-filter:blur(12px) saturate(1.6);box-shadow:0 1px inset #ffffff29,0 4px 24px #00000047}@supports not (backdrop-filter: blur(1px)){.dialogue-overlay,body.dialog-luma-light .dialogue-overlay,body.dialog-luma-mid .dialogue-overlay,body.dialog-luma-dark .dialogue-overlay{background:#14161ceb}}@keyframes dialogue-overlay-entry{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes dialogue-overlay-exit{0%{opacity:1}to{opacity:0}}.dialogue-overlay.is-entering{animation:dialogue-overlay-entry .2s ease-out both}.dialogue-overlay.is-exiting{animation:dialogue-overlay-exit .15s ease-out forwards}@keyframes dialogue-continuation-pulse{0%,to{opacity:.6}50%{opacity:1}}.dialogue-overlay__continuation{animation:dialogue-continuation-pulse 1.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.dialogue-overlay.is-entering,.dialogue-overlay.is-exiting{animation:none;opacity:1;transform:none}.dialogue-overlay__continuation{animation:none;opacity:1}}.hp-bar{position:relative;width:80px;height:8px;background:var(--glass-fill-mid);border-radius:4px;overflow:hidden;box-sizing:border-box;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:0 1px 0 0 inset var(--specular-edge);pointer-events:none}.hp-bar:before{content:"";position:absolute;inset:0;background:var(--hp-bar-type-tint, transparent);pointer-events:none}.hp-bar__fill{position:absolute;top:0;left:0;height:100%;width:100%;border-radius:4px;background:var(--ok-green);transition:width 1s ease-out,background-color 1s ease-out}.hp-bar[data-threshold=green] .hp-bar__fill{background:var(--ok-green)}.hp-bar[data-threshold=yellow] .hp-bar__fill{background:var(--warn-amber)}.hp-bar[data-threshold=red] .hp-bar__fill{background:var(--err-red)}@keyframes hp-bar-critical-pulse{0%,to{opacity:.6}50%{opacity:1}}.hp-bar[data-critical=true] .hp-bar__fill{animation:hp-bar-critical-pulse 1.2s ease-in-out infinite}.hp-bar__sweep{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);transform:translate(-100%);pointer-events:none}@keyframes hp-bar-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.hp-bar.is-sweeping .hp-bar__sweep{animation:hp-bar-sweep .6s ease-out}.hp-bar.is-sweeping-slow .hp-bar__sweep{animation:hp-bar-sweep .8s ease-out}.hp-bar.is-sweeping-fast .hp-bar__sweep{animation:hp-bar-sweep .4s ease-out}@keyframes hp-bar-damage-flash{0%{background-color:#ff453a66}to{background-color:transparent}}.hp-bar.is-flashing{animation:hp-bar-damage-flash .2s ease-out}@keyframes hp-bar-shake{0%,to{transform:translateY(0)}16%{transform:translateY(-2px)}50%{transform:translateY(2px)}83%{transform:translateY(-2px)}}.hp-bar.is-shaking{animation:hp-bar-shake 60ms linear}@media(prefers-reduced-motion:reduce){.hp-bar__fill{transition:none}.hp-bar[data-critical=true] .hp-bar__fill{animation:none;opacity:.7}.hp-bar.is-sweeping .hp-bar__sweep,.hp-bar.is-sweeping-slow .hp-bar__sweep,.hp-bar.is-sweeping-fast .hp-bar__sweep,.hp-bar.is-flashing,.hp-bar.is-shaking{animation:none}}.battle-log{position:absolute;box-sizing:border-box;border:none;border-radius:8px;padding:12px 16px;background:var(--glass-fill-mid);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:0 1px 0 0 inset var(--specular-edge),var(--depth-shadow);color:var(--text-primary);font-family:DM Sans Variable,DM Sans,system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;line-height:1.5;pointer-events:none;white-space:pre-line}@supports not (backdrop-filter: blur(1px)){.battle-log{background:#14161ceb}}.battle-actions{pointer-events:none}.battle-action{display:none;align-items:center;justify-content:center;box-sizing:border-box;border-radius:8px;padding:8px 16px;background:var(--glass-fill-thin);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));color:var(--text-primary);border:1.5px solid var(--specular-edge);font-family:DM Sans Variable,DM Sans,system-ui,-apple-system,sans-serif;font-size:15px;font-weight:600;letter-spacing:.01em;pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease-out,background-color .1s ease-out,border-color .1s ease-out}.battle-action:hover,.battle-action:focus{background:var(--glass-fill-mid);border-color:var(--text-primary);transform:scale(1.02)}.battle-action:active{transform:scale(.98);transition-duration:60ms}.battle-action[data-disabled=true]{opacity:.4;cursor:default;pointer-events:none}.battle-action[data-type=normal]:hover,.battle-action[data-type=normal]:focus{border-color:var(--type-normal)}.battle-action[data-type=fire]:hover,.battle-action[data-type=fire]:focus{border-color:var(--type-fire)}.battle-action[data-type=water]:hover,.battle-action[data-type=water]:focus{border-color:var(--type-water)}.battle-action[data-type=electric]:hover,.battle-action[data-type=electric]:focus{border-color:var(--type-electric)}.battle-action[data-type=grass]:hover,.battle-action[data-type=grass]:focus{border-color:var(--type-grass)}.battle-action[data-type=ice]:hover,.battle-action[data-type=ice]:focus{border-color:var(--type-ice)}.battle-action[data-type=fighting]:hover,.battle-action[data-type=fighting]:focus{border-color:var(--type-fighting)}.battle-action[data-type=poison]:hover,.battle-action[data-type=poison]:focus{border-color:var(--type-poison)}.battle-action[data-type=ground]:hover,.battle-action[data-type=ground]:focus{border-color:var(--type-ground)}.battle-action[data-type=flying]:hover,.battle-action[data-type=flying]:focus{border-color:var(--type-flying)}.battle-action[data-type=psychic]:hover,.battle-action[data-type=psychic]:focus{border-color:var(--type-psychic)}.battle-action[data-type=bug]:hover,.battle-action[data-type=bug]:focus{border-color:var(--type-bug)}.battle-action[data-type=rock]:hover,.battle-action[data-type=rock]:focus{border-color:var(--type-rock)}.battle-action[data-type=ghost]:hover,.battle-action[data-type=ghost]:focus{border-color:var(--type-ghost)}.battle-action[data-type=dragon]:hover,.battle-action[data-type=dragon]:focus{border-color:var(--type-dragon)}.battle-action[data-type=dark]:hover,.battle-action[data-type=dark]:focus{border-color:var(--type-dark)}.battle-action[data-type=steel]:hover,.battle-action[data-type=steel]:focus{border-color:var(--type-steel)}.battle-action[data-type=fairy]:hover,.battle-action[data-type=fairy]:focus{border-color:var(--type-fairy)}.battle-action--back{background:transparent;font-size:14px;font-weight:500;color:var(--text-secondary)}.battle-action--back:hover,.battle-action--back:focus{background:var(--glass-fill-thin);border-color:var(--text-secondary)}@media(prefers-reduced-motion:reduce){.battle-action,.battle-action:hover,.battle-action:focus,.battle-action:active{transform:none;transition:none}}.battle-status-panel{position:absolute;width:168px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;border-radius:8px;background:var(--glass-fill-mid);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:0 1px 0 0 inset var(--specular-edge),var(--depth-shadow);font-family:DM Sans Variable,DM Sans,system-ui,-apple-system,sans-serif;pointer-events:none}@supports not (backdrop-filter: blur(1px)){.battle-status-panel{background:#14161ceb}}.battle-status-panel__name-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.battle-status-panel__name{font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-status-panel__level{font-family:DM Mono,ui-monospace,SF Mono,monospace;font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.battle-status-panel__hp-row{display:flex;align-items:center;gap:8px}.battle-status-panel__hp-numeric{font-family:DM Mono,ui-monospace,SF Mono,monospace;font-size:11px;font-weight:500;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.battle-status-panel__exp-bar{position:relative;width:100%;height:4px;background:var(--glass-fill-thin);border-radius:2px;overflow:hidden}.battle-status-panel__exp-fill{position:absolute;top:0;left:0;height:100%;width:0%;background:var(--info-blue);border-radius:2px;transition:width 1s ease-out}@media(prefers-reduced-motion:reduce){.battle-status-panel__exp-fill{transition:none}}@media(min-width:920px){.battle-status-panel[data-side=opponent]{right:292px}.battle-status-panel[data-side=player]{left:292px;bottom:487px}}.hp-bar.is-fainting:after{content:"";position:absolute;inset:0;background:var(--err-red);border-radius:inherit;pointer-events:none;animation:hp-bar-faint-pulse .3s ease-in-out forwards}@keyframes hp-bar-faint-pulse{0%,33.3%,66.6%{opacity:1}16.6%,50%,83.3%{opacity:.4}to{opacity:0}}.hp-bar.is-fainting:before{transition:opacity .6s ease-out .3s;opacity:0}#game.is-battle-fainting>canvas{filter:saturate(.6);transition:filter .6s ease-out .6s}#game:not(.is-battle-fainting)>canvas{filter:saturate(1);transition:filter .4s ease-out}@media(prefers-reduced-motion:reduce){.hp-bar.is-fainting:after{animation:none;opacity:0}.hp-bar.is-fainting:before{transition:none;opacity:0}#game.is-battle-fainting>canvas,#game:not(.is-battle-fainting)>canvas{transition:none}}@keyframes hp-bar-last-alive-pulse{0%,to{opacity:.4}50%{opacity:1}}.hp-bar[data-critical=true][data-last-alive=true] .hp-bar__fill{animation:hp-bar-last-alive-pulse .8s ease-in-out infinite}#game.is-last-alive-critical>canvas{filter:saturate(.85);transition:filter .6s ease-out}@media(prefers-reduced-motion:reduce){.hp-bar[data-critical=true][data-last-alive=true] .hp-bar__fill{animation:none;opacity:.7}#game.is-last-alive-critical>canvas{transition:none}}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2) format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2) format("woff2"),url(/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2) format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
