@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0b171b;--surface:#122227;--panel:#14282d;--line:#294045;--ink:#edf0e4;--muted:#99aaa7;--mint:#a8f0c6;--gold:#dfbc79;--danger:#ffab92;--serif:'Noto Serif TC',Georgia,serif;--sans:'Noto Sans TC',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button{color:inherit}button svg{width:20px;height:20px}h1,h2,h3,p{margin:0}button,input,select{border-radius:6px}button{border:0}svg{display:block}button svg{stroke:currentColor;fill:none;stroke-width:1.6}::selection{background:#a8f0c6;color:#14282d}[hidden]{display:none!important}
.shell{display:flex;min-height:100vh}.rail{width:86px;flex-shrink:0;border-right:1px solid var(--line);padding:26px 12px;display:flex;flex-direction:column;align-items:center;gap:24px;background:#0e1c20}.brand-mark{font:32px Georgia;color:var(--gold);position:relative;margin-bottom:26px}.brand-mark span{font-size:18px;position:absolute;top:-8px;right:-11px}.rail-button{background:transparent;color:var(--muted);width:60px;padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px;letter-spacing:1px}.rail-button svg{height:23px;width:23px;fill:none;stroke:currentColor;stroke-width:1.4}.rail-button:hover,.rail-button.selected{color:var(--mint);background:#193032}.rail-spacer{flex:1;min-height:40px}.main-shell{width:calc(100% - 86px);max-width:1760px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.topbar{height:84px;border-bottom:1px solid var(--line);margin:0 40px;display:flex;align-items:center;justify-content:space-between;gap:15px}.wordmark{font-family:Georgia;letter-spacing:4px;font-size:21px}.wordmark span{font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:3px;margin-left:15px}.top-actions{display:flex;align-items:center;gap:16px}.wallet{display:flex;align-items:center;gap:8px;font-size:12px}.wallet>span:first-child{font-size:25px;color:var(--gold)}.wallet b{font-weight:500;font-size:15px}.wallet-label{color:var(--muted)}.icon-button{border:1px solid var(--line);background:transparent;height:34px;min-width:34px;font-size:20px}.icon-button[aria-pressed=true]{color:var(--mint);border-color:#669b7c}.icon-button:hover{background:#25423d}#main{flex:1;padding:32px 40px 24px;outline:none}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:600;text-transform:uppercase}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.section-heading h1{font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:3px}.subtle{color:var(--muted);font-size:12px}.chapter-chip{font-size:11px;color:var(--mint);border:1px solid #385547;border-radius:4px;padding:5px 10px;white-space:nowrap}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:24px}.world-card{position:relative;overflow:hidden;border:1px solid #28423f;min-height:568px;background:radial-gradient(ellipse at 62% 39%,#25483c 0,#12282c 43%,#112027 85%);border-radius:10px}.world-title{position:relative;z-index:2;padding:32px 32px 0;pointer-events:none}.world-title h2{font-family:var(--serif);font-weight:500;font-size:clamp(29px,3vw,43px);letter-spacing:5px;line-height:1.55;margin-top:13px;text-shadow:0 2px 20px #0a191b}.world-title p{color:#b0c7bd;font-size:12px;margin-top:12px;letter-spacing:1px}.world-art{width:100%;height:370px;margin-top:-8px;position:relative}.world-art svg{width:100%;height:100%;overflow:visible}.world-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;padding:4px 28px 23px}.location{font-size:12px;color:#c0d0c5;letter-spacing:2px}.location small{display:block;color:#86a297;font-size:10px;letter-spacing:2px;margin-top:5px}.world-coordinate{font:11px monospace;color:#8da699}.expedition-panel{border:1px solid var(--line);border-radius:10px;padding:26px 24px;background:linear-gradient(150deg,#192c2e,#101f24);display:flex;flex-direction:column}.expedition-panel h2{font-family:var(--serif);font-weight:500;font-size:23px;margin:10px 0}.panel-intro{font-size:12px;color:var(--muted);line-height:1.9}.fine-line{border:0;height:1px;background:var(--line);margin:23px 0}.field-label{font-size:11px;letter-spacing:1px;color:var(--muted);display:block;margin-bottom:8px}select{width:100%;padding:12px;background:#0d1c21;border:1px solid #375049;color:var(--ink)}.journey-list{margin:23px 0;padding:0;list-style:none;display:grid;gap:18px}.journey-list li{display:flex;gap:12px;position:relative;align-items:center}.step-seal{width:32px;height:32px;display:grid;place-items:center;border:1px solid #466450;transform:rotate(45deg);flex-shrink:0;margin:0 7px}.step-seal span{transform:rotate(-45deg);font:12px Georgia;color:var(--gold)}.journey-list b{font-weight:500;font-size:12px}.journey-list small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.primary{background:var(--mint);color:#142820;font-weight:600;padding:13px 20px;display:flex;align-items:center;justify-content:center;gap:18px;transition:background .2s,transform .2s;min-height:48px}.primary:hover{background:#c9ffda;transform:translateY(-2px)}.primary .arrow{font-size:20px}.secondary{background:#1c3438;border:1px solid #3f5955;padding:10px 16px;min-height:44px}.secondary:hover{background:#294844}.quiet{background:transparent;padding:8px;color:var(--muted);font-size:12px;min-height:38px}.quiet:hover{color:var(--mint)}.start-button{width:100%;margin-top:auto}.panel-note{text-align:center;font-size:10px;color:var(--muted);margin-top:12px;letter-spacing:1px}.bottom-strip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:22px}.metric{display:flex;align-items:center;gap:15px;padding:16px 18px;border:1px solid var(--line);border-radius:7px;background:#102025}.metric-symbol{color:var(--gold);font:28px Georgia;width:30px;text-align:center}.metric b{font-size:20px;font-weight:500}.metric small{font-size:11px;color:var(--muted);display:block}.metric-unit{font-size:11px;color:var(--muted);margin-left:5px}.footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:15px 40px 22px;font-size:10px;letter-spacing:1px;color:#889d96}.status-dot{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:100%;margin-right:7px}.notice{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#e6eedc;color:#172b24;box-shadow:0 10px 40px #0007;padding:12px 22px;border-radius:8px;z-index:50;max-width:90%;transition:.2s}.notice.show{opacity:1;transform:translate(-50%,0)}
.journey-progress{display:flex;align-items:center;gap:14px}.journey-progress span{font-size:11px;color:#82988e}.journey-progress span.active{color:var(--mint)}.journey-progress i{height:1px;width:28px;background:#3a524a}.study-layout{max-width:1060px;margin:20px auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}.study-art{min-width:0;text-align:center}.study-art svg{width:100%;height:340px}.study-art h2{font:25px var(--serif);letter-spacing:3px}.study-art p{font-size:12px;color:var(--muted);margin-top:14px}.study-card{padding:36px;background:#172b2f;border:1px solid #405950;border-radius:12px;box-shadow:0 22px 90px #0002}.study-count{display:flex;justify-content:space-between;align-items:center;color:var(--gold);font-size:11px}.study-card h2{font:clamp(28px,4vw,43px) Georgia;margin:22px 0 5px;overflow-wrap:anywhere}.phonetic{color:var(--muted);font-size:13px}.meaning{font-size:17px;color:var(--mint);line-height:1.8;margin-top:24px}.sentence{font-family:Georgia;font-size:17px;line-height:1.7;color:#d3ddd2;margin:20px 0 7px}.translation{font-size:12px;color:var(--muted);line-height:1.8}.audio-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.audio-button{display:inline-flex;align-items:center;gap:8px;background:#223c3e;border:1px solid #38584e;padding:9px 12px;color:#c6e7d4;font-size:12px;min-height:40px}.audio-button:hover{background:#315347}.study-card .primary{margin-top:28px;width:100%}.study-dots{display:flex;gap:7px;justify-content:center;margin-top:20px}.study-dots i{width:6px;height:6px;border-radius:10px;background:#40554c}.study-dots i.done{background:var(--mint)}
.battle-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:24px;align-items:start}.arena{border:1px solid #355249;border-radius:10px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#28483d,#14272b 55%,#102025);position:relative;min-width:0}.arena-header{padding:24px 26px 0;display:flex;justify-content:space-between;gap:20px;position:relative;z-index:2}.enemy-info{flex:1;max-width:240px}.enemy-info h2{font:20px var(--serif);letter-spacing:2px;margin-bottom:8px}.health-label{font:10px monospace;color:#b7c3ac;display:flex;justify-content:space-between;margin-top:5px}.health-track{height:5px;background:#33423d;border-radius:10px;overflow:hidden}.health-fill{height:100%;background:var(--gold);transition:width .5s;border-radius:10px}.stage-label{font:11px monospace;color:var(--gold);letter-spacing:2px}.battle-art{height:365px;position:relative}.battle-art svg{height:100%;width:100%}.arena-bottom{border-top:1px solid #355149;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#12282bbf}.player-name{font-size:12px;margin-bottom:5px}.hearts{letter-spacing:4px;color:var(--mint);font-size:15px}.hearts .empty{color:#455853}.player-defense{color:#a0c9bd;font-size:11px}.energy{font-size:11px;color:var(--gold);text-align:right}.energy i{display:inline-block;width:9px;height:15px;transform:skew(-14deg);background:#3a473c;margin-left:5px}.energy i.charged{background:var(--gold);box-shadow:0 0 12px #dcbf7944}.intent{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;color:#d8d3b8;background:#122722dd;border:1px solid #5f6751;padding:6px 12px;border-radius:20px}.damage-float{position:absolute;left:65%;top:37%;font:36px Georgia;color:#eaffd4;text-shadow:0 0 20px #a8f0c6;opacity:0;pointer-events:none}.damage-float.play{animation:damage .95s ease-out}.battle-panel{background:#14282d;border:1px solid var(--line);border-radius:10px;padding:24px;min-width:0}.battle-panel .eyebrow{font-size:10px;letter-spacing:2px}.spell-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0 23px}.spell{padding:12px 5px;border:1px solid #38524b;background:#122329;text-align:center;min-width:0}.spell strong{font-weight:500;font-size:12px;display:block}.spell span{color:#94aaa1;font-size:10px;display:block;margin-top:4px}.spell.active{border-color:#a3d4af;background:#243e34;color:var(--mint);box-shadow:inset 0 0 20px #9effaa05}.spell.active span{color:#b1c9b7}.question-title{font:clamp(26px,3vw,38px) Georgia;margin:12px 0 6px;overflow-wrap:anywhere}.question-clue{color:#b1c5b8;font-size:13px;line-height:1.85;margin:8px 0 18px}.question-clue.cloze{font:19px/1.7 Georgia}.question-type{display:flex;align-items:center;justify-content:space-between;gap:12px}.question-count{font-size:10px;color:var(--muted)}.answers{display:grid;gap:9px;margin-top:19px}.answer{display:flex;align-items:center;gap:12px;background:#192f33;border:1px solid #365048;padding:12px;text-align:left;font-size:13px;line-height:1.65;min-height:52px;width:100%;transition:.18s}.answer:hover:enabled{border-color:#9dcbaa;transform:translateX(3px);background:#253f38}.answer-key{font:11px monospace;color:#a0b4a8;border:1px solid #486254;border-radius:3px;width:23px;height:25px;flex-shrink:0;display:grid;place-items:center}.answer.correct{border-color:var(--mint);background:#274a3d;color:#d8ffdf;opacity:1}.answer.wrong{border-color:var(--danger);background:#4b302a;color:#ffd3c1;opacity:1}.spell-form{margin-top:20px}.spell-form label{font-size:11px;color:var(--muted)}.spell-form input{width:100%;background:#0d2024;border:1px solid #668b70;padding:14px;margin:9px 0 12px;color:var(--mint);font-size:18px;letter-spacing:1px}.spell-form .primary{width:100%}.feedback{margin-top:20px;border-top:1px solid #466251;padding-top:15px}.feedback strong{color:var(--mint);font-weight:500}.feedback.is-wrong strong{color:var(--danger)}.feedback p{color:#b6c7bb;font-size:12px;margin-top:6px;line-height:1.8}.feedback .primary{width:100%;margin-top:16px}.keyboard-note{font-size:10px;letter-spacing:1px;color:#91a49a;margin-top:17px;text-align:center}.encounter-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px;font-size:11px;color:var(--muted)}.relic-label{border:1px solid #494d35;background:#2a3027;color:var(--gold);padding:5px 10px;border-radius:4px}.route-layout{max-width:1000px;margin:auto}.route-banner{text-align:center;margin:28px 0 32px}.route-banner h2{font:32px var(--serif);margin:8px 0 13px;letter-spacing:3px}.route-banner p{color:var(--muted);font-size:13px}.route-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}.route-card{background:#152a2d;border:1px solid #425d4e;border-radius:10px;padding:24px;text-align:left;transition:.2s;overflow:hidden}.route-card:hover{transform:translateY(-5px);border-color:var(--mint);background:#1c3735}.route-card svg{width:100%;height:165px}.route-card h3{font:23px var(--serif);margin:12px 0}.route-card p{font-size:12px;color:var(--muted);margin-bottom:20px;line-height:1.9}.route-card .route-reward{font-size:12px;color:var(--gold);border-top:1px solid #365044;padding-top:15px;display:flex;justify-content:space-between}.result-layout{max-width:940px;margin:15px auto}.result-head{text-align:center}.result-head svg{width:100%;height:220px}.result-head h1{font:34px var(--serif);letter-spacing:4px;margin:10px 0}.result-head p{color:var(--muted);font-size:13px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0;border:1px solid var(--line);border-radius:8px;background:#14282d}.result-stats div{text-align:center;padding:20px;border-right:1px solid var(--line)}.result-stats div:last-child{border:0}.result-stats b{display:block;font:28px Georgia;color:var(--mint);margin-bottom:7px}.result-stats span{font-size:11px;color:var(--muted)}.word-list{border-top:1px solid var(--line);margin:24px 0}.word-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,2fr) auto;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line)}.word-row strong{font:18px Georgia;overflow-wrap:anywhere}.word-row span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.word-row .word-state{color:var(--mint);font-size:10px;white-space:nowrap}.result-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.journal-top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:20px 0}.journal-filter{display:flex;gap:10px;flex-wrap:wrap}.journal-filter button[aria-pressed=true]{border-color:var(--mint);color:var(--mint)}.empty-journal{text-align:center;padding:70px 20px;color:var(--muted)}.recovery-banner{color:var(--gold);font-size:12px;margin-top:14px}.pending-badge{font-size:11px;color:var(--gold);margin-top:12px;text-align:center}
.portal-ring{transform-origin:center;transform-box:fill-box;animation:orbit 36s linear infinite}.float-object{animation:bob 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.float-delayed{animation:bob 6s ease-in-out -3s infinite}.energy-pulse{animation:pulse 3s ease-in-out infinite}.cape-tail{transform-origin:top;transform-box:fill-box;animation:cape 4s ease-in-out infinite}.dust{animation:drift 9s linear infinite}.art-scene{transform:perspective(1000px) rotateY(var(--look-x,0deg)) rotateX(var(--look-y,0deg));transition:transform .5s ease-out;transform-style:preserve-3d}.hit .enemy-body{animation:hit .65s ease-out}.cast .hero-body{animation:cast .6s ease-out}.hurt .hero-body{animation:hit .6s ease-out}.guard .hero-shield{opacity:.8}.hero-shield{opacity:0;transition:opacity .3s}.enemy-broken .enemy-body{opacity:.3;transform:translateY(28px) scale(.9);transition:1s}.spell-trail{opacity:0;stroke-dasharray:650;stroke-dashoffset:650}.cast .spell-trail{animation:beam .6s ease-out}.burst .spell-trail{stroke-width:18;filter:url(#battle-glow)}.burst .arena{animation:shake .4s ease-out}.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important}.reduced-motion .art-scene{transform:none!important}
body[data-outfit="frost"]{--cloak-light:#d9e6ef;--cloak-mid:#8ebcc9;--cloak-dark:#41697a}body[data-outfit="dusk"]{--cloak-light:#f0c3ac;--cloak-mid:#c68078;--cloak-dark:#653e51}.camp-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;max-width:1050px;margin:25px auto}.camp-portrait{background:radial-gradient(ellipse at center,#264338,transparent 70%);text-align:center;align-self:center}.camp-portrait svg{width:100%;height:380px}.camp-portrait h2{font:26px var(--serif);letter-spacing:3px}.camp-portrait p{margin:12px 0;color:var(--muted);font-size:12px}.outfit-list{display:grid;gap:14px;align-content:center}.outfit-option{display:flex;gap:18px;align-items:center;background:#14282d;border:1px solid var(--line);border-radius:8px;padding:22px}.outfit-option.equipped{border-color:#8bb89b}.outfit-swatch{width:38px;height:54px;clip-path:polygon(50% 0,78% 18%,100% 100%,50% 85%,0 100%,23% 18%);flex-shrink:0;background:var(--swatch)}.outfit-details{flex:1;min-width:0}.outfit-details h3{font:18px var(--serif)}.outfit-details p{font-size:11px;color:var(--muted);margin-top:7px}.outfit-option button{font-size:12px;white-space:nowrap}.camp-note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.9}
@media(max-width:900px){.camp-layout{grid-template-columns:1fr;gap:25px}.camp-portrait svg{height:245px}}@media(max-width:560px){.outfit-option{padding:16px;gap:12px;flex-wrap:wrap}.outfit-option button{margin-left:auto}.camp-portrait svg{height:230px}}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes bob{50%{transform:translateY(-10px)}}@keyframes pulse{50%{opacity:.55}}@keyframes cape{50%{transform:skewX(-4deg) scaleY(1.035)}}@keyframes drift{50%{transform:translate(8px,-16px);opacity:.4}}@keyframes hit{20%{transform:translateX(12px);filter:brightness(2)}45%{transform:translateX(-5px)}70%{transform:translateX(3px)}}@keyframes cast{35%{transform:translateX(20px) rotate(-4deg)}60%{transform:translateX(8px)}}@keyframes beam{15%{opacity:1}70%{opacity:1;stroke-dashoffset:0}100%{stroke-dashoffset:-650;opacity:0}}@keyframes damage{15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translateY(-60px)}}@keyframes shake{25%{transform:translateX(4px)}75%{transform:translateX(-3px)}}
@media(min-width:1600px){.home-grid{grid-template-columns:minmax(0,1fr) 350px}.world-card{min-height:650px}.world-art{height:440px}.battle-art{height:445px}.battle-panel{padding:30px}.world-title{padding:40px 40px 0}}
@media(max-width:1150px){.topbar{margin:0 24px}#main{padding:26px 24px}.home-grid{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.expedition-panel{padding:24px 20px}.world-title{padding:26px 24px 0}.world-title h2{font-size:31px}.world-art{height:370px}.battle-layout{grid-template-columns:1fr 1fr;gap:18px}.battle-panel{padding:20px}.battle-art{height:350px}.journey-progress{gap:8px}.journey-progress i{width:15px}.study-layout{gap:28px}.footer{padding-left:24px;padding-right:24px}}
@media(max-width:900px){.rail{width:65px;padding:25px 5px}.rail-button{width:50px}.main-shell{width:calc(100% - 65px)}.home-grid{grid-template-columns:1fr}.world-card{min-height:500px}.world-title h2{font-size:35px}.world-art{height:330px;margin-top:-15px}.expedition-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}.expedition-panel .panel-head{grid-column:1}.expedition-panel .unit-field{grid-column:1}.journey-list{grid-column:2;grid-row:1 / 4;margin:4px 0 18px}.expedition-panel .fine-line{margin:14px 0}.start-button{grid-column:1 / -1}.panel-note,.pending-badge{grid-column:1 / -1}.bottom-strip{gap:10px}.metric{padding:13px 12px;gap:8px}.battle-layout{grid-template-columns:1fr}.battle-art{height:290px}.battle-panel{padding:24px}.spell-row{margin-bottom:18px}.answers{grid-template-columns:1fr 1fr}.battle-panel .question-title{font-size:32px}.study-layout{grid-template-columns:1fr}.study-art{display:none}.study-card{max-width:570px;width:100%;margin:auto}.journey-progress{display:none}}
@media(max-width:560px){.rail{width:52px;padding:22px 3px;gap:16px}.brand-mark{font-size:27px}.rail-button{width:44px;font-size:10px}.main-shell{width:calc(100% - 52px)}.topbar{margin:0 15px;height:68px}.wordmark{font-size:15px;letter-spacing:2px}.wordmark span,.wallet-label{display:none}.top-actions{gap:9px}.icon-button{height:30px;min-width:28px}.wallet{gap:4px;font-size:10px}.wallet b{font-size:12px}.wallet>span:first-child{font-size:20px}#main{padding:23px 14px 18px}.section-heading{gap:8px;margin-bottom:17px}.section-heading h1{font-size:20px;letter-spacing:2px}.chapter-chip{font-size:9px;padding:5px 7px}.world-title{padding:24px 20px 0}.world-title h2{font-size:27px;letter-spacing:3px}.world-title p{font-size:11px;max-width:220px}.world-card{min-height:440px}.world-art{height:270px;margin-top:0}.world-bottom{padding:0 18px 20px}.world-coordinate{display:none}.location{font-size:11px}.expedition-panel{display:block;padding:22px}.journey-list{margin:22px 0}.bottom-strip{grid-template-columns:1fr;gap:8px}.metric{padding:11px 16px}.metric>div:last-child{display:flex;gap:10px;align-items:center;flex:1;justify-content:space-between}.metric b{font-size:20px}.metric small{font-size:11px}.footer{padding:14px 16px;font-size:9px}.footer>span:last-child{display:none}.study-card{padding:25px 20px}.study-card h2{font-size:32px}.meaning{font-size:15px}.section-heading .quiet{font-size:11px;padding:5px}.battle-art{height:235px}.arena-header{padding:20px 18px 0}.enemy-info h2{font-size:17px}.stage-label{font-size:9px}.arena-bottom{padding:15px}.battle-panel{padding:20px 16px}.answers{grid-template-columns:1fr}.intent{font-size:10px;padding:5px 9px}.question-clue{font-size:12px}.spell{padding:12px 3px}.spell span{font-size:9px}.spell strong{font-size:11px}.route-cards{grid-template-columns:1fr}.route-banner h2{font-size:25px}.route-card svg{height:135px}.route-card{padding:20px}.result-head h1{font-size:26px}.result-head svg{height:170px}.result-stats div{padding:14px 7px}.result-stats b{font-size:23px}.result-stats span{font-size:10px}.word-row{grid-template-columns:1fr auto;gap:5px 8px}.word-row>span:not(.word-state){grid-column:1 / -1;grid-row:2}.word-row strong{font-size:17px}.journal-top{align-items:start;flex-direction:column}.journal-filter{gap:7px}.journal-filter button{font-size:11px;padding:8px 12px}.eyebrow{font-size:9px;letter-spacing:2px}.result-actions>*{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.art-scene{transform:none!important}}
@media(max-width:560px){.world-art{height:245px}.world-art svg{width:160%;margin-left:-30%}.battle-art svg{width:125%;margin-left:-12.5%}}
@media(max-width:380px){.world-title h2{font-size:23px;letter-spacing:2px}.world-title{padding-left:17px;padding-right:17px}.world-title p{font-size:10px}.eyebrow{letter-spacing:1.4px}}

/* 第二章內容：地貌、成長、星盤與戰鬥演出。 */
body[data-biome="moon"]{--bg:#111620;--mint:#c1c4ff;--gold:#d5c6ef;--line:#343c51;--world-glow:#3c405e;--world-base:#1a2636}
body[data-biome="ember"]{--bg:#1c1719;--mint:#ffcf9c;--gold:#eab275;--line:#51413d;--world-glow:#624333;--world-base:#2b2528}
body[data-biome="moon"] .world-card,body[data-biome="moon"] .arena,body[data-biome="ember"] .world-card,body[data-biome="ember"] .arena{background:radial-gradient(ellipse at 60% 40%,var(--world-glow),var(--world-base) 70%)}
body[data-biome="moon"] .environment-tree{filter:hue-rotate(95deg) saturate(.5) brightness(1.25)}body[data-biome="ember"] .environment-tree{filter:hue-rotate(265deg) saturate(.5)}
.biome-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.biome-option{background:#122327;border:1px solid var(--line);padding:14px 17px;text-align:left;display:flex;align-items:center;gap:14px;transition:background .2s,border-color .2s}.biome-option.active{background:#233936;border-color:var(--mint)}.biome-option b{font-size:13px;font-weight:500;display:block}.biome-option small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.biome-gem{width:15px;height:24px;background:var(--gem);clip-path:polygon(50% 0,100% 40%,50% 100%,0 40%);box-shadow:0 0 20px var(--gem);flex-shrink:0}.biome-index{margin-left:auto;font:11px Georgia;color:#8aa194}.biome-option:disabled.active{opacity:1}.biome-option:hover:enabled{border-color:var(--mint)}
.four-spells{grid-template-columns:1fr 1fr}.enemy-intent-detail{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:14px 24px;background:#112025;border-top:1px solid #355149;font-size:11px}.enemy-intent-detail b{color:var(--gold);font-weight:500}.enemy-intent-detail span{color:var(--muted)}.companion-status{padding:0 24px 14px;background:#112025;font-size:10px;color:#c4d0ee}.intent-charge .intent{border-color:#c29b73;color:#f5c8a0}.intent-barrier .portal-ring{stroke:#c3ccff;filter:drop-shadow(0 0 5px #adbcff)}.guardian-cracks{opacity:0;transition:opacity .4s}.enemy-fractured .guardian-cracks{opacity:.9}.enemy-intent-detail+.companion-status{padding-top:0}
.xp-track{height:5px;background:#334941;max-width:260px;margin:22px auto 8px;border-radius:10px;overflow:hidden}.xp-track span{height:100%;display:block;background:var(--mint);transition:width .5s}.growth-path{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1050px;margin:35px auto}.growth-node{border-top:1px solid #4b6053;padding:20px;background:#122327}.growth-node>span{font:11px Georgia;color:var(--gold)}.growth-node h3{font:19px var(--serif);margin:9px 0}.growth-node p{font-size:11px;color:var(--muted)}.growth-node small{font-size:10px;color:var(--muted);display:block;margin-top:12px}.growth-node.unlocked{border-top-color:var(--mint);background:#1d3432}.growth-node.unlocked small{color:var(--mint)}.xp-earned{color:var(--gold);font-size:12px;margin-top:18px;letter-spacing:1px}.save-transfer{max-width:1050px;margin:30px auto 15px;border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;align-items:center}.save-transfer h3{font-size:15px;font-weight:500}.save-transfer p{font-size:11px;color:var(--muted);max-width:480px;margin-top:6px}.save-transfer>div:last-child{display:flex;gap:10px;flex-shrink:0}.save-transfer button{font-size:12px}
.event-invitation{width:100%;margin-top:22px;display:flex;align-items:center;gap:20px;text-align:left;padding:10px 26px 10px 10px;background:linear-gradient(100deg,#203735,#1a252e);border:1px solid #607364;position:relative;overflow:hidden}.event-mini-art{width:150px;flex-shrink:0}.event-mini-art svg{width:100%;height:115px}.event-invitation h3{font:20px var(--serif);margin:8px 0}.event-invitation p{color:var(--muted);font-size:11px}.event-invitation>span{margin-left:auto;color:var(--mint);font-size:12px;white-space:nowrap}.event-invitation:hover{border-color:var(--mint)}.event-collected{color:var(--gold);text-align:center;font-size:12px;margin:24px}.event-layout{max-width:1120px;margin:30px auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center}.event-illustration{text-align:center}.event-illustration svg{width:100%;height:300px}.event-illustration h2{font:25px var(--serif);letter-spacing:2px;margin:12px 0}.event-illustration p{font-size:12px;line-height:1.9;color:var(--muted)}.event-counter{display:inline-block;margin-top:20px;font:15px Georgia;color:var(--gold)}.event-puzzle{min-width:0;background:#14282d;border:1px solid var(--line);padding:28px;border-radius:12px}.pair-board{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:45px}.pair-column{display:grid;grid-auto-rows:1fr;gap:14px;position:relative;z-index:1}.pair-card{min-height:95px;padding:16px 12px;background:#1c3438;border:1px solid #48615b;overflow-wrap:anywhere;transition:border-color .25s,background .25s,transform .25s}.word-pair{font:19px/1.4 Georgia}.meaning-pair{font-size:12px;line-height:1.7}.pair-card.chosen{border-color:var(--gold);background:#3a3f30;transform:translateX(4px)}.pair-card.matched{border-color:var(--mint);color:var(--mint);background:#233e36;opacity:1}.pair-card>span{display:block;font:14px Georgia;margin-top:6px}.pair-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.pair-links path{stroke:var(--mint);stroke-width:2;fill:none;filter:drop-shadow(0 0 3px #a6edc7)}.pair-feedback{min-height:44px;color:var(--mint);font-size:12px;line-height:1.8;margin:22px 0 8px}.event-reward{border-top:1px solid var(--line);padding-top:16px}.event-reward>span{display:block;color:var(--gold);font-size:17px}.event-reward small{display:block;color:var(--muted);font-size:11px;margin:8px 0 20px}.event-reward .primary{width:100%}
.audio-dialog{background:#14272b;color:var(--ink);border:1px solid #688a74;border-radius:14px;padding:28px;width:min(460px,calc(100% - 32px));box-shadow:0 30px 120px #0008}.audio-dialog::backdrop{background:#031217bb;backdrop-filter:blur(7px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.dialog-heading h2{font:23px var(--serif)}.sound-control{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;margin:22px 0 12px}.sound-control input{width:20px;height:20px;accent-color:#a8f0c6}.audio-dialog input[type=range]{width:100%;accent-color:#a8f0c6}.sound-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.sound-preview button{font-size:12px}.sound-settings{font-size:22px}
.sentinel-wing{transform-box:fill-box;transform-origin:center}.wing-left{animation:wing-left 4s ease-in-out infinite}.wing-right{animation:wing-right 4s ease-in-out infinite}.archon-blades{animation:blades 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.hero-wings{animation:wing-glow 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.familiar-wing{animation:wing-glow 2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.lava-flow{stroke-dasharray:40 12;animation:lava 8s linear infinite}.cast-sigil{opacity:0}.cast .cast-sigil{animation:sigil 1s ease-out}.attack-fx,.heal-fx{opacity:0}.cast .attack-fx{animation:impact-show .85s .12s ease-out}.impact-ring,.slash-arc{transform-box:fill-box;transform-origin:center}.cast .impact-ring{animation:ring-hit .75s .12s ease-out}.cast .slash-arc{stroke-dasharray:420;stroke-dashoffset:420;animation:slash .6s .1s ease-out}.cast .impact-rays{animation:rays .8s ease-out;transform-box:fill-box;transform-origin:center}.burst .impact-ring{stroke-width:6}.burst .attack-fx{filter:drop-shadow(0 0 7px #c6f4cc)}.healing .heal-fx{animation:impact-show 1.2s ease-out}.heal-fx path{stroke-width:3;stroke-dasharray:40 100;stroke-dashoffset:140}.healing .heal-fx path{animation:heal-rise 1s var(--delay) ease-out}.enemy-trail,.familiar-trail{opacity:0;stroke-dasharray:650;stroke-dashoffset:650}.hurt .enemy-trail,.blocked .enemy-trail{animation:beam .65s ease-out}.companion-strike .familiar-trail{animation:beam .7s .2s ease-out}.blocked .hero-shield{opacity:1;stroke-width:5;filter:drop-shadow(0 0 8px #bdf7d1)}.hit .enemy-body{animation-delay:.12s;transform-box:fill-box;transform-origin:center}.enemy-broken .sentinel-wing{animation:none;transform:translateY(28px) rotate(15deg);opacity:.35;transition:1s}.enemy-broken .archon-blades{animation:none;transform:scale(1.25);opacity:.25;transition:1s}
@keyframes wing-left{50%{transform:rotate(-8deg) translateY(-5px)}}@keyframes wing-right{50%{transform:rotate(8deg) translateY(-5px)}}@keyframes blades{50%{transform:rotate(5deg) scale(1.06)}}@keyframes wing-glow{50%{opacity:.5;transform:scaleX(1.08)}}@keyframes lava{to{stroke-dashoffset:-104}}@keyframes sigil{15%{opacity:.85}100%{opacity:0}}@keyframes impact-show{15%,60%{opacity:1}100%{opacity:0}}@keyframes ring-hit{from{transform:scale(.35);opacity:1}to{transform:scale(2.2);opacity:0}}@keyframes slash{70%,100%{stroke-dashoffset:0;opacity:0}}@keyframes rays{from{transform:scale(.35)}to{transform:scale(1.7)}}@keyframes heal-rise{to{stroke-dashoffset:-140}}
@media(max-width:1050px){.event-layout{gap:22px;grid-template-columns:.7fr 1fr}.event-puzzle{padding:20px}.pair-board{gap:28px}.pair-card{padding:12px 9px}.event-illustration h2{font-size:21px}.event-invitation{padding-right:18px;gap:12px}.biome-index{display:none}}
@media(max-width:800px){.event-layout{grid-template-columns:1fr;gap:25px}.event-illustration svg{height:210px}.event-illustration p{display:none}.event-counter{margin-top:10px}.event-puzzle{max-width:600px;width:100%;margin:auto}.event-invitation h3{font-size:17px}.event-mini-art{width:105px}.growth-path{gap:10px}.growth-node{padding:15px}.save-transfer{align-items:start;flex-direction:column}.biome-option{gap:9px;padding:12px}.biome-option small{font-size:9px}}
@media(max-width:560px){.biome-picker{gap:6px;margin-bottom:18px}.biome-option{flex-direction:column;align-items:flex-start;gap:7px;padding:10px 8px}.biome-option b{font-size:11px}.biome-option small{display:none}.biome-gem{width:9px;height:15px}.growth-path{grid-template-columns:1fr}.growth-node{display:grid;grid-template-columns:45px 1fr;gap:3px 10px}.growth-node h3{font-size:16px;margin:0}.growth-node p{grid-column:2}.growth-node small{grid-column:2;margin-top:5px}.enemy-intent-detail{padding:12px 15px;display:block}.enemy-intent-detail span{display:block;font-size:10px;margin-top:4px}.companion-status{padding-left:15px;font-size:9px}.event-invitation{flex-wrap:wrap;padding:18px;gap:12px}.event-mini-art{display:none}.event-invitation>span{margin-left:0}.event-invitation h3{font-size:17px}.event-invitation p{line-height:1.8}.event-puzzle{padding:18px 12px}.pair-board{gap:24px}.pair-card{min-height:110px;padding:12px 8px}.word-pair{font-size:16px}.meaning-pair{font-size:11px}.event-illustration svg{height:185px}.sound-settings{display:none}.audio-dialog{padding:22px}.save-transfer>div:last-child{flex-wrap:wrap}.world-title p{min-height:32px}}
