:root{--bg-primary: #0a0e17;--bg-secondary: #131a2b;--bg-card: #1a2340;--bg-card-hover: #223060;--bg-surface: #0f1525;--text-primary: #f0f4ff;--text-secondary: #9daabb;--text-muted: #8494a7;--accent-blue: #4a9eff;--accent-green: #4ade80;--accent-red: #f87171;--accent-yellow: #fbbf24;--accent-purple: #a78bfa;--accent-orange: #fb923c;--accent-cyan: #22d3ee;--accent-gold: #f59e0b;--border-color: #2a3550;--border-glow: rgba(74, 158, 255, .3);--card-attack: #dc2626;--card-skill: #2563eb;--card-power: #9333ea;--hp-bar: #ef4444;--hp-bar-bg: #450a0a;--block-color: #60a5fa;--energy-color: #fbbf24;--gold-color: #f59e0b;--shadow-lg: 0 10px 30px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(74, 158, 255, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--font-mono: "Courier New", monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-mono);font-size:14px;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}button{font-family:var(--font-mono);cursor:pointer;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);padding:8px 16px;border-radius:var(--radius-md);font-size:14px;transition:all var(--transition-fast)}button:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent-blue);box-shadow:var(--shadow-glow)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;font-weight:700}button.primary:hover:not(:disabled){background:#3b82f6;box-shadow:0 0 20px #4a9eff66}button.danger{background:var(--accent-red);border-color:var(--accent-red);color:#fff}button.success{background:var(--accent-green);border-color:var(--accent-green);color:#000}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes damageFlash{0%{filter:brightness(1)}50%{filter:brightness(2) hue-rotate(340deg)}to{filter:brightness(1)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@keyframes stressShake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-2px) rotate(-1deg)}30%{transform:translate(2px) rotate(1deg)}45%{transform:translate(-2px) rotate(-.5deg)}60%{transform:translate(2px) rotate(.5deg)}75%{transform:translate(-1px) rotate(0)}}@keyframes enemyAttack{0%{transform:translate(0)}30%{transform:translate(-30px)}50%{transform:translate(-30px) scale(1.1)}to{transform:translate(0) scale(1)}}@keyframes enemyDeath{0%{opacity:1;transform:scale(1);filter:brightness(1)}30%{opacity:.8;transform:scale(1.1);filter:brightness(2)}to{opacity:0;transform:scale(.5) translateY(20px);filter:brightness(.5)}}@keyframes enemyFlee{0%{opacity:1;transform:translate(0) scale(1)}15%{transform:translate(-10px) scale(1.05)}to{opacity:0;transform:translate(300px) scale(.7)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease}.animate-slide-up{animation:slideUp var(--transition-slow) ease}.animate-shake{animation:shake .4s ease}.animate-damage{animation:damageFlash .3s ease}.animate-stress{animation:stressShake .5s ease;filter:brightness(1.3) hue-rotate(270deg)}.animate-enemy-attack{animation:enemyAttack .5s ease}.animate-enemy-death{animation:enemyDeath .6s ease forwards;pointer-events:none}.animate-enemy-flee{animation:enemyFlee .7s ease forwards;pointer-events:none}.animate-speech-bubble{animation:speechPop .3s ease}@keyframes speechPop{0%{opacity:0;transform:scale(.7) translateY(6px)}60%{opacity:1;transform:scale(1.05) translateY(-1px)}to{opacity:1;transform:scale(1) translateY(0)}}.consumable-slot{width:36px;height:36px;border:2px dashed var(--border-color);border-radius:18px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);background:transparent}.consumable-slot.filled{border-style:solid;background:var(--bg-card);animation:pulseConsumable 2s ease-in-out infinite}.consumable-slot.filled:hover{transform:scale(1.15);box-shadow:0 0 12px #4a9eff4d}@keyframes pulseConsumable{0%,to{box-shadow:none}50%{box-shadow:0 0 8px #4a9eff26}}.architect-slots-display{display:flex;flex-direction:column;gap:4px;padding:6px 10px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:8px;margin:4px 0}.engineer-slots{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.engineer-slot-badge{display:flex;align-items:center;gap:3px;padding:2px 7px;background:#8b5cf633;border:1px solid rgba(139,92,246,.4);border-radius:10px;font-size:12px}.slot-icon{font-size:12px}.slot-name{font-weight:600;color:#c4b5fd}.slot-passive{color:#a78bfa;font-size:12px}.slot-count-badge{margin-left:auto;font-size:12px;color:#a78bfa;font-weight:700}.no-slots-hint{color:var(--text-muted);font-style:italic;font-size:12px}.blueprint-display{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:12px}.blueprint-label{color:#8b5cf6;font-weight:700;font-size:12px;letter-spacing:.05em}.blueprint-step{padding:1px 5px;border-radius:6px;font-size:12px}.blueprint-step.matched{background:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.blueprint-step.pending{background:#4b55634d;color:#9ca3af;border:1px solid rgba(75,85,99,.4)}.blueprint-progress{color:var(--text-muted);font-size:12px}.engineer-slot-badge.slot-resonant{border:1px solid #fbbf24;box-shadow:0 0 6px #fbbf2466}.engineer-slot-badge.slot-harmonic{border:1px solid #f59e0b;box-shadow:0 0 10px #f59e0b99;animation:harmonic-pulse 1.5s ease-in-out infinite}@keyframes harmonic-pulse{0%,to{box-shadow:0 0 10px #f59e0b99}50%{box-shadow:0 0 20px #f59e0be6}}.entity-card{display:flex;flex-direction:column;align-items:center;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast);overflow:hidden;width:250px;height:420px}.entity-card.hero{padding:12px;gap:6px;border-color:var(--accent-blue)}.entity-card.hero.is-over{background:#4ade801a;border-color:var(--accent-green);box-shadow:0 0 12px #4ade804d}.hero-gauge-col{width:14px;display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:2px;padding:2px 0}.hero-content-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:0;overflow:hidden}.enemy-card-wrapper{position:relative;display:flex;flex-direction:column;align-items:center}.entity-card.enemy{padding:8px;gap:4px}.entity-card.enemy.is-targeted{border-color:var(--accent-yellow)}.entity-card.enemy.is-over{background:#f871711a;border-color:var(--accent-red);box-shadow:0 0 12px #f871714d}.enemy-speech-bubble{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:6px;z-index:10;pointer-events:none}.entity-card .card-separator{width:100%;height:1px;background:var(--border-color);margin:2px 0}.portrait-frame{width:100%;flex:1;min-height:100px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);overflow:hidden}.portrait-frame.hero{width:100%;flex:1;min-height:80px}.status-effects-area{display:flex;gap:4px;flex-wrap:wrap;max-height:72px;overflow:hidden}.gauge-pip{border-radius:1px;transition:all .15s}@media(max-height:600px){body{font-size:12px}button,button.primary,button.danger,button.success{padding:4px 10px;font-size:12px}.consumable-slot{width:22px;height:22px;border-radius:11px}.consumable-slot.filled span{font-size:12px!important}::-webkit-scrollbar{width:4px}.entity-card{width:100px;height:170px}.entity-card.hero{padding:6px;gap:3px}.hero-gauge-col{width:10px}.hero-content-col{gap:3px}.entity-card.enemy{padding:4px;gap:2px}.portrait-frame{width:100%;min-height:30px}.portrait-frame.hero{width:100%;flex:1;min-height:30px}.status-effects-area{gap:2px;max-height:45px}}
