:root{color-scheme:dark;--ink:#e9e2cd;--muted:#a1b3b3;--gold:#d9bf83;--teal:#89d4bd;--bg:#101d24;--line:#65736a55;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{min-width:280px;scrollbar-gutter:stable}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 15% 5%,#27494777,transparent 45%),radial-gradient(ellipse at 90% 40%,#2e344477,transparent 50%),repeating-linear-gradient(35deg,#ffffff01 0 1px,transparent 1px 5px),#101d24}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;min-height:44px;border:1px solid var(--line);background:#1a2c31;padding:.7rem 1.1rem;border-radius:5px;touch-action:manipulation;transition:background .15s,transform .15s,border-color .15s}button:hover:not(:disabled){background:#2b4547;border-color:var(--gold);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b9edda;outline-offset:4px}a{color:inherit}header{max-width:1400px;margin:auto;padding:20px 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #adbbab20;gap:16px}.brand{text-decoration:none;display:flex;gap:10px;align-items:center;font-size:.82rem;letter-spacing:.055em}.wolf-mark{font-size:30px;color:var(--gold)}nav{display:flex;align-items:center;gap:4px}nav .quiet{margin-right:10px}.locale{min-width:44px;padding:7px 11px;background:transparent;border-color:transparent}.locale.active{border-color:#9aaa8d66;background:#78938620;color:var(--gold)}.primary{background:#d2b979;color:#17282b;border-color:#ead5a0;font-weight:750;box-shadow:0 3px #6f633f}.primary:hover:not(:disabled){background:#e8d29d;color:#102322}.secondary{border-color:#b5a27a99;background:#273b3d}.quiet{background:transparent;border-color:transparent;color:var(--muted);padding:.5rem .65rem}.quiet:hover:not(:disabled){color:var(--ink);border-color:transparent}.eyebrow{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-weight:650}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,Songti SC,"Noto Serif CJK SC",serif;font-weight:500}h1{font-size:2.3rem;line-height:1.2}h2{font-size:1.3rem}.lead{font-family:Georgia,Songti SC,serif;font-size:1.25rem;line-height:1.65;color:#cbd3c2}.muted,.dictionary-note{color:var(--muted);font-size:.83rem;line-height:1.7}.home-view{max-width:1160px;margin:auto;padding:20px 40px 48px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:36px;min-height:410px}.hero-copy{padding:26px 0}.hero h1{font-size:clamp(48px,6vw,78px);color:#eee5c9;margin:26px 0 23px;letter-spacing:-.04em}.hero h1 span{display:block;font-size:1.25rem;letter-spacing:.24em;color:var(--gold);margin:17px 0 0}.hero .dictionary-note{max-width:500px}.hero-art{max-width:420px;justify-self:center;width:100%;filter:drop-shadow(0 14px 36px #03111488)}.tower-art{width:100%;display:block}.mode-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 8px}.mode-tabs button{font-size:.84rem;background:#15272d}.mode-tabs .selected{border-color:var(--gold);color:var(--gold);background:#b7ab6720}.grimoire-choice{position:relative;padding-top:26px;border-top:1px solid #a89d624a}.grimoire-choice>h2{font-size:1rem;letter-spacing:.07em;color:var(--muted)}.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.school{display:flex;align-items:center;gap:16px;text-align:left;padding:22px 18px;background:linear-gradient(110deg,#263d3d,#17282d);border-radius:5px 15px 5px 5px}.school.selected{border-color:#c9b885;box-shadow:inset 0 0 0 3px #c8b26d15,0 6px 22px #07151850}.school strong{display:block;font-family:Georgia,Songti SC,serif;font-size:1.16rem;color:var(--gold);margin-bottom:9px}.school small{font-size:.76rem;line-height:1.6;color:#bdcbc5;display:block}.sigil{width:54px;min-width:54px;stroke:var(--gold);stroke-width:1;fill:none;stroke-linejoin:round}.start-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px}.start-actions>.primary{min-width:205px;padding:16px 25px}.game-view{max-width:1280px;padding:24px 34px 28px;margin:auto}.journey-path{display:flex;max-width:680px;justify-content:space-between;margin:0 auto 14px;position:relative}.journey-path:before{content:"";position:absolute;left:25px;right:25px;top:18px;border-top:1px solid #8a927250}.path-node{position:relative;display:flex;flex-direction:column;align-items:center;min-width:38px;z-index:1;color:#728b8f}.path-node i{width:36px;height:36px;border:1px solid #546769;border-radius:50%;display:grid;place-items:center;font:14px Georgia;background:#13232a}.path-node small{margin-top:2px;font-size:16px}.path-node.complete i{border-color:#77978a;color:var(--teal);background:#243c3d}.path-node.current i{border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 5px #d4bc7520}.run-bar{display:flex;align-items:center;gap:22px;font-size:.85rem;color:var(--muted);margin-bottom:18px}.run-bar b{color:var(--gold);margin-left:auto}.run-bar>.quiet{font-size:.8rem}.table-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:28px;align-items:start}.play-table,.route,.shop-view{min-width:0;position:relative;padding:29px;background:linear-gradient(150deg,#29423e55,#121f2877);border:1px solid #9a9f6a33;border-radius:12px 12px 70px;box-shadow:inset 0 0 70px #122b3044,0 25px 70px #07101844}.play-table:before,.route:before,.shop-view:before{content:"✦";position:absolute;top:-11px;left:30px;color:var(--gold);font-size:18px;background:#162a2e;padding:0 12px}.chapter-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.chapter-heading h1{font-size:1.7rem;margin:10px 0 20px}.ink-counter{text-align:right;white-space:nowrap}.ink-counter b{display:block;font:42px Georgia;color:var(--gold)}.ink-counter span{font-size:.75rem;color:var(--muted)}.ink-track{height:7px;border-radius:4px;background:#071519;border:1px solid #5b6d6455;overflow:hidden}.ink-track i{height:100%;display:block;background:linear-gradient(90deg,#6d9c95,#bcd7a4);box-shadow:0 0 15px #c9e5b777;transition:width .4s ease-out}.resources{display:flex;justify-content:space-between;gap:12px;padding:18px 0;font-size:.75rem;color:var(--muted)}.resources b{font-family:Georgia,serif;display:block;margin-top:7px;color:var(--gold);font-size:1.1rem;letter-spacing:.08em}.resources small{font-size:.73rem;letter-spacing:0;color:var(--muted)}.casting-circle{position:relative;margin:8px -8px 0;padding:24px 12px 20px;background:radial-gradient(ellipse,#46635c25,transparent 70%);border-top:1px solid #aac1a426;border-bottom:1px solid #aac1a426}.spell-tray{min-height:94px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:7px 0}.empty-tray{color:#8ea7a4;font-family:Georgia,Songti SC,serif;text-align:center;font-size:1rem}.tile{position:relative;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;min-width:44px;width:55px;height:66px;padding:7px 6px 10px;background:linear-gradient(140deg,#e9dcb9,#c6b78e);color:#203a3b;border:1px solid #ece2c8;border-radius:5px;box-shadow:0 4px #726c4c,0 7px 10px #06151866;flex-shrink:0}.tile:hover:not(:disabled){background:#f1e6c8;color:#193330}.tile.vowel{background:linear-gradient(140deg,#b8d9c8,#8fb5a8);border-color:#d4e5c5}.tile.vowel:hover{background:#d1e8d5}.tile b{font-family:Georgia,serif;font-size:1.7rem;font-weight:700;line-height:1}.tile small{position:absolute;bottom:5px;right:6px;font-size:.65rem;font-weight:750}.tile.in-slot{box-shadow:0 4px #74684b,0 0 24px #c6d59917;transform:translateY(-4px)}.tile .etched{position:absolute;top:2px;left:4px;font-size:10px;color:#5e4d1f}.word-status{min-height:28px;text-align:center;margin:15px 0 8px;color:#d4bfa4;font-size:.85rem}.word-status.legal{color:var(--teal);font:1.02rem Georgia,serif;letter-spacing:.03em}.word-status span{font-family:system-ui;font-size:.75rem;color:var(--muted)}.formula{display:flex;justify-content:center;align-items:center;gap:11px;min-height:65px;flex-wrap:wrap;font-size:.65rem;color:var(--muted);text-align:center}.formula b{display:block;color:#dfdfc7;font-family:Georgia,serif;font-weight:400;font-size:1.4rem;margin-bottom:5px}.formula i{font-style:normal;color:#678080;margin-bottom:12px}.formula .power b{color:var(--gold);font-size:2rem}.empty-formula{letter-spacing:.07em;color:#8ba09d;font-size:.74rem}.synergy{color:var(--teal);font-size:.72rem;text-align:center;margin:14px 0 0;line-height:1.6}.cast-actions{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:22px}.cast-actions .quiet{font-size:.74rem;max-width:135px}.cast{min-width:180px;min-height:50px}.cast span{font-family:Georgia,serif;margin-left:10px}.rack-label{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin:25px 0 12px}.rack-label h2{font-size:1rem;margin:0;color:#b9c3b5}.rack-label small{font-size:.64rem;color:#92a6a4}.rack{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;padding:12px 0 15px;min-height:91px}.hint-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.hint-row button{font-size:.76rem;text-align:left}.hint-word{color:var(--teal);border:1px dashed #719288;background:#233b39}.last-spell{font:14px Georgia;color:#b0c7bf;text-align:center;margin:14px 0 0}.last-spell b{color:var(--gold);margin-left:10px}.spellbook{min-width:0;padding:15px 0}.spellbook>h2{color:#c4cbb9;font-size:1rem;display:flex;justify-content:space-between;margin:0 0 18px}.spellbook>h2 span{font:12px system-ui;color:#889a93}.relic-list{display:flex;flex-direction:column;gap:10px;margin-bottom:30px}.relic{display:flex;gap:12px;align-items:center;padding:12px 11px;background:#32454029;border-left:2px solid #76836533;border-radius:0 7px 7px 0;transition:background .2s}.relic .sigil{width:39px;min-width:39px;opacity:.7}.relic strong{color:#d9ceb0;font-family:Georgia,Songti SC,serif;font-weight:500;font-size:.98rem}.relic p{font-size:.68rem;line-height:1.6;color:#a4b8b2;margin:6px 0 0}.relic.awakened{background:#577d6044;border-left-color:#b5d99c;box-shadow:0 0 20px #9adcac12}.relic.awakened .sigil{stroke:#cce3a6;opacity:1}.scroll-list{display:flex;flex-direction:column;gap:8px;margin-bottom:25px}.scroll{display:flex;flex-direction:column;gap:7px;text-align:left;border:1px solid #8d9c7144;background:linear-gradient(120deg,#44544122,#21343644);border-radius:12px 4px;padding:13px 15px}.scroll strong{font-family:Georgia,Songti SC,serif;font-weight:500;color:#d2d5af}.scroll small{color:#a2b9ac;font-size:.68rem;line-height:1.6}.scroll b{font-size:.75rem;color:var(--gold)}.scroll:disabled{opacity:.57}.journal{border-top:1px solid #83937b33;padding-top:18px;font-size:.77rem;color:#a9b9b3}.journal summary{cursor:pointer;min-height:44px}.journal p{display:flex;justify-content:space-between;font-size:.72rem;margin:8px 0}.journal b{color:var(--gold)}.route{text-align:center;padding:38px 30px}.route h2{font-size:2rem;margin-top:18px}.seal>.sigil{width:100px;margin:5px auto 25px;opacity:.75}.route-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0}.route-option{padding:22px 18px;display:flex;flex-direction:column;align-items:center;gap:13px;background:#30433d55;border-color:#93937455}.route-option.risky{background:#53423033}.route-option strong{font-family:Georgia,Songti SC,serif;font-size:1.2rem;color:var(--gold)}.route-symbol{font-size:32px;color:#b8d0b4}.route-option em{font-style:normal;color:#d9d9bf;font-size:1.5rem;font-family:Georgia,serif}.route-option small{font-size:.76rem;line-height:1.6;color:var(--muted)}.boss-rule{display:flex;align-items:center;gap:16px;background:#5e463033;border:1px solid #ad935655;padding:14px 18px;border-radius:3px 12px;margin:20px 0 6px;text-align:left}.boss-rule>.sigil{width:42px;min-width:42px;stroke:#d2b07d}.boss-rule .eyebrow{display:block;font-size:.6rem;margin-bottom:6px}.boss-rule strong{font-family:Georgia,Songti SC,serif;font-size:1.06rem;font-weight:500;color:#e0c39d}.boss-rule p{font-size:.74rem;line-height:1.65;color:#c4bdac;margin:7px 0 0}.shop-view h1{margin:16px 0 9px}.shop-view .lead{font-size:1rem;margin-bottom:25px}.shop-offers{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.offer{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;background:linear-gradient(160deg,#b7b88715,#35533c33);border:1px solid #82957255;border-radius:40px 40px 5px 5px;padding:24px 14px 16px}.offer>.sigil{width:65px;min-width:0;margin-bottom:20px}.offer h2{font-size:1.1rem;line-height:1.4;color:#e4d1a4;margin-bottom:12px}.offer p{font-size:.74rem;color:#a8bcb2;line-height:1.65}.offer button{margin-top:auto;font-size:.74rem;width:100%;padding:10px 5px;min-height:44px}.shop-controls{display:flex;align-items:center;justify-content:space-between;margin:18px 0 28px;gap:12px}.shop-controls button{font-size:.76rem}.shop-extras{border-top:1px solid #899b7433;padding-top:24px}.shop-extras h2{font-size:1rem;color:#c4ccb6}.shop-scrolls{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.shop-scrolls .scroll{padding:12px}.enchant-card{margin-top:26px;padding:18px;border:1px dashed #8e9b7066}.enchant-card p{font-size:.76rem;color:var(--muted);line-height:1.6}.enchant-card button{font-size:.78rem}.next-page{display:block;margin:28px 0 0 auto;min-width:190px}.ending{position:relative;text-align:center;max-width:750px;margin:5px auto 10px;padding:20px 25px}.ending-art{width:220px;margin:auto}.ending h1{color:var(--gold);font-size:2.5rem;margin:15px 0 20px}.ending .start-actions{justify-content:center}.end-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:30px 0}.end-stats b{display:block;font:1.65rem Georgia;color:var(--gold);overflow-wrap:anywhere}.end-stats span{display:block;margin-top:8px;color:var(--muted);font-size:.76rem}.ending>.muted{margin-top:25px}.save-status{font-size:.69rem;color:#8caaa0;text-align:center;margin:24px 0 0}.warning{color:#f0c390!important;font-size:.82rem;line-height:1.6}.notice{position:fixed;z-index:9;bottom:24px;left:50%;transform:translate(-50%);max-width:90vw;width:max-content;background:#31463c;color:#dfddb9;box-shadow:0 8px 25px #0005;border:1px solid #baae7466;border-radius:5px;padding:12px 18px;font-size:.82rem;pointer-events:none}.notice:empty{display:none}footer{max-width:1320px;padding:22px 34px;margin:auto;border-top:1px solid #acba9920;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#7e9993;font-size:.66rem}footer>div{display:flex;gap:6px;flex-wrap:wrap}footer button{font-size:.66rem;min-height:44px}dialog{max-width:min(690px,calc(100vw - 28px));width:690px;max-height:85dvh;border:1px solid #b5a47288;border-radius:8px;background:linear-gradient(135deg,#283f3b,#152931);padding:30px;color:var(--ink);box-shadow:0 25px 100px #0008}dialog::backdrop{background:#06141cce;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.dialog-top h2{margin:0;color:var(--gold);font-size:1.6rem}dialog p,dialog li{font-size:.9rem;line-height:1.8;color:#c2cec5}dialog li{padding-left:5px;margin-bottom:16px}dialog ol{padding-left:23px}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:12px;margin-top:24px}.deck-grid .tile{width:100%}.loading{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;text-align:center}.loading p{max-width:500px;color:var(--muted);line-height:1.7}.loading-sigil .sigil{width:90px;height:90px;animation:breathe 2s ease-in-out infinite}.loading h1{margin:24px;color:var(--gold)}@keyframes breathe{50%{opacity:.3;transform:scale(.96)}}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (min-width:1450px){.hero{min-height:460px}.game-view{padding-top:32px}.play-table{padding:35px}.tile{width:60px;height:72px}.casting-circle{padding-top:35px;padding-bottom:28px}}@media (max-width:1000px){.table-layout{grid-template-columns:minmax(0,1fr) 240px;gap:18px}.game-view{padding:22px}.play-table,.route,.shop-view{padding:23px}.shop-offers{gap:8px}.offer{padding:18px 9px 12px}.offer h2{font-size:.95rem}.tile{width:48px;height:61px}.rack{gap:9px}.school{padding:17px 13px;gap:10px}.school .sigil{width:42px;min-width:42px}.school strong{font-size:1.02rem}.school-grid{gap:10px}.cast-actions{gap:4px}.cast{min-width:145px}.cast-actions .quiet{padding:7px;font-size:.68rem}.hero-art{max-width:340px}.hero{gap:20px}.home-view{padding:20px 28px 36px}.formula{gap:8px}.shop-scrolls{grid-template-columns:1fr}.shop-scrolls .scroll{flex-direction:row;align-items:center}.shop-scrolls .scroll small{flex:1}}@media (max-width:760px){header{padding:14px 18px}.brand{font-size:.7rem;letter-spacing:0}.wolf-mark{font-size:25px}nav .quiet{font-size:.69rem;padding:5px;margin-right:2px}.locale{font-size:.75rem}.table-layout{grid-template-columns:1fr}.game-view{padding:18px 16px}.spellbook{padding:14px 3px}.relic-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.scroll-list{display:grid;grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:1fr .65fr;gap:0;min-height:330px}.hero-copy{padding:22px 0}.hero h1{font-size:48px}.hero .lead{font-size:1.04rem}.hero .dictionary-note{font-size:.76rem}.hero-art{margin-right:-15px}.hero h1 span{font-size:.94rem;letter-spacing:.1em}.school-grid{grid-template-columns:1fr}.school{padding:16px;gap:20px}.school .sigil{width:50px}.school small{font-size:.79rem}.school strong{font-size:1.14rem;margin-bottom:6px}.school{min-height:96px}.home-view{padding:15px 22px 35px}.grimoire-choice{padding-top:24px}.rack{gap:12px}.tile{width:56px;height:68px}.formula{gap:13px}.cast{min-width:190px}.cast-actions .quiet{font-size:.76rem;max-width:120px}.rack-label small{font-size:.65rem}.spell-tray{min-height:85px}.play-table,.route,.shop-view{border-radius:9px 9px 40px}.shop-scrolls{grid-template-columns:repeat(3,1fr)}.shop-scrolls .scroll{flex-direction:column;align-items:stretch}.end-stats b{font-size:1.45rem}.ending h1{font-size:2.1rem}footer{padding:20px;flex-direction:column;gap:8px;text-align:center}footer>div{justify-content:center}.journey-path{max-width:500px}}@media (max-width:480px){header{padding:10px 12px;gap:6px}nav{gap:0}.brand{font-size:.65rem}.brand .wolf-mark{font-size:20px}nav>.quiet{font-size:.65rem;max-width:68px;padding:4px}.locale{padding:5px;min-width:42px}.home-view{padding:13px 18px 28px}.hero{display:block;position:relative;min-height:0}.hero-copy{position:relative;z-index:1;padding:25px 0 18px}.hero-art{position:absolute;right:-14px;top:0;width:180px;opacity:.28;pointer-events:none}.hero .eyebrow{font-size:.56rem;letter-spacing:.05em}.hero h1{font-size:53px;margin:22px 0}.hero h1 span{font-size:1rem;letter-spacing:.15em}.hero .lead{max-width:260px;margin-bottom:12px}.hero .dictionary-note{font-size:.74rem;max-width:340px}.mode-tabs{gap:6px;margin-top:20px}.mode-tabs button{font-size:.75rem;padding:.5rem .7rem}.school{gap:15px}.school small{font-size:.75rem}.school strong{font-size:1.1rem}.start-actions{gap:12px}.start-actions>.primary{width:100%;font-size:.9rem}.start-actions>.secondary{width:100%}.game-view{padding:17px 10px}.journey-path{margin-bottom:9px}.path-node{min-width:32px}.path-node i{width:29px;height:29px;font-size:12px}.journey-path:before{top:14px}.path-node small{font-size:13px}.run-bar{gap:8px;font-size:.74rem;margin-bottom:14px}.run-bar>.quiet{font-size:.7rem;padding:.4rem}.play-table,.route,.shop-view{padding:21px 14px}.chapter-heading h1{font-size:1.45rem;line-height:1.35;margin-bottom:16px}.chapter-heading .eyebrow{font-size:.63rem}.ink-counter b{font-size:34px}.ink-counter span{font-size:.66rem}.resources{padding:16px 0;font-size:.72rem}.resources b{font-size:1rem}.casting-circle{margin:4px -3px 0;padding:18px 4px}.spell-tray{gap:5px;min-height:77px}.tile{width:49px;height:61px;min-width:44px}.tile b{font-size:1.55rem}.rack{gap:11px;max-width:305px;margin:auto}.rack-label{display:block;margin-top:22px}.rack-label small{display:block;margin-top:7px;font-size:.61rem}.formula{gap:7px;font-size:.53rem;min-height:59px}.formula b{font-size:1.1rem}.formula .power b{font-size:1.6rem}.formula i{font-size:11px}.word-status{font-size:.76rem;line-height:1.5;min-height:26px}.empty-tray{font-size:.86rem}.cast-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:17px}.cast{grid-column:1/-1;grid-row:1;min-width:0;width:100%;min-height:49px}.cast-actions .quiet{max-width:none;font-size:.73rem;padding:9px 3px;border:1px solid #78958733;min-height:44px}.hint-row{justify-content:center}.hint-row button{font-size:.72rem}.spellbook{padding:20px 5px 0}.relic-list{gap:8px}.relic{padding:10px 8px;gap:8px}.relic .sigil{width:29px;min-width:29px}.relic strong{font-size:.9rem}.relic p{font-size:.64rem}.scroll-list{grid-template-columns:1fr}.scroll{padding:12px 14px}.scroll strong{font-size:.98rem}.scroll small{font-size:.72rem}.route h2{font-size:1.65rem}.route-options{gap:10px;margin-top:23px}.route-option{padding:20px 12px;gap:11px}.route-option strong{font-size:1.05rem}.route-option em{font-size:1.3rem}.route-option small{font-size:.7rem}.boss-rule{gap:10px;padding:12px}.boss-rule>.sigil{width:32px;min-width:32px}.boss-rule p{font-size:.7rem}.shop-view h1{font-size:1.8rem}.shop-offers{grid-template-columns:1fr;gap:12px}.offer{display:grid;grid-template-columns:54px 1fr;column-gap:15px;text-align:left;align-items:start;border-radius:8px 26px 8px 8px;padding:18px}.offer>.sigil{width:54px;grid-row:1/4;margin:4px 0 0}.offer h2{font-size:1.13rem;margin-bottom:8px}.offer p{font-size:.77rem;margin-bottom:13px}.offer button{width:auto;justify-self:start;padding:10px 20px;font-size:.77rem}.shop-scrolls{grid-template-columns:1fr}.shop-scrolls .scroll{display:grid;grid-template-columns:1fr auto}.shop-scrolls .scroll small{grid-column:1;grid-row:2}.shop-scrolls .scroll b{grid-column:2;grid-row:1/3;align-self:center}.next-page{width:100%}.ending{padding:10px}.ending-art{width:180px}.ending h1{font-size:1.85rem}.ending .lead{font-size:1.03rem}.end-stats{gap:10px;padding:20px 0}.end-stats b{font-size:1.15rem}.end-stats span{font-size:.64rem}dialog{padding:20px}.dialog-top h2{font-size:1.3rem}dialog p,dialog li{font-size:.83rem}}@media (max-width:340px){.brand .wolf-mark{display:none}header{gap:2px}.locale{min-width:38px}.play-table,.shop-view,.route{padding:19px 11px}.tile{width:44px;height:57px}.rack{gap:8px;max-width:268px}.formula{gap:5px}.formula b{font-size:1rem}.formula .power b{font-size:1.45rem}.chapter-heading h1{font-size:1.25rem}.relic-list{grid-template-columns:1fr}.school .sigil{width:40px;min-width:40px}.school{gap:12px}.route-options{gap:8px}.route-option{padding:17px 8px}.route-option strong{font-size:.92rem}}#app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.sell-relic{font-size:.65rem;min-height:44px;padding:5px 0;text-decoration:underline;text-underline-offset:4px}.forfeit{font-size:.72rem;margin-top:14px}@media (max-width:340px){.locale{min-width:44px}}.remaining-ink,.tray-help,.action-help,.cast-outcome{font-size:.76rem;line-height:1.6;color:var(--muted);margin:10px 0}.tray-help,.action-help,.cast-outcome{text-align:center}.cast-outcome{color:var(--teal)}.first-spell,.score-details{padding:10px 12px;border:1px solid #9a9f6a33;border-radius:5px;margin:8px 0;font-size:.76rem;color:#bacbc1;line-height:1.7}.first-spell summary,.score-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--gold)}.first-spell p,.score-details p{margin:6px 0 10px}.score-details ul{padding-left:20px}.pending-scrolls{padding:12px 14px;margin:12px 0;border-left:3px solid var(--gold);background:#b7ab6712;font-size:.76rem;line-height:1.6}.pending-scrolls strong{color:var(--gold)}.pending-scrolls p{margin:4px 0}.pending-scrolls small{color:var(--muted);font-size:.7rem}.save-status p{margin-bottom:8px}.save-status button{margin:4px;font-size:.75rem}.last-cast-warning{text-align:center}.empty-offers{grid-column:1/-1}.shop-scrolls .scroll b,.offer button{overflow-wrap:anywhere}@media (max-width:480px){.remaining-ink,.tray-help,.action-help,.cast-outcome{font-size:.71rem}.first-spell,.score-details{font-size:.72rem;padding:8px 10px}.offer button{grid-column:2}.pending-scrolls{font-size:.72rem}}.build-ribbon{text-align:center;padding:7px 15px;background:#332b23;color:#cbb482;font-size:11px;letter-spacing:.13em;border-bottom:1px solid #86734d44}.in-game header{padding:8px 26px;max-width:1280px}.in-game header .brand{font-size:.73rem}.in-game .game-view{padding-top:10px}.in-game footer{padding-top:10px;padding-bottom:10px}.in-game .journey-path{margin-bottom:4px}.in-game .path-node i{width:29px;height:29px}.in-game .journey-path:before{top:14px}.in-game .path-node small{font-size:10px;margin:0}.in-game .run-bar{margin-bottom:8px;gap:12px}.in-game .play-table{padding:20px 24px;border-radius:8px 8px 28px;isolation:isolate}.battle-diorama{height:94px;position:absolute;inset:0 0 auto;overflow:hidden;border-radius:8px 8px 0 0;z-index:-1;opacity:.42;mask-image:linear-gradient(#000,transparent)}.chapter-art{width:100%;height:100%;display:block}.battle-diorama .chapter-art{object-fit:cover}.in-game .chapter-heading h1{font-size:1.45rem;margin:6px 0 12px}.in-game .ink-counter b{font-size:32px}.in-game .resources{padding:8px 0 10px}.in-game .resources span{display:flex;align-items:center;gap:10px}.in-game .resources b{margin:0;font-size:1rem}.in-game .remaining-ink{margin:7px 0;font-size:.72rem}.in-game .first-spell{margin:0 0 8px;padding:0 10px}.in-game .first-spell summary{min-height:32px;font-size:.73rem}.in-game .hand-zone{border:1px solid #b0a16c44;background:linear-gradient(#15262ec9,#22332dc9);border-radius:9px;padding:9px 12px 12px;box-shadow:inset 0 -4px #0d202766,0 5px 20px #050d1322}.in-game .rack-label{margin:0 0 6px}.in-game .rack-label h2{font-size:.86rem;color:var(--gold)}.in-game .rack{padding:3px 0 5px;min-height:64px;gap:8px}.in-game .tile{width:48px;height:58px;min-width:44px}.in-game .tile b{font-size:1.45rem}.in-game .casting-circle{padding:12px 10px 10px;margin-top:9px;border-top:0}.in-game .spell-tray{min-height:64px;padding:2px 0;gap:6px}.in-game .word-status{margin:8px 0 5px;min-height:21px}.in-game .formula{min-height:48px;gap:11px}.in-game .formula b{font-size:1.2rem;margin-bottom:2px}.in-game .formula .power b{font-size:1.65rem}.in-game .cast-actions{margin-top:10px}.in-game .cast{min-height:46px}.in-game .cast-outcome{margin:5px 0}.in-game .synergy{margin-top:5px}.in-game .tray-help,.in-game .action-help{font-size:.65rem;margin:6px 0}.in-game .tray-help{margin-bottom:0}.in-game .hint-row{margin-top:0}.in-game .score-details{padding:0 10px;margin:6px 0 0}.in-game .score-details summary{min-height:36px}.in-game .boss-rule{margin:7px 0;padding:8px 12px}.in-game .boss-rule p{margin:3px 0 0}.in-game .boss-rule .eyebrow{display:none}.in-game .pending-scrolls{padding:7px 12px;margin:6px 0}.in-game .pending-scrolls strong{font-size:.7rem}.in-game .pending-scrolls p{margin:0}.in-game .pending-scrolls small{display:none}.in-game .save-status{margin:10px 0}.route-diorama{height:195px;margin:20px -30px 14px;border-block:1px solid #a9ac8044}.route{overflow:hidden}.route .chapter-story{font:italic .95rem/1.65 Georgia,Songti SC,serif;color:#c8d1bd;max-width:540px;margin:0 auto}.route .route-options{margin:20px 0 14px}.route .route-tactic{font-size:.78rem;line-height:1.65;color:#c7cbaa}.route h2{margin-bottom:0}.route-option{border-radius:7px 7px 24px;box-shadow:inset 0 0 28px #32463133,0 5px 15px #07121944}.route-option.risky{border-color:#a7845c77}.atlas-list{display:grid;gap:12px}.atlas-chapter{padding:15px 18px;border-left:2px solid #8a96724d;background:#091b2322}.atlas-chapter.current{border-color:var(--gold);background:#aaa05b12}.atlas-chapter b{display:block;color:var(--gold);font:1.04rem Georgia,Songti SC,serif}.atlas-chapter small{display:block;margin:7px 0;color:var(--teal)}.atlas-chapter p{margin:8px 0 0;font-size:.8rem}.next-chapter-brief{border-left:2px solid var(--teal);padding:8px 15px;background:#6a9e7a13;margin:16px 0 20px}.next-chapter-brief strong{display:block;color:var(--gold);font:1rem Georgia,Songti SC,serif}.next-chapter-brief p{font-size:.74rem;line-height:1.65;color:var(--muted);margin:6px 0 0}.practice-view{max-width:790px;padding:15px 24px 28px;margin:auto}.practice-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.lesson{padding:24px 34px;background:linear-gradient(130deg,#2d413b,#15262e);border:1px solid #c1ac6c77;border-radius:9px 9px 40px;box-shadow:0 20px 80px #0004}.lesson-progress{display:flex;gap:8px;margin-bottom:18px}.lesson-progress span{width:30px;height:30px;border:1px solid #a1af8655;border-radius:50%;display:grid;place-items:center;color:#849b93}.lesson-progress .active{color:#d1bc84;border-color:#d1bc84;background:#b8a15b22}.lesson h1{font-size:1.65rem;color:var(--gold);margin-bottom:12px}.lesson-instruction{font-size:.95rem;line-height:1.7;min-height:70px;color:#d0d6c4}.practice-resources{display:flex;justify-content:space-between;color:var(--teal);font-size:.78rem;border-block:1px solid #9eaf7544;padding:9px 0}.practice-relic{display:flex;gap:12px;align-items:center;margin:14px 0}.practice-relic .sigil{width:39px;min-width:39px}.practice-relic strong,.practice-relic small{display:block}.practice-relic strong{font-family:Georgia,Songti SC,serif;color:var(--gold)}.practice-relic small{font-size:.72rem;color:var(--muted);margin-top:4px}.lesson .spell-tray{margin:15px 0 8px;border:1px dashed #b5b28155;background:#091b222f;border-radius:5px}.lesson-score{text-align:center;min-height:35px;color:var(--muted);font-size:.86rem;padding:5px}.lesson-score b{font-size:1.12rem;color:var(--gold)}.lesson-actions{display:flex;justify-content:center;gap:18px;margin:8px 0}.lesson-actions .primary{min-width:200px}.lesson-safe{text-align:center;margin:18px 0 0}.lesson-ready{text-align:center;color:var(--teal);font-size:.75rem}.lesson-success{text-align:center}.lesson-success .chapter-art{height:185px;margin:15px 0}.lesson-success>b{font:2rem Georgia;color:var(--gold)}.lesson-success>p{font-size:.9rem;line-height:1.7;color:var(--muted);margin:17px 0}.lesson-success>button{margin:8px}@media (min-width:761px){.in-game .spellbook{position:sticky;top:16px}.home-view{padding-bottom:25px}.hero{min-height:330px}.hero h1{font-size:68px;margin:18px 0}.hero-art{max-width:320px}.hero-copy{padding:16px 0}.school{padding:17px}.grimoire-choice{padding-top:20px}.start-actions{margin-top:20px}}@media (max-width:1000px){.in-game .rack{gap:5px}.in-game .tile{width:44px;height:56px}.in-game .play-table{padding:17px}.in-game .resources{font-size:.69rem}.in-game .resources span{gap:5px}.in-game .resources b{font-size:.83rem}.in-game .hand-zone{padding:8px}.in-game .table-layout{grid-template-columns:minmax(0,1fr) 215px}.in-game .rack-label small{font-size:.58rem}}@media (max-width:760px){.in-game .table-layout{grid-template-columns:1fr}.in-game header{padding:6px 13px}.in-game .game-view{padding:10px}.in-game .resources span{display:block}.in-game .resources b{margin-top:4px}.in-game .rack{gap:8px;max-width:none}.in-game .tile{width:48px;height:59px}.in-game .play-table{padding:15px}.in-game .spellbook{padding-top:10px}.in-game .first-spell summary{min-height:44px}.in-game .journey-path{max-width:440px}.in-game .run-bar{font-size:.7rem;gap:6px}.in-game .run-bar>.quiet{font-size:.68rem;padding:6px}.in-game .chapter-heading h1{font-size:1.26rem}.in-game .tray-help{font-size:.65rem}.route-diorama{height:170px;margin:18px -23px 12px}.practice-view{padding:10px 12px}.lesson{padding:20px}.lesson h1{font-size:1.45rem}.lesson-instruction{font-size:.84rem;min-height:84px}.lesson-actions{gap:8px}.lesson-actions .primary{min-width:155px}.lesson .rack{max-width:340px}.lesson .tile{width:48px;height:58px}.lesson-safe{font-size:.7rem}}@media (max-width:480px){.in-game .rack{max-width:310px;gap:9px}.in-game .rack-label{display:flex;align-items:center}.in-game .rack-label small{font-size:.54rem;max-width:165px;margin:0;text-align:right}.in-game .resources{font-size:.66rem;padding-bottom:9px}.in-game .casting-circle{padding:8px 3px}.in-game .formula{gap:7px;font-size:.55rem}.in-game .formula b{font-size:1.1rem}.in-game .formula .power b{font-size:1.45rem}.in-game .spell-tray{gap:5px}.in-game .cast-actions{margin-top:9px;gap:5px}.in-game .chapter-heading{gap:10px}.in-game .chapter-heading h1{max-width:220px}.route-diorama{margin-inline:-14px;height:150px}.build-ribbon{font-size:9px;letter-spacing:.07em}.practice-view .rack{max-width:295px;gap:8px}.lesson{padding:16px}.practice-top .eyebrow{font-size:.65rem}.practice-top button{font-size:.7rem}.lesson-progress{margin-bottom:12px}.lesson h1{font-size:1.3rem}.lesson .spell-tray{min-height:72px}.lesson-instruction{min-height:90px}.lesson .practice-relic{margin:12px 0}.lesson-actions{flex-wrap:wrap}.lesson-actions .primary{min-height:48px}.lesson-score{font-size:.75rem}}@media (max-width:340px){.in-game .rack{gap:6px}.in-game .tile{width:44px;height:55px}.in-game .play-table{padding:12px}.in-game .rack-label small{display:none}.lesson{padding:13px}.lesson .tile{width:44px;height:56px}.lesson-actions{gap:3px}.lesson-actions .primary{min-width:130px;font-size:.75rem}}.word-meaning{margin:.65rem 0;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}.hint-clue{border-left:2px solid var(--gold);padding-left:.8rem;margin-bottom:1rem}.bench-open{width:100%;margin:.4rem 0}.relic-bench{max-width:100%}.bench-scope{line-height:1.6}.bench-words,.bench-history{display:flex;gap:.45rem;flex-wrap:wrap;margin:.8rem 0}.bench-words button[aria-pressed=true],.bench-history button[aria-pressed=true],.bench-words button[aria-pressed=true]:hover:not(:disabled),.bench-history button[aria-pressed=true]:hover:not(:disabled){box-shadow:inset 0 0 0 2px #80603b;background:#eee0c4;color:#30271e}.bench-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:.7rem;align-items:center;border-top:1px solid #bca67d;border-bottom:1px solid #bca67d;padding:1rem 0}.bench-score{display:grid;gap:.4rem;min-width:0}.bench-score b{font-size:1.55rem}.bench-score span,.bench-score small{overflow-wrap:anywhere}.bench-delta{font-weight:700}@media (max-width:480px){.bench-comparison{grid-template-columns:1fr}.bench-arrow{transform:rotate(90deg);justify-self:center}.bench-history button{flex:1 1 140px}}
