.combat-arena{position:relative;isolation:isolate;height:220px;width:100%;overflow:hidden;color:#eee7ce;background:#303c31;border:3px solid #121b17;border-bottom-width:5px;font-family:DM Sans,sans-serif;font-weight:800;text-transform:uppercase}.combat-scenery{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.combat-arena:after{content:"";position:absolute;z-index:7;top:0;right:0;bottom:0;left:0;pointer-events:none;border:2px solid #bca55626}.combat-hud{position:absolute;top:10px;z-index:6;width:42%}.combat-hud--player{left:11px}.combat-hud--enemy{right:11px;text-align:right}.combat-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:19px;letter-spacing:.02em;text-shadow:1px 2px #121b17}.combat-health{position:relative;margin-top:3px}.combat-health>strong{position:absolute;z-index:1;top:0;left:7px;color:#fff5dc;line-height:20px;font-size:14px;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:-1px -1px #202923,1px -1px #202923,-1px 1px #202923,1px 1px #202923}.combat-health>strong span{margin-left:2px}.combat-hud--enemy .combat-health>strong{right:7px;left:auto}.combat-health-track{height:21px;overflow:hidden;background:#17211b;border:2px solid #111b16;outline:1px solid #767557}.combat-health-track i{display:block;height:100%;background:#83a16a;transition:width .18s cubic-bezier(.2,.8,.3,1)}.combat-hud--enemy .combat-health-track i{background:#d78058}.combat-block,.combat-intent{display:inline-block;margin-top:7px;padding:3px 6px;line-height:16px;font-size:13px;font-weight:900;color:#e2bf52;background:#1c261f;border-bottom:2px solid #665c37}.combat-block{color:#86d0be;border-color:#4b8f7d}.combat-intent--acting{color:#202923;background:#ed8050}.combat-actors,.combat-event{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.combat-actor{position:absolute;bottom:9px;z-index:2;width:136px;height:135px;transform:translate(-50%)}.combat-actor--player{left:24%}.combat-actor--enemy{left:76%;width:155px}.combat-sprite{width:100%;height:100%;transform-origin:50% 89%}.combat-sprite>svg{width:100%;height:100%;filter:drop-shadow(1px 0 0 #a9ac7d) drop-shadow(-1px 0 0 #949c77) drop-shadow(0 4px 0 #19251b88)}.combat-actor--casting .combat-sprite{animation:combat-cast var(--windup-duration) ease-in-out both}.combat-actor--attacking .combat-sprite{animation:combat-attack var(--windup-duration) cubic-bezier(.5,0,.7,1) both}.combat-actor--hurt .combat-sprite{animation:combat-recoil .36s ease-out both}.combat-actor--player.combat-actor--hurt .combat-sprite{animation-name:combat-player-recoil}.combat-actor--hurt .combat-sprite>svg{animation:combat-flash .32s steps(1) both}.combat-actor--defeated .combat-sprite{animation:combat-defeat .65s ease-out both}.combat-arena--impact .combat-scenery{animation:combat-shake .23s linear both}.combat-event{z-index:4}.combat-cast-word{position:absolute;top:82px;left:50%;transform:translate(-50%);color:#ffe290;font-size:24px;line-height:1;font-weight:1000;letter-spacing:.05em;text-shadow:2px 3px #17211b,-1px -1px #17211b;animation:combat-word 1.4s ease-out both}.combat-projectile{position:absolute;width:25px;height:25px;transform:translate(-50%,-50%) rotate(-9deg)}.combat-projectile:before,.combat-projectile:after{content:"";position:absolute;right:24px;width:38px;height:6px;background:#e2bf52}.combat-projectile:before{top:0}.combat-projectile:after{bottom:0;width:26px;background:#ed8050}.combat-projectile i{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffdf1;border:4px solid #e2bf52;box-shadow:0 0 0 4px #ed80505c;clip-path:polygon(16% 0,78% 0,100% 36%,100% 74%,72% 100%,0 84%,0 22%)}.combat-projectile b{position:absolute;top:8px;right:28px;width:50px;height:3px;background:#fff0ad}.combat-impact{position:absolute;top:65%;width:0;height:0;--impact-color: #ffe18a}.combat-impact--player{left:24%}.combat-impact--enemy{left:76%}.combat-impact--heal{--impact-color: #a2df96}.combat-impact--block{--impact-color: #93dfd5}.combat-impact-ring{position:absolute;top:-36px;left:-36px;width:72px;height:72px;border:4px solid var(--impact-color);border-radius:50%;animation:combat-ring .45s ease-out both}.combat-impact-star{position:absolute;top:-31px;left:-31px;width:62px;height:62px;background:var(--impact-color);clip-path:polygon(50% 0,59% 31%,85% 9%,69% 40%,100% 50%,66% 61%,87% 87%,60% 71%,50% 100%,39% 69%,8% 88%,30% 59%,0 50%,30% 40%,13% 11%,40% 30%);animation:combat-star .28s ease-out both}.combat-spark{position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:var(--impact-color);animation:combat-particle .59s cubic-bezier(.1,.55,.35,1) both}.combat-number{position:absolute;z-index:2;top:88px;font-size:40px;line-height:1;font-weight:1000;color:#fff4d0;text-shadow:3px 3px #6f3528,-2px -2px #202923,2px -2px #202923,-2px 2px #202923;animation:combat-number .72s cubic-bezier(.16,.8,.38,1) both}.combat-number--enemy{left:76%}.combat-number--player{left:24%;color:#ffac85}.combat-gains{position:absolute;left:24%;top:92px;display:grid;gap:3px;white-space:nowrap;text-align:center;font-size:18px;line-height:1.05;font-weight:1000;text-shadow:-2px -2px #202923,2px -2px #202923,-2px 2px #202923,2px 2px #202923;animation:combat-number .72s cubic-bezier(.16,.8,.38,1) both}.combat-gains--lower{top:135px}.combat-gain--heal{color:#bef0a8}.combat-gain--block{color:#99e6d5}.combat-gain--status{color:#e8afd0}.combat-warning{position:absolute;bottom:11px;left:50%;transform:translate(-50%);padding:4px 9px;color:#ffe7c2;background:#6f3528;font-size:15px;white-space:nowrap}.combat-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.combat-arena--paused *,.combat-arena--paused *:before,.combat-arena--paused *:after{animation-play-state:paused!important}@keyframes combat-cast{0%{transform:translate(0) rotate(0)}48%{transform:translate(-9px) rotate(-8deg)}78%{transform:translate(17px) rotate(9deg)}to{transform:translate(6px) rotate(2deg)}}@keyframes combat-attack{0%{transform:translate(0)}42%{transform:translate(10px) rotate(7deg)}90%,to{transform:translate(-42px) rotate(-9deg)}}@keyframes combat-recoil{0%{transform:translate(13px) rotate(9deg)}24%{transform:translate(-5px) rotate(-4deg)}48%{transform:translate(7px) rotate(4deg)}to{transform:translate(0) rotate(0)}}@keyframes combat-player-recoil{0%{transform:translate(-15px) rotate(-11deg)}24%{transform:translate(5px) rotate(4deg)}48%{transform:translate(-7px) rotate(-4deg)}to{transform:translate(0) rotate(0)}}@keyframes combat-flash{0%,46%{filter:brightness(2.7) sepia(.8) saturate(.7)}23%,70%,to{filter:none}}@keyframes combat-defeat{0%{opacity:1;transform:translate(12px) rotate(8deg)}40%{opacity:.8}to{opacity:.25;transform:translateY(12px) rotate(14deg)}}@keyframes combat-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(3px,-1px)}75%{transform:translate(-2px,1px)}}@keyframes combat-word{0%{opacity:0;transform:translate(-50%,10px) scale(.85)}17%,50%{opacity:1;transform:translate(-50%) scale(1)}78%,to{opacity:0;transform:translate(-50%,-9px) scale(1.05)}}@keyframes combat-ring{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}@keyframes combat-star{0%{opacity:1;transform:scale(.7) rotate(-15deg)}45%{opacity:.95;transform:scale(1.25) rotate(0)}to{opacity:0;transform:scale(.5) rotate(15deg)}}@keyframes combat-particle{0%{opacity:1;transform:rotate(var(--angle)) translate(9px) rotate(0)}to{opacity:0;transform:rotate(var(--angle)) translate(var(--reach)) rotate(100deg) scale(.4)}}@keyframes combat-number{0%{opacity:0;transform:translate(-50%,12px) scale(.65)}16%{opacity:1;transform:translate(-50%,-8px) scale(1.15)}42%,73%{opacity:1;transform:translate(-50%,-12px) scale(1)}to{opacity:0;transform:translate(-50%,-28px) scale(.95)}}@media(min-width:520px){.combat-arena{height:260px}.combat-hud{width:39%;top:13px}.combat-hud--player{left:16px}.combat-hud--enemy{right:16px}.combat-name{font-size:16px}.combat-actor{height:157px;width:150px;bottom:15px}.combat-actor--enemy{width:179px}.combat-cast-word{top:103px;font-size:28px}.combat-number,.combat-gains{top:112px}.combat-gains--lower{top:157px}}@media(prefers-reduced-motion:reduce){.combat-arena *,.combat-arena *:before,.combat-arena *:after{animation:none!important;transition:none!important}.combat-number,.combat-gains,.combat-cast-word{transform:translate(-50%)}.combat-impact,.combat-projectile{display:none}.combat-actor--hurt .combat-sprite>svg{filter:brightness(1.35)}.combat-actor--defeated{opacity:.4}}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/dm-sans-latin-ext-900-normal-qlfveSiL.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-900-normal-B3hLVvaR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/dm-sans-latin-900-normal-BmOyECvA.woff2) format("woff2"),url(/assets/dm-sans-latin-900-normal-Bm36EmVp.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans,Arial,sans-serif;font-weight:600;color:#ece7d1;background:#191e1b;font-synthesis:none;--ink: #20271f;--cream: #ece7d1;--muted: #adb5a1;--gold: #e6bf51;--edge: #111710;--line: #56604c}*{box-sizing:border-box}body{margin:0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ffffff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:3px solid #fff1aa;outline-offset:3px}button:not(:disabled):active{transform:translateY(3px)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:900;line-height:1}svg{display:block;width:100%;height:auto}button svg{pointer-events:none}.app{min-height:100svh;padding:24px 16px 40px}.game-shell{width:100%;max-width:600px;margin:0 auto;background:#293126;border:3px solid #657059;box-shadow:0 0 0 5px #10170f,10px 12px #0e150e}.game-header{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:7px 14px;background:#20281f;border-bottom:3px solid #111910}.header-title{font-size:15px;letter-spacing:1px;font-weight:900}.header-back{background:none;padding:9px 0;font-size:13px;display:flex;gap:7px;align-items:center;color:#b7c0a8;min-height:38px}.help-button{width:36px;height:34px;background:#4d5943;border:2px solid #849272;box-shadow:0 3px #10170f;color:#f5edd1;font-size:23px;font-weight:900;line-height:1}.primary,.secondary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:50px;padding:12px 22px 16px;font-size:17px;font-weight:900;letter-spacing:.7px;border:2px solid #f8da80;background:var(--gold);color:#24291c;box-shadow:inset 0 -5px #9d7b2a,inset 0 2px #f5d684;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}.primary:hover:not(:disabled){background:#f3d169}.primary:active:not(:disabled),.secondary:active:not(:disabled){box-shadow:inset 0 -2px #6f5b27}.primary:disabled{background:#434c3c;color:#8b957e;border-color:#58644b;box-shadow:inset 0 -5px #30382b}.secondary{background:#424b3b;color:#d7dcc8;border-color:#718062;box-shadow:inset 0 -5px #2e3729,inset 0 2px #546248;font-size:14px}.secondary:hover:not(:disabled){background:#526148}.primary:focus-visible,.secondary:focus-visible{outline:none;background:#f5df96;box-shadow:inset 0 0 0 3px #fff,inset 0 -5px #9d7b2a;color:#192116}.section-label{font-size:13px;font-weight:800;color:#aebca0;letter-spacing:1.1px;line-height:1.4}.muted{color:var(--muted);font-size:13px}.page-enter{animation:page-enter .18s ease-out}.storage-warning{font-size:14px;line-height:1.5;padding:12px 16px;color:#fff0c3;background:#704d29;border-bottom:2px solid #be8749}.loading{padding:30px;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;background:#20271f}.loading h1{font-size:32px;color:var(--gold)}.loading p{font-size:16px;color:#b8c6a6}.loading button{background:var(--gold);padding:15px 30px;font-weight:900;color:var(--ink)}.title-screen{text-align:center;padding:42px 30px 27px}.title-logo>span{display:block;font-size:clamp(48px,9.5vw,76px);letter-spacing:-3px;color:var(--gold);font-weight:900;line-height:.95;text-shadow:0 5px 0 #967429,3px 8px 0 #131c12}.title-logo h1{font-size:15px;letter-spacing:3px;margin-top:19px;color:#c1cbb1}.title-art{position:relative;height:267px;margin:20px auto 10px;display:flex;justify-content:center;align-items:center;isolation:isolate;overflow:hidden}.title-art>svg{width:205px;height:246px;position:relative;z-index:2;filter:drop-shadow(3px 5px 0 #141e13);animation:crow-idle 4s steps(3,end) infinite}.title-orbit{position:absolute;width:220px;height:220px;border:2px solid #48543b;transform:rotate(45deg);background:#323c2c}.orbit-two{width:246px;height:246px;background:none;border:1px solid #3e4a34}.title-plinth{position:absolute;bottom:10px;width:170px;height:14px;border-top:4px solid #68764f;background:#182016;transform:skew(-20deg)}.title-controls{display:flex;flex-direction:column;gap:13px;max-width:300px;margin:0 auto}.title-controls .primary{font-size:22px;min-height:58px}.title-controls .secondary,.button-pointer{font-size:16px}.version-label{display:block;font-size:12px;color:#94a482;letter-spacing:1px;margin-top:29px}.chapter-screen{padding:25px 24px 26px}.chapter-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:15px}.chapter-heading h1{margin-top:6px;font-size:38px;letter-spacing:-1px}.progress-badge{border:2px solid #677957;padding:9px 12px;font-size:20px;font-weight:900;color:#b9cba1;background:#222b1d}.progress-badge.complete{color:var(--gold);border-color:#a38b3b;transform:rotate(-4deg)}.enemy-select-label{margin-bottom:12px}.encounter-list{display:flex;flex-direction:column;gap:11px}.encounter{display:flex;text-align:left;width:100%;min-height:81px;gap:16px;align-items:center;border:2px solid #72805f;background:#3a4632;box-shadow:0 4px #152011;padding:7px 16px 10px 8px;position:relative}.encounter:hover:not(:disabled){background:#4b5a3f;border-color:#c0cea5}.encounter:disabled{opacity:.45}.encounter.boss{border-color:#b39747;background:#514a2b;margin-top:7px}.encounter.boss:hover:not(:disabled){background:#675b30;border-color:var(--gold)}.encounter-portrait{width:67px;height:67px;flex:0 0 67px;background:#293722;border:1px solid #5d6d4e;overflow:hidden;display:flex;align-items:center;justify-content:center}.encounter-portrait svg{width:69px;height:69px}.boss .encounter-portrait{background:#3c371d;border-color:#8c7839}.encounter-details{display:flex;flex-direction:column;gap:8px;flex:1}.encounter-details strong{font-size:20px;font-weight:900;text-transform:uppercase;line-height:1}.encounter-details>span{font-size:12px;font-weight:700;color:#b6c5a2}.encounter-details i{font-style:normal;color:#738466;margin:0 5px}.encounter-marker{font-size:18px;color:#c4cba8}.encounter-marker.cleared{font-size:25px;color:#b2d784}.chapter-buffs{margin-top:28px;padding-top:19px;border-top:2px solid #46573a}.chapter-buffs .section-label{margin-bottom:11px}.buff-rail{display:flex;gap:7px;flex-wrap:wrap}.buff-chip{display:flex;gap:7px;align-items:center;padding:7px 10px;color:#d2dfbb;border:1px solid #688154;background:#33422b;font-size:12px;font-weight:800;text-transform:uppercase;min-height:32px}.buff-chip:hover{background:#475a39}.buff-chip b{color:#f0d687}.buff-chip.debuff{border-color:#b16d53;background:#563429;color:#ffd8be}.resume-banner{background:#46472b;border:2px solid #a09952;padding:17px;margin-bottom:25px}.resume-banner>strong{display:block;font-size:18px;font-weight:900;color:#f4d470}.resume-banner p{font-size:14px;color:#d1d3ae;margin-top:7px}.resume-banner>div{display:flex;gap:10px;margin-top:17px}.resume-banner .primary,.resume-banner .secondary{min-height:45px;font-size:13px;padding:9px 14px 13px}.loot-screen{padding:35px 24px}.loot-heading{margin-bottom:32px}.loot-heading .section-label{color:var(--gold)}.loot-heading h1{font-size:40px;margin:12px 0 14px;letter-spacing:-1px}.loot-heading>p{font-size:13px;color:#bec9ac}.loot-cards{display:flex;flex-direction:column;gap:17px}.loot-card{display:flex;align-items:center;gap:16px;padding:23px 18px;border:2px solid #8d9662;background:#40482e;box-shadow:0 5px #141d11;text-align:left}.loot-card:hover{background:#525c38;border-color:#dbcd7a}.loot-symbol{color:var(--gold);font-size:30px;flex:0 0 36px;text-align:center}.loot-card>div{flex:1}.loot-card h2{font-size:23px;text-transform:uppercase;color:#ead187}.loot-card p{font-size:14px;line-height:1.45;margin-top:8px;color:#dde3cc}.loot-arrow{font-size:19px;color:#d5c171}.loot-upgrade{display:block;font-size:12px;color:#b4bf99;margin-top:10px}.stage-complete{margin-top:33px;font-size:20px;font-weight:900;color:var(--gold);text-align:center}.battle-topline{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:7px 16px;background:#3b4531;color:#d2d9bd;font-size:12px;letter-spacing:1px;font-weight:800}.battle-screen>.buff-rail{padding:9px 12px;background:#222d1e;border-bottom:2px solid #172011}.spell-desk{border-top:3px solid #6c7655;background:#2e3828}.turn-clock{display:flex;align-items:center;gap:14px;padding:8px 17px;background:#202b1c;font-size:12px;color:#b4c79d;border-bottom:2px solid #48563b}.turn-clock>span{min-width:45px;font-weight:800}.turn-clock strong{min-width:36px;text-align:right;font-size:17px;font-weight:900;font-variant-numeric:tabular-nums}.clock-track{flex:1;height:7px;border:1px solid #5a6848;background:#121d0e}.clock-track>div{background:#9bb965;transform-origin:left;height:100%}.turn-clock.paused{color:#96a786}.turn-clock.paused .clock-track>div{background:#687c50}.turn-clock.urgent{background:#4c2d22;color:#ffcd9b}.turn-clock.urgent .clock-track>div{background:#e38b58}.desk-body{padding:20px 22px 22px}.desk-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px;gap:8px}.desk-heading h2{font-size:25px;letter-spacing:-.3px}.desk-heading>span{font-size:13px;color:#aabd93;font-weight:800}.draft-slots,.fragment-pool{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-caption{display:block;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.5px;margin-bottom:9px;font-weight:800;color:#b5c79e}.aspect .slot-caption{color:#d5c58e}.entity .slot-caption{color:#9bbfca}.draft-slot{width:100%;min-height:66px;border:2px dashed #586849;background:#252f20;color:#8a9d73;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:relative}.empty-slot-icon{font-size:27px;font-weight:600}.draft-slot.filled{background:#a7c188;color:#24341d;border-style:solid;border-color:#c6dbaa;box-shadow:inset 0 -3px #718e4d}.draft-slot.aspect.filled{background:#d6b96b;color:#493814;border-color:#eed599;box-shadow:inset 0 -3px #9e7937}.draft-slot.entity.filled{background:#91b8bc;color:#1e3d47;border-color:#b7d3d3;box-shadow:inset 0 -3px #557e84}.draft-slot strong{font-size:16px;font-weight:900;letter-spacing:-.3px}.fragment-stats{font-size:12px;font-weight:800;line-height:1.25}.remove-fragment{position:absolute;top:1px;right:5px;font-size:15px;opacity:.6}.preview-space{min-height:47px;display:flex;justify-content:center;align-items:center}.short-hint{color:#b6c6a1;font-size:12px;font-weight:700;line-height:1.5;text-align:center;margin:13px 0}.preview-space .short-hint{margin:10px 0}.tutorial-hint{margin:14px 0 0}.spell-preview{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;min-height:42px;font-size:12px;color:#96a780}.spell-preview>div{display:flex;gap:12px;flex-wrap:wrap}.spell-preview strong{font-size:14px;color:#e5c679;font-weight:900}.spell-preview .effect-block{color:#9cd4d6}.spell-preview .effect-heal{color:#b3d68c}.spell-preview.invalid>span{color:#ffb292}.pool-column{display:flex;flex-direction:column;gap:9px}.fragment{width:100%;min-height:55px;padding:9px 6px 12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:#4d6740;border:2px solid #819767;color:#e4edd4;box-shadow:inset 0 -4px #2c4123;position:relative}.fragment strong{font-size:15px;letter-spacing:-.2px;font-weight:900;line-height:1}.fragment .fragment-stats{font-size:12px;color:#ccdbb8}.fragment.aspect{background:#766334;border-color:#a7945e;color:#f4e6bb;box-shadow:inset 0 -4px #52451e}.fragment.aspect .fragment-stats{color:#e1d2a0}.fragment.entity{background:#3e6270;border-color:#74949a;color:#d9eced;box-shadow:inset 0 -4px #254650}.fragment.entity .fragment-stats{color:#bbd8da}.fragment:disabled{opacity:.53}.fragment.used{background:#2a3624;border-style:dashed;border-color:#5e704c;box-shadow:none;color:#94a981;opacity:.55}.fragment:hover:not(:disabled){border-color:#efe8bc;filter:brightness(1.15)}.used-check{position:absolute;top:2px;right:4px;font-size:12px}.desk-actions{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(0,1.35fr);gap:13px;margin-top:19px}.desk-actions .primary,.desk-actions .secondary{width:100%}.word-segments{display:flex;justify-content:center;gap:12px;margin:8px 0 22px}.word-segments>span{width:61px;height:61px;display:flex;align-items:center;justify-content:center;background:#172511;border:2px solid #698452;box-shadow:inset 0 -4px #101c0a;color:#b7ce92;font-size:34px;font-weight:900;line-height:1;position:relative}.word-segments>span.chosen{background:#3d572d;color:#ebf3cf;border-color:#91ac6c}.word-ready>span.chosen{background:#78612b;color:#fff0b8;border-color:#d2b367;box-shadow:inset 0 -4px #5b451b}.letter-rows{display:flex;flex-direction:column;gap:13px}.letter-row{display:flex;gap:7px;align-items:center}.letter-row-index{width:18px;flex-shrink:0;color:#a3b78a;font-size:12px;text-align:center}.letters{display:flex;flex-wrap:nowrap;gap:5px;min-width:0;flex:1}.letter{width:44px;min-width:0;flex:0 1 44px;height:46px;display:flex;align-items:center;justify-content:center;border:2px solid #80966a;background:#445a34;color:#e4ecd1;box-shadow:inset 0 -4px #293f1e;font-size:21px;font-weight:900;line-height:1}.letter:hover{filter:brightness(1.2)}.letter.selected{background:#b0ca87;border-color:#def0ba;color:#24321a;box-shadow:inset 0 -4px #7f9c4f}.aspect .letter{border-color:#aa9457;background:#776332;color:#f2e7b8;box-shadow:inset 0 -4px #4d3e19}.aspect .letter.selected{background:#e5c371;border-color:#fea;color:#463412;box-shadow:inset 0 -4px #a88a3d}.entity .letter{border-color:#7d9e9e;background:#3e6266;color:#e0edeb;box-shadow:inset 0 -4px #26484c}.entity .letter.selected{background:#a4d4ce;border-color:#d9f0e6;color:#214a4b;box-shadow:inset 0 -4px #6b9d98}.word-error{animation:word-shake .3s}.word-error>span{background:#963f25!important;color:#ffe8c8!important;border-color:#ed9b6e!important}.error-hint{color:#ffb996}.cast-button:enabled{background:#eed075}.cast-celebration{min-height:293px;overflow:visible}.cast-celebration .desk-heading{color:#d5ee9c}.word-success{margin-top:27px;margin-bottom:32px}.word-success>span{background:#d5ed9a;color:#2b411d;border:2px solid #f4ffcc;box-shadow:0 0 0 3px #779647,0 5px #253e19;animation:letter-bound .65s both;animation-delay:calc(var(--letter-index) * 55ms)}.letter-particle{position:absolute;left:50%;top:50%;width:6px;height:6px;background:#e9f5b1;pointer-events:none;--angle: calc(var(--particle-index) * 72deg + 12deg);transform:rotate(var(--angle));animation:letter-spark .85s .23s both;animation-delay:calc(.23s + var(--letter-index) * 55ms)}.cast-source-rows{display:flex;flex-direction:column;align-items:center;gap:8px}.cast-source-row{display:flex;gap:4px}.cast-source-row>span{width:26px;height:31px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;color:#7f906b;animation:source-fade .6s .3s both}.cast-source-row>span.selected{color:#deefa7;background:#5d7841;box-shadow:inset 0 -3px #3c5425;animation:source-letter .6s both}.cast-source-row.aspect>span.selected{color:#fff0b0;background:#8e793c}.cast-source-row.entity>span.selected{color:#d4f4dc;background:#4c7770}.cast-result-strip{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;margin-top:21px;color:#efcf78;font-size:16px;animation:result-in .25s .55s both}.fx-paused,.fx-paused *,.fx-paused *:before,.fx-paused *:after{animation-play-state:paused!important}.resolution{min-height:230px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:25px 8px 10px}.resolution h2{font-size:36px;margin-top:17px;letter-spacing:-.5px;line-height:1.05}.resolution .section-label{color:#b2c78c}.resolution.victory h2{color:var(--gold);font-size:45px;text-shadow:0 3px 0 #846520}.resolution-message{font-size:16px;color:#bac8a4;margin-top:18px}.resolution>.primary{margin-top:auto;min-width:230px}.missed-word{font-size:13px;margin-top:23px;padding:10px 12px;border:2px solid #776f47;color:#c1c89d;background:#414528}.missed-word strong{color:#f0d777;font-size:18px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#101a12df;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#333f2b;border:3px solid #9bab76;box-shadow:0 0 0 5px #162110,8px 10px #0c1408;padding:32px 25px 25px;max-width:510px;width:100%;max-height:90svh;overflow:auto;position:relative}.modal:focus{outline:none}.modal-close{position:absolute;top:7px;right:9px;background:#526142;border:1px solid #879b68;width:32px;height:32px;font-size:26px;line-height:1;color:#dce6be}.modal h2{font-size:27px;margin-bottom:22px;max-width:90%;color:#efd479}.modal p{font-size:14px;line-height:1.55;margin:14px 0;color:#cad4b7}.rules-list{font-size:14px;line-height:1.5;padding-left:21px;margin:0}.rules-list li{padding-left:5px;margin:0 0 13px}.rules-list strong{color:#f3deb0}.help-example{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;padding:15px 10px;margin:19px 0;border:2px solid #66784f;background:#26391d;font-size:12px;color:#a8bc90}.help-example b{color:#f5e28c}.help-example>strong{color:#e7db8e}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px}.dialog-actions .primary,.dialog-actions .secondary{font-size:14px;padding:10px 20px 14px}@keyframes page-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes crow-idle{50%{transform:translateY(-4px)}}@keyframes word-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes letter-bound{0%{transform:scale(.92);background:#476832}25%{transform:scale(1.13);background:#fffbd6;box-shadow:0 0 0 5px #c3e289}55%{transform:scale(1)}to{transform:scale(1)}}@keyframes letter-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(1)}15%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(-78px) scale(.2)}}@keyframes source-fade{to{opacity:.28}}@keyframes source-letter{30%{transform:translateY(-5px);background:#cbe998;color:#1e3619}to{transform:none}}@keyframes result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:620px){.app{padding:0}.game-shell{max-width:100%;min-height:100svh;border:0;box-shadow:none}.game-header{min-height:49px;padding:5px 13px}.header-title{font-size:14px}.help-button{height:32px;width:34px}.title-screen{padding-top:47px;min-height:calc(100svh - 49px);display:flex;flex-direction:column;justify-content:center}.title-logo>span{font-size:clamp(49px,13vw,73px);letter-spacing:-2px}.title-logo h1{font-size:13px;letter-spacing:2px}.title-controls,.title-art{width:100%}.chapter-screen{padding:22px 17px 25px}.chapter-heading{margin-bottom:23px}.chapter-heading h1{font-size:33px}.encounter{min-height:78px;gap:13px;padding:6px 13px 9px 7px}.encounter-portrait{width:60px;height:60px;flex-basis:60px}.encounter-portrait svg{width:63px;height:63px}.encounter-details strong{font-size:19px}.encounter-details>span{font-size:12px}.loot-screen{padding:30px 19px}.loot-heading h1{font-size:35px}.loot-card{gap:12px;padding:22px 13px}.loot-card h2{font-size:22px}.loot-card p{font-size:14px}.battle-topline{min-height:27px;padding:5px 13px;font-size:12px}.desk-body{padding:16px 14px 18px}.desk-heading{margin-bottom:16px}.desk-heading h2{font-size:23px}.turn-clock{padding:7px 14px}.turn-clock strong{font-size:16px}.draft-slots,.fragment-pool{gap:7px}.slot-caption{font-size:12px;letter-spacing:.2px;margin-bottom:8px}.draft-slot{min-height:58px}.draft-slot strong{font-size:13px;letter-spacing:-.4px}.draft-slot .fragment-stats{font-size:12px}.preview-space{min-height:42px}.spell-preview>div{gap:9px}.spell-preview strong{font-size:13px}.spell-preview>span{font-size:12px}.fragment{min-height:53px;padding:9px 3px 12px}.fragment strong{font-size:13px;letter-spacing:-.4px}.fragment .fragment-stats{font-size:12px}.pool-column{gap:7px}.desk-actions{margin-top:17px;gap:10px}.desk-actions .primary{font-size:17px;min-height:48px}.desk-actions .secondary{font-size:13px;min-height:48px;padding-left:12px;padding-right:12px}.short-hint{font-size:12px}.word-segments{gap:10px;margin-bottom:20px}.word-segments>span{width:55px;height:55px;font-size:32px}.letter-row{gap:6px}.letter-row-index{width:12px;font-size:12px}.letters{gap:4px}.letter{width:44px;height:44px;font-size:19px}.letter-rows{gap:11px}.resolution{min-height:255px;padding-top:21px}.resolution h2{font-size:31px}.resolution.victory h2{font-size:39px}.cast-celebration{min-height:284px}.cast-celebration .word-segments{margin-bottom:27px}.cast-result-strip{font-size:15px}}@media(max-width:359px){.header-title{font-size:12px;letter-spacing:.5px}.header-back{font-size:12px}.chapter-heading h1{font-size:29px}.chapter-screen{padding-left:13px;padding-right:13px}.encounter-details strong{font-size:17px}.desk-body{padding-left:11px;padding-right:11px}.draft-slot strong,.fragment strong{font-size:12px;letter-spacing:-.4px}.fragment-stats,.fragment .fragment-stats,.slot-caption{font-size:12px}.letters{gap:4px}.word-segments>span{width:53px;height:53px}.modal{padding:29px 18px 21px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.letter-particle,.title-orbit{display:none}}
