@font-face{font-family:Echoes Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/fantasy-serif-500.ttf)format("truetype")}@font-face{font-family:Echoes Serif;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fantasy-serif-600.ttf)format("truetype")}:root{--background:#080b14;--text:#f0e9e5;--muted:#a7adc4;--gold:#dec28a;--violet:#a795ed;--blue:#91dbea;--pink:#d96889;--border:#dec28a6b;--serif:"Echoes Serif", "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", Georgia, serif;--sans:"Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html{background:var(--background);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{min-width:280px;min-height:100svh;color:var(--text);font-family:var(--sans);margin:0;font-size:14px;line-height:1.7}body:before{content:"";pointer-events:none;z-index:30;border:1px solid #dec28a30;position:fixed;inset:12px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}button{touch-action:manipulation}a{color:inherit;text-decoration:none}a:hover{color:var(--gold)}h1,h2,h3,h4,p,dl,dd{margin:0}h1,h2,h3,h4{font-weight:500}svg{display:block}.masthead{align-items:center;gap:30px;max-width:1220px;height:102px;margin:0 auto;padding:20px 28px;display:flex}.brand{flex-shrink:0;align-items:center;gap:16px;display:flex}.brand-sigil{width:57px;height:57px;stroke:var(--gold);stroke-width:1px}.brand h1{font-family:var(--serif);letter-spacing:.22em;font-size:27px;line-height:1.3}.brand p{font-family:var(--serif);letter-spacing:.16em;color:var(--gold);margin-top:2px;font-size:12px}.header-rule{text-align:center;background:#dec28a3b;flex:1;height:1px}.header-rule span{background:var(--background);width:35px;color:var(--gold);margin:-16px auto 0;font-size:22px;display:block}.button{border:1px solid var(--border);letter-spacing:.04em;background:0 0;border-radius:3px;min-height:43px;padding:9px 19px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.button-quiet:hover{border-color:var(--gold);background:#dec28a0a}.button-primary{color:#17141a;background:var(--gold);font-family:var(--serif);border-color:#e4cca1;min-height:49px;font-size:19px;font-weight:600}.button-primary:hover{background:#eed6aa}.game-layout{--arena-size:clamp(260px, calc((100svh - 212px) * .5625), 432px);grid-template-columns:var(--arena-size);justify-content:center;align-items:start;gap:clamp(24px,3.3vw,50px);max-width:1220px;margin:0 auto;padding:13px 28px 0;display:grid}.introduction{padding-top:30px}.introduction h2{font-family:var(--serif);white-space:nowrap;letter-spacing:.05em;font-size:clamp(32px,3.5vw,46px);line-height:1.3}.theme-english{font-family:var(--serif);font-variant:small-caps;letter-spacing:.1em;color:#b6b7cc;margin-top:8px;font-size:19px}.ornament{color:var(--gold);align-items:center;gap:8px;margin:26px 0;font-size:18px;line-height:1;display:flex}.ornament:before,.ornament:after{content:"";background:#dec28a38;flex:1;height:1px}.intro-tagline{font-family:var(--serif);color:var(--gold);letter-spacing:.07em;font-size:19px}.intro-copy{color:var(--muted);letter-spacing:.04em;margin-top:14px;font-size:13px;line-height:1.95}.controls-guide{margin:34px 0}.small-heading{font-family:var(--serif);color:var(--gold);letter-spacing:.1em;align-items:center;gap:16px;font-size:16px;display:flex}.small-heading:after{content:"";background:#dec28a2b;flex:1;height:1px}.target-guide{color:var(--gold);line-height:1.9}kbd{font-family:var(--sans);text-align:center;color:#c9d0df;border:1px solid #a6aec07a;border-radius:3px;min-width:21px;margin:1px;padding:0 3px;font-size:11px;line-height:19px;display:inline-block;box-shadow:0 2px #a6aec025}.controls-guide p{color:var(--muted);margin-top:9px;font-size:11px}.gameplay-steps{margin:8px 0 0;padding:0;list-style:none}.gameplay-steps li{border-bottom:1px solid #dec28a25;gap:19px;padding:17px 0;display:flex}.gameplay-steps li>span{font-family:var(--serif);color:var(--gold);font-size:29px;line-height:1.3}.gameplay-steps h4{font-family:var(--serif);letter-spacing:.07em;font-size:17px;line-height:1.4}.gameplay-steps p{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.7}.arena-column{width:var(--arena-size);background:#0b1020;border:1px solid #dec28a80;border-radius:7px;padding:4px;position:relative;box-shadow:0 12px 70px #0005}.hud{background:#080d17;border-bottom:1px solid #dec28a50;align-items:center;gap:14px;height:49px;padding:0 10px 6px;display:flex}.health-block{flex:1;min-width:0}.health-label{white-space:nowrap;align-items:center;gap:7px;font-size:10px;line-height:1.3;display:flex}.heart{color:var(--pink);font-size:18px;line-height:1}#health-value{font-variant-numeric:tabular-nums;font-size:11px}#shield-value{color:var(--blue);font-size:9px}.status-effects{color:#b6e7a4;overflow-wrap:anywhere;padding:5px 8px;font-size:11px;line-height:1.5;display:block}.status-effects[hidden]{display:none}.health-track{background:#4b2739;border-radius:10px;width:100%;height:4px;margin-top:6px;overflow:hidden}.health-track>span{border-radius:inherit;background:var(--pink);width:100%;height:100%;transition:width .12s;display:block}.timer{letter-spacing:.02em;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.pause-button{background:0 0;border:1px solid #dec28a50;border-radius:2px;flex-shrink:0;place-items:center;width:32px;height:34px;display:grid}.pause-button svg{width:18px;height:18px;stroke:var(--text);stroke-width:1.7px}.pause-button:hover{background:#dec28a15}.arena-frame{aspect-ratio:9/16;width:100%;position:relative;overflow:hidden}.stage-status{background:#dec28a07;border-bottom:1px solid #dec28a30;flex-direction:column;gap:3px;padding:8px 10px;display:flex}.stage-status strong{color:var(--gold);font-size:11px;font-weight:500}.stage-status>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:9px}#game-canvas{width:100%;height:100%}#game-canvas canvas{touch-action:none;-webkit-user-select:none;user-select:none;display:block}.boss-health{text-align:center;pointer-events:none;color:#e1d0ff;text-shadow:0 1px 4px #000;font-size:11px;position:absolute;top:13px;left:13%;right:13%}.boss-health>div{background:#181522;height:4px;margin-top:5px}.boss-health>div>span{background:var(--violet);height:100%;display:block}.arena-notice{pointer-events:none;text-align:center;color:var(--gold);text-shadow:0 2px 4px #000;font-size:11px;position:absolute;top:39%;left:10px;right:10px}.arena-notice:not(:empty){background:#080b14d9;border-block:1px solid #dec28a30;padding:10px}.overlay{background:#080b140a;justify-content:center;align-items:center;padding:15px;display:flex;position:absolute;inset:0}.modal{text-align:center;outline-offset:4px;background:#0a0e19f5;border:1px solid #dec28a99;border-radius:4px;outline:1px solid #dec28a40;width:100%;padding:29px 17px 24px;position:relative;box-shadow:0 8px 35px #0008}.modal:before,.modal:after{content:"";border:1px solid #dec28a80;width:7px;height:7px;position:absolute;top:9px;transform:rotate(45deg)}.modal:before{left:9px}.modal:after{right:9px}.modal-emblem{width:44px;height:44px;color:var(--gold);background:#0a0e19;border:1px solid #dec28a99;border-radius:50%;font-size:29px;line-height:39px;position:absolute;top:-24px;left:calc(50% - 22px)}.modal h2{font-family:var(--serif);letter-spacing:.03em;font-size:clamp(19px,2.4vw,26px);line-height:1.5}.modal>p{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.85}.modal-actions{flex-direction:column;gap:10px;margin-top:24px;display:flex}.modal-actions .button{width:100%}.modal>.modal-hint{color:#adb4cb;margin-top:14px;font-size:10px}.modal>.button{width:100%;margin-top:24px}.result-stats{border-top:1px solid #dec28a30;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0 0;padding-top:15px;display:grid}.result-stats dt{color:var(--muted);font-size:10px}.result-stats dd{color:var(--gold);font-size:21px;font-family:var(--serif);font-variant-numeric:tabular-nums}.reward-overlay{background:#080b1455}.reward-modal{padding:25px 13px 17px}.reward-modal h2{font-size:24px}.reward-choices{flex-direction:column;gap:12px;margin-top:22px;display:flex}.reward-card{text-align:left;background:#151629;border:1px solid #a795ed80;border-radius:3px;align-items:center;gap:12px;width:100%;padding:13px 12px;transition:background .14s,border-color .14s;display:flex}.reward-card.rare{background:#201c23;border-color:#dec28a90}.reward-card.epic{background:linear-gradient(120deg,#30213f,#201c33);border-color:#dc9cfa;box-shadow:inset 3px 0 #dc9cfa}.reward-card.training{background:#152620;border-color:#8cc6a580}.training .card-icon,.training .card-topline small,.collected-card.training>span{color:#a5d6bd}.epic .card-icon,.epic .card-topline small,.collected-card.epic>span{color:#e4b2ff}.reward-card:hover{border-color:var(--blue);background:#23263d}.card-icon{height:41px;color:var(--violet);border:1px solid;border-radius:50%;flex:0 0 41px;place-items:center;display:grid}.card-icon svg{width:28px;height:28px}.rare .card-icon{color:var(--gold)}.card-content{flex-direction:column;gap:3px;min-width:0;display:flex}.card-topline{align-items:center;gap:10px;display:flex}.card-topline strong{font-family:var(--serif);color:var(--text);font-size:16px;font-weight:500}.card-topline small{color:var(--muted);font-size:9px}.card-change{color:var(--blue);font-size:11px}.card-description{color:var(--muted);font-size:10px;line-height:1.6}.card-synergy{font-size:10px;line-height:1.5}.reward-card.synergy-upgrade{border-color:var(--gold);box-shadow:inset 2px 0 var(--gold)}.next-stage-rule{background:#dec28a0b;border-radius:3px;padding:6px 8px}.synergies{gap:6px;margin-top:18px;display:grid}.synergy-card{background:#15162980;border:1px solid #a795ed30;border-radius:3px}.synergy-card.active{border-color:var(--synergy-color)}.synergy-card summary{cursor:pointer;align-items:center;gap:7px;padding:10px 7px;list-style:none;display:flex}.synergy-card summary::-webkit-details-marker{display:none}.synergy-card summary:after{content:"+";color:var(--muted)}.synergy-card[open] summary:after{content:"−"}.synergy-symbol{color:var(--synergy-color);display:flex}.synergy-symbol svg{width:17px;height:17px}.synergy-card strong{font-size:12px;font-weight:500}.synergy-count{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:9px}.synergy-card.active .synergy-count,.synergy-details .unlocked,.synergy-details .owned{color:var(--synergy-color)}.synergy-details{color:var(--muted);padding:0 9px 9px;font-size:10px;line-height:1.8}.synergy-details p+p{margin-top:6px}.synergy-details b{white-space:nowrap;font-weight:500}.battle-status{height:28px;color:var(--muted);background:#080d17;border-top:1px solid #dec28a38;align-items:center;gap:15px;padding:1px 10px 0;font-size:10px;display:flex}.status-star{color:var(--gold);margin-left:auto}.target-status{color:var(--gold);background:#080d17;justify-content:space-between;gap:8px;padding:6px 10px;font-size:10px;display:flex}#target-label{overflow-wrap:anywhere;min-width:0}#threat-label{color:var(--muted);flex-shrink:0}.build-panel{padding-top:25px}.build-panel>h2{font-family:var(--serif);letter-spacing:.08em;font-size:25px}.build-panel>.ornament{margin:11px 0 10px}.stats>div{border-bottom:1px solid #dec28a24;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;display:flex}.stats dt{color:var(--muted);white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.stats dt svg{width:19px;height:19px;color:var(--violet)}.stats>div:nth-child(2n) dt svg{color:var(--blue)}.stats dd{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:18px}.collected-cards{margin-top:25px}.empty-build{text-align:center;color:var(--muted);padding:47px 8px 20px;font-size:12px}.empty-sigil{color:#53648d;border:1px solid #53648d55;border-radius:50%;width:110px;height:110px;margin:0 auto 25px;font-size:82px;font-weight:200;line-height:94px;box-shadow:0 0 0 10px #53648d0b,0 0 0 11px #53648d25}.empty-build p{line-height:2}.build-caption{color:var(--muted);margin-bottom:10px;font-size:11px}.collected-card{border-bottom:1px solid #a795ed25;align-items:center;gap:12px;padding:12px 0;display:flex}.collected-card>span{color:var(--violet)}.collected-card.rare>span{color:var(--gold)}.collected-card svg{width:24px;height:24px}.collected-card strong{font-family:var(--serif);font-size:14px;font-weight:500;display:block}.collected-card small{color:var(--muted);font-size:10px;display:block}.page-footer{text-align:center;color:#8c95af;letter-spacing:.05em;padding:12px 16px;font-size:10px}.page-footer>span{color:var(--gold);margin:0 14px}.help-dialog{background:var(--background);color:var(--text);border:1px solid #dec28a80;border-radius:5px;width:calc(100% - 40px);max-width:480px;max-height:calc(100svh - 60px);padding:30px}.help-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#03050bc9}.help-dialog h2{font-family:var(--serif);font-size:24px}.help-dialog p{color:var(--muted);margin:10px 0 20px;font-size:12px}.help-dialog dt{color:var(--gold);margin:15px 0 4px;font-size:13px}.help-dialog dd{color:var(--muted);font-size:12px;line-height:1.85}.help-dialog .button{width:100%;margin-top:24px}.error-modal p{font-size:12px}.header-actions{align-items:center;gap:10px;display:flex}.build-dialog{width:min(920px,100% - 32px);max-width:920px}.dialog-header{z-index:1;background:var(--background);justify-content:space-between;align-items:center;gap:16px;padding-block:12px;display:flex;position:sticky;top:-30px}.dialog-header .button{flex-shrink:0;width:auto;margin:0}.dialog-header h2{white-space:nowrap}.build-dialog .build-panel{width:100%;max-width:none;padding:0}.build-dialog .stats{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px;display:grid}.build-dialog .synergies{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.build-dialog .collected-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px;display:grid}.build-dialog .build-caption,.build-dialog .empty-build{grid-column:1/-1}.score-value{color:var(--gold);font-variant-numeric:tabular-nums;flex-shrink:0}.help-dialog{overscroll-behavior:contain}.desktop-arena .masthead{max-width:none;height:56px;padding:8px 22px}.desktop-arena .brand-sigil{width:32px;height:32px}.desktop-arena .brand h1{font-size:21px}.desktop-arena .brand p{display:none}.desktop-arena .game-layout{justify-content:center;align-items:center;max-width:none;height:calc(100svh - 56px);padding:6px 12px 12px;display:flex}.desktop-arena .arena-column{width:min(100%, calc((100svh - 74px) * var(--arena-ratio)));padding:0;overflow:hidden}.desktop-arena .arena-frame{aspect-ratio:var(--arena-aspect)}.desktop-arena .hud{z-index:10;pointer-events:none;background:0 0;border:0;height:42px;padding:0;position:absolute;top:10px;left:16px;right:16px}.desktop-arena .hud>*{pointer-events:auto}.desktop-arena .health-block{max-width:280px;margin-right:auto}.desktop-arena .health-label,.desktop-arena #health-value,.desktop-arena .score-value{font-size:13px}.desktop-arena .stage-status{z-index:9;background:0 0;border:0;padding:0;position:absolute;top:17px;left:50%;transform:translate(-50%)}.desktop-arena .stage-status strong{font-size:14px}.desktop-arena .status-effects{z-index:8;background:#080d17b8;max-width:32%;position:absolute;top:56px;left:8px}.desktop-arena .boss-health{font-size:13px;top:58px;left:34%;right:34%}.desktop-arena .battle-status,.desktop-arena .target-status{z-index:8;background:#080d17b8;border:0;border-radius:3px;font-size:12px;position:absolute;bottom:8px}.desktop-arena .battle-status{left:10px}.desktop-arena .target-status{right:10px}.desktop-arena .arena-notice{border:1px solid #dec28a30;border-radius:4px;width:max-content;max-width:min(560px,70%);font-size:13px;inset:auto auto 52px 50%;transform:translate(-50%)}.desktop-arena .arena-notice:empty{border:0}.desktop-arena .modal{max-width:480px;max-height:calc(100% - 40px);padding:36px 28px 28px;overflow-y:auto}.desktop-arena .reward-modal{max-width:1000px}.desktop-arena .reward-choices{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.desktop-arena .reward-card{flex-direction:column;align-items:flex-start;padding:22px 18px}.desktop-arena .card-content{gap:10px}.desktop-arena .card-icon{flex-basis:auto;width:48px;height:48px}.desktop-arena .card-topline{flex-wrap:wrap}.desktop-arena .card-topline strong{font-size:19px}.desktop-arena .card-description,.desktop-arena .card-synergy,.desktop-arena .card-change{font-size:13px}.noscript-message{color:var(--gold);padding:10px}@media (max-height:850px) and (min-width:951px){.introduction{padding-top:17px}.introduction h2{font-size:35px}.controls-guide{margin:20px 0}.intro-copy{font-size:12px;line-height:1.8}.introduction .ornament{margin:18px 0}.gameplay-steps li{padding:12px 0}.empty-build{padding-top:25px}}@media (max-width:950px) and (min-width:701px){.game-layout{grid-template-columns:var(--arena-size) minmax(180px, 230px);max-width:780px}.introduction{display:none}}@media (max-width:700px){body:before{inset:5px}.masthead{height:calc(72px + env(safe-area-inset-top));padding:calc(12px + env(safe-area-inset-top)) 19px 10px;gap:16px}.brand p{letter-spacing:.1em;font-size:9px}.header-rule{display:none}.masthead{gap:8px;padding-inline:10px}.brand{gap:6px}.brand-sigil{width:24px;height:24px}.brand h1{font-size:18px}.brand p{display:none}.header-actions{gap:4px;margin-left:auto}.header-actions .button{min-height:32px;padding:5px 7px;font-size:10px}.help-trigger{min-height:35px;margin-left:auto;padding:5px 10px;font-size:11px}.game-layout{--arena-size:min(100%, calc((100svh - 160px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * .5625));flex-direction:column;align-items:center;gap:24px;padding:5px 14px 0;display:flex}.introduction{display:none}.arena-column{width:var(--arena-size);flex-shrink:0;max-width:450px}.hud{gap:9px;height:43px;padding-inline:7px}.health-label{grid-template-columns:auto auto minmax(0,1fr);column-gap:5px;font-size:9px;display:grid}#health-value{text-overflow:ellipsis;font-size:10px;overflow:hidden}#shield-value{text-overflow:ellipsis;grid-column:1/-1;font-size:8px;overflow:hidden}#shield-value:empty{display:none}.timer{font-size:12px}.pause-button{width:31px;height:32px}.overlay{padding:12px}.modal{padding:22px 12px 18px}.modal h2{font-size:21px}.modal>p{margin-top:7px;font-size:10px}.modal-actions{gap:8px;margin-top:18px}.button-primary{min-height:44px;font-size:18px}.reward-modal{padding:21px 10px 12px}.reward-modal h2{font-size:21px}.reward-choices{gap:9px;margin-top:15px}.reward-card{gap:10px;min-height:75px;padding:10px}.card-icon{flex-basis:31px;height:31px}.card-icon svg{width:22px;height:22px}.card-topline{gap:7px}.card-topline strong{font-size:14px}.card-change{font-size:10px}.card-description,.card-synergy{font-size:9px}.synergies{grid-template-columns:1fr 1fr;gap:8px}.synergy-card summary{flex-wrap:wrap;gap:5px}.synergy-count{margin-left:0}.modal>.modal-hint{margin-top:11px;font-size:9px}.build-panel{width:100%;max-width:420px;padding:0 8px}.build-panel>h2{font-size:21px}.build-panel>.ornament{margin-top:8px}.build-dialog .stats{grid-template-columns:minmax(0,1fr)}.build-dialog .stats dd{overflow-wrap:anywhere;text-align:right;min-width:0}.stats{grid-template-columns:1fr 1fr;column-gap:24px;display:grid}.stats>div{gap:10px;padding:9px 0}.stats dt{gap:7px;font-size:11px}.stats dt svg{width:15px;height:15px}.stats dd{font-size:16px}.collected-cards{margin-top:16px}.empty-build{padding:6px 0 0;font-size:11px}.empty-sigil,.empty-build br{display:none}.collected-card{gap:8px;margin-right:17px;display:inline-flex}.collected-card strong{font-size:12px}.page-footer{padding-bottom:max(24px, env(safe-area-inset-bottom))}}@media (max-width:350px),(max-height:650px) and (max-width:700px){.overlay{padding:10px}.modal h2{font-size:18px}.modal{overscroll-behavior:contain;max-height:100%;padding-inline:9px;overflow-y:auto}.modal-emblem{display:none}.victory-modal .button-primary{padding-inline:10px;font-size:16px}.modal>.next-stage-rule{padding:5px 6px;font-size:9px;line-height:1.5}.card-description{display:none}.reward-card{min-height:63px;padding:8px}.card-topline strong{font-size:13px}.card-icon{flex-basis:26px;height:26px}.card-change{font-size:9px}.card-synergy{font-size:8px}.reward-choices{gap:8px;margin-top:12px}.result-stats{gap:10px;margin-top:12px;padding-top:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none;animation:none}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none}
