:root{--bg-primary: #0a0a0f;--bg-secondary: #1a1a2e;--bg-panel: #16213e;--accent-red: #8b0000;--accent-gold: #c9a84c;--accent-purple: #6b3a8c;--text-primary: #d4c5a9;--text-secondary: #7d8c7c;--hp-color: #8b0000;--sanity-color: #6b3a8c;--energy-color: #1a6ba1;--soul-color: #6b9ec5;--void-color: #4a1a6b;--rarity-common: #808080;--rarity-uncommon: #3a8c3a;--rarity-rare: #3a6b8c;--rarity-legendary: #6b3a8c;--rarity-mythic: #8b0000;--rarity-unique: #c9a84c}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg-primary);color:var(--text-primary);font-family:Georgia,Times New Roman,serif;overflow:hidden;height:100vh;width:100vw;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#root{width:100%;height:100%;position:relative}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--accent-gold);box-shadow:inset 0 1px #c9a84c26,0 2px 4px #00000080;font-family:Georgia,serif;font-size:14px;cursor:pointer;transition:background .15s,box-shadow .15s}.btn:active{background:var(--bg-panel);box-shadow:inset 0 2px 4px #0009}.btn:disabled{opacity:.4;cursor:not-allowed}.bar{height:8px;border-radius:2px;background:#00000080;overflow:hidden;position:relative}.bar__fill{height:100%;border-radius:2px;transition:width .3s ease}.panel{background:var(--bg-panel);border:1px solid rgba(201,168,76,.3);box-shadow:0 0 12px #000c,inset 0 0 20px #0000004d;padding:12px}.toast{position:fixed;top:12px;left:50%;transform:translate(-50%);padding:8px 20px;border-radius:4px;font-size:13px;z-index:9999;animation:toast-in .3s ease;pointer-events:none}.toast--info{background:var(--bg-secondary);border:1px solid var(--energy-color);color:var(--text-primary)}.toast--success{background:#1a2e1a;border:1px solid #3a8c3a;color:#a9d4a9}.toast--error{background:#2e1a1a;border:1px solid var(--accent-red);color:#d4a9a9}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes sanity-flicker{0%,to{opacity:0}50%{opacity:.15}}@keyframes sanity-hue-shift{0%,to{filter:hue-rotate(0deg)}50%{filter:hue-rotate(120deg)}}@keyframes sanity-invert{0%,70%,to{filter:invert(0)}75%{filter:invert(1)}}
