body{background:#020617;margin:0}a{color:#38bdf8;text-decoration:none}a:hover{color:#7dd3fc}.tb-end-turn:hover{background:linear-gradient(#14b8a6,#047857);transform:translateY(-2px)}.tb-end-turn:active{transform:translateY(0)}.menu-btn{transition:transform .16s,filter .16s;position:relative}.menu-btn:hover{filter:brightness(1.25);transform:translate(8px)}.menu-btn:active{filter:brightness(.92);transform:translate(8px)scale(.96)}.menu-btn-line{transform-origin:0;height:2px;transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s;position:absolute;bottom:4px;left:2px;right:2px;transform:scaleX(.3)}.menu-btn-primary .menu-btn-line{transform:scaleX(.55)}.menu-btn:hover .menu-btn-line{transform:scaleX(1);box-shadow:0 0 12px #ff4d1cb3}.menu-btn-secondary:hover .menu-btn-line{box-shadow:0 0 8px #94a3b880}.tb-deck-scroll{scrollbar-width:thin;scrollbar-color:var(--tb-accent,#6b7280) transparent}.tb-deck-scroll::-webkit-scrollbar{width:8px}.tb-deck-scroll::-webkit-scrollbar-track{background:0 0}.tb-deck-scroll::-webkit-scrollbar-thumb{background:var(--tb-accent,#6b7280);border-radius:4px}.tb-deck-scroll::-webkit-scrollbar-thumb:hover{opacity:.8}@keyframes lavaPulse{0%,to{opacity:.82}50%{opacity:1}}@keyframes waterFlowShift{0%{transform:translate(0)}to{transform:translate(-96px,-48px)}}@keyframes glintSlide{0%,to{opacity:.15}50%{opacity:.9}}@keyframes tideRipple{0%{opacity:.8;transform:scale(.35)}to{opacity:0;transform:scale(1.3)}}@keyframes dripFlow{0%,to{opacity:.7;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}@keyframes tileEmber{0%{opacity:0;transform:translateY(0)scale(1)}22%{opacity:.95}to{opacity:0;transform:translateY(-46px)scale(.35)}}@keyframes waterScrollA{0%{transform:translate(0)}to{transform:translate(52px,26px)}}@keyframes waterScrollB{0%{transform:translate(0)}to{transform:translate(-52px,26px)}}@keyframes drawPulse{0%,to{opacity:.88}50%{opacity:1}}@keyframes pipGlow{0%,to{opacity:.72}50%{opacity:1}}@keyframes emberRise{0%{opacity:0;transform:translateY(0)scale(1)}20%{opacity:.9}to{opacity:0;transform:translateY(-220px)scale(.4)}}@keyframes gemPulse{0%,to{opacity:.75;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}@keyframes corePulse{0%,to{opacity:.78;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}@keyframes mistDrift{0%,to{opacity:.35;transform:translate(-30px)}50%{opacity:.6;transform:translate(30px)}}@keyframes spriteEmber{0%{opacity:0;transform:translateY(0)scale(1)}25%{opacity:.95}to{opacity:0;transform:translateY(-30px)scale(.3)}}@keyframes sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes wingFlex{0%,to{transform:rotate(0)scaleY(1)}50%{transform:rotate(-5deg)scaleY(1.07)}}@keyframes tideGlow{0%,to{opacity:.85}50%{opacity:1}}@keyframes chevUp{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes chevDn{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(3px)}}@keyframes washSweep{0%,to{opacity:.55;transform:translate(-4px)}50%{opacity:1;transform:translate(3px)}}@keyframes flowShift{0%,to{opacity:.6;transform:translate(-2px)}50%{opacity:1;transform:translate(2px)}}@keyframes burstPulse{0%,to{opacity:.45;transform:scale(.88)}50%{opacity:1;transform:scale(1.12)}}@keyframes ashFall{0%{opacity:0;transform:translateY(15px)rotate(0)}25%{opacity:.9}to{opacity:0;transform:translateY(-2px)rotate(120deg)}}@keyframes steamRise{0%{opacity:0;transform:translate(0)scale(.7)}30%{opacity:.6}to{opacity:0;transform:translate(4px,-23px)scale(1.5)}}@keyframes unitSpawn{0%{opacity:0;transform:translateY(16px)scale(.5)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes unitDeath{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.72)}}@keyframes unitSlide{0%{transform:translate(0)}to{transform:translate(var(--dx), var(--dy))}}@keyframes unitLunge{0%,to{transform:translate(0)}45%{transform:translate(calc(var(--dx) * .5), calc(var(--dy) * .5))}}@keyframes unitHitShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes unitHitFlash{0%{opacity:0}30%{opacity:.75}to{opacity:0}}@keyframes damageNumberRise{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(-34px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.001ms!important;animation-iteration-count:1!important}}@keyframes revealFade{0%{opacity:0}to{opacity:1}}@keyframes revealFadeOut{0%{opacity:1}to{opacity:0}}@keyframes cardIn{0%{opacity:0;scale:.94}to{opacity:1;scale:1}}@keyframes cardOut{0%{opacity:1;scale:1}to{opacity:0;scale:.97}}@keyframes terrainMark{0%{opacity:0}18%{opacity:.95}55%{opacity:.55}to{opacity:.95}}@keyframes terrainQuake{0%{transform:translate(0)}12%{transform:translate(-3px)}24%{transform:translate(3px)}36%{transform:translate(-3px)}48%{transform:translate(2px)}60%{transform:translate(-2px)}72%{transform:translate(0)}to{transform:translateY(var(--dy,0px))}}@keyframes workingPulse{0%,to{opacity:.25}40%{opacity:1}}
