:root{--bg: #0d1117;--panel: #161b22;--panel-raised: #1c2330;--border: #2d3646;--text: #e6edf3;--text-dim: #8b949e;--accent: #58a6ff;--accent-warm: #f0883e;--good: #3fb950;--bad: #f85149;--token: #e3b341;--mono: "SF Mono", "Cascadia Code", Consolas, "Liberation Mono", monospace;--sans: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh}#app{max-width:1080px;margin:0 auto;padding:24px 16px 64px}h1,h2,h3{font-weight:600;letter-spacing:.01em}a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}a:where(:visited){color:var(--accent)}a:where(:hover){color:#8ec4ff;text-decoration-color:#8ec4ff}a:where(:active){color:var(--text)}button{font-family:inherit;font-size:14px;padding:8px 18px;border-radius:6px;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);cursor:pointer;transition:border-color .12s,background .12s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#06121f;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.12)}textarea,input[type=text],input[type=password],select{font-family:var(--mono);font-size:13px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:10px 12px;width:100%}textarea:focus,input:focus,select:focus{outline:none;border-color:var(--accent)}canvas.arena{display:block;background:#0a0e14;border:1px solid var(--border);border-radius:8px;width:700px;max-width:100%;height:auto;aspect-ratio:1 / 1}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px}.dim{color:var(--text-dim)}.token-amount{color:var(--token);font-family:var(--mono);font-weight:600}code,pre{font-family:var(--mono);font-size:12.5px}pre.code-view{background:#0a0e14;border:1px solid var(--border);border-radius:8px;padding:14px;overflow-x:auto;line-height:1.5}.nav-chip{font-size:13px;color:var(--text);text-decoration:none;background:var(--panel-raised);border:1px solid var(--border);border-radius:16px;padding:6px 14px;white-space:nowrap}.nav-chip:hover{border-color:var(--accent)}.menu-item{display:block;padding:9px 12px;font-size:13.5px;color:var(--text);text-decoration:none;border-radius:6px}.menu-item:hover{background:var(--panel-raised)}.battle-stage{position:relative;width:700px;max-width:100%}.battle-stage canvas.arena{width:100%}.battle-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden;border-radius:8px}.count-num{font-family:var(--mono);font-size:96px;font-weight:700;color:var(--accent);text-shadow:0 0 28px color-mix(in srgb,var(--accent) 75%,transparent);animation:count-pop .7s ease-out}.count-num.fight{color:var(--accent-warm);font-size:68px;letter-spacing:.06em;text-shadow:0 0 32px color-mix(in srgb,var(--accent-warm) 75%,transparent)}.banner-text{font-family:var(--mono);font-size:60px;font-weight:800;letter-spacing:.1em;text-shadow:0 0 36px currentColor;animation:banner-in .5s cubic-bezier(.2,1.6,.4,1)}.banner-text.win{color:var(--good)}.banner-text.loss{color:var(--bad)}.banner-text.draw{color:var(--token)}.killcam-bar{position:absolute;left:0;right:0;height:11%;background:#000000d9}.killcam-bar.top{top:0;animation:bar-down .4s ease-out}.killcam-bar.bottom{bottom:0;animation:bar-up .4s ease-out}.killcam-label{position:absolute;top:13.5%;right:16px;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.22em;color:var(--bad);animation:cam-blink 1.1s steps(2) infinite}@keyframes count-pop{0%{transform:scale(1.45);opacity:0}30%{opacity:1}to{transform:scale(1)}}@keyframes banner-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bar-down{0%{transform:translateY(-100%)}}@keyframes bar-up{0%{transform:translateY(100%)}}@keyframes cam-blink{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.count-num,.banner-text,.killcam-bar,.killcam-label{animation:none}}body.reduced-motion .count-num,body.reduced-motion .banner-text,body.reduced-motion .killcam-bar,body.reduced-motion .killcam-label{animation:none}.slot-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:6px}.slot-tag{flex-shrink:0;width:82px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--text-dim);padding-top:10px}.slot-input{font-family:var(--sans)!important;font-size:13px!important}.slot-hint{font-size:11px;margin-top:3px;line-height:1.4}.slot-missing{border-color:var(--accent)!important}.slot-pulse{animation:slot-pulse .8s ease-in-out 3}@keyframes slot-pulse{50%{border-color:var(--accent-warm);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-warm) 25%,transparent)}}.chip-btn{font-size:11.5px;padding:4px 11px;border-radius:14px;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);cursor:pointer}.chip-btn:hover:not(.chip-locked){border-color:var(--accent)}.chip-locked{opacity:.45;cursor:default}body.reduced-motion .slot-pulse{animation:none}.part-card{display:flex;gap:10px;align-items:flex-start;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;margin-bottom:8px}.part-card.equipped{border-color:var(--accent);background:var(--panel-raised)}.part-card.unowned{opacity:.75}.part-card[draggable=true]{cursor:grab}.part-card canvas{flex-shrink:0;background:#00000040;border-radius:8px}#preview-zone{border:1px dashed var(--border);transition:border-color .15s}@media (max-width: 720px){.workshop-cols{grid-template-columns:1fr!important}}.reveal{animation:fade-up .4s ease-out both}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 16px;font-size:13.5px;margin-bottom:14px}.stats-grid>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--border);padding:3px 0}.balance-pop{display:inline-block;animation:balance-pop .35s ease-out}@keyframes balance-pop{40%{transform:scale(1.25)}}.record-line{position:relative;overflow:hidden;border-radius:6px}.record-line:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translate(-100%);animation:shimmer 1.4s ease-out .7s forwards}@keyframes shimmer{to{transform:translate(100%)}}#confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-bit{position:absolute;top:-12px;width:7px;height:11px;border-radius:2px;opacity:0;animation:confetti-fall 1.5s ease-in forwards}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(340px) rotate(540deg)}}@media (prefers-reduced-motion: reduce){.reveal,.record-line:after,.confetti-bit,.balance-pop{animation:none}}body.reduced-motion .reveal,body.reduced-motion .record-line:after,body.reduced-motion .confetti-bit,body.reduced-motion .balance-pop{animation:none}
