@font-face{font-family:Pixelify Sans;src:url(/fonts/pixelify-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Pixelify Sans;src:url(/fonts/pixelify-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{color-scheme:light;--bg:#c5eaf2;--panel:#f58220;--surface:#fffaf0;--raised:#efe8d8;--line:#29456d;--ink:#203657;--muted:#526078;--gold:#8f3d21;--orange:#c45a2b;--cyan:#155b75;--danger:#c33f49;--action:#65d5d5;--action-hover:#8ce7df;--selected:#e4f3f2;--ki-fill:#55bdd5;--frame-highlight:#fffdf2;--shadow:#29456d;--display:"Pixelify Sans",sans-serif;--body:"DM Sans",Arial,sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius:3px;--ease:cubic-bezier(.16,1,.3,1);background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--body);scrollbar-color:var(--line) var(--bg);scrollbar-width:thin}*{box-sizing:border-box}body,html{margin:0;width:100%;min-height:100%;overscroll-behavior:none}body{overflow-x:hidden}::selection{background:var(--gold);color:var(--bg)}button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:4px}button,summary{-webkit-tap-highlight-color:transparent}.game-icon{width:24px;height:24px;flex:0 0 24px;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.app-shell{height:100dvh;min-height:0;padding:8px;display:flex;flex-direction:column;background:var(--bg)}.ambient,.stage-grain{display:none}.game-shell{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:3px solid var(--line);background:var(--surface)}.hud-top{display:grid;grid-template-columns:minmax(140px,1fr) minmax(110px,1fr) auto auto auto 44px;grid-gap:24px;gap:24px;align-items:center;padding:10px 20px;border-bottom:3px solid var(--line);flex-shrink:0;min-height:74px}.tiny-label{display:block;font:700 11px/1.3 var(--display);letter-spacing:.1em;color:var(--muted);margin-bottom:4px}.character-line{display:flex;align-items:center;gap:8px;font:700 21px/1.1 var(--display)}.character-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.character-dot{width:7px;height:7px;background:var(--orange);flex-shrink:0}.level{font:700 12px var(--display);color:var(--gold);white-space:nowrap}.warrior-block,.xp-block{min-width:0}.xp-track{height:6px;background:var(--bg);overflow:hidden}.xp-track>span{display:block;height:100%;background:var(--gold)}.hearts{display:flex;gap:3px;width:max-content}.heart{color:#b7c1bf}.heart.live{color:var(--danger)}.heart .game-icon{height:20px;width:20px;stroke-width:1}.combat-info strong,.score-block strong,.time-block strong{display:block;font:700 25px/1.1 var(--display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pause-button{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--raised)}.pause-button:hover{border-color:var(--gold)}.arena-stage{position:relative;flex:1 1;min-height:0;overflow:hidden;background:#82b36b;touch-action:none}.game-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;outline:0}.stage-label{position:absolute;top:14px;left:16px;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 10px;background:var(--surface);color:var(--ink);font:700 12px var(--display);letter-spacing:.08em;pointer-events:none}.stage-flare{display:inline-block;width:6px;height:6px;background:var(--orange);margin-right:6px}.boss-bar{position:absolute;top:12px;right:16px;width:34%;max-width:340px;padding:8px 12px;background:var(--surface);pointer-events:none}.boss-label{display:flex;justify-content:space-between;gap:8px;color:var(--danger);font:700 15px var(--display);margin-bottom:5px}.boss-track,.energy-track{height:8px;background:#b7c9cb;overflow:hidden}.boss-track span{display:block;height:100%;background:var(--danger)}.hud-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:10px 20px;flex-shrink:0;border-top:3px solid var(--line)}.ki-container{width:50%;max-width:540px;min-width:0}.ki-title{display:flex;gap:12px;justify-content:space-between;margin-bottom:5px;font:700 13px var(--display);color:var(--cyan)}.ki-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ki-title strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.energy-track>span{display:block;height:100%;background:var(--ki-fill)}.combat-info{display:flex;gap:28px}.combat-info strong{font-size:19px}.combat-info strong.ready{color:var(--gold)}.footer{display:flex;gap:12px;justify-content:space-between;padding:7px 4px 0;color:var(--muted);font:700 10px var(--display);letter-spacing:.05em}.footer b{margin-right:8px}.game-shell[data-screen=ready] .stage-label,.game-shell[data-screen=ready]>.capsule-inventory,.game-shell[data-screen=ready]>.hud-bottom,.game-shell[data-screen=ready]>.hud-top,.mobile-hint{display:none}.app-shell:has(.game-shell[data-screen=ready]) .footer{display:none}.overlay{position:absolute;inset:0;overflow:auto;display:flex;justify-content:center;align-items:center;padding:24px;background:var(--bg)}.game-dialog{position:fixed;inset:0;margin:auto;width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;padding:32px;border:2px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--surface);box-shadow:6px 6px 0 var(--shadow);overscroll-behavior:contain;touch-action:pan-y}.game-dialog::-webkit-backdrop{background:#183858b8}.game-dialog::backdrop{background:#183858b8}.modal-card{text-align:center;max-width:100%}.modal-card h2{font:700 clamp(28px,4.4vw,44px)/1.05 var(--display);margin:0 0 16px;text-wrap:balance}.modal-card h2 em{color:var(--gold);font-style:normal}.modal-card p{color:var(--muted);line-height:1.6;margin:0 0 24px}.modal-card .primary-button{width:100%}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 20px;border:3px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--action);box-shadow:0 4px 0 var(--shadow);font:700 23px/1.1 var(--display);letter-spacing:.04em;transition:background .15s var(--ease),transform .15s var(--ease)}.primary-button:hover:not(:disabled){background:var(--action-hover)}.primary-button:active:not(:disabled){transform:translateY(2px)}.primary-button:focus-visible{outline-color:var(--ink)}.secondary-button{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 16px;border:2px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--ink);font:700 15px var(--display);letter-spacing:.04em}.secondary-button:hover{background:var(--raised);border-color:var(--gold)}.pause-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:16px}.pause-card .keyboard-note{margin:24px 0 0;font-size:12px}.reward-options{display:grid;grid-gap:12px;gap:12px}.reward-option{width:100%;display:flex;align-items:center;gap:16px;min-height:80px;padding:16px;text-align:left;border:2px solid var(--line);border-radius:var(--radius);background:var(--raised);color:var(--ink)}.reward-option>span{flex:1 1;min-width:0}.reward-option strong{display:block;color:var(--gold);font:700 23px/1.1 var(--display)}.reward-option small{display:block;margin-top:6px;color:var(--muted);font:400 13px/1.5 var(--body);letter-spacing:0}.reward-option:hover{border-color:var(--gold);background:var(--selected)}.reward-option>.game-icon:first-child{color:var(--gold)}.reward-option>.game-icon:last-child{margin-left:auto}.mobile-controls{display:none;position:absolute;inset:auto 0 max(14px,env(safe-area-inset-bottom));align-items:flex-end;justify-content:space-between;padding:0 16px;pointer-events:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.joystick{width:130px;height:130px;border:3px solid var(--line);border-radius:50%;background:#fff4dcc9;display:grid;place-items:center;touch-action:none;position:relative;pointer-events:auto}.joy-lines{position:absolute;width:72%;height:72%;border:2px solid #42658e55;border-radius:50%}.joystick-knob{width:54px;height:54px;border-radius:50%;background:#ffd27c;border:3px solid var(--line);pointer-events:none}.action-cluster{position:relative;width:190px;height:190px;pointer-events:auto}.touch-button{position:absolute;touch-action:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid var(--line);border-radius:50%;color:var(--ink);font:700 12px/1 var(--display);background:var(--surface)}.touch-button .game-icon{width:20px;height:20px;flex:0 0 20px}.touch-button small{font:700 11px var(--display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.touch-button.ki{right:0;bottom:28px;width:86px;height:86px;background:#ffc76c;border-color:var(--line);font-size:18px}.touch-button.dash{left:5px;bottom:0;width:72px;height:72px;border-color:var(--line);background:#c8d7ef}.touch-button.kame{right:34px;top:0;width:78px;height:78px;border-color:var(--line);background:#b0e8eb}.touch-button.kame.charged{background:#ffe17e;color:var(--ink);border-style:double;border-width:5px}.touch-button.cooling{border-style:dashed}.touch-button:active{filter:brightness(1.2)}.capsule-inventory{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 20px;min-height:34px;flex-shrink:0;background:var(--surface);border-top:3px solid var(--line)}.capsule-inventory>.tiny-label{margin:0}.capsule-empty{font-size:11px;color:var(--muted)}.capsule-slots{display:flex;flex-wrap:wrap;gap:4px}.capsule-slot{position:relative}.capsule-slot summary{display:grid;place-items:center;list-style:none;cursor:pointer;width:44px;height:44px;border:2px solid var(--line);border-radius:var(--radius);color:var(--gold);background:var(--raised);font-size:22px}.capsule-slot summary::-webkit-details-marker{display:none}.capsule-tooltip{position:fixed;z-index:8;bottom:130px;left:max(16px,env(safe-area-inset-left));display:grid;grid-gap:6px;gap:6px;width:min(300px,calc(100vw - 32px));padding:16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--muted);font-size:13px}.capsule-tooltip strong{color:var(--gold)}.capsule-scouter,.capsule-shield{font-size:11px;color:var(--cyan)}.boost-inventory{margin-left:auto;font-size:12px}.boost-inventory summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--gold)}.boost-inventory ul{position:fixed;bottom:130px;left:16px;z-index:8;margin:0;padding:16px 32px;background:var(--bg);border:2px solid var(--line);border-radius:var(--radius);color:var(--ink)}.capsule-icon{display:grid;place-items:center;width:40px;height:40px;font-size:28px;color:var(--gold);flex:0 0 40px!important}.reward-option .rarity-common{color:var(--muted)}.reward-option .rarity-rare{color:var(--cyan)}.reward-option .rarity-epic{color:#703f98}.damage-feedback:after{content:"";position:absolute;inset:0;border:3px solid var(--danger);box-shadow:inset 0 0 0 6px #e6625855;pointer-events:none;z-index:3}.room-transition{position:absolute;top:35%;left:50%;transform:translateX(-50%);display:grid;grid-gap:16px;gap:16px;text-align:center;width:min(320px,calc(100% - 32px));padding:24px;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius)}.room-transition strong{font:700 28px var(--display);color:var(--gold)}.storage-note{color:var(--gold);font-size:13px;line-height:1.6}@media(max-width:900px){.hud-top{gap:16px}.score-block{display:none}.hud-top{grid-template-columns:minmax(100px,1fr) minmax(80px,1fr) auto auto 44px}.combat-info{gap:16px}}@media(max-width:650px){.app-shell{padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}.hud-top{grid-template-columns:minmax(0,1fr) auto 44px;grid-template-areas:"warrior timer pause" "health health pause" "xp xp xp";gap:5px 10px;padding:8px 10px;min-height:94px}.warrior-block{grid-area:warrior}.hp-block>.tiny-label,.time-block>.tiny-label,.warrior-block>.tiny-label{display:none}.character-line{font-size:17px}.character-dot{display:none}.hp-block{grid-area:health}.time-block{grid-area:timer}.time-block strong{font-size:22px}.pause-button{grid-area:pause}.xp-block{grid-area:xp;display:flex;align-items:center;gap:8px}.xp-block>.tiny-label{font-size:10px;margin:0;white-space:nowrap}.xp-track{flex:1 1;height:4px}.heart .game-icon{width:18px;height:18px}.hud-bottom{gap:12px;padding:8px 10px}.ki-container{width:60%}.ki-title{font-size:12px}.combat-info{gap:10px}.combat-info>div:nth-child(2),.ready-status{display:none}.combat-info .tiny-label{font-size:9px}.combat-info strong{font-size:18px}.stage-label{top:8px;left:8px;font-size:11px}.boss-bar{top:6px;right:8px;width:46%;padding:6px 8px}.boss-label{font-size:13px}.mobile-controls{display:flex;padding:0 10px}.action-cluster{width:178px;height:178px}.joystick{width:116px;height:116px}.touch-button.ki{width:80px;height:80px}.touch-button.kame{width:74px;height:74px;right:28px}.touch-button.dash{width:68px;height:68px;left:0}.footer{display:none}.capsule-inventory{padding:3px 10px;gap:6px}.game-dialog{padding:24px 18px}.reward-option{gap:10px;padding:12px}.reward-option strong{font-size:22px}.reward-option small{font-size:12px}}@media(pointer:coarse){.mobile-controls{display:flex}}@media(orientation:landscape) and (max-height:500px){.app-shell{padding:4px}.hud-top{min-height:44px;padding:4px 10px;display:flex;gap:16px}.warrior-block{flex:1 1}.hp-block>.tiny-label,.time-block>.tiny-label,.warrior-block>.tiny-label{display:none}.xp-block{width:100px;display:block}.xp-block>.tiny-label{font-size:10px;margin-bottom:3px}.character-line{font-size:16px}.time-block strong{font-size:20px}.heart .game-icon{width:17px;height:17px}.pause-button{width:44px;height:44px}.footer{display:none}.hud-bottom{padding:4px 10px;min-height:38px}.combat-info>div:nth-child(2){display:none}.capsule-inventory{min-height:26px;padding:0 10px}.capsule-empty{display:none}.mobile-controls{display:flex;bottom:6px}.joystick{width:90px;height:90px}.joystick-knob{width:44px;height:44px}.action-cluster{width:170px;height:106px}.touch-button.dash{width:54px;height:54px;left:0;bottom:0}.touch-button.ki{width:66px;height:66px;right:0;bottom:0}.touch-button.kame{width:64px;height:64px;right:56px;top:0}.touch-button,.touch-button small{font-size:10px}.touch-button .game-icon{width:16px;height:16px;flex-basis:16px}.stage-label{top:6px}.game-dialog{max-height:calc(100dvh - 24px);padding:20px}.modal-card h2{font-size:32px;margin-bottom:10px}.modal-card p{margin-bottom:14px}.pause-card .keyboard-note{margin-top:12px}}@media(prefers-reduced-motion:reduce){.primary-button{transition:none}.damage-feedback:after{box-shadow:none}}.ki-title>.ki-status{display:flex;align-items:center;gap:6px}.ki-status>.game-icon{width:14px;height:14px;flex-basis:14px}.ki-status>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capsule-scouter,.capsule-shield{display:flex;align-items:center;gap:4px}.capsule-scouter>.game-icon,.capsule-shield>.game-icon{width:16px;height:16px;flex-basis:16px}.capsule-inventory,.hud-bottom,.hud-top{box-shadow:inset 0 3px 0 var(--frame-highlight)}.capsule-slot summary,.pause-button,.reward-option,.secondary-button{box-shadow:inset 2px 2px 0 var(--frame-highlight)}.boss-bar,.stage-label{border:2px solid var(--line)}.touch-button{box-shadow:0 3px 0 var(--shadow)}.reward-option>.game-icon:first-child{color:var(--cyan)}.boost-inventory ul,.capsule-tooltip{background:var(--surface);box-shadow:4px 4px 0 var(--shadow)}.game-dialog{border-width:3px}@media(max-width:650px){.character-line{font-size:16px}.primary-button{font-size:22px}.reward-option strong{font-size:20px}.ki-title{font-size:11px}.capsule-scouter,.capsule-shield{font-family:var(--body)}}@media(orientation:landscape) and (max-height:500px){.character-line{font-size:15px}.modal-card h2{font-size:30px}.hud-top{gap:12px}.pause-card .primary-button{min-height:48px}}