:root{font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#f5f0dd;background:#071313;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #152b29;--cream: #f5ead1;--cream-deep: #d6c298;--teal: #37e0d0;--teal-deep: #087f7a;--coral: #ff526b;--coral-deep: #a51d39;--gold: #f5c25a}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#071313}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 12% 4%,rgba(31,167,154,.2),transparent 30rem),radial-gradient(circle at 92% 18%,rgba(165,29,57,.2),transparent 32rem),linear-gradient(160deg,#071313,#081918 52%,#110d12)}body:before{position:fixed;inset:0;z-index:-1;content:"";opacity:.2;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 78%);mask-image:linear-gradient(to bottom,black,transparent 78%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.app-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:18px 0 34px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:54px;margin-bottom:14px}.brand{display:flex;align-items:center;gap:11px;color:#fff8e8;text-decoration:none;font-family:Georgia,STSong,serif;font-size:21px;font-weight:800;letter-spacing:.04em}.brand small{display:block;color:#7edbd1;font-family:Inter,Segoe UI,sans-serif;font-size:8px;line-height:1;letter-spacing:.34em}.brand-mark{position:relative;display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(245,194,90,.75);color:#f7d789;font-family:Georgia,serif;font-size:20px;background:linear-gradient(145deg,#174d49,#081918);box-shadow:inset 0 0 0 3px #0d2927,0 8px 28px #0000003d;transform:rotate(45deg)}.brand-mark:after{position:absolute;inset:5px;border:1px solid rgba(126,219,209,.28);content:""}.brand-mark b{display:block;font-weight:700;transform:rotate(-45deg)}.brand-mark{text-indent:1px}.brand-mark::selection{background:transparent}.top-actions{display:flex;align-items:center;gap:9px}.mode-pill{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 14px;border:1px solid rgba(213,235,224,.12);border-radius:999px;color:#bfd3ce;font-size:12px;background:#0512119e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mode-pill i{width:6px;height:6px;border-radius:50%;background:#57dd91;box-shadow:0 0 10px #57dd91}.icon-button{width:36px;height:36px;border:1px solid rgba(213,235,224,.12);border-radius:50%;color:#f4e8cb;background:#051211b8;cursor:pointer}.game-card{overflow:hidden;border:1px solid rgba(226,204,151,.42);border-radius:28px;background:#efe3c8;box-shadow:0 34px 90px #00000080,inset 0 0 0 4px #ffffff14}.battle-stage{position:relative;min-height:410px;overflow:hidden;background-image:url(/assets/duel-key-art.png);background-position:center;background-size:cover;isolation:isolate}.battle-stage:before{position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(90deg,rgba(6,48,49,.16),transparent 42%,transparent 58%,rgba(70,4,15,.16)),linear-gradient(to bottom,#03090a0a 42%,#03090adb)}.stage-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #0006}.level-tag{position:absolute;top:18px;display:flex;align-items:center;gap:12px;min-width:150px;padding:9px 14px;border:1px solid rgba(255,241,209,.45);color:#172a26;background:linear-gradient(#fff6df,#e7d0a4);box-shadow:0 8px 22px #0000003d,inset 0 1px #ffffffe6;font-size:12px}.level-tag:after{position:absolute;bottom:-6px;width:11px;height:11px;content:"";background:#e7d0a4;transform:rotate(45deg)}.level-tag b{font-size:14px}.level-tag span{color:#80652c;font-weight:700}.level-tag--left{left:20px;border-radius:12px 12px 12px 3px}.level-tag--left:after{left:21px}.level-tag--right{right:20px;justify-content:flex-end;border-radius:12px 12px 3px}.level-tag--right:after{right:21px}.fighter-name{position:absolute;top:78px;display:flex;align-items:center;gap:8px;color:#fff;filter:drop-shadow(0 2px 8px #000)}.fighter-name--left{left:24px}.fighter-name--right{right:24px;text-align:right}.fighter-name small,.fighter-name strong{display:block}.fighter-name small{color:#ffffffb3;font-size:10px;letter-spacing:.14em}.fighter-name strong{font-family:Georgia,STSong,serif;font-size:15px;letter-spacing:.05em}.affinity{display:grid;width:32px;height:32px;place-items:center;border:1px solid currentColor;font-size:12px;font-weight:800;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.affinity--storm{color:#80f5e9;background:#074546b8}.affinity--fire{color:#ff90a2;background:#5b0b1dbf}.versus-seal{position:absolute;top:50px;left:50%;display:grid;width:82px;height:82px;place-items:center;color:#fff5dc;background:#a62824;clip-path:polygon(50% 0,60% 17%,77% 7%,80% 27%,100% 25%,88% 43%,100% 55%,80% 59%,83% 80%,63% 72%,52% 100%,42% 77%,23% 90%,23% 67%,0 67%,15% 50%,0 35%,23% 33%,20% 12%,40% 22%);transform:translate(-50%) rotate(-4deg);filter:drop-shadow(0 6px 8px rgba(0,0,0,.5))}.versus-seal:before{position:absolute;inset:10px;border:2px solid #ffd468;border-radius:50%;content:"";background:radial-gradient(circle,#b7372b,#741621)}.versus-seal span{z-index:1;font-family:Georgia,serif;font-size:28px;font-weight:900;font-style:italic;text-shadow:0 2px #641316}.combat-deck{position:absolute;right:24px;bottom:20px;left:24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:16px 18px;border:1px solid rgba(255,239,198,.46);border-radius:18px;background:#051112d6;box-shadow:0 12px 34px #00000057,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.health-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;color:#e7f8f3;font-size:11px}.health-copy span{color:#7fe5da;font-weight:900;letter-spacing:.14em}.health-copy strong{font-variant-numeric:tabular-nums}.health-block--enemy .health-copy span{color:#ff8298}.health-track{position:relative;height:12px;overflow:hidden;border:2px solid rgba(255,255,255,.13);border-radius:999px;background:#17201f;box-shadow:inset 0 2px 4px #00000073}.health-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;transition:width .5s cubic-bezier(.2,.8,.2,1)}.health-fill--player{background:linear-gradient(90deg,#32b88e,#68e6b8);box-shadow:0 0 12px #4ae6b88c}.health-fill--enemy{right:0;left:auto;background:linear-gradient(90deg,#ff7891,#d62e55);box-shadow:0 0 12px #ff526b85}.shield-fill{position:absolute;top:1px;bottom:1px;left:1px;z-index:2;display:none;border-radius:999px;background:repeating-linear-gradient(115deg,#62c4ffbf 0 5px,#9be0fff2 5px 9px);box-shadow:0 0 10px #7edfff;transition:width .35s ease}.shield-fill.is-visible{display:block}.turn-orb{display:grid;width:52px;height:52px;place-content:center;border:1px solid rgba(245,194,90,.72);border-radius:50%;text-align:center;background:radial-gradient(circle,#224c45,#0a1e1d);box-shadow:0 0 0 4px #0a1e1dbf,0 0 20px #1fccb433}.turn-orb small,.turn-orb strong{display:block}.turn-orb small{color:#a8c9c3;font-size:8px;line-height:1}.turn-orb strong{color:#f7d585;font-family:Georgia,serif;font-size:21px;line-height:1.1}.action-ribbon{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(180px,.75fr) minmax(180px,.7fr);align-items:stretch;border-top:1px solid rgba(255,255,255,.42);border-bottom:1px solid #c8b587;color:var(--ink);background:linear-gradient(90deg,rgba(255,255,255,.5),transparent),#ead9b5}.skill-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:13px 15px}.skill-button{position:relative;display:flex;min-width:0;align-items:center;gap:8px;padding:7px 8px;overflow:hidden;border:1px solid rgba(83,62,31,.18);border-radius:13px;color:#213330;text-align:left;background:#fffcef9e;box-shadow:inset 0 1px #ffffffe6,0 4px 10px #442d0d14;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.skill-button:not(:disabled):hover{transform:translateY(-2px)}.skill-button:disabled{cursor:default}.skill-button.is-ready{border-color:#a47b27;box-shadow:inset 0 1px #ffffffe6,0 0 0 2px #f5c25a33,0 5px 14px #6f460826;animation:ready-pulse 2s ease-in-out infinite}.skill-icon{position:relative;flex:0 0 42px;width:42px;height:42px}.skill-icon .rune{width:100%;height:100%}.skill-icon b{position:absolute;right:-2px;bottom:-2px;display:grid;width:19px;height:19px;place-items:center;border:2px solid #f8edcf;border-radius:50%;color:#fff;background:#173c38;font-size:9px}.skill-copy{min-width:0}.skill-copy strong,.skill-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-copy strong{font-family:Georgia,STSong,serif;font-size:13px}.skill-copy small{margin-top:2px;color:#80735c;font-size:8px}.skill-button>em{position:absolute;right:5px;bottom:3px;color:#8b6c2b;font-size:7px;font-style:normal;font-weight:800;letter-spacing:.04em}.battle-message,.enemy-intent{display:flex;flex-direction:column;justify-content:center;padding:12px 16px;border-left:1px solid rgba(96,72,32,.14)}.battle-message small,.enemy-intent small{color:#89724b;font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.battle-message strong{margin-top:3px;font-family:Georgia,STSong,serif;font-size:13px}.enemy-intent div{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:6px;margin-top:4px}.enemy-intent div span{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;color:#fff;background:#8e2337}.enemy-intent strong{font-size:11px}.enemy-intent em{color:#b32942;font-size:11px;font-style:normal;font-weight:900}.play-area{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:18px;padding:22px;color:var(--ink);background:radial-gradient(circle at 30% 10%,rgba(255,255,255,.72),transparent 29rem),linear-gradient(150deg,#f5ecd7,#eadbbd)}.board-wrap{min-width:0}.board-topline{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:13px;padding:0 3px}.eyebrow{display:block;color:#96805a;font-size:8px;font-weight:900;letter-spacing:.22em}.board-topline h1,.mission-card h2{margin:3px 0 0;font-family:Georgia,STSong,serif;line-height:1.1}.board-topline h1{font-size:24px}.combo-chip{display:flex;align-items:baseline;gap:7px;padding:7px 11px;border:1px solid rgba(97,74,36,.14);border-radius:999px;background:#ffffff75}.combo-chip small{color:#8b7958;font-size:7px;font-weight:900;letter-spacing:.15em}.combo-chip strong{font-size:15px;font-variant-numeric:tabular-nums}.combo-chip.is-hot{color:#a61d3b;border-color:#a61d3b47;background:#ffe6df;animation:combo-pop .35s ease}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,.7vw,8px);padding:clamp(8px,1.2vw,13px);border:1px solid rgba(113,82,38,.25);border-radius:22px;background:linear-gradient(#fff3,#fff0),#d4be91;box-shadow:inset 0 3px 10px #4f37122e,0 10px 25px #46300f1f}.tile{position:relative;min-width:0;aspect-ratio:1;padding:7%;border:1px solid rgba(121,92,47,.16);border-radius:clamp(8px,1.2vw,15px);outline:none;background:linear-gradient(145deg,#fffdf4,#e7d8b8);box-shadow:inset 0 2px 2px #fff,0 3px 7px #492e0a29;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.tile:after{position:absolute;inset:4px;border:1px solid rgba(255,255,255,.62);border-radius:inherit;pointer-events:none;content:""}.tile:hover{z-index:2;transform:translateY(-2px) scale(1.03);box-shadow:inset 0 2px 2px #fff,0 7px 13px #492e0a33}.tile:focus-visible{box-shadow:0 0 0 3px #248f86,inset 0 2px 2px #fff}.rune{display:block;width:100%;height:100%;border-radius:50%;background-image:url(/assets/element-runes.png);background-position:var(--sprite-position);background-size:300% 200%;box-shadow:0 3px 6px #2d1d083d;transform:translateZ(0);pointer-events:none}.tile.is-selected{z-index:4;box-shadow:0 0 0 3px #fff2b9,0 0 0 6px #1f9b91,0 8px 18px #0000002e;transform:translateY(-3px) scale(1.04)}.tile.is-selected .rune{filter:brightness(1.14) saturate(1.12)}.tile.is-matched{z-index:3;animation:rune-burst .36s ease forwards}.tile.is-hint .rune{animation:hint-bounce .72s ease-in-out infinite alternate;filter:brightness(1.18)}.board.is-invalid{animation:invalid-shake .3s ease}.board.is-settling .tile{animation:settle-in .3s cubic-bezier(.2,.8,.3,1) both}.board.is-settling .tile:nth-child(3n){animation-delay:.04s}.board.is-settling .tile:nth-child(4n){animation-delay:.08s}.board.is-shuffling .tile{animation:shuffle-out .3s ease both}.board-help{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 0;color:#806f52;font-size:10px}.board-help span{width:6px;height:6px;border-radius:50%;background:#299d91;box-shadow:0 0 8px #299d91}.side-panel{display:flex;flex-direction:column;gap:12px}.mission-card,.legend-card{border:1px solid rgba(104,78,36,.17);border-radius:17px;background:#ffffff73;box-shadow:inset 0 1px #fff,0 8px 20px #45300f12}.mission-card{padding:18px}.mission-card:before{display:block;width:34px;height:3px;margin-bottom:13px;content:"";background:linear-gradient(90deg,#1d978d,#dc435d)}.mission-card h2{font-size:19px}.mission-card p{margin:10px 0 16px;color:#6d604c;font-size:11px;line-height:1.7}.score-row{display:flex;align-items:center;justify-content:space-between;color:#7b694c;font-size:9px}.score-row strong{color:#173c38;font-size:17px;letter-spacing:.06em;font-variant-numeric:tabular-nums}.progress-line{height:5px;margin-top:8px;overflow:hidden;border-radius:99px;background:#d5c49f}.progress-line i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1f978c,#e1b44d);transition:width .4s ease}.legend-card{padding:15px}.legend-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.legend-title button{padding:5px 8px;border:1px solid rgba(84,62,28,.17);border-radius:7px;color:#725e3d;background:#ffffff80;font-size:9px;font-weight:700;cursor:pointer}.legend-card ul{margin:0;padding:0;list-style:none}.legend-card li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(88,65,29,.1)}.legend-card li span,.legend-card li strong{display:block}.legend-card li span{color:#8a795b;font-size:9px;line-height:1.45}.legend-card li strong{color:#2c403c;font-size:10px}.mini-rune{flex:0 0 34px;width:34px;height:34px;border-radius:50%;background-image:url(/assets/element-runes.png);background-position:var(--sprite-position);background-size:300% 200%;box-shadow:0 2px 5px #341f0733}.rune-storm{--sprite-position: 0% 0%}.rune-flame{--sprite-position: 50% 0%}.rune-sun{--sprite-position: 100% 0%}.rune-moon{--sprite-position: 0% 100%}.rune-leaf{--sprite-position: 50% 100%}.rune-heart{--sprite-position: 100% 100%}.restart-button{display:flex;width:100%;min-height:46px;align-items:center;justify-content:center;gap:8px;border:1px solid #244944;border-radius:13px;color:#f6e9cb;background:linear-gradient(135deg,#173d39,#0b2523);box-shadow:inset 0 1px #ffffff17,0 8px 18px #142a2733;font-size:11px;font-weight:800;letter-spacing:.08em;cursor:pointer}.restart-button span{font-size:17px}.footer-note{display:flex;align-items:center;justify-content:center;gap:11px;padding-top:17px;color:#cae0d875;font-size:9px;letter-spacing:.1em}.footer-note i{width:3px;height:3px;border-radius:50%;background:#a38343}.result-modal{position:fixed;inset:0;z-index:20;display:grid;visibility:hidden;place-items:center;padding:24px;opacity:0;background:#020b0bc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .25s ease,visibility .25s ease}.result-modal.is-open{visibility:visible;opacity:1}.result-card{width:min(390px,100%);padding:34px;border:1px solid rgba(247,211,127,.58);border-radius:24px;color:#18302d;text-align:center;background:radial-gradient(circle at 50% 0,#fffdf5,#ebdbb9);box-shadow:0 28px 80px #00000080,inset 0 0 0 4px #ffffff47;transform:translateY(18px) scale(.96);transition:transform .28s ease}.result-modal.is-open .result-card{transform:none}.result-sigil{display:grid;width:72px;height:72px;place-items:center;margin:0 auto 18px;border:1px solid #d7a740;border-radius:50%;color:#fff3c1;background:radial-gradient(circle,#318f84,#102e2b);box-shadow:0 0 0 7px #d7a74029,0 10px 26px #1f5d574d;font-size:29px}.result-card h2{margin:6px 0 8px;font-family:Georgia,STSong,serif;font-size:30px}.result-card p{margin:0;color:#78684e;font-size:12px;line-height:1.6}.result-stats{display:flex;align-items:center;justify-content:space-between;margin:20px 0;padding:13px 16px;border:1px solid rgba(95,69,29,.13);border-radius:11px;color:#7b6b4f;background:#ffffff6e;font-size:10px}.result-stats strong{color:#173c38;font-size:20px}.result-card button{width:100%;min-height:48px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,#168c82,#0b4c48);box-shadow:0 9px 20px #11645d40;font-weight:800;cursor:pointer}.battle-stage.is-player-hit:after,.battle-stage.is-enemy-hit:after,.battle-stage[class*=is-skill-]:after{position:absolute;inset:0;z-index:5;pointer-events:none;content:"";animation:combat-flash .6s ease forwards}.battle-stage.is-player-hit:after{background:radial-gradient(circle at 78% 42%,rgba(103,255,232,.65),transparent 27%)}.battle-stage.is-enemy-hit:after{background:radial-gradient(circle at 25% 42%,rgba(255,74,100,.68),transparent 28%)}.battle-stage.is-skill-0:after{background:linear-gradient(110deg,transparent 30%,rgba(105,255,239,.78) 49%,transparent 55%)}.battle-stage.is-skill-1:after{background:radial-gradient(circle at 24% 48%,rgba(168,130,255,.75),transparent 30%)}.battle-stage.is-skill-2:after{background:radial-gradient(circle at 76% 38%,rgba(255,207,72,.9),rgba(255,70,35,.34) 24%,transparent 38%)}@keyframes ready-pulse{50%{box-shadow:inset 0 1px #ffffffe6,0 0 0 3px #f5c25a4d,0 5px 17px #6f460833}}@keyframes rune-burst{0%{transform:scale(1);opacity:1;filter:brightness(1)}55%{transform:scale(1.18) rotate(5deg);opacity:1;filter:brightness(1.8)}to{transform:scale(.35);opacity:0;filter:brightness(2)}}@keyframes hint-bounce{to{transform:translateY(-5px) scale(1.05)}}@keyframes invalid-shake{25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}@keyframes settle-in{0%{transform:translateY(-16px) scale(.86);opacity:.25}to{transform:none;opacity:1}}@keyframes shuffle-out{to{transform:rotate(12deg) scale(.4);opacity:0}}@keyframes combo-pop{50%{transform:scale(1.08)}}@keyframes combat-flash{0%{opacity:0}35%{opacity:1}to{opacity:0}}@media(max-width:900px){.app-shell{width:min(760px,calc(100% - 24px))}.battle-stage{min-height:370px}.action-ribbon{grid-template-columns:1fr 1fr}.skill-row{grid-column:1 / -1;border-bottom:1px solid rgba(96,72,32,.14)}.battle-message{border-left:0}.play-area{grid-template-columns:1fr}.side-panel{display:grid;grid-template-columns:1fr 1fr}.restart-button{grid-column:1 / -1}}@media(max-width:620px){.app-shell{width:100%;padding-top:0}.topbar{min-height:58px;margin:0;padding:0 14px}.brand{font-size:16px}.brand-mark{width:30px;height:30px;font-size:16px}.mode-pill{display:none}.game-card{border-right:0;border-left:0;border-radius:0}.battle-stage{min-height:310px;background-position:center top}.level-tag{top:10px;min-width:116px;padding:7px 9px;gap:7px;font-size:9px}.level-tag b{font-size:11px}.level-tag--left{left:10px}.level-tag--right{right:10px}.fighter-name{top:58px;gap:5px}.fighter-name--left{left:12px}.fighter-name--right{right:12px}.fighter-name strong{font-size:11px}.fighter-name small{font-size:7px}.affinity{width:25px;height:25px;font-size:9px}.versus-seal{top:43px;width:60px;height:60px}.versus-seal span{font-size:21px}.combat-deck{right:10px;bottom:10px;left:10px;gap:8px;padding:11px 10px;border-radius:14px}.health-copy{gap:4px;margin-bottom:5px;font-size:8px}.health-copy span{font-size:7px}.health-track{height:9px}.turn-orb{width:40px;height:40px}.turn-orb strong{font-size:16px}.action-ribbon{display:block}.skill-row{gap:5px;padding:9px}.skill-button{display:block;min-height:61px;padding:5px;text-align:center}.skill-icon{display:block;width:38px;height:38px;margin:0 auto}.skill-copy strong{margin-top:3px;font-size:10px}.skill-copy small,.skill-button>em{display:none}.battle-message,.enemy-intent{display:inline-flex;width:50%;min-height:58px;vertical-align:top;padding:9px 11px}.battle-message strong{font-size:10px}.enemy-intent strong,.enemy-intent em{font-size:9px}.play-area{gap:15px;padding:14px 10px 18px}.board-topline{padding:0 5px}.board-topline h1{font-size:20px}.combo-chip{padding:5px 8px}.board{gap:4px;padding:7px;border-radius:16px}.tile{padding:5%;border-radius:9px}.tile:after{inset:2px}.board-help{font-size:8px}.side-panel{grid-template-columns:1fr}.footer-note{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tile.has-special{border-color:#ffbe30c2;background:radial-gradient(circle at 50% 45%,rgba(255,249,196,.92),transparent 56%),linear-gradient(145deg,#fffdf7,#e8d09f);box-shadow:inset 0 2px 3px #fff,0 0 0 2px #ffcd4c38,0 0 15px #ffae2580,0 4px 8px #492e0a33}.tile.has-special .rune{transform:scale(.82);filter:saturate(1.28) brightness(1.08) drop-shadow(0 0 6px rgba(255,255,255,.84))}.special-token{position:absolute;z-index:4;display:grid;place-items:center;pointer-events:none;color:#fff;font-family:Georgia,Times New Roman,serif;font-size:clamp(12px,2vw,18px);font-weight:900;line-height:1;text-shadow:0 1px 2px rgba(29,11,3,.72),0 0 7px #fff}.special-token:after{position:absolute;inset:-22%;z-index:-1;border:1px solid rgba(255,255,255,.72);content:"";opacity:.62;filter:blur(.2px)}.special-token--rocket-row{top:38%;right:5%;left:5%;height:24%;border-radius:999px;background:linear-gradient(90deg,#18b9d1,#f7ffff 47%,#ff7353);box-shadow:0 0 8px #47e6f2,0 0 14px #ff5a43b8}.special-token--rocket-row:after{border-right-color:transparent;border-left-color:transparent;border-radius:50%}.special-token--rocket-col{top:5%;bottom:5%;left:38%;width:24%;border-radius:999px;background:linear-gradient(#8a6cff,#fff9c4 47%,#ff4f8d);box-shadow:0 0 8px #b79cff,0 0 14px #ff4f8db8}.special-token--rocket-col:after{border-top-color:transparent;border-bottom-color:transparent;border-radius:50%}.special-token--bomb,.special-token--prism{inset:18%;border-radius:50%}.special-token--bomb{font-size:clamp(18px,3vw,26px);background:radial-gradient(circle at 34% 28%,#fffbd2 0 7%,#ffb52f 17%,#e32e43 49%,#63112e 78%);box-shadow:inset 0 0 8px #fff0a3,0 0 9px #ff6f32,0 0 18px #df2a44cc}.special-token--bomb:after{border-radius:50%;animation:special-orbit 2.8s linear infinite}.special-token--prism{font-size:clamp(17px,3vw,25px);background:conic-gradient(from 30deg,#65f8e7,#7c6dff,#ff62c3,#ffdb58,#65f8e7);box-shadow:inset 0 0 10px #fff,0 0 10px #7c6dff,0 0 21px #ff5dc7c7;animation:special-prism 2.4s ease-in-out infinite}.special-token--prism:after{border-radius:35%;transform:rotate(45deg)}.tile.is-special-created{animation:special-created .62s cubic-bezier(.16,.86,.28,1.3)}.tile.is-special-triggered{z-index:3;animation:special-triggered .48s ease-out forwards}.tile.is-special-triggered:after{position:absolute;inset:-45%;z-index:5;border-radius:50%;content:"";background:radial-gradient(circle,#fff 0 7%,#fff3a5 14%,rgba(110,255,242,.82) 31%,rgba(255,63,137,.52) 48%,transparent 68%);animation:special-detonation .5s ease-out forwards}.board.is-special-arming .tile:not(.is-special-triggered){filter:brightness(.8) saturate(.75)}@keyframes special-created{0%{transform:scale(.35) rotate(-14deg);filter:brightness(2)}65%{transform:scale(1.13) rotate(3deg)}to{transform:scale(1) rotate(0)}}@keyframes special-triggered{35%{transform:scale(1.24) rotate(4deg);filter:brightness(1.8) saturate(1.5)}to{transform:scale(.72);opacity:.2}}@keyframes special-detonation{0%{opacity:1;transform:scale(.12)}to{opacity:0;transform:scale(1.85)}}@keyframes special-orbit{to{transform:rotate(360deg)}}@keyframes special-prism{50%{transform:scale(1.08) rotate(5deg);filter:hue-rotate(42deg) brightness(1.18)}}@media(max-width:620px){.board-help{line-height:1.5}.special-token{font-size:11px}.special-token--bomb,.special-token--prism{inset:14%;font-size:17px}}@media(prefers-reduced-motion:reduce){.special-token--bomb:after,.special-token--prism,.tile.is-special-created,.tile.is-special-triggered,.tile.is-special-triggered:after{animation:none}}.app-shell{width:min(760px,calc(100% - 24px));padding-top:12px}.topbar{min-height:48px;margin-bottom:10px;padding:0 4px}.brand{font-size:18px}.brand-mark{width:34px;height:34px;font-size:17px}.game-card{overflow:visible;border-color:#ffe8b5b3;border-radius:24px;background:#f7ead0;box-shadow:0 32px 90px #00000094,0 0 0 4px #fff8dd14}.battle-stage{min-height:440px;overflow:hidden;border-radius:23px 23px 0 0;background-position:center 43%}.battle-stage:before{background:linear-gradient(90deg,rgba(0,81,79,.08),transparent 42%,transparent 58%,rgba(99,0,18,.1)),linear-gradient(to bottom,#03090a05 38%,#03090a38 68%,#03090ac7)}.stage-vignette{box-shadow:inset 0 0 65px #00000057}.level-tag{top:16px;min-width:142px;padding:8px 13px;border-color:#fff3d2db;background:linear-gradient(#fffaf0,#efd8ac);box-shadow:0 8px 20px #00000040,inset 0 1px #fff}.level-tag--left{left:16px}.level-tag--right{right:16px}.floor-crest{position:absolute;top:-1px;left:50%;z-index:2;display:grid;width:70px;height:82px;place-content:center;border:1px solid rgba(136,255,238,.42);border-top:0;color:#f9f0cf;text-align:center;background:linear-gradient(180deg,#156f66f7,#073130f2);box-shadow:0 12px 28px #00000047,inset 0 -10px 20px #00000029;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);transform:translate(-50%)}.floor-crest small,.floor-crest strong{display:block}.floor-crest small{color:#8ff1e4;font-size:7px;font-weight:900;letter-spacing:.22em}.floor-crest strong{margin-top:1px;font-family:Georgia,serif;font-size:28px;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.35)}.fighter-name{top:70px}.fighter-name--left{left:18px}.fighter-name--right{right:18px}.versus-seal{top:112px;width:92px;height:92px;filter:drop-shadow(0 8px 9px rgba(0,0,0,.48)) drop-shadow(0 0 15px rgba(255,160,46,.24))}.versus-seal span{font-size:31px}.combat-deck{right:16px;bottom:14px;left:16px;gap:14px;padding:15px 17px;border:2px solid rgba(255,246,218,.9);border-radius:18px;color:#312919;background:linear-gradient(160deg,#fffaecf7,#efd7aaf5);box-shadow:0 12px 32px #00000052,inset 0 0 0 1px #8e692c24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.health-copy{margin-bottom:7px;color:#332d22;font-size:11px}.health-copy span,.health-block--enemy .health-copy span{color:#6f5e3e;font-size:9px}.health-copy strong{font-size:12px}.health-track{height:13px;border-color:#4c391b21;background:#4a4439;box-shadow:inset 0 2px 4px #00000061,0 1px #ffffffc7}.health-fill--player{background:linear-gradient(90deg,#57d69f,#2cab79);box-shadow:0 0 10px #2dbe876b}.health-fill--enemy{background:linear-gradient(90deg,#e94367,#c52c54);box-shadow:0 0 10px #da2c5466}.turn-orb{width:54px;height:54px;border:2px solid #d7b866;background:radial-gradient(circle,#f7efd9 0 48%,#173c38 50% 100%);box-shadow:0 0 0 3px #fff9dfc2,0 5px 14px #48321238}.turn-orb small{color:#846a2f;font-size:7px}.turn-orb strong{color:#183d39;font-size:20px}.action-ribbon{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,3fr) minmax(150px,1.05fr);grid-template-rows:auto auto;gap:9px 10px;margin:-1px 14px 0;padding:12px 12px 13px;border:2px solid rgba(255,248,222,.94);border-radius:0 0 19px 19px;color:var(--ink);background:linear-gradient(150deg,#fff5df,#ead4ac);box-shadow:0 10px 22px #5a3b122e,inset 0 0 0 1px #7654201f}.skill-row{grid-column:1;grid-row:1;gap:8px;padding:0}.skill-button{min-height:68px;gap:7px;padding:7px;border-color:#6b4d1f33;background:#ffffff94;box-shadow:inset 0 1px #fff,0 4px 9px #462d0c17}.skill-icon{flex-basis:49px;width:49px;height:49px}.skill-copy strong{font-size:12px}.skill-button>em{right:7px;bottom:5px}.enemy-intent{grid-column:2;grid-row:1;min-width:0;padding:8px 10px;border:1px solid rgba(142,35,55,.17);border-radius:13px;background:#fff4e785}.enemy-intent div{grid-template-columns:30px minmax(0,1fr) auto}.enemy-intent div span{width:30px;height:30px;border-radius:9px;box-shadow:0 4px 10px #8e233733}.enemy-intent strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.battle-message{grid-column:1 / -1;grid-row:2;min-height:44px;align-items:center;justify-content:center;padding:7px 16px;border:1px solid rgba(255,185,196,.42);border-radius:999px;color:#fff7ef;text-align:center;background:linear-gradient(90deg,#8f1533,#b52343 48%,#86142f);box-shadow:inset 0 1px #ffffff2b,0 5px 12px #7c102c2e}.battle-message small{color:#f6c3c9;font-size:7px}.battle-message strong{margin-top:1px;font-size:12px}.play-area{grid-template-columns:1fr;gap:16px;padding:20px 18px 18px;background:radial-gradient(circle at 50% 5%,rgba(255,255,255,.8),transparent 33rem),linear-gradient(155deg,#f9eed8,#ead9b8)}.board-topline{margin-bottom:11px;padding:0 5px}.board-topline h1{font-size:22px}.board{gap:clamp(5px,1vw,8px);padding:clamp(9px,1.5vw,13px);border:2px solid rgba(255,252,235,.94);border-radius:21px;background:linear-gradient(#ead8b4,#cfb482);box-shadow:inset 0 3px 12px #59390d33,0 10px 24px #482f0d24}.tile{padding:6%;border-color:#7553242e;border-radius:clamp(9px,1.4vw,14px);background:linear-gradient(145deg,#fffdf7,#eadabd);box-shadow:inset 0 2px 2px #fff,0 3px 7px #492e0a2e}.rune{filter:saturate(1.06) contrast(1.03)}.side-panel{display:grid;grid-template-columns:1.15fr 1.35fr .7fr;gap:10px;align-items:stretch}.mission-card,.legend-card{border-radius:14px}.mission-card{padding:14px}.mission-card:before{margin-bottom:9px}.mission-card h2{font-size:16px}.mission-card p{display:none}.legend-card{padding:12px 13px}.legend-card ul{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.legend-card li{min-width:0;padding:5px 0;border:0}.legend-card li span{overflow:hidden}.legend-card li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restart-button{min-height:100%;border-radius:14px}@media(max-width:620px){html,body{min-width:280px}.app-shell{width:100%;padding:0 0 20px}.topbar{display:none}.game-card{border-width:0;border-radius:0;box-shadow:none}.battle-stage{min-height:350px;border-radius:0;background-position:center 42%}.level-tag{top:9px;min-width:128px;padding:7px 10px}.level-tag--left{left:9px}.level-tag--right{right:9px}.floor-crest{width:62px;height:72px}.floor-crest strong{font-size:25px}.fighter-name{top:59px}.fighter-name--left{left:11px}.fighter-name--right{right:11px}.fighter-name strong{font-size:12px}.fighter-name small{font-size:7px}.affinity{width:27px;height:27px}.versus-seal{top:92px;width:74px;height:74px}.versus-seal span{font-size:26px}.combat-deck{right:10px;bottom:8px;left:10px;gap:7px;padding:13px 11px;border-radius:17px}.health-copy{display:grid;gap:2px;margin-bottom:5px;font-size:9px}.health-block--enemy .health-copy{justify-items:end}.health-copy span{font-size:7px}.health-copy strong{font-size:9px}.health-track{height:11px}.turn-orb{width:46px;height:46px}.turn-orb strong{font-size:17px}.action-ribbon{grid-template-columns:minmax(0,3fr) minmax(92px,1fr);gap:6px;margin:0;padding:8px 10px;border-right:0;border-left:0;border-radius:0}.skill-row{gap:6px}.skill-button{min-height:60px;padding:6px 4px;border-radius:11px}.skill-icon{display:block;width:40px;height:40px;margin:0 auto}.skill-icon b{width:18px;height:18px}.skill-copy strong{margin-top:3px;font-size:10px}.enemy-intent{min-height:60px;padding:6px;text-align:center}.enemy-intent small{font-size:6px}.enemy-intent div{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 4px}.enemy-intent div span{width:30px;height:30px}.enemy-intent strong{width:100%;font-size:8px}.enemy-intent em{font-size:8px}.battle-message{display:flex;width:100%;min-height:36px;padding:5px 12px;border-left:1px solid rgba(255,185,196,.42)}.play-area{gap:13px;padding:11px 9px 14px}.board-topline{margin-bottom:7px;padding:0 4px}.board-topline .eyebrow{display:none}.board-topline h1{font-size:20px}.board{gap:5px;padding:7px;border-radius:17px}.tile{padding:4%;border-radius:10px}.board-help{margin-top:8px;font-size:8px}.side-panel{grid-template-columns:1fr auto;gap:8px}.mission-card{min-width:0;padding:11px 12px}.mission-card h2{font-size:14px}.score-row{margin-top:9px}.legend-card{display:none}.restart-button{grid-column:auto;min-width:92px;min-height:100%;padding:0 12px}}body:after{position:fixed;inset:-25%;z-index:-2;pointer-events:none;content:"";opacity:.34;background:radial-gradient(circle at 22% 24%,rgba(0,255,221,.2),transparent 21%),radial-gradient(circle at 78% 36%,rgba(255,31,74,.19),transparent 23%),conic-gradient(from 80deg at 50% 50%,transparent,rgba(255,201,80,.045),transparent 28%);filter:blur(36px) saturate(1.35);animation:page-aurora 14s ease-in-out infinite alternate}.battle-stage{filter:saturate(1.08) contrast(1.045)}.stage-vignette{z-index:2;background:linear-gradient(105deg,rgba(48,255,225,.1),transparent 26%,transparent 68%,rgba(255,46,82,.1)),radial-gradient(ellipse at 50% 72%,transparent 35%,rgba(0,0,0,.24));mix-blend-mode:screen}.stage-ambience,.stage-energy{position:absolute;inset:0;pointer-events:none}.stage-ambience{z-index:1;overflow:hidden}.ambient-mote{position:absolute;top:var(--y);left:var(--x);width:var(--size);height:calc(var(--size) * 2.8);border-radius:999px;opacity:0;transform:rotate(20deg);animation:ambient-rise var(--duration) var(--delay) linear infinite}.ambient-mote--storm{background:linear-gradient(to top,transparent,#74fff2);box-shadow:0 0 9px #2ce7dc}.ambient-mote--flame{background:linear-gradient(to top,transparent,#ffbd75 48%,#ff4761);box-shadow:0 0 9px #ff3e5a}.stage-energy{z-index:1;opacity:.42;filter:blur(1px);mix-blend-mode:screen}.stage-energy:before,.stage-energy:after{position:absolute;content:""}.stage-energy--storm:before{--thread-angle: 21deg;top:-22%;bottom:-16%;left:13%;width:2px;background:linear-gradient(transparent,rgba(106,255,240,.88),transparent 72%);box-shadow:22px 80px #6cfff257,-28px 150px #6cfff238;transform:rotate(21deg);animation:energy-thread 4.4s ease-in-out infinite alternate}.stage-energy--storm:after{top:19%;left:-6%;width:46%;height:48%;border:1px solid rgba(104,255,240,.28);border-radius:50%;box-shadow:inset 0 0 30px #2cffe11f,0 0 24px #2cffe11a;transform:rotate(-14deg) skew(18deg);animation:aura-breathe 4.8s ease-in-out infinite}.stage-energy--flame:before{--thread-angle: -20deg;top:-20%;right:14%;bottom:-18%;width:2px;background:linear-gradient(transparent,rgba(255,115,98,.9),transparent 72%);box-shadow:-24px 70px #ff566357,30px 145px #ff605338;transform:rotate(-20deg);animation:energy-thread 4.1s 1s ease-in-out infinite alternate-reverse}.stage-energy--flame:after{top:18%;right:-6%;width:46%;height:49%;border:1px solid rgba(255,96,106,.3);border-radius:50%;box-shadow:inset 0 0 34px #ff2d4821,0 0 26px #ff2d481a;transform:rotate(15deg) skew(-18deg);animation:aura-breathe 5.1s .6s ease-in-out infinite reverse}.level-tag,.floor-crest,.fighter-name,.versus-seal{z-index:3}.combat-deck{z-index:4;overflow:hidden}.combat-deck:before{position:absolute;top:-80%;bottom:-80%;left:-28%;width:18%;pointer-events:none;content:"";opacity:.48;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);transform:rotate(17deg);animation:panel-sheen 6.5s ease-in-out infinite}.floor-crest:after{position:absolute;inset:7px 10px 18px;border:1px solid rgba(135,255,237,.3);content:"";background:radial-gradient(circle,rgba(106,255,238,.18),transparent 67%);animation:crest-pulse 2.8s ease-in-out infinite}.versus-seal:after{position:absolute;inset:2px;z-index:-1;border-radius:50%;content:"";background:conic-gradient(from 0deg,transparent 0 14%,rgba(255,220,120,.88) 17%,transparent 20% 47%,rgba(255,92,74,.8) 50%,transparent 54% 80%,rgba(255,220,120,.8) 84%,transparent 88%);filter:blur(3px);animation:versus-spin 5s linear infinite}.health-fill:after{position:absolute;inset:1px 0 auto;height:45%;border-radius:inherit;content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);animation:health-glint 3.2s ease-in-out infinite}.skill-button{isolation:isolate}.skill-button:before{position:absolute;inset:-60% -25%;z-index:-1;pointer-events:none;content:"";opacity:0;background:conic-gradient(transparent,rgba(255,208,102,.34),transparent 35%);transition:opacity .25s ease;animation:skill-energy 5s linear infinite}.skill-button:hover:before,.skill-button.is-ready:before{opacity:1}.skill-button.is-ready .skill-icon{filter:drop-shadow(0 0 8px rgba(255,199,70,.76))}.skill-button.is-ready .rune{animation:ready-rune 1.5s ease-in-out infinite}.board{position:relative;isolation:isolate}.board:before{position:absolute;inset:4px;z-index:-1;border:1px solid rgba(255,245,205,.56);border-radius:inherit;pointer-events:none;content:"";background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.22) 47%,transparent 61%),radial-gradient(circle at 50% 50%,rgba(38,190,169,.08),transparent 70%);background-size:230% 100%,100% 100%;animation:board-sheen 7s ease-in-out infinite}.tile{overflow:hidden}.tile:before{position:absolute;inset:-45% -70%;z-index:1;pointer-events:none;content:"";opacity:.45;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.88) 49%,transparent 60%);transform:translate(-55%) rotate(8deg);transition:transform .55s ease}.tile:hover:before,.tile.is-selected:before{transform:translate(55%) rotate(8deg)}.tile .rune{position:relative;z-index:0;transition:filter .2s ease,transform .2s ease}.tile:hover .rune{filter:saturate(1.22) contrast(1.08) brightness(1.12) drop-shadow(0 0 7px rgba(255,211,102,.55))}.tile.is-selected .rune{animation:selected-rune 1s ease-in-out infinite alternate}.tile.is-matched:before{inset:-15%;border-radius:50%;opacity:1;background:radial-gradient(circle,white 0 8%,rgba(255,234,151,.94) 18%,rgba(79,255,231,.52) 38%,transparent 70%);transform:none;animation:match-flare .38s ease-out forwards}.fx-layer{position:fixed;inset:0;z-index:40;overflow:hidden;pointer-events:none}.rune-impact-ring,.rune-burst-spark,.floating-number{position:fixed;display:block;pointer-events:none}.rune-impact-ring{width:22px;height:22px;border:2px solid var(--fx-color);border-radius:50%;box-shadow:0 0 8px var(--fx-color),inset 0 0 7px var(--fx-color);transform:translate(-50%,-50%);animation:impact-ring .68s ease-out forwards}.rune-burst-spark{width:5px;height:12px;border-radius:999px;background:linear-gradient(to top,transparent,white);box-shadow:0 0 8px var(--fx-color),0 0 14px var(--fx-color);transform-origin:50% 50%;animation:burst-spark .72s var(--delay) cubic-bezier(.12,.72,.28,1) forwards}.floating-number{color:#fff4d2;font-family:Georgia,Times New Roman,serif;font-size:clamp(22px,3vw,32px);font-weight:900;letter-spacing:.04em;text-shadow:0 2px 0 #8e1731,0 0 10px #ff4268,0 0 22px rgba(255,55,91,.82);transform:translate(-50%,-50%);animation:floating-number .95s cubic-bezier(.17,.8,.24,1) forwards}.floating-number--heal{color:#d9fff1;text-shadow:0 2px 0 #087359,0 0 10px #46efb4,0 0 22px rgba(57,242,179,.82)}.floating-number--critical{color:#fff0a5;font-size:clamp(28px,4vw,40px);text-shadow:0 2px 0 #9c241c,0 0 10px #ffad32,0 0 28px rgba(255,73,28,.92)}.game-card.is-impact-enemy{animation:impact-enemy .5s ease-out}.game-card.is-impact-player{animation:impact-player .5s ease-out}.skill-vfx{position:absolute;inset:0;z-index:6;overflow:hidden;pointer-events:none}.skill-vfx i{position:absolute;display:block}.skill-vfx--0 i{top:calc(27% + var(--piece) * 10%);left:-22%;width:72%;height:5px;border-radius:50%;opacity:0;background:linear-gradient(90deg,transparent,#efffff 42%,#47ffeb 54%,transparent 72%);box-shadow:0 0 12px #34dfd2,0 0 28px #2cffe7bd;transform:rotate(calc(-18deg + var(--piece) * 7deg));animation:storm-slash .72s calc(var(--piece) * 55ms) cubic-bezier(.15,.78,.22,1) forwards}.skill-vfx--1 i{bottom:18%;left:24%;width:calc(70px + var(--piece) * 32px);height:calc(34px + var(--piece) * 16px);border:2px solid rgba(151,255,226,.88);border-radius:50%;box-shadow:0 0 16px #5fffd0db,inset 0 0 14px #977aff9e;transform:translate(-50%,50%) scale(.2);animation:healing-ring .92s calc(var(--piece) * 90ms) ease-out forwards}.skill-vfx--2 i:first-child{top:-32%;right:9%;width:18px;height:76%;border-radius:50%;background:linear-gradient(to bottom,transparent,#fff4ae 62%,#ff5a29 82%,transparent);box-shadow:0 0 18px #ffb32f,0 0 46px #ff3c18e6;transform:rotate(34deg);animation:meteor-fall .78s cubic-bezier(.18,.65,.25,1) forwards}.skill-vfx--2 i:last-child{right:17%;bottom:24%;width:24px;height:24px;border:3px solid #ffd36a;border-radius:50%;box-shadow:0 0 18px #ff4b2f,inset 0 0 12px #ff4b2f;transform:scale(.1);animation:meteor-ring .75s .28s ease-out forwards}.skill-vfx--enemy i{top:calc(24% + var(--piece) * 10%);right:-8%;width:58%;height:4px;opacity:0;background:linear-gradient(90deg,transparent,#ffccd5 38%,#ff335a 52%,transparent 78%);box-shadow:0 0 15px #ff3158;transform:rotate(calc(20deg - var(--piece) * 9deg));animation:enemy-claw .68s calc(var(--piece) * 65ms) ease-out forwards}@keyframes page-aurora{to{transform:translate3d(3%,-2%,0) rotate(4deg) scale(1.08)}}@keyframes ambient-rise{0%{opacity:0;transform:translate3d(0,18px,0) rotate(20deg) scale(.6)}18%{opacity:.92}78%{opacity:.5}to{opacity:0;transform:translate3d(var(--drift),-82px,0) rotate(42deg) scale(1.15)}}@keyframes energy-thread{0%{opacity:.25;transform:rotate(var(--thread-angle)) translate(-12px) scaleY(.82)}55%{opacity:.86}to{opacity:.35;transform:rotate(calc(var(--thread-angle) - 4deg)) translate(18px) scaleY(1.08)}}@keyframes aura-breathe{50%{opacity:.45;transform:rotate(-8deg) skew(10deg) scale(1.09)}}@keyframes panel-sheen{0%,68%{transform:translate(0) rotate(17deg);opacity:0}76%{opacity:.48}92%,to{transform:translate(850%) rotate(17deg);opacity:0}}@keyframes crest-pulse{50%{opacity:.48;box-shadow:0 0 18px #6bffeb66}}@keyframes versus-spin{to{transform:rotate(360deg)}}@keyframes health-glint{0%,58%{transform:translate(-110%);opacity:0}70%{opacity:.78}88%,to{transform:translate(110%);opacity:0}}@keyframes skill-energy{to{transform:rotate(360deg)}}@keyframes ready-rune{50%{transform:scale(1.08);filter:brightness(1.22) saturate(1.2)}}@keyframes board-sheen{0%,52%{background-position:130% 0,0 0}76%,to{background-position:-130% 0,0 0}}@keyframes selected-rune{to{transform:scale(1.07) rotate(2deg);filter:brightness(1.2) saturate(1.2) drop-shadow(0 0 7px #fff3a3)}}@keyframes match-flare{0%{transform:scale(.2);opacity:1}to{transform:scale(1.55);opacity:0}}@keyframes impact-ring{0%{opacity:1;transform:translate(-50%,-50%) scale(.25)}to{opacity:0;transform:translate(-50%,-50%) scale(calc(3.3 * var(--fx-scale)))}}@keyframes burst-spark{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translate(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translate(var(--distance)) scale(.05)}}@keyframes floating-number{0%{opacity:0;transform:translate(-50%,-10%) scale(.45)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.16)}72%{opacity:1}to{opacity:0;transform:translate(-50%,-150%) scale(.9)}}@keyframes impact-enemy{18%{transform:translate(4px) skew(-.25deg);filter:brightness(1.13)}38%{transform:translate(-2px)}62%{transform:translate(1px)}}@keyframes impact-player{18%{transform:translate(-4px) skew(.25deg);filter:brightness(.9) saturate(1.2)}38%{transform:translate(2px)}62%{transform:translate(-1px)}}@keyframes storm-slash{0%{opacity:0;transform:translate(0) rotate(calc(-18deg + var(--piece) * 7deg)) scaleX(.2)}18%{opacity:1}to{opacity:0;transform:translate(168%) rotate(calc(-18deg + var(--piece) * 7deg)) scaleX(1.15)}}@keyframes healing-ring{0%{opacity:0;transform:translate(-50%,50%) scale(.2)}28%{opacity:1}to{opacity:0;transform:translate(-50%,-40%) scale(1.65)}}@keyframes meteor-fall{0%{opacity:0;transform:translate(0) rotate(34deg) scaleY(.45)}24%{opacity:1}to{opacity:0;transform:translate(-220px,420px) rotate(34deg) scaleY(1.2)}}@keyframes meteor-ring{0%{opacity:0;transform:scale(.1)}30%{opacity:1}to{opacity:0;transform:scale(8)}}@keyframes enemy-claw{0%{opacity:0;transform:translate(0) rotate(calc(20deg - var(--piece) * 9deg)) scaleX(.2)}20%{opacity:1}to{opacity:0;transform:translate(-158%) rotate(calc(20deg - var(--piece) * 9deg)) scaleX(1.1)}}@media(max-width:620px){.ambient-mote:nth-child(n+15){display:none}.floating-number{font-size:22px}.skill-vfx--1 i{left:25%}}.goal-strip{display:grid;grid-template-columns:.68fr 1.42fr 1.18fr;gap:8px;margin:0 4px 10px}.goal-chip,.prism-booster{position:relative;display:flex;min-width:0;min-height:62px;align-items:center;gap:9px;overflow:hidden;border:1px solid rgba(109,74,25,.2);border-radius:14px;color:#3f2a22;background:linear-gradient(135deg,#ffffffeb,#f5e2bed4),#f5e3c2;box-shadow:inset 0 1px #fff,0 4px 11px #4628091f}.goal-chip{padding:8px 10px}.goal-chip:after,.prism-booster:after{position:absolute;inset:0;pointer-events:none;content:"";opacity:.5;background:linear-gradient(112deg,transparent 30%,rgba(255,255,255,.8) 45%,transparent 60%);transform:translate(-110%)}.goal-icon,.prism-orb{display:grid;flex:0 0 auto;width:35px;height:35px;place-items:center;border-radius:11px;color:#fff8dc;font-family:Georgia,Times New Roman,serif;font-size:20px;background:linear-gradient(145deg,#274f4a,#11302e);box-shadow:inset 0 1px #ffffff47,0 3px 8px #0f393242}.goal-chip>span:nth-child(2),.prism-copy{display:grid;min-width:0;gap:2px}.goal-chip small,.prism-booster small{color:#9a7458;font-size:7px;font-weight:800;letter-spacing:.12em}.goal-chip strong,.prism-booster strong{overflow:hidden;font-family:Georgia,Times New Roman,serif;font-size:12px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.goal-chip--moves strong{color:#183f3b;font-size:24px;line-height:.95}.goal-chip--moves.is-urgent{border-color:#c9223a7a;background:linear-gradient(135deg,#fff8ee,#f9d2c1);animation:urgent-moves 1.1s ease-in-out infinite}.goal-chip--moves.is-urgent .goal-icon{background:linear-gradient(145deg,#d93645,#86152f)}.goal-chip--target em{margin-left:auto;color:#9b263e;font-size:8px;font-style:normal;font-weight:900;white-space:nowrap}.goal-progress,.prism-copy i{position:relative;display:block;width:100%;height:5px;overflow:hidden;border-radius:999px;background:#58381d24}.goal-progress b,.prism-copy i b{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,#c92d4d,#ff6b55,#ffd068);box-shadow:0 0 7px #f439548c;transition:width .35s ease}.prism-booster{padding:7px 9px;cursor:pointer;text-align:left;transition:transform .2s ease,filter .2s ease,border-color .2s ease}.prism-booster:disabled{cursor:default;filter:saturate(.82)}.prism-orb{border-radius:50%;background:radial-gradient(circle at 37% 31%,#fff,#ffe97c 13%,#aa6aff 43%,#253f8c 72%);box-shadow:inset 0 0 9px #fff,0 0 11px #744dff73}.prism-copy{flex:1 1 auto}.prism-copy i b{background:linear-gradient(90deg,#46dfce,#7a72ff 52%,#ff6ac8);box-shadow:0 0 8px #695affb3}.prism-booster>em{min-width:27px;color:#624b79;font-size:8px;font-style:normal;font-weight:900;text-align:right}.prism-booster.is-ready{border-color:#774fffb3;color:#33224c;background:linear-gradient(135deg,#fffef3,#e7dbff 53%,#ffd9ef);box-shadow:inset 0 1px #fff,0 0 16px #7550ff66,0 5px 14px #46286e38;animation:prism-ready 1.35s ease-in-out infinite}.prism-booster.is-ready:after{animation:goal-sheen 1.8s ease-in-out infinite}.prism-booster.is-ready:hover{transform:translateY(-2px) scale(1.015);filter:brightness(1.07) saturate(1.16)}.result-rating{margin:9px 0 2px;color:#f7bc3c;font-family:Georgia,Times New Roman,serif;font-size:29px;letter-spacing:.13em;text-shadow:0 2px #9a4c18,0 0 15px rgba(255,195,59,.56)}.skill-vfx--prism{background:radial-gradient(circle at 68% 48%,rgba(255,255,255,.54),rgba(141,87,255,.14) 22%,transparent 52%);mix-blend-mode:screen;animation:prism-flash .95s ease-out forwards}.skill-vfx--prism i{top:48%;left:68%;width:7px;height:58%;border-radius:50%;opacity:0;background:linear-gradient(to top,transparent,#fffbd5 45%,#b879ff 75%,transparent);box-shadow:0 0 14px #8c6cff,0 0 28px #ff69d0bd;transform-origin:50% 0;animation:prism-ray .84s calc(var(--piece) * 38ms) ease-out forwards}.battle-stage.is-prism-burst .combat-deck{box-shadow:0 0 0 1px #ffef97b8,0 0 34px #8656ffa8,0 16px 30px #260c3e57}@keyframes urgent-moves{50%{transform:scale(1.018);box-shadow:inset 0 1px #fff,0 0 15px #c9223a47}}@keyframes goal-sheen{to{transform:translate(110%)}}@keyframes prism-ready{50%{box-shadow:inset 0 1px #fff,0 0 23px #7550ff94,0 5px 14px #46286e38}}@keyframes prism-ray{0%{opacity:0;transform:rotate(calc(var(--piece) * 45deg)) scaleY(.1)}24%{opacity:1}to{opacity:0;transform:rotate(calc(var(--piece) * 45deg)) scaleY(1.3)}}@keyframes prism-flash{0%{opacity:0;filter:brightness(1)}28%{opacity:1;filter:brightness(1.45)}to{opacity:0;filter:brightness(1)}}@media(max-width:620px){.goal-strip{grid-template-columns:.62fr 1.38fr;gap:6px;margin:0 3px 8px}.goal-chip,.prism-booster{min-height:53px;border-radius:11px}.goal-chip{gap:6px;padding:6px 7px}.goal-icon,.prism-orb{width:30px;height:30px;font-size:17px}.goal-chip--moves strong{font-size:20px}.goal-chip--target strong{font-size:10px}.goal-chip--target em{font-size:7px}.prism-booster{grid-column:1 / -1;min-height:47px;padding:6px 9px}.prism-copy{grid-template-columns:auto 1fr;align-items:center;column-gap:8px}.prism-copy small{display:none}.prism-copy i{grid-column:2}}@media(prefers-reduced-motion:reduce){.goal-chip--moves.is-urgent,.prism-booster.is-ready,.prism-booster.is-ready:after,.skill-vfx--prism,.skill-vfx--prism i{animation:none}}
