@font-face{font-family:Kaisei Decol;font-style:normal;font-weight:500;font-display:swap;src:url(./assets/fonts/kaisei-decol-500.ttf) format("truetype")}@font-face{font-family:Kaisei Decol;font-style:normal;font-weight:700;font-display:swap;src:url(./assets/fonts/kaisei-decol-700.ttf) format("truetype")}:root{--game-ratio: 9 / 16;--game-w: min(100vw, 56.25dvh );--game-h: min(100dvh, calc(100vw * 16 / 9));--page-bg: #111318;--frame-bg: #f6f1e8;--ink: #1d2027;--accent: #e64b3c}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0}body{min-height:100dvh;overflow:hidden;background:var(--page-bg);color:var(--ink);font-family:Arial,Helvetica Neue,sans-serif}button{font:inherit}.app-shell{width:100vw;height:100dvh;display:grid;place-items:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.game-frame{width:var(--game-w);height:var(--game-h);aspect-ratio:var(--game-ratio);position:relative;overflow:hidden;background:var(--frame-bg);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;touch-action:manipulation;user-select:none}.game-frame *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.game-frame.is-stage-intro,.game-frame.is-stage-ready{background:#000}.stage-background,.stage-video{position:absolute;inset:0;width:100%;height:100%}.stage-background{z-index:0;top:-20%;bottom:auto;height:100%;background:radial-gradient(circle at 50% 24%,rgba(45,69,75,.52),transparent 34%),linear-gradient(180deg,#0b1518,#101010 58%,#17100b);opacity:0;pointer-events:none;transition:opacity .45s ease}.game-frame.is-background-visible .stage-background,.game-frame.is-stage-ready .stage-background{opacity:1}.stage-background:before{content:"";position:absolute;z-index:2;inset:0;background-color:#0306092e;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' seed='17' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E");background-size:180px 180px;mix-blend-mode:multiply;opacity:.72;pointer-events:none}.stage-background:after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(ellipse 58% 42% at 27% 62%,rgba(255,178,82,.13),transparent 68%),radial-gradient(ellipse 46% 36% at 78% 43%,rgba(255,204,119,.08),transparent 72%),#04080a70;opacity:.84;animation:lantern-light-flicker 12s ease-in-out infinite;pointer-events:none}.stage-video{z-index:1;object-fit:cover;opacity:0;transition:opacity .62s ease}.stage-video.is-active{opacity:1}.stage-background.is-loop-resetting .stage-video.is-active{opacity:.42;transition-duration:1.4s;transition-timing-function:cubic-bezier(.4,0,.55,1)}.stage-background.is-loop-recovering .stage-video.is-active{opacity:1;transition-duration:1.4s;transition-timing-function:cubic-bezier(.2,.65,.35,1)}@keyframes lantern-light-flicker{0%,to{opacity:.84}24%{opacity:.86}52%{opacity:.83}78%{opacity:.855}}.stage-title-card{position:absolute;z-index:1;top:calc(var(--game-h) * .105);left:50%;display:block;width:min(calc(var(--game-w) * .92),520px);aspect-ratio:1576 / 998;overflow:hidden;opacity:0;pointer-events:none;user-select:none;transform:translate(-50%) scale(.98);transition:opacity .18s ease,transform .68s cubic-bezier(.18,.82,.24,1);filter:drop-shadow(0 10px 14px rgba(0,0,0,.74));mask-image:radial-gradient(ellipse 72% 70% at center,#000 53%,rgba(0,0,0,.92) 67%,rgba(0,0,0,.35) 86%,transparent 100%)}.stage-title-card.is-visible{opacity:1;transform:translate(-50%) scale(1)}.stage-title-card__image,.stage-title-card__shade{position:absolute;inset:0;display:block;width:100%;height:100%}.stage-title-card__image{object-fit:cover;opacity:0;transform:translateY(-7%);transition:opacity .52s ease,transform .68s cubic-bezier(.18,.82,.24,1)}.stage-title-card__shade{opacity:0;background:linear-gradient(90deg,#030c0ed6,#030c0e94 38%,#030c0e14,#030c0e33),linear-gradient(0deg,rgba(0,0,0,.62),transparent 48%);transition:opacity .42s ease .1s}.stage-title-card__copy{position:absolute;z-index:2;left:9%;bottom:13%;display:grid;justify-items:start;color:#fff9df;font-family:Kaisei Decol,Yu Mincho,serif;text-shadow:0 3px 4px #000,0 0 14px rgba(95,220,214,.48);opacity:0;transform:translateY(24%);transition:opacity .46s ease .12s,transform .56s cubic-bezier(.18,.82,.24,1) .12s}.stage-title-card.is-visible .stage-title-card__image{opacity:1;transform:translateY(0)}.stage-title-card.is-visible .stage-title-card__shade,.stage-title-card.is-visible .stage-title-card__copy{opacity:1}.stage-title-card.is-visible .stage-title-card__copy{transform:translateY(0)}.stage-title-card__floor{padding:.12em .9em .18em;border-block:1px solid rgba(229,208,140,.82);font-size:clamp(18px,calc(var(--game-w) * .06),31px);font-weight:700;letter-spacing:.18em}.stage-title-card__name{margin-top:.16em;font-size:clamp(32px,calc(var(--game-w) * .105),54px);font-weight:700;letter-spacing:.06em;line-height:1.1}.fen-character{--fen-size: min(calc(var(--game-w) * .67), 280px);--fen-bottom: calc(var(--game-h) * .28);position:absolute;z-index:2;left:50%;bottom:var(--fen-bottom);width:var(--fen-size);height:auto;transform:translate(-50%);opacity:0;pointer-events:none;user-select:none;transition:opacity .22s ease,transform .38s cubic-bezier(.2,.82,.28,1),width 3s cubic-bezier(.2,.72,.18,1)}.game-frame.is-stage-intro .fen-character.is-stage-visible,.game-frame.is-stage-ready .fen-character{opacity:1}.fen-character.is-stage-falling{animation:fen-stage-fall 1.5s cubic-bezier(.36,0,.72,1) both}.fen-character.is-stage-landed{animation:fen-stage-land .7s cubic-bezier(.2,.86,.28,1) both}.fen-character.is-attack-motion{animation:none}.fen-character.is-attack-ready,.fen-character.is-attack-strike{transform:translate(-50%) translateY(calc(var(--game-h) * -.075)) scale(1.035)}.fen-character.is-attack-returning{transform:translate(-50%) translateY(0) scale(1);transition-duration:.28s}.fen-character.is-wolf-howling{transform-origin:50% 72%;animation:fen-wolf-howl-shake 90ms linear 12 both}.fen-character.is-white-wolf-transforming{z-index:18;width:100%;max-height:none;object-fit:contain;filter:none}.fen-character.is-white-wolf-releasing{z-index:18;max-height:none;object-fit:contain;filter:none}.fen-character.is-white-wolf-dancing{filter:none}.fen-character.is-enemy-hit{animation:fen-enemy-hit .76s cubic-bezier(.2,.82,.28,1) both}.fen-character.is-simple-defeat{z-index:20;width:var(--fen-size);max-height:none;object-fit:contain;filter:none;transition:none}.fen-character.is-stage-clear-dance{z-index:18;opacity:1;transform:translate(-50%) translateY(0) scale(1);animation:none}.game-frame.is-game-over .action-card{pointer-events:none}.defeat-overlay{position:absolute;z-index:76;inset:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s ease,visibility 0s linear .26s}.defeat-overlay.is-visible{opacity:1;visibility:visible;transition-delay:0s}.defeat-overlay__banner{position:absolute;top:7.5%;left:50%;display:block;width:88%;height:auto;opacity:0;transform:translate(-50%,-32%) scale(1.16);filter:blur(5px) brightness(1.35)}.defeat-overlay.is-visible .defeat-overlay__banner{animation:defeat-banner-arrive .9s cubic-bezier(.16,.84,.2,1) 80ms both}.defeat-overlay__reason{position:absolute;top:18.5%;left:50%;width:88%;margin:0;color:#fff1c7;font-family:Kaisei Decol,Yu Mincho,serif;font-size:clamp(15px,calc(var(--game-w) * .045),24px);font-weight:700;letter-spacing:.08em;text-align:center;text-shadow:0 2px 3px #07101b,0 0 8px rgba(20,71,116,.9);opacity:0;transform:translate(-50%,-20%)}.defeat-overlay.is-visible .defeat-overlay__reason{animation:defeat-reason-arrive .52s ease .72s both}.defeat-return-button{position:absolute;left:50%;bottom:8%;width:58%;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,18%) scale(.96);transition:opacity .28s ease,transform .36s ease,visibility 0s linear .36s}.defeat-return-button.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%) scale(1);transition-delay:0s}.game-frame.is-defeat-restarting .defeat-overlay{opacity:0;pointer-events:none;transition:opacity .3s ease}.game-frame.is-defeat-restarting .remaining-turns,.game-frame.is-defeat-restarting .fen-vital,.game-frame.is-defeat-restarting .exp-gauge,.game-frame.is-defeat-restarting .level-badge,.game-frame.is-defeat-restarting .deck-counter{opacity:0!important;transform:translateY(calc(var(--game-h) * -.025));transition:opacity .26s ease,transform .3s ease}@keyframes defeat-banner-arrive{0%{opacity:0;transform:translate(-50%,-32%) scale(1.16);filter:blur(5px) brightness(1.35)}62%{opacity:1;transform:translate(-50%,4%) scale(.985);filter:blur(0) brightness(1.08)}to{opacity:1;transform:translate(-50%) scale(1);filter:blur(0) brightness(1)}}@keyframes defeat-reason-arrive{0%{opacity:0;transform:translate(-50%,-20%)}to{opacity:1;transform:translate(-50%)}}.settings-button{position:absolute;z-index:119;top:.5%;right:2.2%;width:min(calc(var(--game-w) * .19),92px);margin:0;padding:0;border:0;background:transparent;opacity:1;visibility:visible;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 4px 5px rgba(0,0,0,.62));transition:opacity .22s ease,filter .16s ease,transform .16s ease,visibility 0s linear .22s}.settings-button img{display:block;width:100%;height:auto;pointer-events:none}.settings-button:hover{filter:brightness(1.1) drop-shadow(0 5px 7px rgba(0,0,0,.7))}.settings-button:active{transform:scale(.96)}.settings-modal{position:absolute;z-index:650;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility 0s linear .22s}.settings-modal.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.game-frame.is-settings-open>:not(.settings-modal){pointer-events:none!important}.settings-modal__backdrop{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:#02050dc2}.settings-modal__window{position:relative;width:min(calc(var(--game-w) * .88),430px);aspect-ratio:4 / 5;transform:scale(.96);transition:transform .26s cubic-bezier(.18,.82,.24,1);filter:drop-shadow(0 12px 18px rgba(0,0,0,.78))}.settings-modal.is-visible .settings-modal__window{transform:scale(1)}.settings-modal__frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.settings-modal__content{position:absolute;inset:14% 15% 20%;display:flex;overflow-y:auto;flex-direction:column;gap:4%;color:#fff7d9;font-family:Kaisei Decol,Yu Mincho,serif;text-shadow:0 2px 3px #000,0 0 7px rgba(49,167,213,.35);scrollbar-width:none;touch-action:pan-y}.settings-modal__content::-webkit-scrollbar{display:none}.settings-modal__title{margin:0 0 4%;font-size:clamp(24px,calc(var(--game-w) * .072),38px);line-height:1;letter-spacing:.12em;text-align:center}.settings-volume{display:grid;gap:calc(var(--game-h) * .012);margin-inline:3%;transform:translateY(calc(var(--game-h) * -.012));flex:0 0 auto}.settings-volume__heading{display:flex;align-items:baseline;justify-content:space-between;padding-inline:4%;font-size:clamp(19px,calc(var(--game-w) * .055),29px);letter-spacing:.08em}.settings-volume__value{color:#9eeeff;font-size:.95em;font-weight:700;font-variant-numeric:tabular-nums}.settings-volume__slider{-webkit-appearance:none;appearance:none;width:96%;height:calc(var(--game-h) * .065);margin:0 2%;padding:0;border:0;background:linear-gradient(#101c29,#25384a) center / calc(100% - 60px) 6px no-repeat,linear-gradient(#9b681f,#9b681f) center / calc(100% - 56px) 10px no-repeat;accent-color:#e0a632;cursor:pointer;touch-action:none}.settings-volume__slider::-webkit-slider-runnable-track{height:8px;border:0;border-radius:999px;background:transparent;box-shadow:none}.settings-volume__slider::-webkit-slider-thumb{-webkit-appearance:none;width:56px;height:56px;margin-top:-26px;border:0;background:url(./assets/ui/settings-slider-thumb.webp) center / contain no-repeat;filter:drop-shadow(0 3px 4px #000) drop-shadow(0 0 5px rgba(68,197,255,.45));appearance:none}.settings-volume__slider::-moz-range-thumb{width:56px;height:56px;border:0;background:url(./assets/ui/settings-slider-thumb.webp) center / contain no-repeat;filter:drop-shadow(0 3px 4px #000) drop-shadow(0 0 5px rgba(68,197,255,.45))}.settings-volume__slider::-moz-range-track{height:8px;border:0;background:transparent}.settings-close-button{width:88%;margin:auto auto 0;align-self:center}.settings-close-button .text-frame-button__label{font-size:clamp(17px,calc(var(--game-w) * .052),28px)}.game-frame.is-level-up-selecting .card-row{pointer-events:none}.level-up-overlay{position:absolute;z-index:80;inset:0;display:grid;place-items:center;background:#00030ca3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility 0s linear .22s}.level-up-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.level-up-overlay.is-closing{opacity:0;pointer-events:none}.level-up-panel{position:relative;width:96%;aspect-ratio:720 / 686;opacity:0;transform:translateY(5%) scale(.76);transition:opacity .26s ease,transform .52s cubic-bezier(.16,.9,.25,1.18)}.level-up-overlay.is-visible:not(.is-closing) .level-up-panel{opacity:1;transform:translateY(5%) scale(1)}.level-up-panel__frame{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;user-select:none}.level-up-panel__title{position:absolute;z-index:5;top:2.2%;left:10%;right:10%;margin:0;color:#fff5cf;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;font-size:clamp(18px,calc(var(--game-w) * .056),30px);font-weight:700;line-height:1.15;letter-spacing:.08em;text-align:center;text-shadow:0 2px 2px rgba(0,0,0,.95),0 0 7px rgba(255,206,82,.58);pointer-events:none}.level-up-transition{position:absolute;z-index:4;top:10%;left:50%;display:grid;grid-template-columns:minmax(0,1.25fr) .75fr minmax(0,1.25fr);width:58%;height:8%;align-items:center;gap:8%;transform:translate(-50%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.82)) drop-shadow(0 0 5px rgba(255,211,95,.42));pointer-events:none}.level-up-transition__level{display:flex;width:100%;height:100%;overflow:hidden;align-items:center;justify-content:center}.level-up-transition__from{justify-content:flex-start}.level-up-transition__to{justify-content:flex-end}.level-up-transition__digit{display:block;max-width:50%;flex:0 1 auto;width:auto;height:100%;object-fit:contain}.level-up-transition__digit+.level-up-transition__digit{margin-left:-8%}.level-up-transition__arrow{display:block;width:100%;height:100%;object-fit:contain}.level-up-options{position:absolute;inset:21.5% 3.3% 4%;display:grid;grid-template-columns:repeat(3,1fr);gap:1.7%}.level-up-option{position:relative;min-width:0;color:#fff7dc;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;text-align:center;text-shadow:0 2px 2px #000,0 0 5px #000;transition:filter .18s ease,transform .18s ease}.level-up-option.is-selected{filter:brightness(1.22) drop-shadow(0 0 10px rgba(255,207,83,.85));transform:translateY(-1.5%)}.level-up-option__frame-wrap{position:relative;width:100%;aspect-ratio:220 / 412}.level-up-option__frame{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}.level-up-option__title,.level-up-option__count{position:absolute;z-index:5;left:8%;right:8%;overflow:hidden}.level-up-option__title{top:4.2%;font-size:clamp(9px,calc(var(--game-w) * .04),20px);font-weight:700;line-height:1.1;white-space:nowrap}.level-up-option__count{top:12.2%;font-size:clamp(8px,calc(var(--game-w) * .034),17px);font-weight:700;line-height:1}.level-up-option__card-stack{position:absolute;z-index:3;top:21.5%;left:50%;width:84%;aspect-ratio:400 / 639;--card-width: 100%;--card-height: 100%;transform:translate(-50%)}.level-up-selected-stack{position:absolute;z-index:95;margin:0;transform:none;pointer-events:none;transition:opacity .7s ease .12s,filter .7s ease,transform .76s cubic-bezier(.22,.7,.28,1)}.level-up-selected-stack.is-dissolving{opacity:0;filter:brightness(1.8) blur(3px);transform:scale(.72)}.level-up-option__confirm{display:block;width:92%;margin:2.5% auto 0;padding:0;border:0;background:transparent;cursor:pointer;transition:transform .13s ease,filter .13s ease}.level-up-option__confirm img{display:block;width:100%;height:auto;pointer-events:none}.level-up-option__confirm:hover,.level-up-option__confirm:focus-visible{filter:brightness(1.14) drop-shadow(0 0 6px rgba(255,217,113,.76));outline:none}.level-up-option__confirm:active{transform:translateY(2px) scale(.98)}.level-up-option__confirm:disabled{cursor:default}@keyframes fen-wolf-howl-shake{0%,to{transform:translate(-50%) translateY(calc(var(--game-h) * -.075)) scale(1.035) rotate(0)}25%{transform:translate(calc(-50% - var(--game-w) * .022)) translateY(calc(var(--game-h) * -.078)) scale(1.05) rotate(-2.6deg)}75%{transform:translate(calc(-50% + var(--game-w) * .022)) translateY(calc(var(--game-h) * -.072)) scale(1.05) rotate(2.6deg)}}@keyframes fen-enemy-hit{0%{transform:translate(-50%) translateY(0) scale(1)}26%{transform:translate(calc(-50% + var(--game-w) * .025)) translateY(calc(var(--game-h) * .02)) scale(.95) rotate(2deg)}58%{transform:translate(calc(-50% - var(--game-w) * .012)) translateY(calc(var(--game-h) * .012)) scale(.98) rotate(-1deg)}to{transform:translate(-50%) translateY(0) scale(1)}}@keyframes fen-stage-fall{0%{transform:translate(-50%) translateY(calc(var(--game-h) * -.92)) scale(.96)}to{transform:translate(-50%) translateY(0) scale(1)}}@keyframes fen-stage-land{0%{transform:translate(-50%) translateY(calc(var(--game-h) * .012)) scale(1.035,.965)}48%{transform:translate(-50%) translateY(calc(var(--game-h) * -.008)) scale(.99,1.015)}to{transform:translate(-50%) translateY(0) scale(1)}}.enemy-field{--enemy-area-top: calc(var(--game-h) * .13);--enemy-size: min(calc(var(--game-w) * .265), 116px);position:absolute;z-index:2;top:var(--enemy-area-top);left:50%;display:block;width:min(calc(var(--game-w) * .96),480px);height:calc(var(--game-h) * .28);transform:translate(-50%);opacity:0;pointer-events:none;user-select:none;transition:opacity .22s ease}.boss-warning{position:absolute;z-index:110;left:50%;top:31%;width:min(calc(var(--game-w) * .94),430px);aspect-ratio:720 / 180;translate:-50% -50%;opacity:0;pointer-events:none;transition:opacity .48s ease}.boss-warning.is-visible{opacity:1}.boss-warning.is-leaving{opacity:0}.boss-warning img{position:absolute;display:block;width:100%;height:auto;object-fit:contain}.boss-warning__background{z-index:0;left:0;top:25%;opacity:0;transition:opacity .56s ease}.boss-warning__bar{z-index:2;left:0;transition:transform .68s cubic-bezier(.16,.82,.22,1)}.boss-warning__bar--top{top:-18%;transform:translate(-115%)}.boss-warning__bar--bottom{bottom:-18%;transform:translate(115%)}.boss-warning__text{z-index:3;left:16%;top:35%;width:68%!important;opacity:0}.boss-warning.is-visible .boss-warning__background{opacity:1}.boss-warning.is-visible .boss-warning__bar{transform:translate(0)}.boss-warning.is-visible .boss-warning__text{animation:boss-warning-blink .56s ease-in-out .62s infinite alternate}.boss-warning.is-leaving .boss-warning__text{animation:none;opacity:0}@keyframes boss-warning-blink{0%{opacity:.18;filter:brightness(.8)}to{opacity:1;filter:brightness(1.3) drop-shadow(0 0 8px rgba(255,55,20,.9))}}.stage-clear-overlay{position:absolute;z-index:120;left:50%;top:26%;width:min(calc(var(--game-w) * .94),440px);translate:-50% -50%;opacity:0;pointer-events:none;transition:opacity .52s ease}.stage-clear-overlay__image{position:relative;z-index:2;display:block;width:100%;height:auto;opacity:0;transform:scale(2.1);filter:brightness(2.2) blur(6px)}.stage-clear-overlay__burst{position:absolute;z-index:1;left:50%;top:50%;width:38%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;opacity:0;background:radial-gradient(circle,rgba(255,255,255,.98) 0 8%,rgba(255,222,91,.88) 24%,rgba(255,132,25,.35) 48%,transparent 72%)}.stage-clear-overlay.is-visible{opacity:1}.stage-clear-overlay.is-impact .stage-clear-overlay__image{animation:stage-clear-impact .78s cubic-bezier(.12,.84,.18,1.18) both}.stage-clear-overlay.is-impact .stage-clear-overlay__burst{animation:stage-clear-burst .92s ease-out both}@keyframes stage-clear-impact{0%{opacity:0;transform:scale(2.1);filter:brightness(2.4) blur(7px)}42%{opacity:1;transform:scale(.88);filter:brightness(1.8) blur(0)}62%{transform:scale(1.08)}78%{transform:scale(.97)}to{opacity:1;transform:scale(1);filter:brightness(1) drop-shadow(0 8px 10px rgba(0,0,0,.72))}}@keyframes stage-clear-burst{0%{opacity:0;transform:scale(.15)}22%{opacity:1}to{opacity:0;transform:scale(4.6)}}.game-frame.is-stage-ready .enemy-field{opacity:1}.target-callout{position:absolute;z-index:6;top:auto;bottom:calc(var(--game-h) * .225);left:50%;width:min(calc(var(--game-w) * .46),230px);aspect-ratio:478 / 96;opacity:0;pointer-events:none;transform:translate(-50%,calc(var(--game-h) * -.01)) scale(.94);transition:opacity .18s ease,transform .22s cubic-bezier(.18,.82,.24,1)}.target-callout.is-visible{opacity:1;transform:translate(-50%) scale(1)}.target-callout.is-dismissing{opacity:0;transform:translate(-50%,calc(var(--game-h) * -.006)) scale(.9);transition:opacity .15s ease,transform .18s cubic-bezier(.34,0,.2,1)}.target-callout__frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5)) drop-shadow(0 0 5px rgba(255,205,74,.42))}.target-callout__text{position:absolute;inset:19% 15% 20%;display:grid;place-items:center;color:#fff8df;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;font-size:clamp(15px,calc(var(--game-w) * .038),22px);font-weight:700;line-height:1;letter-spacing:0;text-align:center;white-space:nowrap;text-shadow:0 2px 0 #2b1c12,0 0 7px rgba(255,207,82,.74),0 0 3px rgba(0,0,0,.96)}.particle-canvas{position:absolute;z-index:100;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .22s ease}.game-frame.is-stage-intro .particle-canvas,.game-frame.is-stage-ready .particle-canvas{opacity:1}.enemy-unit{position:absolute;display:block;width:var(--enemy-size);height:calc(var(--enemy-size) * 1.28);translate:-50% 0;transition:left .36s cubic-bezier(.18,.82,.24,1),top .36s cubic-bezier(.18,.82,.24,1),opacity .18s ease,transform .22s ease,filter .22s ease}.enemy-unit.is-boss{width:calc(var(--enemy-size) * 2);height:calc(var(--enemy-size) * 2)}.enemy-unit.is-boss-revealing{opacity:0;transform:scale(.58);filter:brightness(0) blur(5px)}.boss-arrival-smoke{position:absolute;z-index:8;left:50%;top:23%;width:1px;height:1px;pointer-events:none}.boss-arrival-smoke span{position:absolute;left:0;top:0;width:var(--smoke-size);aspect-ratio:1;border-radius:50%;opacity:0;background:radial-gradient(circle,#ebfff6eb 0 18%,#54af9ac7 38%,#0f414000 72%);filter:blur(3px) drop-shadow(0 0 8px rgba(91,255,211,.5));animation:boss-smoke-bloom 1.05s cubic-bezier(.12,.7,.22,1) var(--smoke-delay) both}@keyframes boss-smoke-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}22%{opacity:.95}to{opacity:0;transform:translate(calc(-50% + var(--smoke-x)),calc(-50% + var(--smoke-y))) scale(1.65)}}.enemy-unit__target{position:absolute;z-index:4;left:50%;top:39%;display:block;width:calc(var(--enemy-size) * 1.08);aspect-ratio:1;object-fit:contain;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.82);transition:opacity .18s ease,transform .24s cubic-bezier(.18,.82,.24,1);filter:drop-shadow(0 0 5px rgba(70,205,255,.72)) drop-shadow(0 2px 3px rgba(0,0,0,.55))}.enemy-unit__target.is-visible{opacity:1;transform:translate(-50%,-50%) scale(.96)}.enemy-unit__target.is-unknown{opacity:.82;transform:translate(-50%,-50%) scale(.88);transition-delay:70ms;animation:target-unknown-pulse .96s ease-in-out .18s infinite alternate}.enemy-unit__target.is-dismissing{opacity:0;transform:translate(-50%,-50%) scale(.76);transition:opacity .16s ease,transform .18s cubic-bezier(.34,0,.2,1);transition-delay:0ms;animation:none}@keyframes target-unknown-pulse{0%{opacity:.68;transform:translate(-50%,-50%) scale(.88)}to{opacity:.86;transform:translate(-50%,-50%) scale(.94)}}.enemy-unit.is-defeated{pointer-events:none;animation:enemy-defeated-fade .9s ease-in both}.enemy-unit.is-final-boss-defeated{z-index:20;pointer-events:none;transform-origin:50% 58%;animation:final-boss-defeated 3.4s cubic-bezier(.2,.7,.24,1) both}@keyframes enemy-defeated-fade{0%{opacity:1;filter:blur(0) brightness(1);transform:scale(1)}28%{opacity:.94;filter:blur(0) brightness(1.12);transform:scale(.98)}to{opacity:0;filter:blur(2px) brightness(1.35);transform:scale(.88)}}@keyframes final-boss-defeated{0%{opacity:1;filter:brightness(1) saturate(1) blur(0);transform:scale(1)}18%{opacity:1;filter:brightness(1.85) saturate(.75) drop-shadow(0 0 18px #bdefff);transform:scale(1.09)}34%{opacity:.96;filter:brightness(1.25) saturate(.8) drop-shadow(0 0 28px #78cfff);transform:scale(.98)}62%{opacity:.72;filter:brightness(2.2) saturate(.35) blur(1px) drop-shadow(0 0 38px #e8fbff);transform:scale(1.14)}to{opacity:0;filter:brightness(3.2) saturate(0) blur(10px);transform:scale(.72)}}.enemy-unit.is-hit .enemy-unit__sprite{animation:enemy-hit-shudder .26s ease-out both}.enemy-unit.is-approaching{z-index:5}.enemy-unit.is-approaching .enemy-unit__sprite{transform:translate(var(--enemy-approach-x, 0),var(--enemy-approach-y, 0)) scale(1.16);transition:transform .46s cubic-bezier(.18,.82,.24,1)}.enemy-unit.is-attacking{z-index:5}.enemy-unit.is-attacking .enemy-unit__sprite{z-index:6;transform:translate(var(--enemy-approach-x, 0),var(--enemy-approach-y, 0)) scale(1.26);transition:transform .22s cubic-bezier(.18,.82,.24,1);filter:brightness(1.18) drop-shadow(0 0 12px rgba(255,112,72,.5))}.enemy-unit.is-counter-vulnerable .enemy-unit__sprite{transform:translate(var(--enemy-approach-x, 0),var(--enemy-approach-y, 0)) scale(1.12);transition:none}.enemy-unit.is-counter-vulnerable.is-hit .enemy-unit__sprite{animation:counter-enemy-hit-shudder .26s ease-out both}.enemy-unit.is-returning{z-index:5}.enemy-unit.is-returning .enemy-unit__sprite{transform:translate(0) scale(1);transition:transform .42s cubic-bezier(.4,0,.22,1)}.enemy-unit__gauge.is-fading{opacity:0;transform:translate(calc(-50% + var(--enemy-size) * .03));transition:opacity .9s ease}@keyframes enemy-hit-shudder{0%{transform:translate(0) scale(1);filter:brightness(1)}35%{transform:translate(-6%) scale(.94);filter:brightness(1.7)}70%{transform:translate(3%) scale(1.02)}to{transform:translate(0) scale(1);filter:brightness(1)}}@keyframes counter-enemy-hit-shudder{0%{transform:translate(var(--enemy-approach-x, 0),var(--enemy-approach-y, 0)) scale(1.12);filter:brightness(1)}35%{transform:translate(calc(var(--enemy-approach-x, 0px) - 7px),var(--enemy-approach-y, 0)) scale(1.05);filter:brightness(1.75)}68%{transform:translate(calc(var(--enemy-approach-x, 0px) + 4px),var(--enemy-approach-y, 0)) scale(1.09);filter:brightness(1.28)}to{transform:translate(var(--enemy-approach-x, 0),var(--enemy-approach-y, 0)) scale(1.12);filter:brightness(1)}}.enemy-unit.is-arriving{animation:enemy-arrive .36s cubic-bezier(.18,.82,.24,1) both}@keyframes enemy-arrive{0%{opacity:0;transform:translateY(calc(var(--enemy-size) * -.12)) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.enemy-unit__hp{position:absolute;z-index:2;left:0;bottom:calc(var(--enemy-size) * .13);display:flex;justify-content:center;align-items:center;gap:0;width:100%;height:calc(var(--enemy-size) * .28)}.enemy-unit__hp-icon{flex:0 0 auto;display:block;width:calc(var(--enemy-size) * .33);aspect-ratio:1;object-fit:contain;transition:width .28s cubic-bezier(.18,.82,.24,1),margin-left .32s cubic-bezier(.18,.82,.24,1),opacity .22s ease,transform .26s ease,filter .22s ease;filter:drop-shadow(0 2px 2px rgba(0,0,0,.62)) drop-shadow(0 0 4px rgba(255,178,67,.52))}.enemy-unit__hp-icon+.enemy-unit__hp-icon{margin-left:var(--enemy-hp-overlap, -1%)}.enemy-unit__hp-icon.is-breaking{opacity:0;transform:translateY(calc(var(--enemy-size) * -.1)) scale(.35) rotate(-10deg);filter:drop-shadow(0 0 5px rgba(255,65,45,.95)) drop-shadow(0 0 10px rgba(255,18,18,.75))}.enemy-unit__hp-icon.is-collapsing{width:0}.enemy-unit__sprite{position:absolute;z-index:3;left:0;bottom:calc(var(--enemy-size) * .35);display:block;width:100%;height:calc(var(--enemy-size) * .78);object-fit:contain;filter:drop-shadow(0 8px 6px rgba(0,0,0,.46)) drop-shadow(0 0 8px rgba(12,20,18,.55))}.enemy-unit.is-boss .enemy-unit__sprite{left:-50%;bottom:calc(var(--enemy-size) * .58);width:200%;height:auto}.enemy-unit.is-boss .enemy-unit__hp{left:-50%;bottom:calc(var(--enemy-size) * .29);width:200%}.enemy-unit.is-boss .enemy-unit__gauge{bottom:calc(var(--enemy-size) * .16)}.enemy-unit__gauge{position:absolute;z-index:2;left:50%;bottom:0;width:calc(var(--enemy-size) * .72);aspect-ratio:929 / 193;transform:translate(calc(-50% + var(--enemy-size) * .03))}.enemy-unit__gauge-background{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(0,0,0,.52))}.enemy-unit__gauge-frame{position:absolute;z-index:3;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.enemy-unit__gauge-track{position:absolute;z-index:1;left:16.6%;right:1.2%;top:17%;height:58%;overflow:hidden;clip-path:polygon(0 0,93.8% 0,100% 50%,93.8% 100%,0 100%)}.enemy-unit__gauge-fill,.enemy-unit__gauge-preview{position:absolute;top:0;bottom:0;transition:width .52s cubic-bezier(.18,.82,.24,1)}.enemy-unit__gauge-fill{z-index:2;left:0;background:linear-gradient(180deg,#53c3fff2,#0056fffa 45%,#002dbe);box-shadow:inset 0 1px #ffffffb8,0 0 5px #0072ffd1}.enemy-unit__gauge-preview{z-index:1;background:linear-gradient(180deg,#b5fffffa,#4eddfff5 50%,#12a5e3fa);box-shadow:inset 0 1px #ffffffd9,0 0 5px #5aeaffdb}.enemy-unit__gauge-preview.is-growing{transform-origin:left center;animation:enemy-preview-grow .62s cubic-bezier(.18,.82,.24,1) .16s both}.enemy-unit__gauge-preview.is-preparing{animation:none;transform:scaleX(0);transform-origin:left center}.enemy-unit__gauge-preview.is-locked{animation:none;transform:scaleX(1);transition:none}@keyframes enemy-preview-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.fen-vital{--card-area-h: calc(var(--game-h) * .22);--hud-lower: calc(var(--game-h) * .015);--hud-lift: 0px;--fen-vital-face-size: min(calc(var(--game-w) * .25), 134px);position:absolute;z-index:6;left:calc(var(--game-w) * .018);bottom:calc(var(--card-area-h) + var(--game-h) * .005 - var(--hud-lower) + var(--hud-lift));width:var(--fen-vital-face-size);height:calc(var(--fen-vital-face-size) * 1.08);opacity:0;pointer-events:none;user-select:none;transform:translate(calc(var(--fen-vital-face-size) * -1.18));transition:opacity .45s ease,transform .45s ease}.remaining-turns{position:absolute;z-index:7;top:calc(var(--game-h) * .018);left:calc(var(--game-w) * .018);width:min(calc(var(--game-w) * .227),116px);aspect-ratio:360 / 158;opacity:0;pointer-events:none;user-select:none;transform:translate(-112%);transition:opacity .45s ease,transform .45s ease}.remaining-turns.is-visible{opacity:1;transform:translate(0)}.remaining-turns__frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.62))}.remaining-turns__count{position:absolute;z-index:1;top:17%;right:5%;display:grid;width:55%;height:64%;place-items:center;color:#fff9e9;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;font-size:clamp(14px,calc(var(--game-w) * .047),24px);font-weight:700;line-height:1;transform:translate(-.5em);text-shadow:0 2px 2px #000,0 0 6px rgba(255,206,79,.72)}.game-frame.is-hud-visible .fen-vital,.game-frame.is-stage-ready .fen-vital{opacity:1;transform:translate(0)}.game-frame.is-title-starting .fen-vital,.game-frame.is-title-starting .exp-gauge,.game-frame.is-title-starting .deck-counter{z-index:31}.fen-vital__face{position:absolute;left:0;top:0;display:block;width:var(--fen-vital-face-size);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(0,0,0,.42))}.fen-vital__hearts{position:absolute;left:1%;right:1%;bottom:0;display:flex;align-items:center;justify-content:center;gap:0;transform:translateY(calc(var(--fen-vital-face-size) * -.08))}.fen-vital__heart{display:block;width:calc(var(--fen-vital-face-size) * .234);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.46));transition:transform .22s ease,filter .22s ease}.fen-vital__heart.is-breaking{z-index:10;animation:fen-heart-breaking .46s cubic-bezier(.2,.82,.24,1) both;filter:drop-shadow(0 0 5px rgba(255,65,45,.95)) drop-shadow(0 0 10px rgba(255,18,18,.75))}.fen-vital__heart.is-recovering{z-index:10;animation:fen-heart-recovering .76s cubic-bezier(.18,.82,.24,1) both;filter:drop-shadow(0 0 6px rgba(255,247,154,1)) drop-shadow(0 0 13px rgba(65,255,120,.95))}@keyframes fen-heart-recovering{0%{transform:scale(.82);filter:brightness(.75)}48%{transform:scale(1.22);filter:brightness(2.35)}76%{transform:scale(1.08);filter:brightness(1.55)}to{transform:scale(1);filter:brightness(1)}}@keyframes fen-heart-breaking{0%{transform:translate(0) scale(1)}16%{transform:translate(-8%) scale(1.22) rotate(-7deg);filter:brightness(3)}34%{transform:translate(7%) scale(.92) rotate(6deg);filter:brightness(1.2)}54%{transform:translate(-5%) scale(1.12) rotate(-4deg);filter:brightness(2.2)}76%{transform:translate(3%) scale(.98) rotate(2deg)}to{transform:translate(0) scale(1)}}.fen-vital__heart+.fen-vital__heart{margin-left:calc(var(--fen-vital-face-size) * -.035)}.exp-gauge{--card-area-h: calc(var(--game-h) * .22);--hud-lower: calc(var(--game-h) * .015);--hud-lift: 0px;--fen-vital-face-size: min(calc(var(--game-w) * .25), 134px);position:absolute;z-index:6;left:calc(var(--game-w) * .018 + (var(--fen-vital-face-size) - min(calc(var(--game-w) * .2267),122px)) / 2);bottom:calc(var(--card-area-h) + var(--game-h) * .005 + var(--fen-vital-face-size) * .98 - var(--hud-lower) + var(--hud-lift));width:min(calc(var(--game-w) * .2267),122px);aspect-ratio:1;opacity:0;pointer-events:none;user-select:none;transform:translate(calc(var(--fen-vital-face-size) * -1.2));transition:opacity .45s ease,transform .45s ease}.game-frame.is-hud-visible .exp-gauge,.game-frame.is-stage-ready .exp-gauge{opacity:1;transform:translate(0)}.exp-gauge__back,.exp-gauge__over{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 5px rgba(0,0,0,.4))}.exp-gauge__back{z-index:0}.exp-gauge__over{z-index:1;transition:opacity .16s linear}.level-badge{position:absolute;z-index:2;left:59%;top:38%;display:grid;justify-items:center;gap:calc(var(--game-w) * .001);width:31%;transform:translate(-50%,-40%);pointer-events:none}.level-badge__label{display:block;width:58%;height:auto;object-fit:contain;filter:drop-shadow(0 0 5px rgba(69,219,255,.72))}.level-badge__digits{display:flex;justify-content:center;align-items:center;min-width:100%;height:calc(var(--game-w) * .049)}.level-badge__digit{display:block;width:auto;height:100%;object-fit:contain;filter:drop-shadow(0 0 5px rgba(69,219,255,.7)) drop-shadow(0 1px 1px rgba(0,0,0,.42))}.level-badge__digit+.level-badge__digit{margin-left:calc(var(--game-w) * -.004)}.deck-counter{--card-area-h: calc(var(--game-h) * .22);--hud-lower: calc(var(--game-h) * .015);--hud-lift: 0px;position:absolute;z-index:6;right:calc(var(--game-w) * .005);bottom:calc(var(--card-area-h) + var(--game-h) * .005 - var(--hud-lower) + var(--hud-lift));width:min(calc(var(--game-w) * .1867),100px);aspect-ratio:1;opacity:0;pointer-events:none;user-select:none;transform:translate(calc(var(--game-w) * .25));transition:opacity .45s ease,transform .45s ease}.game-frame.is-hud-visible .deck-counter,.game-frame.is-stage-ready .deck-counter{opacity:1;transform:translate(0)}.deck-counter__image{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(0,0,0,.45))}.deck-counter__count{position:absolute;right:11.5%;bottom:17.5%;width:37%;height:31%;display:grid;place-items:center;color:#fff8df;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;font-size:clamp(16px,calc(var(--game-w) * .0433),25px);font-weight:700;line-height:1;letter-spacing:0;text-shadow:0 2px 0 #2b1c12,0 0 5px rgba(0,0,0,.9)}.card-row{--card-gap: calc(var(--game-w) * .021);--card-side-padding: calc(var(--game-w) * .035);--card-vertical-padding: calc(var(--game-h) * .016);--card-area-h: calc(var(--game-h) * .22);--card-width: min( calc((var(--game-w) - var(--card-side-padding) * 2 - var(--card-gap) * 3) / 4), calc((var(--card-area-h) - var(--card-vertical-padding) * 2) * 400 / 639) );--card-height: calc(var(--card-width) * 639 / 400);position:absolute;z-index:6;left:0;bottom:0;display:grid;grid-template-columns:repeat(4,var(--card-width));align-content:center;justify-content:center;gap:var(--card-gap);width:100%;height:var(--card-area-h);box-sizing:border-box;padding:var(--card-vertical-padding) var(--card-side-padding);opacity:0;pointer-events:none;transition:opacity .22s ease}.persistent-card-table{position:absolute;z-index:5;bottom:0;left:0;display:block;width:100%;height:auto;aspect-ratio:960 / 384;object-fit:contain;object-position:center bottom;user-select:none;pointer-events:none}.card-row:before{content:none;position:absolute;z-index:0;top:0;left:0;width:100%;height:var(--game-w);background:url(./assets/ui/card-table.webp?v=20260715-1) center bottom / 100% auto no-repeat;transform:translateY(calc(var(--game-w) * -.08));pointer-events:none;transition:transform .52s cubic-bezier(.18,.82,.24,1)}.game-frame.is-stage-intro .card-row,.game-frame.is-stage-ready .card-row{opacity:1}.game-frame.is-stage-ready .card-row{pointer-events:auto}.action-card{--card-enter-x: 0;--card-layout-x: 0px;--card-layout-y: 0px;--card-rest-y: calc(var(--game-h) * .004);position:relative;z-index:1;display:block;width:var(--card-width);height:var(--card-height);transform:translate(var(--card-enter-x),var(--card-rest-y));opacity:1;transition:transform .36s cubic-bezier(.18,.82,.24,1),opacity .22s ease,filter .22s ease;touch-action:none;user-select:none;cursor:pointer}.game-frame.is-card-selectable .action-card:not(.is-spent){filter:brightness(1.06) drop-shadow(0 0 calc(var(--game-w) * .008) rgba(113,211,255,.44))}.game-frame.is-card-selectable .action-card:not(.is-spent):hover{filter:brightness(1.14) drop-shadow(0 0 calc(var(--game-w) * .012) rgba(154,230,255,.68))}.game-frame.is-stage-ready:not(.is-card-selectable) .action-card:not(.is-spent){filter:grayscale(.34) brightness(.62);pointer-events:none}.action-card.is-reflowing{animation:card-reflow .42s cubic-bezier(.18,.82,.24,1) both}@keyframes card-reflow{0%{translate:var(--card-layout-x) var(--card-layout-y)}to{translate:0 0}}.action-card.is-entering{--card-enter-x: calc(var(--game-w) * .92);opacity:.88}.action-card.is-spent{opacity:0;transform:translateY(calc(var(--card-rest-y) + var(--game-h) * .04)) scale(.92);pointer-events:none}.action-card.is-pressing{transform:translateY(calc(var(--card-rest-y) - var(--game-h) * .012)) scale(1.025)}.action-card.is-canceled{opacity:.58;transform:translateY(calc(var(--card-rest-y) + var(--game-h) * .02)) scale(.96)}.action-card__background,.action-card__content{position:absolute;inset:0}.action-card__background{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.action-card__content{z-index:1;color:#fff;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;font-weight:500;text-align:center;text-shadow:-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000,1px 1px 1px #000,0 2px 3px #000;pointer-events:none}.action-card__title{position:absolute;z-index:2;top:4.5%;left:10%;right:10%;min-width:0;overflow:hidden;font-size:16px;font-weight:700;line-height:1.05;letter-spacing:0;white-space:nowrap}.action-card__art{position:absolute;z-index:1;inset:15.5% 7% 34%;display:block;width:86%;height:50.5%;object-fit:contain;opacity:1}.action-card__description{position:absolute;z-index:2;inset:70% 10% 8.5%;min-width:0;max-height:none;overflow:hidden;padding:calc(var(--card-width) * .018) calc(var(--card-width) * .026);color:#fff;font-size:18px;font-weight:500;line-height:1.1;letter-spacing:0;text-align:left;text-shadow:-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000,1px 1px 1px #000,0 2px 3px #000}.action-card__power{position:absolute;z-index:2;left:8%;right:8%;bottom:1.5%;display:flex;align-items:center;justify-content:center;gap:0;min-height:calc(var(--card-height) * .1)}.action-card__power.is-empty{display:none}.action-card__power-icon{display:block;flex:0 0 13%;width:13%;aspect-ratio:1;object-fit:contain;transform:scale(1.8);transform-origin:center}.level-up-option__card-stack .reward-card{position:absolute;inset:0;width:100%;height:100%;cursor:default;pointer-events:none;touch-action:auto;opacity:1;transform:translate(var(--stack-offset)) rotate(var(--stack-angle));transform-origin:center 88%;transition:none;filter:drop-shadow(0 3px 3px rgba(0,0,0,.72))}.game-frame.is-card-selectable .level-up-option__card-stack .reward-card,.game-frame.is-stage-ready:not(.is-card-selectable) .level-up-option__card-stack .reward-card{filter:drop-shadow(0 3px 3px rgba(0,0,0,.72));pointer-events:none}.title-screen{position:absolute;z-index:30;inset:0;width:100%;height:100%;overflow:hidden;background:#000;transition:opacity .42s ease}.title-screen__background{position:absolute;z-index:0;top:-20%;left:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center center;user-select:none;pointer-events:none}.title-screen__tips{position:absolute;z-index:1;top:43%;left:calc(13% - .25em);display:flex;width:27%;height:18%;overflow:hidden;box-sizing:border-box;padding:5% .5% 1.5% 3.5%;flex-direction:column;align-items:center;justify-content:flex-start;gap:calc(var(--game-h) * .008);color:#fff;font-family:Kaisei Decol,Yu Mincho,Hiragino Mincho ProN,YuMincho,serif;text-align:center;text-shadow:-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000,1px 1px 1px #000,0 2px 3px #000;opacity:0;transition:opacity .3s ease;transform:perspective(calc(var(--game-w) * 2.2)) rotateY(10deg);transform-origin:center center;pointer-events:none}.title-screen.is-background-ready .title-screen__tips{opacity:1}.title-screen__tips.is-changing{opacity:0}.title-screen__tip-title{display:block;color:#fff;font-size:clamp(8px,calc(var(--game-w) * .034),18px);font-weight:800;line-height:1.15;white-space:nowrap}.title-screen__tip-text{display:block;font-size:clamp(6.5px,calc(var(--game-w) * .026),14px);font-weight:700;line-height:1.32;text-wrap:balance}.title-screen__fen-thinking{position:absolute;z-index:2;top:22%;left:21%;display:block;width:86%;height:auto;contain:layout paint;user-select:none;pointer-events:none}.title-screen__fen-shadow{position:absolute;z-index:1;top:69%;left:59%;display:block;width:25%;height:2.7%;border-radius:50%;background:#24180b61;filter:blur(calc(var(--game-w) * .008));transform:translate(-50%,-50%);pointer-events:none}.title-screen__logo{position:absolute;z-index:2;top:0;left:50%;display:block;width:100%;height:auto;opacity:0;transform:translate(-50%) translateY(calc(var(--game-h) * -.012)) scale(.985);transform-origin:center top;user-select:none;pointer-events:none}.title-screen.is-logo-ready .title-screen__logo{animation:title-logo-reveal .72s cubic-bezier(.2,.72,.24,1) .12s forwards}@keyframes title-logo-reveal{to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.title-screen__table{position:absolute;z-index:1;bottom:0;left:0;display:block;width:100%;height:auto;aspect-ratio:960 / 384;object-fit:contain;object-position:center bottom;user-select:none;pointer-events:none}.title-screen__menu{position:absolute;z-index:3;top:calc(78% - var(--game-w) * .08 + var(--game-h) * .069);left:50%;display:flex;width:92%;flex-direction:column;align-items:center;gap:calc(var(--game-h) * .008);opacity:0;transform:translate(-50%);transition:opacity .3s ease}.title-screen__loading{position:absolute;z-index:3;left:50%;bottom:10%;color:#fff6d6;font-family:Kaisei Decol,Yu Mincho,serif;font-size:clamp(12px,calc(var(--game-w) * .044),22px);font-weight:700;letter-spacing:.08em;text-align:center;text-shadow:0 2px 3px #000,0 0 8px rgba(72,216,214,.55);transform:translate(-50%);transition:opacity .18s ease;white-space:nowrap;pointer-events:none}.title-screen.is-ready .title-screen__loading{opacity:0}.title-screen.is-ready .title-screen__menu{opacity:1}.title-screen__menu:not(.has-continue){top:auto;bottom:8%}.title-screen.is-starting .title-screen__menu{opacity:0;pointer-events:none}.title-image-button{position:relative;display:block;width:58%;margin:0;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 calc(var(--game-h) * .005) calc(var(--game-h) * .006) rgba(2,8,22,.55));transition:transform .16s ease,filter .16s ease}.defeat-overlay .defeat-return-button{position:absolute;left:50%;bottom:8%;margin:0}.title-image-button--continue{width:72%}.title-image-button[hidden]{display:none}.button-frame{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.text-frame-button__label,.image-frame-button__action{position:absolute;z-index:3;color:#fff6d6;font-family:Kaisei Decol,Yu Mincho,serif;font-weight:700;line-height:1;text-align:center;text-shadow:0 2px 3px #000,0 0 7px rgba(72,216,214,.55);pointer-events:none}.text-frame-button__label{inset:50% 8% auto;font-size:clamp(13px,calc(var(--game-w) * .041),22px);letter-spacing:.1em;transform:translateY(-54%)}.image-frame-button__action{left:54%;right:7%;top:25%;font-size:clamp(11px,calc(var(--game-w) * .035),19px);letter-spacing:.1em;transform:translateY(-.67em)}.continue-stage-preview{position:absolute;z-index:2;left:8%;top:8.5%;display:block;width:42.5%;height:82%;overflow:hidden;pointer-events:none;mask-image:radial-gradient(ellipse 75% 72% at center,#000 55%,rgba(0,0,0,.88) 72%,rgba(0,0,0,.25) 90%,transparent 100%)}.continue-stage-preview__image{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;filter:brightness(.72) saturate(.9)}.continue-stage-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,8,14,.88),transparent 65%)}.continue-stage-copy{position:absolute;z-index:2;inset:62% 7% auto 54%;display:grid;justify-items:center;color:#fff6d6;font-family:Kaisei Decol,Yu Mincho,serif;line-height:1;text-shadow:0 2px 3px #000,0 0 7px rgba(72,216,214,.55);transform:translateY(-.67em)}.continue-stage-preview__floor{font-size:clamp(7px,calc(var(--game-w) * .021),12px);letter-spacing:.12em}.continue-stage-preview__name{margin-top:.18em;font-size:clamp(10px,calc(var(--game-w) * .032),18px);letter-spacing:.04em}.next-floor-button{position:absolute;z-index:118;left:50%;bottom:2.2%;display:block;width:min(calc(var(--game-w) * .88),430px);margin:0;padding:0;border:0;background:transparent;opacity:0;pointer-events:none;transform:translate(-50%);transition:opacity .42s ease;filter:drop-shadow(0 8px 10px rgba(0,0,0,.68))}.next-floor-button.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.next-floor-button__frame{display:block;width:100%;height:auto;pointer-events:none}.next-floor-preview{position:absolute;z-index:2;left:7.8%;top:8%;display:block;width:43.2%;height:80.5%;overflow:hidden;pointer-events:none;mask-image:radial-gradient(ellipse 75% 72% at center,#000 55%,rgba(0,0,0,.88) 72%,rgba(0,0,0,.25) 90%,transparent 100%)}.next-floor-preview__image{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.8) saturate(1.05)}.next-floor-button__copy{position:absolute;z-index:2;inset:62% 7% auto 54%;display:grid;justify-items:center;color:#fff6d6;font-family:Kaisei Decol,Yu Mincho,serif;line-height:1;text-shadow:0 2px 3px #000,0 0 7px rgba(72,216,214,.55);transform:translateY(-.67em)}.next-floor-button__floor{font-size:clamp(10px,calc(var(--game-w) * .03),16px);letter-spacing:.15em}.next-floor-button__name{margin-top:.18em;font-size:clamp(14px,calc(var(--game-w) * .043),23px);letter-spacing:.06em}.next-floor-button.is-game-clear-button .next-floor-button__copy{top:68%}.next-floor-button.is-game-clear-button .next-floor-button__name{margin-top:0}.next-floor-button:hover{filter:brightness(1.08) drop-shadow(0 10px 13px rgba(0,0,0,.74))}.game-frame.is-floor-transitioning .stage-background,.game-frame.is-floor-transitioning .fen-character,.game-frame.is-floor-transitioning .stage-clear-overlay{opacity:0}.action-card.is-returning-to-deck{pointer-events:none;animation:card-return-to-deck .22s ease-in both!important}.action-card.is-white-wolf-transforming-card{animation:white-wolf-card-awakening .9s cubic-bezier(.18,.78,.22,1) both;filter:drop-shadow(0 0 8px rgba(255,255,255,.95)) drop-shadow(0 0 18px rgba(174,229,255,.78))}@keyframes white-wolf-card-awakening{0%{opacity:.35;transform:scale(.88) rotateY(90deg)}48%{opacity:1;transform:scale(1.08) rotateY(0)}to{opacity:1;transform:scale(1) rotateY(0)}}.white-petal-particle{position:absolute;z-index:42;display:block;width:var(--petal-size);height:calc(var(--petal-size) * .58);border-radius:90% 12%;background:linear-gradient(135deg,#fff 12%,#eafaff 58%,#badff2);box-shadow:0 0 5px #fffffff2,0 0 10px #b1e7ffb3;pointer-events:none;transform:translate(-50%,-50%) scale(.35);animation-name:white-petal-flight;animation-timing-function:cubic-bezier(.16,.72,.28,1);animation-fill-mode:both}@keyframes white-petal-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}16%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--petal-x)),calc(-50% + var(--petal-y))) scale(1) rotate(var(--petal-spin))}}.white-wolf-finisher{position:absolute;z-index:24;left:50%;top:42%;display:block;width:112%;height:auto;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.58) rotate(-4deg);filter:drop-shadow(0 0 12px rgba(255,255,255,1)) drop-shadow(0 0 26px rgba(120,219,255,.9));transition:opacity .18s ease,transform .62s cubic-bezier(.12,.8,.18,1),filter .3s ease}.white-wolf-finisher.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}.white-wolf-finisher.is-leaving{opacity:0;transform:translate(-50%,-50%) scale(1.16);filter:brightness(2.3) blur(4px)}.enemy-unit.is-white-wolf-hit{filter:brightness(2.4) drop-shadow(0 0 12px #fff)}.game-frame.is-white-wolf-exhausted .fen-character{opacity:1;transform:translate(-50%) translateY(0) scale(1)}@keyframes card-return-to-deck{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(calc(var(--game-w) * .1))}}.title-image-button:hover{filter:brightness(1.08) drop-shadow(0 calc(var(--game-h) * .006) calc(var(--game-h) * .008) rgba(2,8,22,.62))}.title-image-button:focus-visible{outline:calc(var(--game-w) * .006) solid rgba(255,242,184,.95);outline-offset:calc(var(--game-w) * .008)}.title-image-button:active{transform:translateY(calc(var(--game-h) * .003)) scale(.985)}.defeat-overlay .defeat-return-button:active{transform:translate(-50%,calc(var(--game-h) * .003)) scale(.985)}.game-frame.is-stage-intro .title-screen,.game-frame.is-stage-ready .title-screen{opacity:0;pointer-events:none}.primary-button{appearance:none}.game-frame.is-ending-transition>:not(.ending-screen){opacity:0!important;pointer-events:none!important;transition:opacity .72s ease!important}.ending-screen{position:absolute;z-index:500;inset:0;overflow:hidden;background:#000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,visibility 0s linear .7s}.ending-screen.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.ending-screen.is-leaving{opacity:0;pointer-events:none}.ending-screen__video{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .82s ease}.ending-screen__video.is-visible{opacity:1}.ending-screen__video--second{z-index:2}.ending-screen__logo{position:absolute;z-index:3;top:1%;left:50%;display:block;width:80%;height:auto;opacity:0;filter:drop-shadow(0 8px 12px rgba(0,0,0,.82));transform:translate(-50%,-34%);transition:opacity .76s ease,transform .9s cubic-bezier(.16,.82,.22,1)}.ending-screen__logo.is-visible{opacity:1;transform:translate(-50%)}.ending-return-button{position:absolute;z-index:4;left:50%;bottom:5%;width:62%;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,24%) scale(.96);transition:opacity .42s ease,transform .52s ease,visibility 0s linear .52s}.ending-return-button.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%) scale(1);transition-delay:0s}.settings-modal .settings-close-button{width:88%;margin:auto auto 0;align-self:center}
