*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#0a0a12;color:#e8e0d0;font-family:Inter,system-ui,-apple-system,sans-serif}.menu-container{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:#0a0a12;overflow:hidden}.menu-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 30%,rgba(201,168,76,.08) 0%,transparent 70%),radial-gradient(ellipse at 80% 60%,rgba(107,47,160,.06) 0%,transparent 50%),radial-gradient(ellipse at 20% 70%,rgba(139,26,26,.06) 0%,transparent 50%);animation:bgPulse 8s ease-in-out infinite alternate}@keyframes bgPulse{0%{opacity:.6}to{opacity:1}}.menu-content{position:relative;z-index:2;padding:40px}.title-gothic{font-family:JetBrains Mono,Fira Code,SF Mono,monospace;text-transform:uppercase;letter-spacing:.15em;font-weight:300}.title-gothic:after{content:"";display:block;width:120px;height:2px;background:linear-gradient(90deg,transparent,#c9a84c,transparent);margin:16px auto 0}.btn-gold{position:relative;overflow:hidden;transition:all .3s ease;text-transform:uppercase;font-family:JetBrains Mono,Fira Code,monospace}.btn-gold:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,#c9a84c,#a08030,#c9a84c,#a08030);background-size:400% 400%;z-index:-1;animation:goldShimmer 6s ease-in-out infinite;border-radius:4px;opacity:.5}@keyframes goldShimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.btn-ghost{transition:all .3s ease;text-transform:uppercase;font-family:JetBrains Mono,Fira Code,monospace}.btn-ghost:hover{background:#c9a84c1a;box-shadow:0 0 20px #c9a84c26}.game-container{background:#0a0a12;position:relative}.top-bar{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.map-area{position:relative}.tile{transition:all .2s ease;position:relative}.tile:hover{z-index:5}.unit{transition:all .2s ease;font-family:Inter,sans-serif}.unit-player{border-image:linear-gradient(135deg,#c9a84c,#a08030) 1}.unit-enemy{border-image:linear-gradient(135deg,#8b1a1a,#5a0a0a) 1}.side-panel{font-family:Inter,sans-serif}.card-item{transition:all .2s ease;cursor:pointer}.card-item:hover{background:#c9a84c14!important}.card-selected{background:#c9a84c26!important;border-color:#c9a84c!important}.combat-log{scrollbar-width:thin;scrollbar-color:rgba(201,168,76,.2) transparent}.combat-log::-webkit-scrollbar{width:3px}.combat-log::-webkit-scrollbar-track{background:transparent}.combat-log::-webkit-scrollbar-thumb{background:#c9a84c33;border-radius:2px}.btn-end-turn{transition:all .3s ease;text-transform:uppercase;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;position:relative;overflow:hidden}.btn-end-turn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%{left:-100%}50%{left:100%}to{left:100%}}.float-text{pointer-events:none;font-weight:800;text-shadow:0 0 12px currentColor,0 0 24px currentColor;z-index:100}.game-container:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none;z-index:999}@media (max-width: 768px){.side-panel{width:220px!important}.tile{width:52px!important;height:52px!important}.unit{width:42px!important;height:42px!important}.title-gothic{font-size:32px!important}}.map-area:before,.map-area:after{content:"◆";position:absolute;font-size:14px;color:#c9a84c1a;pointer-events:none}.map-area:before{top:8px;left:12px}.map-area:after{bottom:8px;right:12px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:#0a0a12}::-webkit-scrollbar-thumb{background:#c9a84c33;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#c9a84c66}.glass-panel{background:#0e0e18cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(201,168,76,.1)}.text-pulse{animation:textPulse 3s ease-in-out infinite}@keyframes textPulse{0%,to{text-shadow:0 0 8px rgba(201,168,76,.3)}50%{text-shadow:0 0 20px rgba(201,168,76,.6),0 0 40px rgba(201,168,76,.2)}}
