@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/ChakraPetch-500.ttf') format('truetype')}@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/ChakraPetch-600.ttf') format('truetype')}@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/ChakraPetch-700.ttf') format('truetype')}@font-face{font-family:'IM Fell English';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/IMFellEnglish-400.ttf') format('truetype')}@font-face{font-family:'IM Fell English';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/IMFellEnglish-Italic-400.ttf') format('truetype')}@font-face{font-family:'Silkscreen';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/Silkscreen-400.ttf') format('truetype')}@font-face{font-family:'Silkscreen';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/Silkscreen-700.ttf') format('truetype')}
:root{font-variant-emoji:text;--bg:#09070b;--panel:#121018;--ink:#eee8df;--muted:#8f8791;--red:#d52f55;--red2:#7b1734;--gold:#d7ae62;--cyan:#5ed4d2;--line:#302633;--green:#73cc8a}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 0,#24101c 0,#09070b 52%);color:var(--ink);font-family:'Chakra Petch',system-ui,sans-serif;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,filter .16s ease,box-shadow .16s ease}button:enabled:hover{filter:brightness(1.18);transform:translateY(-2px)}button:enabled:active{transform:translateY(1px) scale(.97)}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.hidden{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.25;background-image:linear-gradient(90deg,transparent 49%,#ffffff07 50%),linear-gradient(transparent 49%,#ffffff05 50%);background-size:5px 5px;z-index:100}
#game-shell{max-width:1180px;margin:0 auto;min-height:100vh;background:#0b090e;border-inline:1px solid #271d29;box-shadow:0 0 80px #000}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid var(--line);background:#0d0a10}.brand{display:flex;align-items:center;gap:13px}.brand-mark{color:var(--red);font:700 20px 'Silkscreen',sans-serif;letter-spacing:-2px;filter:drop-shadow(0 0 8px #d52f5588)}h1{font-size:17px;letter-spacing:3px;margin:0}.brand p{font-size:9px;letter-spacing:4px;color:var(--gold);margin:3px 0 0}.run-stats{display:flex;align-items:center;gap:10px}.run-stats>span{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:8px 10px;background:#151019}.run-stats b{color:var(--ink);margin-left:4px}.icon-btn{width:34px;height:34px;border:1px solid var(--line);background:#151019}.icon-btn.text-icon{font-size:8px;letter-spacing:-1px}.icon-btn.active{color:var(--cyan);border-color:var(--cyan)}
#viewport-wrap{height:min(55vw,580px);min-height:390px;position:relative;overflow:hidden;background:#050307;border-bottom:1px solid var(--line)}#view{width:100%;height:100%;display:block;image-rendering:pixelated}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 140px 50px #000}.scanlines{position:absolute;inset:0;pointer-events:none;opacity:.15;background:repeating-linear-gradient(0deg,#000 0,#000 1px,transparent 1px,transparent 3px)}#crosshair{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);font-size:24px;color:#eee8df88;text-shadow:0 0 8px #fff}.glass-chip{position:absolute;top:16px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:2px;padding:8px 13px;border:1px solid #9e879b55;background:#08060bbb;backdrop-filter:blur(8px);white-space:nowrap}#toast{position:absolute;left:50%;bottom:25px;transform:translate(-50%,10px);padding:10px 16px;background:#17101ae8;border-left:3px solid var(--red);font-size:12px;letter-spacing:1px;opacity:0;transition:.25s;z-index:5}#toast.show{opacity:1;transform:translate(-50%,0)}.enemy-tag{position:absolute;top:60px;left:50%;transform:translateX(-50%);min-width:210px;text-align:center}.enemy-tag>b{display:block;font-size:12px;letter-spacing:2px;text-shadow:0 2px 2px #000}.enemy-tag span{display:block;height:5px;background:#26151e;margin:5px}.enemy-tag i{display:block;height:100%;background:var(--red)}.enemy-tag em{font-size:9px;color:#bbb;font-style:normal}#summon-orb{position:absolute;right:22px;bottom:18px;width:68px;height:68px;border-radius:50%;background:#0e1e2b;border:1px solid var(--cyan);box-shadow:0 0 25px #5ed4d255}#summon-orb img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}#summon-orb span{position:absolute;right:-4px;top:-4px;border-radius:50%;background:var(--cyan);color:#071014;width:22px;height:22px;text-align:center;font-weight:bold}
.hud{height:188px;display:grid;grid-template-columns:220px 1fr 290px;background:#0d0a10}.minimap-panel,.log-panel,.controls-panel{padding:18px;border-right:1px solid var(--line)}.minimap-panel{display:flex;gap:12px;align-items:center}.minimap-panel canvas{width:106px;height:106px;border:1px solid #493645;background:#08060a;image-rendering:pixelated}.minimap-panel b,.minimap-panel span{display:block}.minimap-panel b{color:var(--gold);font-size:12px}.minimap-panel span{color:var(--muted);font-size:9px;margin-top:5px}.section-label{font-size:9px;letter-spacing:2px;color:var(--red);margin-bottom:10px}#log{font-family:'IM Fell English',serif;font-size:14px;color:#b9afb9;height:110px;overflow:hidden}#log div{margin:0 0 5px}#log div:first-child{color:#fff}.controls-panel{border:0;display:flex;align-items:center;gap:14px}.dpad{display:grid;grid-template-columns:repeat(3,42px);gap:4px}.dpad button{height:40px;background:#19131d;border:1px solid #3b2d3d}.dpad button:active{background:var(--red2)}.interact{height:84px;flex:1;background:linear-gradient(#781a39,#4d1128);border:1px solid #c43d61;font-size:11px;letter-spacing:1px}.interact small{display:block;color:#d9a4b3;font-size:8px;margin-top:6px}
.overlay{position:fixed;z-index:50;inset:0;display:none;align-items:center;justify-content:center;background:#09070bf2;backdrop-filter:blur(10px);padding:22px}.overlay.open{display:flex}.title-art{width:min(45vw,540px);height:70vh;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#69153155,transparent 65%)}.title-art img{width:min(38vw,480px);height:min(60vh,540px);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 35px 30px #000)}.title-rune{position:absolute;font:700 260px 'Silkscreen',sans-serif;letter-spacing:-34px;color:#6d163222;z-index:-1}.title-copy{width:480px}.eyebrow{font-size:10px;letter-spacing:4px;color:var(--red);font-weight:bold}.title-copy h2{font-size:70px;line-height:.8;letter-spacing:-4px;margin:24px 0;text-shadow:4px 4px 0 #2b101e}.title-copy h2 small{display:block;font-size:16px;line-height:1;letter-spacing:9px;color:var(--gold);margin-bottom:13px}.title-copy h2 span{color:var(--red)}.title-copy>p:not(.eyebrow){font-family:'IM Fell English',serif;font-size:21px;color:#aea2ae}.primary,.secondary,.danger,.combat-actions button{border:1px solid #ad3155;background:linear-gradient(180deg,#9b254a,#5d1330);padding:15px 24px;letter-spacing:2px;font-weight:bold}.primary{width:100%;margin-top:22px}.secondary{background:#161119;border-color:#463548}.title-copy .secondary{width:100%;margin-top:8px}.meta-row{display:flex;gap:30px;margin-top:30px;color:var(--muted);font-size:10px}.meta-row b{color:var(--gold)}.title-copy .license-credit{font:9px/1.4 'Chakra Petch',sans-serif!important;letter-spacing:.4px;color:#716873!important;margin-top:18px;max-width:420px}
.modal{width:min(900px,94vw);max-height:90vh;overflow:auto;border:1px solid #543748;background:linear-gradient(145deg,#19111b,#0b090d);padding:34px;box-shadow:0 40px 100px #000;text-align:center}.modal h2{font-size:34px;margin:8px 0 24px}.wide{width:min(1050px,96vw)}.hero-options,.reward-options{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.hero-card,.reward-card{position:relative;border:1px solid #483247;background:#100d13;padding:20px;text-align:left;transition:.18s;overflow:hidden}.hero-card:hover,.reward-card:hover{transform:translateY(-4px);border-color:var(--red);box-shadow:0 12px 25px #000}.hero-card h3,.reward-card h3{margin:5px 0;color:var(--gold);letter-spacing:1px}.hero-card p,.reward-card p{color:var(--muted);font-family:'IM Fell English';min-height:44px}.hero-card .sigil{font:700 22px 'Silkscreen',sans-serif;letter-spacing:-2px;color:#d52f5533;position:absolute;right:12px;top:8px}.hero-sprite{display:block;width:96px;height:96px;object-fit:contain;image-rendering:pixelated;margin:0 auto 12px;filter:drop-shadow(0 10px 7px #000)}.hero-card button,.reward-card button{width:100%;padding:9px;background:#531329;border:1px solid #91304d}.statline{font-size:10px;color:#c2b5bf}.reward-card .mana-gem{font-size:26px;color:var(--cyan)}
.combat-overlay{background:#08050af5;padding:0}.combat-stage{width:min(1180px,100vw);height:100vh;max-height:900px;position:relative;display:flex;flex-direction:column;padding:18px 24px;background:radial-gradient(circle at 50% 28%,#4b122599,transparent 42%),linear-gradient(#0a080c,#110a11)}.combat-top{display:grid;grid-template-columns:1fr 240px 1fr;align-items:start}.combatant{font-size:12px}.combatant.enemy-combat{text-align:right}.bar{height:10px;background:#2b1821;display:block;margin:6px 0;max-width:320px;overflow:hidden}.enemy-combat .bar{margin-left:auto}.bar i{height:100%;display:block;background:var(--red);transition:width .36s cubic-bezier(.2,.8,.2,1),filter .2s}.hero-combat .bar i{background:var(--green)}.combatant em,.combatant small{font-size:9px;color:var(--muted);font-style:normal}.combatant small{display:block;margin-top:5px;color:var(--gold)}#chain-display{text-align:center;border:1px solid #4d3040;background:#120d13;padding:10px}#chain-display small,#chain-display em{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);font-style:normal}#chain-display b{font-size:35px;color:var(--gold);line-height:1}.enemy-stage{flex:1;min-height:180px;position:relative;display:flex;align-items:center;justify-content:center}.enemy-stage img{height:min(38vh,330px);width:min(38vh,330px);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 20px 18px #000);z-index:2}.blood-moon{position:absolute;width:260px;height:260px;border-radius:50%;background:#7e1736;box-shadow:0 0 80px #8b193c;opacity:.45}#damage-float{position:absolute;z-index:4;font-size:50px;color:#fff;font-weight:bold;text-shadow:3px 3px var(--red);pointer-events:none}.resource-row{display:flex;justify-content:center;gap:36px;font-size:10px;color:var(--muted);margin:8px}.resource-row b{color:var(--ink)}.hand{height:190px;display:flex;justify-content:center;align-items:flex-end;gap:8px}.card{width:132px;height:178px;border:2px solid #50354a;border-radius:6px 6px 12px 12px;background:linear-gradient(145deg,#241825,#100d13);padding:9px;text-align:left;position:relative;transition:.15s;box-shadow:0 8px 15px #000}.card:hover:not(:disabled){transform:translateY(-12px);border-color:var(--gold)}.card:disabled{filter:grayscale(.8);opacity:.44;cursor:not-allowed}.card .mana{position:absolute;top:-12px;left:8px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#152a32;border:2px solid var(--cyan);color:#fff;font-size:17px}.card h3{font-size:12px;color:var(--gold);margin:24px 0 4px}.card .type{font-size:8px;color:var(--red);letter-spacing:1px}.card p{font:13px/1.15 'IM Fell English';color:#c9bec7}.card .gem{position:absolute;right:8px;top:7px;font-size:16px}.card.wild{border-color:#aa6ee8;background:linear-gradient(145deg,#301847,#100d13)}.card.wild .mana{border-color:#c592ff;background:#3d1d59}.card.evolved{box-shadow:inset 0 0 20px #b8893044,0 8px 15px #000}.combat-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.combat-actions button{padding:10px 20px;font-size:10px}.combat-actions button:last-child{background:#10252b;border-color:#3d8f96}.combat-actions button.active{background:#17505a;color:#8ff}
#damage-float.pop{animation:damage .6s ease-out}@keyframes damage{0%{opacity:0;transform:translateY(20px) scale(.5)}30%{opacity:1}100%{opacity:0;transform:translateY(-40px) scale(1.2)}}.flash{animation:flash .18s}@keyframes flash{50%{filter:brightness(3) sepia(1) saturate(3)}}
.end-modal #run-summary{display:flex;justify-content:center;gap:24px;margin:24px 0;color:var(--gold)}.help-modal{position:relative;text-align:left}.close{position:absolute;right:14px;top:12px;border:0;background:none;font-size:28px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help-grid article{border-left:2px solid var(--red);padding:10px 14px;background:#100c12}.help-grid p{font-family:'IM Fell English';color:var(--muted)}
h1,h2,h3,.brand p,.eyebrow,.section-label,button,.glass-chip,#chain-display,.combatant>b,.resource-row,.card .type,.card small{font-family:'Silkscreen','Chakra Petch',sans-serif}.title-copy h2{letter-spacing:-2px}.hero-card p,.reward-card p,.help-grid p,#log{font-family:'IM Fell English',serif}
#view{touch-action:none;transform-origin:center}#fx{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;image-rendering:pixelated}.vignette{z-index:3}.motion-streaks{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:repeating-linear-gradient(90deg,transparent 0 7%,rgba(255,255,255,.08) 8%,transparent 9% 16%);mix-blend-mode:screen}.moving .motion-streaks{animation:streaks .23s ease-out}.turning .vignette{animation:turn-vignette .18s ease-out}.bump #view{animation:bump-view .16s ease-out}
.hotkey{position:absolute;right:7px;top:7px;width:20px;height:20px;display:grid;place-items:center;border:1px solid #6d526b;background:#0a080d;color:var(--cyan);font:10px 'Silkscreen',sans-serif}.card{isolation:isolate}.card:enabled:hover .hotkey{border-color:var(--gold);color:var(--gold)}#hero-status,#enemy-status{min-height:13px;color:var(--cyan)}#intent-label{display:inline-block!important;margin-top:7px!important;padding:5px 7px;border:1px solid #76435a;background:#1c1018;color:#ffd6df!important;max-width:390px;line-height:1.45}#combat-enemy-img{transform-origin:50% 82%;animation:enemy-idle 1.45s steps(8,end) infinite}.combat-stage.impact{animation:combat-shake .34s ease-out}.combat-stage.enemy-attack #combat-enemy-img{animation:enemy-lunge .34s ease-out}.combat-stage.recoil #combat-enemy-img{animation:enemy-recoil .3s ease-out}.combat-stage.ward{animation:ward-pulse .34s ease-out}.combat-stage.enemy-guard #combat-enemy-img{animation:enemy-guard .34s ease-out}.combat-stage.curse{animation:curse-pulse .34s ease-out}.combat-stage.enemy-status #combat-enemy-img{animation:enemy-cast .34s ease-out}
@keyframes enemy-idle{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9px) scale(1.025)}}@keyframes enemy-lunge{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(24px) scale(1.13)}}@keyframes enemy-recoil{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-14px) rotate(-3deg) scale(.96)}}@keyframes enemy-guard{50%{transform:translateY(-5px) scale(.94);filter:drop-shadow(0 0 28px #5ed4d2)}}@keyframes enemy-cast{35%{transform:translateY(-15px) rotate(-3deg) scale(1.07)}70%{transform:translateY(-8px) rotate(3deg)}}@keyframes streaks{0%{opacity:0;transform:scaleX(.7)}35%{opacity:.65}100%{opacity:0;transform:scaleX(1.15)}}@keyframes turn-vignette{0%,100%{filter:none}45%{filter:blur(2px) brightness(1.25)}}@keyframes bump-view{35%{transform:scale(1.018) translateY(3px)}70%{transform:scale(.995)}}@keyframes combat-shake{20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-3px)}80%{transform:none}}@keyframes ward-pulse{50%{box-shadow:inset 0 0 100px #5ed4d255}}@keyframes curse-pulse{50%{box-shadow:inset 0 0 120px #d52f5577;filter:saturate(1.5)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:760px){.topbar{height:60px;padding:0 10px}.brand p{display:none}h1{font-size:11px}.run-stats>span{padding:6px;font-size:9px}.run-stats>span:nth-child(3){display:none}#viewport-wrap{height:48vh;min-height:310px}.hud{height:auto;grid-template-columns:1fr}.minimap-panel{display:none}.log-panel{height:80px;padding:10px;border:0;border-bottom:1px solid var(--line)}#log{height:48px}.controls-panel{padding:8px;justify-content:center}.dpad{grid-template-columns:repeat(3,38px)}.dpad button{height:34px}.interact{max-width:150px;height:72px}.title-art{position:absolute;inset:0;width:auto;height:auto;opacity:.35}.title-art img{width:100%;height:100%}.title-copy{position:relative;text-align:center}.title-copy h2{font-size:48px}.hero-options,.reward-options{grid-template-columns:1fr}.modal{padding:22px}.combat-stage{padding:10px}.combat-top{grid-template-columns:1fr 110px 1fr}.combat-top #chain-display{padding:5px}.hand{height:200px;justify-content:flex-start;overflow-x:auto;padding-top:18px}.card{min-width:112px;height:166px}.enemy-stage img{height:25vh}.help-grid{grid-template-columns:1fr}.glass-chip{font-size:8px}.brand-mark{font-size:24px}}
#touch-hint{display:none;margin:0;color:var(--muted);font:8px 'Silkscreen',sans-serif;letter-spacing:.6px;text-align:center}
@media(pointer:coarse){button{min-height:48px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.dpad button{min-width:48px;min-height:48px}.controls-panel{padding-bottom:calc(10px + env(safe-area-inset-bottom))}#touch-hint{display:block}.card{scroll-snap-align:center}.hand{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}}
@media(max-width:760px){html,body,#game-shell{min-height:100dvh}body{overscroll-behavior:none}.topbar{height:calc(58px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}#viewport-wrap{height:clamp(300px,48dvh,470px);min-height:0}.hud{padding-bottom:env(safe-area-inset-bottom)}.controls-panel{display:grid;grid-template-columns:auto minmax(132px,160px);grid-template-areas:'hint hint' 'pad action';gap:7px 12px}.dpad{grid-area:pad;grid-template-columns:repeat(3,48px)}.dpad button{height:48px}.interact{grid-area:action;max-width:none;height:auto;min-height:100px}#touch-hint{grid-area:hint}.overlay{padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}.modal{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 28px)}.title-copy{width:min(100%,480px)}.title-copy h2{font-size:clamp(38px,12vw,52px)}.title-copy>p:not(.eyebrow){font-size:17px}.license-credit{font-size:8px!important}.hero-card,.reward-card{min-height:48px}.combat-stage{height:100dvh;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.combat-actions button{min-height:48px}.hand{overscroll-behavior-x:contain}}
@media(max-height:520px) and (orientation:landscape){#game-shell{height:100dvh;min-height:0;overflow:hidden}.topbar{height:calc(42px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}#viewport-wrap{height:calc(100dvh - 42px - env(safe-area-inset-top));min-height:0}.hud{position:fixed;z-index:8;inset:auto 0 0;height:auto;background:transparent;display:block;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);pointer-events:none}.log-panel,.minimap-panel,#touch-hint{display:none}.controls-panel{display:flex;justify-content:space-between;padding:8px 12px;border:0;pointer-events:none}.dpad,.interact{pointer-events:auto}.interact{flex:0 0 150px;min-height:96px}.combat-stage{height:100dvh;min-height:0;overflow-y:auto;padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.combat-top{grid-template-columns:1fr 120px 1fr}.enemy-stage{min-height:76px}.enemy-stage img{height:23vh}.resource-row{margin:2px}.hand{height:124px;min-height:124px;padding-top:5px}.card{min-width:100px;width:100px;height:118px;padding:6px}.card h3{margin-top:18px;font-size:10px}.card p{font-size:10px;max-height:35px;overflow:hidden}.combat-actions{margin-top:3px}.combat-actions button{padding:6px 12px}.overlay{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.title-copy h2{font-size:38px;margin:10px 0}.title-copy>p:not(.eyebrow){font-size:15px}.primary{margin-top:8px}.meta-row{margin-top:10px}.license-credit{margin-top:8px!important}}

/* Feedback and motion system */
.overlay.open>.modal,.overlay.open>.title-copy{animation:overlay-in .38s cubic-bezier(.2,.85,.25,1) both}.title-art img{animation:title-float 4.5s ease-in-out infinite}.title-rune{animation:rune-drift 7s ease-in-out infinite}.brand-mark{animation:brand-glow 2.8s ease-in-out infinite}#objective{animation:objective-breathe 2.6s ease-in-out infinite}#objective.objective-pulse{animation:objective-burst .72s ease-out}.enemy-tag:not(.hidden){animation:tag-enter .28s ease-out}.minimap-panel canvas{animation:minimap-glow 3.2s ease-in-out infinite}#log div:first-child{animation:log-entry .3s ease-out}.dpad button,.interact,.icon-btn,.primary,.secondary,.danger{position:relative;overflow:hidden}.dpad button:active,.interact:active{box-shadow:0 0 24px #d52f5588 inset}.hero-card,.reward-card{animation:card-deal .36s cubic-bezier(.2,.8,.2,1) both}.hero-card:nth-child(2),.reward-card:nth-child(2){animation-delay:.06s}.hero-card:nth-child(3),.reward-card:nth-child(3){animation-delay:.12s}.blood-moon{animation:moon-pulse 3.4s ease-in-out infinite}.resource-row span{transition:color .2s,transform .2s}.hud-pulse{display:inline-block;animation:hud-pulse .34s ease-out}.card{animation:card-deal .28s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--deal-index,0)*28ms)}.played-card-ghost{position:fixed!important;z-index:99!important;margin:0!important;pointer-events:none!important;transition:left .38s cubic-bezier(.2,.8,.2,1),top .38s cubic-bezier(.2,.8,.2,1),transform .38s ease,opacity .38s ease!important}.played-card-ghost.fly{left:50%!important;top:28%!important;transform:translate(-50%,-50%) rotate(-4deg) scale(.55)!important;opacity:0!important}.hero-combat{position:relative}.hero-combat.hp-loss{animation:hero-panel-hit .48s ease-out}.hero-combat.armor-hit{animation:armor-panel-hit .42s ease-out}#hero-damage-float{position:absolute;left:0;top:68px;z-index:8;min-width:180px;color:#fff;font:700 13px 'Silkscreen',sans-serif;pointer-events:none;opacity:0;text-shadow:2px 2px #09070b}#hero-damage-float.pop{animation:hero-damage .78s ease-out}#hero-damage-float.loss{color:#ff6a87}#hero-damage-float.blocked,#hero-damage-float.guard{color:var(--cyan)}#hero-damage-float.heal{color:var(--green)}#combat-feedback{position:absolute;z-index:6;top:7%;left:50%;transform:translateX(-50%);padding:8px 14px;border:1px solid var(--line);background:#09070bd9;font:700 10px 'Silkscreen',sans-serif;letter-spacing:1px;opacity:0;white-space:nowrap;pointer-events:none}#combat-feedback.show{animation:feedback-pop .9s ease-out}#combat-feedback.player{color:var(--gold);border-color:#d7ae6277}#combat-feedback.enemy{color:#ff9aaf;border-color:#d52f5577}#combat-feedback.guard{color:var(--cyan)}#combat-feedback.heal{color:var(--green)}#turn-banner{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);font:700 clamp(22px,5vw,54px) 'Silkscreen',sans-serif;letter-spacing:4px;opacity:0;white-space:nowrap;text-shadow:4px 4px #09070b;pointer-events:none}#turn-banner.show{animation:turn-banner .72s ease-out}#turn-banner.player{color:var(--cyan)}#turn-banner.enemy{color:var(--red)}.combat-stage.player-damaged:after{content:"";position:absolute;z-index:20;inset:0;background:#d52f5533;pointer-events:none;animation:damage-vignette .42s ease-out}.combat-stage.enemy-attack .hero-combat{animation:hero-panel-hit .42s ease-out}#summon-orb{animation:summon-pulse 1.8s ease-in-out infinite}.combat-actions button:disabled{filter:grayscale(.8);opacity:.48}.bar i{box-shadow:0 0 12px currentColor}
@keyframes overlay-in{0%{opacity:0;transform:translateY(18px) scale(.97)}100%{opacity:1;transform:none}}@keyframes title-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes rune-drift{0%,100%{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.04)}}@keyframes brand-glow{0%,100%{filter:drop-shadow(0 0 5px #d52f5555)}50%{filter:drop-shadow(0 0 13px #d52f55aa)}}@keyframes objective-breathe{0%,100%{border-color:#9e879b55;box-shadow:none}50%{border-color:#d7ae6299;box-shadow:0 0 18px #d7ae6233}}@keyframes objective-burst{0%{transform:translateX(-50%) scale(.75);filter:brightness(2.5)}60%{transform:translateX(-50%) scale(1.08)}100%{transform:translateX(-50%) scale(1)}}@keyframes tag-enter{0%{opacity:0;transform:translate(-50%,-8px)}100%{opacity:1;transform:translate(-50%,0)}}@keyframes minimap-glow{0%,100%{box-shadow:0 0 0 #5ed4d200}50%{box-shadow:0 0 14px #5ed4d233}}@keyframes log-entry{0%{opacity:0;transform:translateX(-10px)}100%{opacity:1;transform:none}}@keyframes moon-pulse{0%,100%{transform:scale(.96);opacity:.38}50%{transform:scale(1.05);opacity:.55}}@keyframes hud-pulse{0%{transform:scale(.82);color:#fff}55%{transform:scale(1.28);color:var(--gold)}100%{transform:scale(1)}}@keyframes card-deal{0%{opacity:0;transform:translateY(24px) scale(.92)}100%{opacity:1;transform:none}}@keyframes hero-damage{0%{opacity:0;transform:translateY(8px) scale(.8)}25%{opacity:1;transform:translateY(0) scale(1.08)}100%{opacity:0;transform:translateY(-34px) scale(1)}}@keyframes hero-panel-hit{20%{transform:translateX(9px);filter:brightness(2)}45%{transform:translateX(-6px)}70%{transform:translateX(3px)}100%{transform:none;filter:none}}@keyframes armor-panel-hit{40%{filter:drop-shadow(0 0 14px var(--cyan));transform:scale(1.025)}100%{filter:none;transform:none}}@keyframes feedback-pop{0%{opacity:0;transform:translate(-50%,-8px) scale(.9)}18%,72%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-12px)}}@keyframes turn-banner{0%{opacity:0;transform:translate(-50%,-50%) scale(.5);letter-spacing:12px}35%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-65%) scale(1.12)}}@keyframes damage-vignette{0%{opacity:0}25%{opacity:1}100%{opacity:0}}@keyframes summon-pulse{0%,100%{transform:scale(.96);box-shadow:0 0 18px #5ed4d244}50%{transform:scale(1.05);box-shadow:0 0 32px #5ed4d288}}
@media(max-width:360px) and (max-height:360px){.overlay{align-items:flex-start;overflow-y:auto;padding:6px}#title-screen{justify-content:flex-start}.title-art{opacity:.14}.title-copy{width:100%;padding:0 4px;text-align:center}.eyebrow{font-size:6px;letter-spacing:1.5px;margin:3px 0}.title-copy h2{font-size:30px;line-height:.82;letter-spacing:-1px;margin:5px 0 7px}.title-copy h2 small{font-size:8px;letter-spacing:4px;margin-bottom:5px}.title-copy>p:not(.eyebrow){font-size:11px;line-height:1.15;margin:5px 0}.title-copy .primary,.title-copy .secondary{min-height:42px;margin-top:7px;padding:8px 5px;font-size:8px}.meta-row{justify-content:center;gap:15px;margin-top:7px;font-size:7px}.license-credit{display:none!important}.modal{width:100%;max-height:none;padding:10px}.modal h2{font-size:16px;margin:3px 0 8px}.hero-options,.reward-options{gap:7px}.hero-card,.reward-card{padding:8px}.hero-sprite{width:50px;height:50px;margin-bottom:3px}.hero-card p,.reward-card p{min-height:0;font-size:11px;margin:4px 0}.combat-stage{height:100dvh;min-height:0;overflow-y:auto;padding:4px 5px}.combat-top{grid-template-columns:1fr 76px 1fr;min-height:42px}.combatant{font-size:7px}.combatant small,.combatant em{font-size:6px;margin-top:2px}.bar{height:5px;margin:2px 0}.combat-top #chain-display{padding:3px}.combat-top #chain-display b{font-size:18px}.combat-top #chain-display small,.combat-top #chain-display em{font-size:5px}.enemy-stage{flex:0 0 43px;min-height:43px}.enemy-stage img{width:48px;height:43px}.blood-moon{width:48px;height:48px}.resource-row{gap:10px;margin:1px;font-size:6px}.hand{height:103px;min-height:103px;padding-top:7px;gap:4px;justify-content:flex-start;overflow-x:auto}.card{min-width:88px;width:88px;height:96px;padding:4px}.card .mana{top:-7px;left:4px;width:22px;height:22px;font-size:10px}.card .type{font-size:5px}.card h3{font-size:7px;margin:15px 0 2px}.card p{font-size:8px;line-height:1.05;max-height:27px;overflow:hidden}.card small{font-size:5px;bottom:3px;left:4px}.hotkey{width:15px;height:15px;font-size:7px;top:3px;right:3px}.combat-actions{margin-top:2px;gap:3px}.combat-actions button{min-height:34px;padding:4px 7px;font-size:6px}.combat-actions button:hover{transform:none}#intent-label{margin-top:2px!important;padding:2px 3px;font-size:5px;line-height:1.15}#hero-damage-float{top:38px;font-size:7px;min-width:100px}#combat-feedback{top:2%;font-size:6px;padding:3px 5px;max-width:92vw;overflow:hidden;text-overflow:ellipsis}#turn-banner{font-size:17px;letter-spacing:2px}}
