:root{--bg: #050806;--bg-2: #0a120c;--panel: rgba(10, 24, 14, .82);--panel-border: rgba(88, 255, 128, .22);--green: #58ff80;--green-dim: #1f7a3a;--green-glow: rgba(88, 255, 128, .35);--amber: #ffb020;--amber-dim: #7a5210;--cyan: #4be3ff;--cyan-dim: #176b7c;--red: #ff4b4b;--red-dim: #7a1c1c;--violet: #c88bff;--violet-dim: #5a3a80;--text: #cfe9d4;--text-dim: #7fa387;--font-mono: "SF Mono", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", ui-monospace, monospace;--radius: 6px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tap: 44px;--tile-missile: var(--red);--tile-shield: var(--cyan);--tile-energy: var(--amber);--tile-repair: var(--green);--tile-intel: var(--violet);--tile-missile-dim: var(--red-dim);--tile-shield-dim: var(--cyan-dim);--tile-energy-dim: var(--amber-dim);--tile-repair-dim: var(--green-dim);--tile-intel-dim: var(--violet-dim);--dur: 1;color-scheme:dark}*{box-sizing:border-box}html,body{touch-action:manipulation;margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:15px;line-height:1.35;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;overflow:hidden}body{position:fixed;inset:0;width:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#root{height:100%;width:100%;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}::selection{background:var(--green-dim)}.app{position:relative;height:100%;width:100%;display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:radial-gradient(ellipse at 50% 40%,#0b1a10 0%,var(--bg) 70%)}.screen{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px;gap:10px;overflow:hidden}.screen.scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.crt:before{content:"";pointer-events:none;position:absolute;inset:0;z-index:50;background:repeating-linear-gradient(to bottom,#0000 0px 2px,#0000002e 3px 4px);mix-blend-mode:multiply}.crt:after{content:"";pointer-events:none;position:absolute;inset:0;z-index:51;background:radial-gradient(ellipse at center,#0000 55%,#0000008c)}.crt.flicker .screen{animation:flicker 4s infinite steps(1)}@keyframes flicker{0%,92%,to{opacity:1}93%{opacity:.96}94%{opacity:1}97%{opacity:.97}}.glow{text-shadow:0 0 6px var(--green-glow),0 0 14px rgba(88,255,128,.15)}.shake{animation:shake calc(.35s * var(--dur)) ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(3px,1px)}}h1,h2,h3{margin:0;font-weight:700;letter-spacing:.08em;color:var(--green)}h1{font-size:clamp(28px,9vw,44px)}h2{font-size:clamp(16px,4.5vw,20px)}h3{font-size:13px;color:var(--text-dim);letter-spacing:.16em}.mono-dim{color:var(--text-dim)}.small{font-size:12px}.tiny{font-size:11px}.amber{color:var(--amber)}.red{color:var(--red)}.cyan{color:var(--cyan)}.green{color:var(--green)}.violet{color:var(--violet)}.center{text-align:center}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:10px 12px;box-shadow:inset 0 0 24px #58ff800a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);min-width:var(--tap);padding:10px 16px;background:#58ff800f;border:1px solid var(--green-dim);border-radius:var(--radius);color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-weight:700;transition:background calc(.12s * var(--dur)),transform calc(.08s * var(--dur))}.btn:active{transform:scale(.98);background:#58ff8029}.btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}.btn.primary{background:#58ff8029;border-color:var(--green);box-shadow:0 0 16px #58ff802e}.btn.danger{color:var(--red);border-color:var(--red-dim);background:#ff4b4b0f}.btn.amber{color:var(--amber);border-color:var(--amber-dim);background:#ffb0200f}.btn.block{width:100%}.btn:disabled{opacity:.4;cursor:default}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.bar{position:relative;height:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.bar>.fill{height:100%;transition:width calc(.35s * var(--dur)) ease-out;box-shadow:0 0 10px currentColor}.bar.integrity>.fill{background:var(--green);color:var(--green)}.bar.enemy>.fill{background:var(--red);color:var(--red)}.bar.shield>.fill{background:var(--cyan);color:var(--cyan)}.bar.energy>.fill{background:var(--amber);color:var(--amber)}.bar.thin{height:8px}.bar-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.12em;color:var(--text-dim);margin-bottom:3px}.bar-label b{color:var(--text);font-weight:600}.bar.flash>.fill{animation:barflash calc(.35s * var(--dur)) ease-out}@keyframes barflash{0%{filter:brightness(2.4)}to{filter:brightness(1)}}.combat{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:8px;height:100%;width:100%;min-width:0;padding:8px 10px 10px;overflow:hidden}.combat>*{min-width:0}.combat.landscape{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:"board side"}.combat.landscape .board-wrap{grid-area:board}.combat.landscape .side{grid-area:side;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}.enemy-panel{display:flex;flex-direction:column;gap:6px;min-width:0}.enemy-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.enemy-head>.grow{min-width:0}.enemy-name{font-size:13px;letter-spacing:.12em;color:var(--red);font-weight:700;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.enemy-desig{font-size:11px;color:var(--text-dim);letter-spacing:.12em}.intent{display:flex;align-items:center;gap:8px;padding:6px 10px;min-height:36px;min-width:0;max-width:55%;flex-shrink:1;border:1px solid var(--amber-dim);border-radius:var(--radius);background:#ffb0200f;color:var(--amber);font-size:12px;letter-spacing:.1em;font-weight:700;white-space:nowrap;overflow:hidden}.intent>span:last-child{overflow:hidden;text-overflow:ellipsis}.intent.danger{border-color:var(--red);color:var(--red);background:#ff4b4b1a;animation:pulse-red calc(1.2s * var(--dur)) infinite}.intent.changed{animation:intent-pop calc(.5s * var(--dur)) ease-out}@keyframes pulse-red{0%,to{box-shadow:0 0 #ff4b4b00}50%{box-shadow:0 0 14px #ff4b4b80}}@keyframes intent-pop{0%{transform:scale(1.08);filter:brightness(1.8)}to{transform:scale(1);filter:brightness(1)}}.board-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;min-width:0}.board{position:relative;aspect-ratio:1 / 1;width:min(100%,100cqmin);max-height:100%;touch-action:none;-webkit-user-select:none;user-select:none;display:grid;gap:4px;padding:6px;background:#00000059;border:1px solid var(--panel-border);border-radius:8px;box-shadow:inset 0 0 40px #58ff800d,0 0 20px #00000080}.board.locked{filter:saturate(.9)}.board.overkill{animation:overkill-flash calc(.7s * var(--dur)) ease-out}@keyframes overkill-flash{0%{box-shadow:0 0 60px var(--amber),inset 0 0 80px #ffb02080}to{box-shadow:inset 0 0 40px #58ff800d,0 0 20px #00000080}}.board.grid-pulse:after{content:"";position:absolute;inset:0;border-radius:8px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(88,255,128,.08) 50%,transparent 100%);background-size:200% 100%;animation:gridpulse calc(6s * var(--dur)) linear infinite}@keyframes gridpulse{0%{background-position:200% 0}to{background-position:-200% 0}}.tile{position:relative;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--tile-dim);background:linear-gradient(180deg,#ffffff0a,#00000040);color:var(--tile-color);transition:transform calc(.12s * var(--dur)) ease-out,box-shadow calc(.12s * var(--dur)),opacity calc(.22s * var(--dur));will-change:transform}.tile svg{width:62%;height:62%;display:block;filter:drop-shadow(0 0 4px currentColor)}.tile.selected{transform:scale(1.12);box-shadow:0 0 14px var(--tile-color),inset 0 0 10px var(--tile-color);border-color:var(--tile-color);background:#ffffff0f;z-index:2;animation:tile-pulse calc(.9s * var(--dur)) infinite alternate}@keyframes tile-pulse{0%{filter:brightness(1)}to{filter:brightness(1.5)}}.tile.removing{opacity:0;transform:scale(.3) rotate(15deg)}.tile.spawn{animation:tile-spawn calc(.26s * var(--dur)) ease-out}@keyframes tile-spawn{0%{transform:translateY(-40%);opacity:0}to{transform:translateY(0);opacity:1}}.tile.locked{color:#5a6a5e;border-color:#2b352e;background:repeating-linear-gradient(45deg,#00000080 0 4px,#5a6a5e33 4px 8px)}.tile.locked svg{opacity:.35;filter:none}.tile.corrupted{border-color:var(--red);background:repeating-linear-gradient(0deg,#ff4b4b26 0 2px,#0000004d 2px 4px);animation:corrupt-jitter calc(.4s * var(--dur)) infinite steps(2)}@keyframes corrupt-jitter{0%{transform:translate(0)}50%{transform:translate(1px,-1px)}to{transform:translate(-1px,1px)}}.tile.wild{border-color:#fff;color:#fff;background:conic-gradient(from 0deg,var(--red),var(--amber),var(--green),var(--cyan),var(--violet),var(--red))}.tile.wild svg{color:#050806;filter:none}.tile .badge{position:absolute;top:1px;right:3px;font-size:9px;color:var(--red);font-weight:700}.tile.locked .badge{color:#8a9a8e}.tile.invalid-flash{animation:invalid calc(.2s * var(--dur))}@keyframes invalid{0%,to{transform:translate(0)}50%{transform:translate(-3px);border-color:var(--red)}}.path-overlay{position:absolute;inset:0;pointer-events:none;z-index:3}.path-overlay polyline{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.85;filter:drop-shadow(0 0 6px currentColor)}.chain-counter{position:absolute;top:-14px;left:50%;transform:translate(-50%);z-index:4;pointer-events:none;padding:2px 10px;border-radius:12px;background:#000000bf;border:1px solid var(--panel-border);font-size:12px;letter-spacing:.1em;white-space:nowrap}.floaters{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:visible}.floater{position:absolute;left:50%;font-weight:700;font-size:22px;letter-spacing:.06em;text-shadow:0 0 10px currentColor;animation:float-up calc(.9s * var(--dur)) ease-out forwards}.floater.enemy{top:8%}.floater.player{bottom:10%}.floater.crit{font-size:30px}.floater.travel{animation:travel-up calc(.55s * var(--dur)) ease-in forwards}@keyframes float-up{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-40px);opacity:0}}@keyframes travel-up{0%{transform:translate(-50%,200px) scale(.6);opacity:.6}to{transform:translate(-50%) scale(1);opacity:1}}.player-panel{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.player-panel .full{grid-column:1 / -1}.abilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ability{min-width:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:6px 4px;background:#4be3ff0d;border:1px solid var(--cyan-dim);border-radius:var(--radius);color:var(--cyan);font-size:11px;letter-spacing:.08em;font-weight:700;line-height:1.1}.ability small{font-size:10px;color:var(--text-dim);letter-spacing:.05em;font-weight:400;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ability>span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ability.ready{border-color:var(--cyan);box-shadow:0 0 10px #4be3ff40}.ability.active{border-color:var(--amber);color:var(--amber)}.ability:disabled{opacity:.45}.ability:active:not(:disabled){transform:scale(.97)}.status-chips{display:flex;flex-wrap:wrap;gap:4px;min-height:18px}.chip{font-size:10px;letter-spacing:.1em;padding:1px 6px;border-radius:3px;border:1px solid currentColor;opacity:.9}.log{height:52px;overflow:hidden;padding:4px 8px;font-size:11px;line-height:1.45;background:#0006;border:1px solid rgba(88,255,128,.12);border-radius:var(--radius);color:var(--text-dim)}.log.expanded{height:40vh;overflow-y:auto}.log .line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log .line.good{color:var(--green)}.log .line.bad{color:var(--red)}.log .line.warn{color:var(--amber)}.log .line.system{color:var(--cyan)}.log .line .t{opacity:.5;margin-right:6px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;letter-spacing:.12em;color:var(--text-dim);min-width:0}.topbar>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.icon-btn{min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--panel-border);border-radius:var(--radius);color:var(--green);font-size:14px;letter-spacing:.1em}.overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#020503db;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.overlay .panel{width:min(100%,420px);max-height:100%;overflow-y:auto}.modal-title{font-size:18px;letter-spacing:.14em}.banner{position:absolute;left:0;right:0;top:40%;z-index:30;text-align:center;padding:14px;background:#000c;border-top:1px solid var(--amber);border-bottom:1px solid var(--amber);color:var(--amber);font-weight:700;letter-spacing:.14em;font-size:14px;animation:banner-in calc(.4s * var(--dur)) ease-out;pointer-events:none}@keyframes banner-in{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.toast{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + 16px);transform:translate(-50%);z-index:60;max-width:calc(100% - 32px);padding:10px 14px;background:#000000e6;border:1px solid var(--green);border-radius:var(--radius);color:var(--green);font-size:12px;letter-spacing:.08em;box-shadow:0 0 20px #58ff8033}.toast .row{margin-top:8px}.toast.toast-2{bottom:calc(var(--safe-bottom) + 76px)}.title-screen{justify-content:center;align-items:center;text-align:center;gap:16px}.title-art{position:relative;display:inline-block;padding:14px 18px;border:1px solid var(--green-dim);border-radius:8px;background:#00000059}.title-art .sub{font-size:10px;letter-spacing:.3em;color:var(--text-dim);margin-top:6px}.title-menu{width:min(100%,360px)}.cursor:after{content:"_";animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.typed{white-space:pre-wrap}.menu-hint{font-size:11px;color:var(--text-dim);letter-spacing:.1em}.card{display:flex;flex-direction:column;gap:6px;width:100%;min-height:var(--tap);padding:12px;text-align:left;background:#58ff800a;border:1px solid var(--panel-border);border-radius:var(--radius);color:var(--text)}.card:active{background:#58ff801f}.card .name{color:var(--green);letter-spacing:.12em;font-weight:700;font-size:13px}.card .desc{font-size:12px;color:var(--text-dim)}.card.locked{opacity:.45}.card.selected{border-color:var(--green);box-shadow:0 0 12px var(--green-glow)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);padding:4px 0;border-bottom:1px dashed rgba(88,255,128,.12)}.setting-row .label{font-size:13px;letter-spacing:.08em}.setting-row .hint{font-size:11px;color:var(--text-dim)}.toggle{width:58px;height:32px;border-radius:16px;border:1px solid var(--green-dim);background:#00000080;position:relative;flex-shrink:0}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:12px;background:var(--text-dim);transition:transform calc(.15s * var(--dur)),background calc(.15s * var(--dur))}.toggle.on{border-color:var(--green)}.toggle.on:after{transform:translate(26px);background:var(--green);box-shadow:0 0 8px var(--green)}.seg{display:flex;border:1px solid var(--green-dim);border-radius:var(--radius);overflow:hidden}.seg button{flex:1;min-height:40px;background:transparent;border:0;color:var(--text-dim);font-size:11px;letter-spacing:.1em;font-weight:700}.seg button.on{background:#58ff8029;color:var(--green)}.stat-grid{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:13px}.stat-grid dt{color:var(--text-dim);letter-spacing:.08em}.stat-grid dd{margin:0;text-align:right;color:var(--text);font-weight:600}.tutorial-box{position:absolute;left:10px;right:10px;bottom:calc(var(--safe-bottom) + 10px);z-index:35;padding:10px 12px;background:#000000eb;border:1px solid var(--amber);border-radius:var(--radius);color:var(--text);font-size:13px;box-shadow:0 0 24px #ffb02033}.tutorial-box .step{font-size:10px;letter-spacing:.2em;color:var(--amber);margin-bottom:4px}.hidden-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}textarea.save-box{width:100%;min-height:120px;background:#00000080;border:1px solid var(--green-dim);color:var(--text);font-size:11px;border-radius:var(--radius);padding:8px;-webkit-user-select:text;user-select:text}.reduced-motion,.reduced-motion *{animation:none!important;transition:none!important}.reduced-motion .tile.selected{transform:scale(1.06)}@media(prefers-reduced-motion:reduce){:root{--dur: 0}.crt.flicker .screen{animation:none}}@media(max-height:700px){.log{height:36px;font-size:10px}.ability{min-height:44px}.combat{gap:6px}.panel{padding:6px 10px}.bar{height:10px}.bar.thin{height:6px}html,body{font-size:14px}}@media(max-width:360px){.intent>.tiny{display:none}}@media(max-width:360px){html,body{font-size:13px}.combat{padding:6px 6px 8px;gap:6px}.topbar{font-size:10px;letter-spacing:.08em}.enemy-name{font-size:11px}.intent{font-size:11px;padding:4px 8px;min-height:32px}.ability{font-size:10px;min-height:44px}.ability small{font-size:9px}.abilities{gap:5px}.log{height:44px}.btn{padding:8px 10px;letter-spacing:.06em}}.slider{-webkit-appearance:none;appearance:none;flex:1;height:28px;background:transparent;min-width:120px}.slider::-webkit-slider-runnable-track{height:6px;background:#58ff8026;border-radius:3px;border:1px solid var(--green-dim)}.slider::-moz-range-track{height:6px;background:#58ff8026;border-radius:3px;border:1px solid var(--green-dim)}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;margin-top:-11px;border-radius:13px;background:var(--green);border:2px solid var(--bg);box-shadow:0 0 8px var(--green)}.slider::-moz-range-thumb{width:24px;height:24px;border-radius:12px;background:var(--green);border:2px solid var(--bg);box-shadow:0 0 8px var(--green)}.slider:focus-visible{outline:2px solid var(--green);outline-offset:2px}.board-wrap{transition:filter calc(.2s * var(--dur))}.board-wrap.hostile-turn .board{filter:brightness(.72) saturate(.8);box-shadow:inset 0 0 40px #ff4b4b1f,0 0 22px #ff4b4b59;border-color:#ff4b4b99}.board-wrap.hostile-turn .board:before{content:"";position:absolute;inset:0;border-radius:8px;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,75,75,.06) 0 2px,transparent 2px 6px);animation:hostile-scan calc(.5s * var(--dur)) linear infinite}@keyframes hostile-scan{0%{background-position:0 0}to{background-position:0 12px}}.hostile-tag{position:absolute;top:6px;left:50%;transform:translate(-50%);z-index:6;padding:3px 10px;border:1px solid var(--red);border-radius:4px;background:#000c;color:var(--red);font-size:10px;letter-spacing:.22em;font-weight:700;pointer-events:none;animation:hostile-tag-in calc(.25s * var(--dur)) ease-out}@keyframes hostile-tag-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.intent.acting{border-color:var(--red);color:#fff;background:#ff4b4b59;box-shadow:0 0 18px #ff4b4b99;animation:none}.strikes{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:hidden;border-radius:8px}.strike{position:absolute;top:-12%;width:3px;height:34%;border-radius:2px;background:linear-gradient(to bottom,transparent,var(--red) 60%,#fff);box-shadow:0 0 8px var(--red);animation:strike-fall calc(.26s * var(--dur)) cubic-bezier(.4,0,1,1) forwards}.strike.heavy{width:7px;height:50%;box-shadow:0 0 18px var(--red),0 0 40px #ff4b4b99}@keyframes strike-fall{0%{transform:translateY(0) scaleY(.6);opacity:0}30%{opacity:1}to{transform:translateY(300%) scaleY(1.2);opacity:.9}}.board-flash{position:absolute;inset:0;pointer-events:none;z-index:8;border-radius:8px;background:radial-gradient(ellipse at 50% 100%,#ff4b4b8c,#ff4b4b0d 70%);animation:board-flash calc(.45s * var(--dur)) ease-out forwards}.board-flash.heavy{background:radial-gradient(ellipse at 50% 100%,#ff783cd9,#ff4b4b26 75%);animation-duration:calc(.7s * var(--dur))}.board-flash.blocked{background:radial-gradient(ellipse at 50% 100%,#4be3ff80,#4be3ff0a 70%)}@keyframes board-flash{0%{opacity:1}to{opacity:0}}.tile.stamp{animation:tile-stamp calc(.42s * var(--dur)) ease-out;z-index:3}@keyframes tile-stamp{0%{transform:scale(1.35);filter:brightness(3) contrast(2);box-shadow:0 0 24px var(--red)}40%{transform:scale(.92) skew(6deg)}70%{transform:scale(1.05) skew(-3deg);filter:brightness(1.6)}to{transform:scale(1);filter:brightness(1)}}.enemy-panel.pulse-shield{animation:pulse-cyan calc(.6s * var(--dur)) ease-out}.enemy-panel.pulse-heal{animation:pulse-green calc(.6s * var(--dur)) ease-out}.enemy-panel.pulse-attack{animation:pulse-red calc(.35s * var(--dur)) ease-out}@keyframes pulse-cyan{0%{box-shadow:0 0 #4be3ff00;border-color:var(--cyan)}30%{box-shadow:0 0 24px #4be3ff99}to{box-shadow:0 0 #4be3ff00}}@keyframes pulse-green{0%{border-color:var(--green)}30%{box-shadow:0 0 24px #58ff8099}to{box-shadow:0 0 #58ff8000}}.player-panel-wrap.drain{animation:drain-pulse calc(.6s * var(--dur)) ease-out}.player-panel-wrap.hit{animation:player-hit calc(.4s * var(--dur)) ease-out}@keyframes drain-pulse{0%{box-shadow:inset 0 0 #ffb02000}30%{box-shadow:inset 0 0 30px #ffb02073;border-color:var(--amber)}to{box-shadow:inset 0 0 #ffb02000}}@keyframes player-hit{0%{box-shadow:inset 0 0 #ff4b4b00}20%{box-shadow:inset 0 0 40px #ff4b4b8c;border-color:var(--red)}to{box-shadow:inset 0 0 #ff4b4b00}}.enemy-shield{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:10px;letter-spacing:.12em;color:var(--cyan)}.enemy-shield .bar{flex:1;height:5px}.chain-counter .preview{margin-left:8px;color:var(--text);font-weight:400}.chain-counter.warn{border-color:var(--red);color:var(--red)}.combat.with-tutorial{grid-template-rows:auto minmax(0,1fr) auto auto}.tutorial-box.inflow{position:static}@media(max-width:560px)and (orientation:portrait){.combat{padding:4px 6px 6px;gap:5px}.combat>.stack{gap:4px}.topbar{font-size:10px;letter-spacing:.08em}.icon-btn{min-height:36px;min-width:40px;font-size:12px}.panel{padding:6px 8px}.enemy-panel{gap:3px}.enemy-desig{font-size:9px}.enemy-name{font-size:11px;-webkit-line-clamp:1}.intent{min-height:30px;padding:3px 8px;font-size:11px;gap:6px}.bar{height:8px}.bar.thin{height:6px}.bar-label{font-size:9px;margin-bottom:1px}.enemy-shield{margin-top:2px;font-size:9px}.board-wrap{min-height:0}.board{padding:4px;gap:3px}.player-panel{gap:3px 10px}.player-panel-wrap{gap:4px!important}.status-chips{min-height:0;gap:3px}.status-chips:empty{display:none}.chip{font-size:9px;padding:0 5px}.abilities{gap:5px}.ability{min-height:40px;padding:4px 3px;gap:1px;font-size:10px}.ability small{font-size:9px}.log{height:32px;padding:2px 6px;font-size:10px;line-height:1.4}.log.expanded{height:40vh}.tutorial-box.inflow{padding:6px 8px;font-size:12px}.floater{font-size:18px}.floater.crit{font-size:24px}}
