:root{--app-bg:var(--tg-theme-bg-color,#fff);--app-text:var(--tg-theme-text-color,#000);--app-hint:var(--tg-theme-hint-color,#999);--app-accent:var(--tg-theme-button-color,#2481cc);--app-accent-text:var(--tg-theme-button-text-color,#fff);--app-surface:var(--tg-theme-secondary-bg-color,#f0f0f0);--app-danger:var(--tg-theme-destructive-text-color,#e53935);--app-height:var(--tg-viewport-stable-height,100dvh);--safe-top:max(16px, calc(var(--tg-viewport-safe-area-inset-top,0px) + var(--tg-viewport-content-safe-area-inset-top,0px)), env(safe-area-inset-top,0px));--safe-right:max(16px, calc(var(--tg-viewport-safe-area-inset-right,0px) + var(--tg-viewport-content-safe-area-inset-right,0px)), env(safe-area-inset-right,0px));--safe-bottom:max(16px, calc(var(--tg-viewport-safe-area-inset-bottom,0px) + var(--tg-viewport-content-safe-area-inset-bottom,0px)), env(safe-area-inset-bottom,0px));--safe-left:max(16px, calc(var(--tg-viewport-safe-area-inset-left,0px) + var(--tg-viewport-content-safe-area-inset-left,0px)), env(safe-area-inset-left,0px))}@font-face{font-family:"Press Start 2P";src:url(/fonts/PressStart2P-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--px:3px;--px-font:"Press Start 2P", "Courier New", monospace;--px-ink:#1a1424;--px-gold:#ffd23f;--px-gold-dark:#c98a12;--px-red:#e5532d;--px-blue:#2f86e8;--px-green:#4cd964;--px-purple:#8a5cf6;--px-panel:color-mix(in srgb, var(--app-surface) 70%, var(--app-bg));--px-shadow:color-mix(in srgb, var(--app-text) 35%, var(--app-bg))}*{box-sizing:border-box}html,body{background:var(--app-bg);color:var(--app-text);font-family:var(--px-font);-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:11px;line-height:1.5}button{font-family:var(--px-font);line-height:1.4}a{color:var(--app-accent)}.px-box,.stats-card,.stats-card__item,.plan__col,.body-zone,.plan-slot,.log__n,.hit,.log__knockout,.action-bar button,.fallback-note button,.credits,.skip-button,.plan__random,.hp-bar,.arena__hud .hud-bar,.hud-turn{box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-ink), 0 var(--px) 0 0 var(--px-ink), calc(-1 * var(--px)) 0 0 0 var(--px-ink), var(--px) 0 0 0 var(--px-ink);border:0;border-radius:0}#root{min-height:var(--app-height);flex-direction:column;display:flex}.screen{min-width:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);flex-direction:column;flex:1;gap:14px;display:flex}.screen h1{color:var(--app-text);text-shadow:var(--px) var(--px) 0 var(--px-shadow);margin:0;font-size:16px;line-height:1.4}.screen h2{margin:0;font-size:11px}.screen p{margin:0}.hint{color:var(--app-hint);margin:0;font-size:9px;line-height:1.6}.action-bar button,.fallback-note button,.screen>div[role=status] button,.plan__random,.skip-button{min-height:44px;margin:var(--px) var(--px) calc(var(--px) * 2);background:var(--app-surface);color:var(--app-text);text-transform:uppercase;cursor:pointer;box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-ink), 0 var(--px) 0 0 var(--px-ink), calc(-1 * var(--px)) 0 0 0 var(--px-ink), var(--px) 0 0 0 var(--px-ink), 0 calc(var(--px) * 2) 0 0 var(--px-ink), inset 0 calc(-1 * var(--px)) 0 0 #00000040, inset 0 var(--px) 0 0 #ffffff59;padding:10px 12px;font-size:11px;position:relative}.action-bar button:active:not(:disabled),.fallback-note button:active:not(:disabled),.plan__random:active,.skip-button:active{transform:translateY(var(--px));box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-ink), 0 var(--px) 0 0 var(--px-ink), calc(-1 * var(--px)) 0 0 0 var(--px-ink), var(--px) 0 0 0 var(--px-ink), inset 0 var(--px) 0 0 #00000040}.action-bar button:disabled{color:var(--app-hint);cursor:default;opacity:.6}.fighters{flex-direction:column;gap:14px;display:flex}.fighter{flex-direction:column;gap:8px;min-width:0;display:flex}.fighter__head{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.fighter .name{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;flex:1 1 0;min-width:0;overflow:hidden}.fighter__hp{color:var(--app-hint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:9px}.hp-bar{height:12px;margin:var(--px);background:#3a1420;position:relative;overflow:hidden}.hp-bar__fill{background:linear-gradient(var(--px-gold), #f5a524 60%, #d9801a);height:100%;transition:width .25s steps(8,end)}.hp-bar:after,.hud-bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 7px,#00000059 7px 9px);position:absolute;inset:0}.arena{height:clamp(180px, calc(var(--app-height) - 480px), 440px);background:#14121c;flex-shrink:0;position:relative;overflow:hidden}.arena+.screen{gap:10px;padding-top:12px}.arena__canvas{position:absolute;inset:0}.arena__hud{padding:calc(var(--safe-top) - 6px) calc(var(--safe-right) - 6px) 20px calc(var(--safe-left) - 6px);color:#fff;text-shadow:2px 2px 0 var(--px-ink);pointer-events:none;background:linear-gradient(#000000bf,#0006 65%,#0000);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:10px;font-size:10px;display:grid;position:absolute;top:0;left:0;right:0}.hud-fighter{flex-direction:column;gap:6px;min-width:0;display:flex}.hud-fighter__head{justify-content:space-between;align-items:baseline;gap:6px;min-width:0;display:flex}.hud-fighter--opponent .hud-fighter__head{flex-direction:row-reverse}.hud-fighter__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--px-gold);text-transform:uppercase;overflow:hidden}.hud-fighter__hp{opacity:.9;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:8px}@media (width<=360px){.hud-fighter__head,.hud-fighter--opponent .hud-fighter__head{flex-direction:column;align-items:stretch;gap:2px}.hud-fighter--opponent .hud-fighter__head{text-align:right}.arena__hud{padding-bottom:14px}}.hud-bar{height:14px;margin:var(--px);background:#3a1420;position:relative;overflow:hidden}.hud-bar__ghost,.hud-bar__fill{position:absolute;top:0;bottom:0;left:0}.hud-fighter--opponent .hud-bar__ghost,.hud-fighter--opponent .hud-bar__fill{left:auto;right:0}.hud-bar__ghost{background:#fff6d6;transition:width .5s steps(10,end) .35s}.hud-bar__fill{background:linear-gradient(var(--px-gold) 0 40%, #f5a524 40% 75%, #d9801a 75%);transition:width .25s steps(8,end)}.hud-bar--low .hud-bar__fill{background:linear-gradient(#ff8a6b 0 40%,#e53935 40% 75%,#b3261e 75%);animation:.5s steps(2,end) infinite hud-low}@keyframes hud-low{50%{filter:brightness(1.5)}}.hud-turn{min-width:48px;height:48px;margin:var(--px) var(--px) 0;background:var(--px-ink);color:var(--px-gold);text-shadow:none;flex-direction:column;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.hud-turn__label{color:#f4e3b0;text-transform:uppercase;margin-bottom:4px;font-size:7px}.skip-button{background:var(--px-ink);color:#fff;text-transform:uppercase;min-width:48px;min-height:36px;padding:6px 12px;font-size:9px;position:absolute;bottom:12px;right:12px}.plan__cols{padding:var(--px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.plan__col{--tone:var(--px-red);background:var(--px-panel);flex-direction:column;gap:8px;min-width:0;margin:0;padding:10px 8px 8px;display:flex}.plan__col--blocks{--tone:var(--px-blue)}.plan__legend{float:left;width:100%;color:var(--tone);text-transform:uppercase;justify-content:space-between;padding:0 2px;font-size:10px;display:flex}.plan__count{color:var(--app-hint);font-variant-numeric:tabular-nums}.body-map{padding:var(--px) 0;clear:both;flex-direction:column;align-items:center;gap:7px;display:flex}.body-zone{background:var(--app-bg);min-height:42px;color:var(--app-text);cursor:pointer;box-shadow:0 calc(-1 * var(--px)) 0 0 var(--tone), 0 var(--px) 0 0 var(--tone), calc(-1 * var(--px)) 0 0 0 var(--tone), var(--px) 0 0 0 var(--tone);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;font-size:10px;display:flex;position:relative}.body-zone:active:not(:disabled){background:color-mix(in srgb, var(--tone) 35%, var(--app-bg))}.body-zone:disabled{opacity:.4;cursor:default}.body-zone--head{width:60%}.body-zone--torso{width:100%;min-height:48px}.body-zone--legs{width:76%}.body-zone__name{text-transform:uppercase}.body-zone__hint{color:var(--app-hint);white-space:nowrap;font-size:7px}.body-zone__badge{background:var(--tone);color:#fff;min-width:20px;box-shadow:0 -2px 0 0 var(--px-ink), 0 2px 0 0 var(--px-ink), -2px 0 0 0 var(--px-ink), 2px 0 0 0 var(--px-ink);padding:3px 4px;font-size:8px;position:absolute;top:-9px;right:-9px}.plan__slots{padding:var(--px) var(--px) 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.plan-slot{background:var(--app-bg);min-width:0;min-height:36px;color:var(--app-hint);overflow-wrap:anywhere;box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-shadow), 0 var(--px) 0 0 var(--px-shadow), calc(-1 * var(--px)) 0 0 0 var(--px-shadow), var(--px) 0 0 0 var(--px-shadow);flex-direction:column;align-items:center;gap:2px;padding:3px 2px;font-size:8px;display:flex}.plan-slot__n{opacity:.8;font-size:7px}.plan-slot--filled{background:var(--tone);color:#fff;box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-ink), 0 var(--px) 0 0 var(--px-ink), calc(-1 * var(--px)) 0 0 0 var(--px-ink), var(--px) 0 0 0 var(--px-ink)}.plan-slot:disabled{cursor:default}.plan__random{align-self:center;min-height:36px;padding:8px 14px;font-size:9px}@media (height<=640px){.arena+.screen{gap:6px;padding-top:8px}.plan__cols{gap:10px}.plan__col{gap:6px;padding:6px}.body-map{gap:6px}.body-zone{gap:2px;min-height:34px}.body-zone--torso{min-height:38px}.plan__slots{gap:6px}.plan-slot{flex-direction:row;justify-content:center;gap:4px;min-height:26px}.plan__random{min-height:26px;padding:3px 12px}.action-bar{gap:6px;padding-top:4px}.action-bar button{min-height:38px;padding:6px 12px}}.fallback-note{flex-direction:column;gap:8px;display:flex}.log{min-width:0;padding:var(--px);flex-direction:column;gap:10px;display:flex}.log__exchange{grid-template-columns:24px minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:10px;animation:.2s steps(4,end) log-in;display:grid}@keyframes log-in{0%{opacity:0;transform:translateY(6px)}}.log__exchange--pending{opacity:.45;animation:none}.log__exchange--pending .hit{--tone:var(--app-hint)}.log__n{background:var(--px-panel);color:var(--app-hint);justify-content:center;align-items:center;font-size:9px;display:flex}.hit{--tone:var(--px-red);background:var(--px-panel);min-width:0;box-shadow:0 calc(-1 * var(--px)) 0 0 var(--px-ink), 0 var(--px) 0 0 var(--px-ink), calc(-1 * var(--px)) 0 0 0 var(--px-ink), var(--px) 0 0 0 var(--px-ink), inset calc(var(--px) + 1px) 0 0 0 var(--tone);flex-wrap:wrap;align-items:baseline;gap:2px 6px;margin:0;padding:6px 6px 6px 10px;font-size:8px;display:flex}.hit--opponent{--tone:var(--px-purple)}.hit__who{text-transform:uppercase}.hit__zone{color:var(--app-hint)}.hit__result{color:var(--tone);font-variant-numeric:tabular-nums;margin-left:auto}.hit--blocked .hit__result{color:var(--px-blue)}.log__knockout{margin:var(--px);background:var(--px-red);color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.1em;padding:10px;animation:.6s steps(2,end) 4 ko-blink}@keyframes ko-blink{50%{background:var(--px-gold);color:var(--px-ink)}}.action-bar{background:var(--app-bg);flex-direction:column;gap:8px;margin-top:auto;padding:8px 0 0;display:flex;position:sticky;bottom:0}.action-bar button{width:calc(100% - var(--px) * 2)}.action-bar .action-bar__main{background:var(--app-accent);color:var(--app-accent-text)}.action-bar .action-bar__main:disabled{color:var(--app-accent-text)}.stats-card{margin:var(--px);background:var(--px-panel);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 10px;display:grid}.stats-card__item{background:var(--app-bg);text-align:center;min-width:0;padding:8px 2px}.stats-card dt{color:var(--app-hint);overflow-wrap:anywhere;font-size:7px;line-height:1.6}.stats-card dd{color:var(--app-accent);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:16px}.arena__loading{background:#3a1420;height:8px;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 -2px #f4e3b0,0 2px #f4e3b0,-2px 0 #f4e3b0,2px 0 #f4e3b0}.arena__loading-fill{background:var(--px-gold);height:100%;transition:width .2s steps(4,end)}.credits{margin:var(--px);background:var(--px-panel);color:var(--app-hint);padding:8px 10px;font-size:8px;line-height:1.7}.app-version{margin:0 var(--px);color:var(--app-hint);text-align:right;font-size:7px}.credits summary{cursor:pointer}.credits ul{margin:6px 0 0;padding-left:16px}[role=status]{color:var(--app-hint);font-size:9px}
