:root{--bg:#14121c;--bg2:#1b1826;--panel:#231f31;--panel2:#2c2740;--edge:#0b0910;--hi:#4a4166;--text:#efe9ff;--muted:#a79dc4;--gold:#f5c542;--blue:#2f7fe0;--blue-l:#8cc6ff;--orange:#f08a24;--orange-l:#ffc978;--red:#e8505b;--green:#6ee07a;--teal:#3fd0c9;--font:"SquadPixel", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:none;text-rendering:geometricprecision;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-size:12px;line-height:1.5}#app{height:100%}button,input,select,textarea{font:inherit;color:inherit}canvas,.sprite-icon{image-rendering:pixelated;image-rendering:crisp-edges}.panel{background:var(--panel);box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--hi), inset 0 -4px 0 2px #00000040}.btn{background:var(--panel2);min-height:44px;box-shadow:0 0 0 2px var(--edge), inset 0 2px 0 var(--hi), inset 0 -3px 0 #00000059;cursor:pointer;text-align:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;border-radius:0;padding:8px 12px;font-size:24px;line-height:1}.btn:active:not(:disabled){box-shadow:0 0 0 2px var(--edge), inset 0 -1px 0 var(--hi);transform:translateY(2px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{box-shadow:0 0 0 2px var(--edge), inset 0 2px 0 #7fb2ff, inset 0 -3px 0 #1d3f86;background:#3b6fd1}.btn.danger{background:#9a2f3b}.btn.ghost{box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--panel2);background:0 0}.btn.on{box-shadow:0 0 0 2px var(--edge), inset 0 2px 0 #b79cff;background:#6b4fb0}.btn.small{min-height:38px;padding:6px 10px;font-size:12px;line-height:1.5}.btn.item{background:#4b3f22}.icon-btn{cursor:pointer;background:0 0;border:none;width:44px;height:44px;font-size:24px}.team-blue{color:var(--blue-l)}.team-orange{color:var(--orange-l)}.team-neutral{color:#d3ccbf}.game{flex-direction:column;max-width:560px;min-height:100%;margin:0 auto;display:flex;position:relative}.topbar{align-items:center;gap:8px;min-height:44px;padding:4px 8px 0 10px;display:flex}.topbar .round{color:var(--muted);white-space:nowrap;font-size:12px}.topbar .scores{flex:1;justify-content:center;gap:14px;font-size:24px;display:flex}.turnline{text-align:center;color:var(--muted);min-height:22px;padding:2px 0 4px;font-size:12px}.turnline.mine{color:var(--gold)}.board-wrap{flex:none;height:min(125vw,58vh);min-height:240px;position:relative}.board{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hint{min-height:38px;color:var(--text);align-items:center;padding:4px 12px;font-size:12px;display:flex}.bottom{flex-direction:column;flex:1 0 auto;gap:8px;margin:0 6px 6px;padding:8px;display:flex}.card{flex-direction:column;gap:4px;font-size:12px;display:flex}.card.empty{color:var(--muted);padding:6px 2px}.card-head{align-items:center;gap:10px;display:flex}.card-name{font-size:24px}.card-sub,.traits,.bag{color:var(--muted);font-size:12px}.gauge{grid-template-columns:38px 1fr 58px;align-items:center;gap:6px;font-size:12px;display:grid}.gauge .gb{background:var(--edge);height:8px;position:relative}.gauge .gb>span{position:absolute;inset:0 auto 0 0}.gauge .gv{text-align:right}.stats{flex-wrap:wrap;gap:4px 12px;font-size:12px;display:flex}.statuses{margin:0;padding-left:16px;font-size:12px}.statuses .buff{color:var(--blue-l)}.statuses .debuff{color:#c79bff}.actions,.controls{flex-wrap:wrap;gap:8px;display:flex}.controls>.btn{flex:1}.controls.wrap>.btn{flex:30%}.roster{gap:6px;display:flex}.chip{background:var(--bg2);box-shadow:0 0 0 2px var(--edge);cursor:pointer;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 2px;font-size:12px;display:flex}.chip.on{box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--gold)}.chip.active{background:#33406a}.chip.done{opacity:.45}.toast{box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px #b36bff;z-index:5;background:#281432f2;padding:8px 10px;font-size:12px;position:absolute;top:8px;left:8px;right:8px}.coach{z-index:4;pointer-events:none;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;line-height:1.5;display:flex;position:absolute;top:8px;left:8px;right:8px}.coach p{margin:0}.coach .btn{pointer-events:auto;align-self:flex-end}.menu{z-index:6;flex-direction:column;gap:8px;min-width:200px;padding:10px;display:flex;position:absolute;top:4px;right:8px}.log{z-index:8;flex-direction:column;max-width:548px;margin:0 auto;display:flex;position:fixed;inset:30% 6px 6px}.dialog-backdrop{z-index:9;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{flex-direction:column;gap:10px;width:100%;max-width:420px;padding:12px;display:flex}.log-head{justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 0 10px;display:flex}.log-body{flex:1;padding:4px 10px 10px;font-size:12px;overflow-y:auto}.log-line.good{color:var(--green)}.log-line.bad{color:#ff8f96}.log-line.notice{color:#d6a1ff}.log-line.chat{color:var(--text)}.chat-author{font-weight:700}.chat-bubbles{z-index:3;pointer-events:none;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.chat-bubble{overflow-wrap:anywhere;max-width:82%;box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--hi);background:#14121ceb;padding:6px 10px;font-size:14px;line-height:1.4;animation:.18s ease-out chat-in,.6s ease-in 5.4s forwards chat-out}.chat-bubble.mine{box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--blue);align-self:flex-end}.chat-bubble.theirs{align-self:flex-start}@keyframes chat-in{0%{opacity:0;transform:translateY(6px)}}@keyframes chat-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.chat-bubble{animation:.6s linear 5.4s forwards chat-out}}.chat-panel{z-index:7;flex-direction:column;gap:8px;max-height:calc(100% - 16px);padding:6px 8px 10px;display:flex;position:absolute;top:8px;left:8px;right:8px;overflow-y:auto}.chat-form{align-items:stretch;gap:8px;display:flex}.chat-input{min-width:0;font-size:16px}.chat-count.over{color:#ff8f96}.chat-group{flex-direction:column;gap:4px;display:flex}.chat-presets{flex-direction:column;gap:8px;padding-top:6px;display:flex}.chat-chips{flex-wrap:wrap;gap:6px;display:flex}.chat-mute{align-items:center;gap:8px;display:flex}.log-round{color:var(--muted)}.end-title{text-align:center;color:var(--gold);font-size:24px}.end-sub,.end-cost{text-align:center;color:var(--muted);font-size:12px}.end-stats{border-collapse:collapse;width:100%;font-size:12px}.end-stats td,.end-stats th{text-align:right;padding:2px 6px}.end-stats td:first-child{text-align:left;color:var(--muted)}.screen{flex-direction:column;gap:14px;max-width:560px;min-height:100%;margin:0 auto;padding:16px 12px 24px;display:flex}.title{text-align:center;letter-spacing:4px;color:var(--gold);text-shadow:3px 3px 0 var(--edge);margin:18px 0 2px;font-size:48px}.subtitle{text-align:center;color:var(--muted);margin-bottom:8px}.camp{flex-direction:column;align-items:center;display:flex}.camp-stage{width:100%;box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--hi);background:#0b0910;padding:2px;line-height:0;position:relative}.camp-art{justify-content:center;width:100%;display:flex;overflow:hidden}.camp-art canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block}.camp-head{text-align:center;pointer-events:none;line-height:1.5;position:absolute;top:40%;left:0;right:0}.camp .title,.camp .subtitle{margin:0}.camp .title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.camp .subtitle{color:#c9bde6;text-shadow:1px 1px 0 var(--edge)}.menu-list{flex-direction:column;gap:12px;display:flex}.menu-list .btn{min-height:52px;font-size:24px}.btn-sub{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5;display:block}.btn.primary .btn-sub{color:#fff}.section{flex-direction:column;gap:8px;padding:10px;display:flex}.section h2{color:var(--gold);margin:0;font-size:24px;font-weight:400}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>label{min-width:72px;color:var(--muted)}.seg{flex-wrap:wrap;flex:1;gap:6px;display:flex}.seg .btn{flex:auto;min-height:40px;font-size:12px}.field{background:var(--bg2);min-height:40px;box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--panel2);border:none;flex:1;padding:6px 8px}.muted{color:var(--muted);font-size:12px}.error{color:#ff8f96;white-space:pre-wrap;font-size:12px}.notice{color:var(--green);font-size:12px}@media (min-width:900px){.game{grid-template-rows:auto auto 1fr auto;grid-template-columns:1fr 380px;max-width:1100px;height:100%;display:grid}.game .topbar,.game .turnline{grid-column:1/3}.game .board-wrap{grid-area:3/1/5;height:auto}.game .hint{grid-area:3/2;align-items:flex-start}.game .bottom{grid-area:4/2;min-height:0;overflow-y:auto}.game .log,.game .sheets{max-width:none;position:absolute}}.budget{font-size:12px}.budget.over{color:#ff8f96}.bar{background:var(--edge);height:8px;position:relative}.bar>span{background:var(--gold);position:absolute;inset:0 auto 0 0}.member-head{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0;display:flex}.member-name{font-size:24px}.member h3{color:var(--gold);margin:6px 0 0;font-size:12px;font-weight:400}.grow{flex:1}.skins,.upgrades,.frames,.anims{flex-wrap:wrap;gap:8px;display:flex}.skin{background:var(--bg2);width:72px;box-shadow:0 0 0 2px var(--edge);cursor:pointer;border:none;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;font-size:12px;display:flex}.skin.on,.upgrade.on{box-shadow:0 0 0 2px var(--edge), inset 0 0 0 2px var(--gold)}.skin .plus{height:32px;font-size:24px}.upgrade{background:var(--bg2);width:100%;box-shadow:0 0 0 2px var(--edge);text-align:left;cursor:pointer;border:none;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.upgrade .cost{color:var(--gold);font-size:24px}.paint{aspect-ratio:1;touch-action:none;width:min(92vw,360px);box-shadow:0 0 0 2px var(--edge);align-self:center}.palette{flex-wrap:wrap;gap:6px;display:flex}.swatch{width:36px;height:36px;box-shadow:0 0 0 2px var(--edge);color:#fff;text-shadow:1px 1px #000;cursor:pointer;border:none;font-size:12px}.swatch.on{box-shadow:0 0 0 2px var(--edge), 0 0 0 5px var(--gold)}.anim{color:var(--muted);flex-direction:column;align-items:center;font-size:12px;display:flex}.source{background:var(--bg2);max-height:240px;padding:6px;font-family:ui-monospace,Menlo,monospace;font-size:10px;overflow:auto}.codex-board{height:min(92vw,380px);position:relative}.btn.file{color:var(--text);justify-content:center;align-items:center;display:flex}.btn.file input{display:none}.replay{flex-direction:column;gap:6px;display:flex}.tile-row{align-items:flex-start}.tile-name{min-width:90px;color:var(--muted);padding-top:12px;font-size:12px}.tile-row .skin{width:48px}.invite-code{letter-spacing:2px;word-break:break-all;color:var(--gold);font-size:24px}.invite-link{word-break:break-all}.online-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:2px 8px;font-size:12px;display:flex}.online-bar.ok{color:var(--green)}.online-bar.warn{color:var(--gold)}.sheets{z-index:8;flex-direction:column;max-width:548px;margin:0 auto;display:flex;position:fixed;inset:30% 6px 6px}.sheets-body{flex-direction:column;flex:1;gap:12px;padding:4px 10px 10px;display:flex;overflow-y:auto}.sheet{flex-direction:column;gap:4px;font-size:12px;display:flex}.sheet-head{align-items:center;gap:10px;display:flex}.sheet-title{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.sheet-name{font-size:24px;line-height:1}.sheet-chip{background:var(--bg2);box-shadow:0 0 0 2px var(--edge);color:var(--muted);padding:1px 6px;font-size:12px}.sheet-facts{margin:0;padding-left:16px}.sheet-desc{color:var(--muted)}.sheet-use{align-items:center;gap:8px;display:flex}.sheet-why{color:var(--muted)}.bag-icons{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.codex-tab{flex-direction:column;gap:12px;display:flex}.codex-tab[hidden]{display:none}.codex-group{color:var(--muted);margin:0;font-size:12px;font-weight:400}.history-entry{border-top:2px solid var(--edge);flex-direction:column;gap:6px;padding-top:8px;display:flex}.llm-models{flex-direction:column;gap:6px;display:flex}.llm-model{text-align:left}.llm-model .btn-sub{font-size:11px}.btn.on .btn-sub{color:#fff}
