*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg-grad: radial-gradient(120% 90% at 50% 0%, #201826 0%, #131017 70%);--panel: #211b28;--card-bg: linear-gradient(160deg, #332a3e 0%, #2b2333 55%, #241d2c 100%);--edge: #453a52;--ink: rgba(0, 0, 0, .45);--text: #ece7df;--muted: #93899f;--orange: #f08a3c;--orange-soft: #ffc266;--green: #6fc47a;--red: #e06a6a;--blue: #6aa5e0;--gold: #e8c46a;--accent: #cdb9f2;--log-bg: rgba(0, 0, 0, .25);--log-text: #e8e6e0;--font-head: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-log: ui-monospace, "SF Mono", Menlo, monospace;--radius: 12px;--radius-sm: 8px;--shadow-card: 0 3px 10px rgba(0, 0, 0, .4);--shadow-panel: 0 2px 8px rgba(0, 0, 0, .3);--shadow-btn: 0 2px 6px rgba(0, 0, 0, .35);--btn-transform: none;--fs-body: 13px;--fs-title: 13px;--fs-score: 19px;--fs-turn: 12px;--fs-label: 10px;--fs-btn: 13px;--fs-name: 12.5px;--fs-stats: 12px;--fs-ability: 10px;--fs-badge: 9px;--fs-log: 11.5px;--fs-pop: 20px;--fs-pop-sm: 13px;--fs-bar: 12.5px;--fs-menu-title: 40px}body.theme-retro{--bg-grad: radial-gradient(120% 100% at 50% 0%, #141430 0%, #0a0a14 65%);--panel: #121222;--card-bg: linear-gradient(180deg, #1c1c36 0%, #16162a 100%);--edge: #3a3a6a;--ink: #000;--text: #e8f0e8;--muted: #7a7fa8;--orange: #ff8f2b;--orange-soft: #ffc266;--green: #4dff88;--red: #ff5566;--blue: #4dc3ff;--gold: #ffd75e;--accent: #ff5ed3;--log-bg: #05050d;--log-text: #b8ffc8;--font-head: "Press Start 2P", "Courier New", monospace;--font-body: "VT323", ui-monospace, "Menlo", monospace;--font-log: "VT323", ui-monospace, "Menlo", monospace;--radius: 0px;--radius-sm: 0px;--shadow-card: 4px 4px 0 #000;--shadow-panel: 4px 4px 0 #000;--shadow-btn: 3px 3px 0 #000;--btn-transform: uppercase;--fs-body: 17px;--fs-title: 10px;--fs-score: 13px;--fs-turn: 8px;--fs-label: 7px;--fs-btn: 8px;--fs-name: 18px;--fs-stats: 16px;--fs-ability: 12px;--fs-badge: 6px;--fs-log: 17px;--fs-pop: 14px;--fs-pop-sm: 8px;--fs-bar: 17px;--fs-menu-title: 30px}html,body{height:100%;overscroll-behavior:none}body{background:var(--bg-grad);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);user-select:none;-webkit-user-select:none}body.dragging{cursor:grabbing}body.theme-retro:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0px,rgba(0,0,0,.22) 1px,transparent 1px,transparent 3px),radial-gradient(115% 115% at 50% 50%,transparent 60%,rgba(0,0,10,.45) 100%)}#app{height:100dvh;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;padding:6px 10px calc(6px + env(safe-area-inset-bottom));gap:6px}header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.title{font-family:var(--font-head);font-weight:900;font-size:var(--fs-title);line-height:1.4;color:var(--orange);text-shadow:2px 2px 0 var(--ink)}.scoreboard{display:flex;gap:14px;align-items:baseline;font-family:var(--font-head);font-weight:800;font-size:var(--fs-score);font-variant-numeric:tabular-nums}.turn{color:var(--muted);font-size:var(--fs-turn);font-weight:700}.you-score{color:var(--green);text-shadow:2px 2px 0 var(--ink)}.bot-score{color:var(--red);text-shadow:2px 2px 0 var(--ink)}.header-controls{display:flex;gap:6px;align-items:center}button,select{background:var(--panel);color:var(--text);border:2px solid var(--edge);border-radius:var(--radius-sm);padding:7px 12px;cursor:pointer;font-family:var(--font-head);font-size:var(--fs-btn);font-weight:700;text-transform:var(--btn-transform);box-shadow:var(--shadow-btn)}button:hover:not(:disabled),select:hover{border-color:var(--orange);color:var(--orange)}button:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--orange);border-color:var(--orange-soft);color:#221204}button.primary:hover:not(:disabled){color:#221204;filter:brightness(1.1)}.event-banner{background:color-mix(in srgb,var(--accent) 12%,var(--panel));border:2px solid var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);color:var(--accent);padding:4px 12px;font-size:calc(var(--fs-bar) - 1px);flex:0 0 auto;animation:banner-in .3s steps(4)}@keyframes banner-in{0%{transform:translateY(-12px);opacity:0}}main{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;min-height:0}.side{padding:6px 8px;flex:0 0 auto;border:2px dashed transparent;border-radius:var(--radius)}.bot-side{border-color:color-mix(in srgb,var(--red) 30%,transparent)}.you-side{border-color:color-mix(in srgb,var(--green) 30%,transparent)}.side-label{font-family:var(--font-head);font-weight:700;font-size:var(--fs-label);letter-spacing:1.2px;color:var(--muted);margin-bottom:5px;text-transform:uppercase}.court{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;min-height:92px}.empty{color:var(--muted);font-size:calc(var(--fs-bar) - 1px);align-self:center;padding:14px;font-style:italic}#log-wrap{flex:1 1 40px;min-height:40px;display:flex}.log{flex:1;background:var(--log-bg);border:2px solid var(--edge);border-radius:var(--radius-sm);padding:6px 10px;overflow-y:auto;font-family:var(--font-log);font-size:var(--fs-log);line-height:1.35;color:var(--log-text)}.log::-webkit-scrollbar{width:8px}.log::-webkit-scrollbar-thumb{background:var(--edge)}.line.you{color:var(--green)}.line.bot{color:var(--red)}.line.muted{color:var(--muted)}.line.event{color:var(--accent);font-weight:700}.line.turn,.line.score{color:var(--gold);font-weight:700}.line.error{color:var(--red);font-weight:700}.line.final{color:var(--orange);font-weight:900;font-size:calc(var(--fs-log) + 3px)}.card{width:118px;position:relative;border-radius:var(--radius);transition:transform .3s cubic-bezier(.2,.9,.25,1.1);touch-action:none}.hand-card{touch-action:pan-x}.card-inner{background:var(--card-bg);border:2px solid var(--edge);border-radius:var(--radius);padding:7px 8px;height:100%;box-shadow:var(--shadow-card);transition:border-color .1s,box-shadow .15s,transform .15s,filter .3s}.card.clickable{cursor:grab}.card.clickable:hover .card-inner{border-color:var(--orange);transform:translate(-1px,-2px)}.cname{font-weight:700;font-size:var(--fs-name);line-height:1.1;margin:2px 0 5px}.cname small{color:var(--muted);font-weight:400;font-size:80%}.stats{display:flex;gap:7px;font-size:var(--fs-stats);font-weight:700;white-space:nowrap;line-height:1.1}.stat small{color:var(--muted);font-weight:400}.stat.atk{color:var(--orange)}.stat.def{color:var(--blue)}.stat.con{color:var(--green)}.ability{display:inline-block;background:color-mix(in srgb,var(--accent) 14%,var(--panel));border:1px solid var(--accent);border-radius:calc(var(--radius-sm) / 2);color:var(--accent);font-size:var(--fs-ability);padding:1px 5px;margin-top:5px;text-transform:capitalize;letter-spacing:.4px;line-height:1.25}body.theme-retro .ability{text-transform:uppercase}.corners{display:flex;justify-content:space-between;align-items:center}.cost{background:var(--orange);color:#221204;font-family:var(--font-head);font-weight:900;font-size:calc(var(--fs-badge) + 3px);width:21px;height:21px;border:2px solid var(--orange-soft);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.pitchv{color:var(--green);font-weight:800;font-size:calc(var(--fs-stats) - 1px)}.court-card.gassed .card-inner{filter:grayscale(.9) brightness(.6)}.gassed-tag{color:var(--red);font-family:var(--font-head);font-weight:900;font-size:var(--fs-label);letter-spacing:1px;margin-top:5px;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.3}}.court-card.raised .card-inner{transform:translateY(-8px);border-color:var(--orange);box-shadow:var(--shadow-card),0 0 14px color-mix(in srgb,var(--orange) 55%,transparent)}.court-card.guarding .card-inner{transform:translateY(-5px);border-color:var(--blue);box-shadow:var(--shadow-card),0 0 12px color-mix(in srgb,var(--blue) 50%,transparent)}.court-card.threat .card-inner{transform:translateY(4px);border-color:var(--red);animation:threat-pulse 1.2s steps(2) infinite}.court-card.focus-threat .card-inner{border-color:var(--gold);box-shadow:var(--shadow-card),0 0 16px color-mix(in srgb,var(--gold) 60%,transparent)}@keyframes threat-pulse{0%,to{box-shadow:var(--shadow-card),0 0 6px #f566}50%{box-shadow:var(--shadow-card),0 0 18px #f56c}}.roles{position:absolute;top:-9px;right:4px;display:flex;gap:4px;z-index:2}.badge{font-family:var(--font-head);font-weight:900;font-size:var(--fs-badge);padding:3px 5px;border:1px solid var(--ink);border-radius:calc(var(--radius-sm) / 2);box-shadow:2px 2px 0 var(--ink)}.atk-badge{background:var(--orange);color:#221204}.def-badge{background:var(--blue);color:#04121f}.final-badge{background:var(--gold);color:#221a04}.fuel-badge{background:var(--green);color:#04200c}.out-badge{background:var(--red);color:#2a0d0d}.deal-in{animation:deal .35s steps(5) backwards}@keyframes deal{0%{transform:translateY(26px) scale(.7);opacity:0}}.drag-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.95;filter:drop-shadow(6px 10px 4px rgba(0,0,0,.55));transition:none}.drag-ghost .card-inner{border-color:var(--orange)}.drag-src{opacity:.35}[data-drop].drop-hover{outline:2px dashed var(--orange);outline-offset:3px;background:color-mix(in srgb,var(--orange) 8%,transparent);border-radius:var(--radius)}body.dragging #opp-zone[data-drop]{outline:2px dashed color-mix(in srgb,var(--orange) 50%,transparent);outline-offset:-4px}.score-pop{position:absolute;left:50%;top:18%;transform:translate(-50%);font-family:var(--font-head);font-weight:900;font-size:var(--fs-pop);z-index:50;pointer-events:none;animation:pop-rise 1.1s steps(12) forwards;text-shadow:2px 2px 0 var(--ink)}.pop-score{color:var(--green)}.pop-score.enemy{color:var(--red)}.pop-stop{color:var(--blue);font-size:var(--fs-pop-sm);letter-spacing:1px}.pop-gamble{color:var(--gold);font-size:var(--fs-pop-sm);top:45%;animation-delay:.25s}.pop-fresh{color:var(--green);font-size:var(--fs-pop-sm);top:48%;animation-delay:.35s}@keyframes pop-rise{0%{opacity:0;transform:translate(-50%) translateY(8px)}15%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-32px)}}.commit-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:2px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-panel);padding:8px 10px;font-size:var(--fs-bar);flex:0 0 auto;min-height:48px}.commit-bar.waiting{color:var(--muted);justify-content:center}.bar-hint{color:var(--muted)}.bar-hint b{color:var(--text)}.phase-tag{flex-shrink:0}.gamble{display:flex;align-items:center;gap:5px;color:var(--accent);font-size:calc(var(--fs-bar) - 2px)}#lock-in{margin-left:auto}.thinking{color:var(--muted);font-family:var(--font-head);font-size:var(--fs-btn)}.dots:after{content:"";animation:dots 1.2s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.matchup{font-family:var(--font-body);font-size:calc(var(--fs-bar) - 2px);font-weight:700;padding:4px 8px;background:var(--panel);border:2px solid var(--edge);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--ink);color:var(--text)}.matchup.open{border-color:var(--red);color:var(--red)}.matchup.partial{border-color:var(--gold);color:var(--gold)}.matchup.covered{border-color:var(--green);color:var(--green)}.matchup.focus{background:color-mix(in srgb,var(--orange) 15%,var(--panel));border-color:var(--orange);color:var(--orange)}#hand-wrap{flex:0 0 auto}.hand-label{margin:0 0 3px 4px}.hand{display:flex;gap:10px;overflow-x:auto;padding:22px 4px 8px;margin-top:-12px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hand::-webkit-scrollbar{height:6px}.hand::-webkit-scrollbar-thumb{background:var(--edge)}.hand .card{flex:0 0 auto;scroll-snap-align:start}.fuel-title .ok{color:var(--green)}.fuel-title .short{color:var(--red)}.hand-card.deploying .card-inner{transform:translateY(-8px);border-color:var(--orange);box-shadow:var(--shadow-card),0 0 16px color-mix(in srgb,var(--orange) 60%,transparent)}.hand-card.fuel-picked .card-inner{transform:translateY(-8px);border-color:var(--green);box-shadow:var(--shadow-card),0 0 14px color-mix(in srgb,var(--green) 50%,transparent);filter:saturate(.7) brightness(.85)}.hand-card.fuel-option:not(.fuel-picked) .card-inner{border-style:dashed}.hand-card.fuel-option .pitchv{font-size:calc(var(--fs-stats) + 2px);animation:pitch-glow 1s steps(2) infinite}.hand-card.fuel-picked .pitchv{font-size:calc(var(--fs-stats) + 2px);text-shadow:0 0 10px var(--green)}@keyframes pitch-glow{0%,to{text-shadow:0 0 4px color-mix(in srgb,var(--green) 50%,transparent)}50%{text-shadow:0 0 14px var(--green)}}.pending-deploy .card-inner{border:2px dashed var(--orange);animation:pending-pulse 1.2s steps(2) infinite}@keyframes pending-pulse{0%,to{box-shadow:var(--shadow-card),0 0 6px #ff8f2b66}50%{box-shadow:var(--shadow-card),0 0 18px #ff8f2bcc}}.court-card.subbing-out .card-inner{filter:grayscale(.7) brightness(.55);border-style:dashed}.menu{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px}.menu-title{font-family:var(--font-head);font-weight:900;font-size:var(--fs-menu-title);line-height:1.3;color:var(--orange);text-align:center;text-shadow:4px 4px 0 var(--ink);animation:marquee 2.4s steps(2) infinite}@keyframes marquee{0%,to{text-shadow:4px 4px 0 var(--ink),0 0 18px color-mix(in srgb,var(--orange) 45%,transparent)}50%{text-shadow:4px 4px 0 var(--ink),0 0 34px color-mix(in srgb,var(--orange) 80%,transparent)}}.menu-sub{color:var(--muted);font-size:calc(var(--fs-bar) - 1px);margin-top:-6px}.menu-card{background:var(--panel);border:2px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-panel);padding:16px 20px;width:min(360px,90vw)}.menu-card h3{font-family:var(--font-head);font-size:var(--fs-label);letter-spacing:1.5px;color:var(--muted);margin-bottom:10px;text-transform:uppercase}.menu-row{display:flex;gap:8px;margin-top:8px}.menu-row .primary,.menu-row select,.menu-row .grow{flex:1}.menu-row input{flex:1;background:var(--log-bg);border:2px solid var(--edge);border-radius:var(--radius-sm);color:var(--green);padding:7px 10px;font-family:var(--font-log);font-size:var(--fs-bar);text-transform:uppercase}.menu-row input:focus{outline:none;border-color:var(--green)}.menu-status{color:var(--gold);font-size:calc(var(--fs-bar) - 1px);max-width:360px;text-align:center;user-select:text;-webkit-user-select:text}@media (max-width: 640px){#app{padding:4px 6px calc(4px + env(safe-area-inset-bottom));gap:4px}.title{display:none}.scoreboard{font-size:calc(var(--fs-score) - 3px)}.card{width:98px}.card-inner{padding:6px 7px}.cname{font-size:calc(var(--fs-name) - 2px)}.stats{gap:5px;font-size:calc(var(--fs-stats) - 2px)}.stat small{display:none}.court{gap:7px;min-height:78px}.commit-bar{padding:6px 8px;font-size:calc(var(--fs-bar) - 2px);gap:6px}.bar-hint{display:none}.log{font-size:calc(var(--fs-log) - 2px)}.event-banner{font-size:calc(var(--fs-bar) - 3px)}.menu-title{font-size:calc(var(--fs-menu-title) - 8px)}button,select{padding:8px 10px}}@media (max-height: 700px){#log-wrap{flex-basis:34px}.court{min-height:72px}}
