.skill-practice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px;padding:18px 0;border-block:1px solid var(--line)}.skill-practice>div{min-width:0;flex:1 1 220px}.skill-practice h2{font-size:16px;margin:0 0 6px}.skill-practice p{color:var(--muted);font-size:12px;line-height:1.8;margin:0;overflow-wrap:anywhere}.skill-practice>button{flex-shrink:0;min-height:42px;font-size:13px}@media (max-width: 600px){.skill-practice>button{max-width:100%;white-space:normal}}.learning-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:24px 0;border-bottom:1px solid var(--line)}.learning-summary>div{padding:0 24px;border-left:1px solid var(--line)}.learning-summary>div:first-child{padding-left:0;border-left:0}.learning-summary dt{font-size:11px;color:var(--muted)}.learning-summary dd{margin:10px 0 0;font-size:26px;font-variant-numeric:tabular-nums;color:var(--jade-deep)}.upcoming-review{padding:22px 0;border-bottom:1px solid var(--line)}.upcoming-review h3{font-size:14px;font-weight:500;margin-bottom:10px}.upcoming-review time{display:block;color:var(--muted);font-size:12px}.upcoming-review a{display:inline-flex;gap:8px;align-items:center;font-size:12px;margin-top:15px}.review-details{min-width:0;flex:1}.review-details h3{display:flex;flex-wrap:wrap;align-items:center;gap:12px;line-height:1.5}.review-status{font-size:10px;padding:3px 6px;border-radius:3px;background:#e7edf5;color:#627da3}.status-due{background:#f5e6dd;color:#a76f54}.status-consolidated{background:#e1eee5;color:#4b8464}.review-mastery{display:flex;align-items:center;gap:12px;max-width:250px;margin:15px 0 10px}.review-mastery .progress{flex:1}.review-mastery>span{color:var(--muted);font-size:11px;white-space:nowrap}.review-date{line-height:1.8;overflow-wrap:anywhere}.review-empty{padding:55px 15px}.review-empty .text-button{margin-top:20px}@media (max-width: 760px){.learning-summary>div{padding:0 15px}.learning-summary dd{font-size:24px}.review-list article{align-items:flex-start}.review-list .review-details{flex-basis:calc(100% - 40px)}.review-list button{min-height:40px;margin-top:2px}}.map-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0 0 20px;border-bottom:1px solid var(--line)}.map-stages button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:10px 8px;background:transparent;color:#6c8380;border-bottom:2px solid transparent;font-size:12px}.map-stages button small{font-size:10px;font-variant-numeric:tabular-nums;color:#8b7e64}.map-stages button[aria-pressed=true]{color:var(--jade-deep);background:#e5efeb;border-bottom-color:var(--jade)}.program-battle .monaco-host{height:270px}.program-battle .plain-code-answer{height:270px;min-height:270px}.program-battle .arena{height:auto;min-height:360px;padding-top:280px}.program-battle .fighters{inset:40px 8% auto;height:224px}.program-battle .arena-task{position:relative;bottom:auto;min-height:80px;line-height:1.8}.lesson-check,.run-result p{white-space:pre-wrap;overflow-wrap:anywhere}@media (max-width:760px){.world-map .node-1{top:78%}.world-map .node-2{top:53%}.world-map .node-3{top:28%}}@media (max-width:760px){.map-stages{margin:0 -8px 12px}.map-stages button{flex-direction:column;gap:5px;padding:10px 3px;font-size:10px;min-height:60px}.map-stages button small{font-size:9px}.program-battle .arena{min-height:300px;padding-top:205px}.program-battle .fighters{inset:30px 5% auto;height:160px}.program-battle .arena-task{min-height:90px}.program-battle .monaco-host{height:250px}.program-battle .plain-code-answer{height:250px;min-height:250px}}.daily-tasks{padding:28px 0;border-bottom:1px solid var(--line)}.daily-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.daily-heading h2{margin:6px 0 0;font-size:20px}.daily-date{display:grid;gap:6px;text-align:right;color:var(--muted);font-size:11px}.daily-date time{font-size:13px;color:var(--jade-deep);font-variant-numeric:tabular-nums}.daily-summary{display:flex;flex-wrap:wrap;gap:12px 28px;margin:22px 0 6px;color:var(--muted);font-size:12px}.daily-summary b{color:var(--jade-deep);font-weight:500;font-variant-numeric:tabular-nums;margin-left:6px}.daily-quest-scroll{margin-top:14px;padding:0 16px 8px;border:1px solid #aba486;background:#f5f0df;box-shadow:inset 7px 0 #887c5521}.daily-quest-title{display:flex;align-items:center;gap:13px;min-height:43px;border-bottom:1px solid #beb494}.daily-quest-title>span{color:#8c733d;font:19px var(--brush)}.daily-quest-title>b{margin-left:auto;color:#8b7137;font-size:10px;font-weight:500}.daily-quest-title>small{color:var(--muted);font-size:9px}.daily-task{display:grid;grid-template-columns:42px minmax(0,1fr) 95px 132px;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.daily-task:last-child{border-bottom:0}.daily-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:6px;color:#39746d;background:#e2eeea}.daily-task:nth-child(2) .daily-symbol{color:#836693;background:#eee7f2}.daily-task:nth-child(3) .daily-symbol{color:#9d6544;background:#f5e7dc}.daily-description{min-width:0}.daily-description h3{margin:0;font-size:15px;font-weight:500}.daily-description p{margin:6px 0 10px;font-size:12px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.daily-progress{display:flex;align-items:center;gap:12px;max-width:230px}.daily-progress .progress{flex:1}.daily-progress>span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.daily-reward{display:flex;align-items:center;gap:5px;color:#946727;font-size:14px;white-space:nowrap}.daily-reward small{font-size:11px}.daily-action>*{width:100%;min-height:40px;font-size:12px;padding:9px 10px;display:flex;justify-content:center;align-items:center;gap:7px}.daily-notice{color:var(--jade-deep);margin:12px 0 0;font-size:13px}@media (max-width: 600px){.daily-heading{align-items:flex-start;flex-wrap:wrap}.daily-date{text-align:left}.daily-task{grid-template-columns:36px minmax(0,1fr);gap:12px}.daily-symbol{width:36px;height:36px;align-self:start}.daily-reward{grid-column:2}.daily-action{grid-column:2;max-width:180px}.daily-summary{column-gap:16px}.daily-quest-scroll{padding-inline:11px}}.book-reading-note{margin:0 0 24px;padding:14px 18px;border:1px solid #dbe7dd;background:#f6faf3;border-radius:5px;color:#5e796c;font-size:12px;line-height:1.9}.book-purchase{max-width:570px;margin:18px auto 0}.book-purchase>p{line-height:1.9;margin:8px 0}.purchase-price{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;color:#92723e;margin:24px 0 18px;font-size:13px}.purchase-price strong{font-size:25px;font-weight:500}.purchase-price>span{color:var(--muted);margin-left:14px;font-size:12px}.purchase-insufficient{font-size:11px!important;color:#977451!important;line-height:1.8;margin-top:10px}.book-item .tag{margin-bottom:12px}.book-item a{display:flex;align-items:center;gap:5px}.shop-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.shop-intro h2{font-family:var(--brush);font-size:32px;font-weight:400;margin-bottom:10px}.shop-intro>div>p:last-child{font-size:12px;color:var(--muted);line-height:1.8}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.shop-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fcfdfb}.shop-preview{height:190px;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at bottom,#e2eee0,#f1f6ee);position:relative}.shop-preview>.tag{position:absolute;right:12px;top:12px}.shop-preview>.avatar{width:86px;height:86px}.shop-preview>.avatar img{width:132px;left:-26px;top:-7px}.shop-preview>img{height:176px;width:auto}.shop-preview .book-cover{height:128px;width:90px;margin:0;flex-direction:column;gap:10px;box-shadow:5px 6px #24474710}.shop-card-info{padding:22px}.shop-card-info h3{font-family:var(--brush);font-size:26px;font-weight:400;margin-bottom:10px}.shop-card-info>p:not(.eyebrow){font-size:12px;color:#6f8780;line-height:1.8;min-height:43px}.shop-card-action{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:17px;margin-top:17px;flex-wrap:wrap}.shop-price{display:flex;align-items:center;gap:5px;font-size:11px;color:#94773e}.shop-card-action button{padding:9px 12px;min-height:38px;font-size:11px}.shop-card-info>.purchase-insufficient{min-height:0!important}.avatar.frame-jade-frame{border:3px solid #659c7c;box-shadow:0 0 0 3px #deead6,0 0 0 5px #b3caa6;background:#e6f0dd}.avatar.frame-gold-frame{border:3px solid #bc9149;box-shadow:0 0 0 2px #fff1c8,0 0 0 4px #c3a067;background:#f6ecd6}.scroll-bamboo-scroll .book-item .book-cover,.scroll-bamboo-scroll .skill-symbol,.preview-bamboo-scroll .book-cover{background:repeating-linear-gradient(90deg,#dce8ce 0,#dce8ce 13px,#c4d8b4 13px,#c4d8b4 15px);color:#416742;border-color:#a6bf94}.scroll-gold-scroll .book-item .book-cover,.scroll-gold-scroll .skill-symbol,.preview-gold-scroll .book-cover{background:linear-gradient(120deg,#f5e7b6,#dfc37c,#f6eac7);color:#795a28;border-color:#c5a95d}.preview-cloud-robe{background:radial-gradient(ellipse at bottom,#d1e3ec,#f1f6f8)}.preview-violet-robe{background:radial-gradient(ellipse at bottom,#e1d6eb,#f7f3f9)}.attribute-reset{margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.attribute-reset h3{font-family:var(--brush);font-size:24px;font-weight:400}.attribute-reset p{font-size:12px;color:#7b8980;line-height:1.9;margin:10px 0}.attribute-reset .secondary{margin:5px 0}.hint-purchase>p{font-size:11px;color:#788870;line-height:1.8;margin-bottom:8px}@media (max-width:1050px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.shop-grid{grid-template-columns:minmax(0,1fr);gap:18px}.shop-intro{align-items:flex-start;flex-direction:column;gap:14px}.shop-preview{height:170px}.shop-preview>img{height:155px}.shop-card-info{padding:20px}.shop-card-info>p:not(.eyebrow){min-height:0}.book-reading-note{padding:12px 14px}.book-purchase .primary{width:100%;padding:11px}.inventory-summary+.learning-tabs{margin-top:-8px}}.skill-detail-back{margin-bottom:18px}.skill-detail-objective{display:flex;align-items:center;gap:20px;padding:26px 30px;margin-bottom:24px;border:1px solid #d5e4dc;border-left:3px solid var(--gold);border-radius:6px;background:linear-gradient(110deg,#e7f0e8,#f9fcf7)}.skill-detail-objective .skill-symbol{flex-shrink:0}.skill-detail-objective h2{font-size:18px;font-weight:500;line-height:1.8}.skill-detail-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-bottom:24px}.skill-detail-panel{min-width:0;padding:28px 30px;border:1px solid var(--line);border-radius:6px;background:#fcfefbd9}.skill-detail-panel .section-title{color:var(--jade);margin-bottom:22px}.skill-detail-notes{list-style:none;margin:0;padding:0}.skill-detail-notes li{display:flex;gap:15px;padding:15px 0;border-top:1px solid var(--line);line-height:1.9}.skill-detail-notes li:first-child{padding-top:0;border-top:0}.skill-detail-notes li:last-child{padding-bottom:0}.skill-detail-notes li>span{font-size:12px;color:var(--gold);padding-top:2px}.skill-detail-code{max-width:100%;margin:0;padding:20px;overflow-x:auto;border:1px solid #dce7de;border-radius:5px;background:#edf3ee;color:#28534c;font:13px/1.9 Consolas,Courier New,monospace;-moz-tab-size:4;tab-size:4}.skill-detail-code:focus-visible{outline:3px solid #ce9d53;outline-offset:3px}.skill-detail-explanation{margin-top:16px;line-height:1.95;color:#5f7772;white-space:pre-wrap;overflow-wrap:anywhere}.skill-detail-solution h3{font-size:15px;font-weight:500}.skill-detail-solution .skill-detail-code{margin-top:22px}.skill-detail-check{display:flex;align-items:flex-start;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);color:var(--jade);font-size:12px;line-height:1.8}.skill-detail-check>svg{margin-top:3px}.skill-detail-check p{white-space:pre-wrap;overflow-wrap:anywhere}.skill-detail-check b{display:block;margin-bottom:5px;font-weight:500}.skill-detail-pagination{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.skill-detail-next{margin-left:auto}.skill-reader-heading{margin-bottom:16px;background-color:#394b38}.skill-reader-heading:before{background-position:76% 36%;background-size:155% auto;opacity:.55}.skill-reader-heading:after{background:linear-gradient(90deg,#1f392ff2,#4b513be0 62%,#725e37bd)}.skill-reader-state{display:flex;align-items:center;gap:6px;margin-left:auto;padding:8px 10px;color:#ecd48e;border:1px solid #c1aa686b;background:#283c31a8;font-size:10px;white-space:nowrap}.skill-detail .skill-practice{padding:15px 18px;border:1px solid #a6b39d;background:#edf0e4;box-shadow:inset 5px 0 #9b8549}.skill-detail .skill-detail-objective{position:relative;padding:19px 24px;border:1px solid #b7b092;border-left:7px solid #615a40;background:#f2eddb;box-shadow:4px 6px #d0c9ae}.skill-manuscript{position:relative;margin-top:20px;border:1px solid #aaa184;background:#f3eedf;box-shadow:0 9px 22px #3445341c}.skill-manuscript:before,.skill-manuscript:after{content:"";position:absolute;z-index:1;left:10px;right:10px;height:6px;border:1px solid #635d45;background:#454b37}.skill-manuscript:before{top:-5px}.skill-manuscript:after{bottom:-5px}.skill-manuscript .skill-detail-panel{position:relative;padding:27px 31px;border:0;border-bottom:1px dashed #b4aa8e;border-radius:0;background:transparent}.skill-manuscript .skill-detail-panel:last-child{border-bottom:0}.skill-chapter-heading{display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:20px}.skill-chapter-heading>span{display:grid;place-items:center;width:45px;height:50px;color:#f2dfaa;border:1px solid #8c7950;background:#405342;font:16px var(--brush)}.skill-chapter-heading small{color:#8b7c57;font-size:9px}.skill-chapter-heading h2{margin-top:3px;font:24px var(--brush)}.skill-chapter-heading>b,.skill-chapter-heading>svg{color:#9a7e3d;font-size:10px;font-weight:500}.skill-detail-pagination{padding-top:17px;border-top:1px solid #aaa184}@media (max-width:760px){.skill-detail .page-heading{gap:12px}.skill-detail .page-heading .tag{flex-shrink:0}.skill-detail-objective{align-items:flex-start;gap:13px;padding:20px 18px}.skill-detail-objective h2{font-size:15px}.skill-detail-objective .skill-symbol{width:36px;height:40px}.skill-detail-columns{grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:18px}.skill-detail-panel{padding:22px 18px}.skill-detail-notes li,.skill-detail-explanation{font-size:13px}.skill-detail-code{padding:15px;font-size:12px}.skill-detail-pagination .secondary{font-size:11px;padding:10px 12px;gap:8px}}@media (max-width:760px){.skill-reader-state{max-width:92px;white-space:normal}.skill-detail .skill-practice{padding:14px}.skill-manuscript .skill-detail-panel{padding:23px 17px}.skill-chapter-heading{grid-template-columns:38px minmax(0,1fr) auto;gap:10px}.skill-chapter-heading>span{width:38px;height:43px;font-size:14px}.skill-chapter-heading h2{font-size:21px}}.growth-sections{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:50px;margin:32px 0}.growth-sections .section-title h2{display:flex;align-items:center;gap:10px}.growth-progress-caption{font-size:11px;color:var(--muted);margin-top:10px}.attribute-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:28px 0 12px}.attribute-heading h3{font-size:14px;font-weight:500}.attribute-heading>span{font-size:12px;color:var(--muted)}.attribute-heading strong{font-size:17px;color:var(--jade)}.attribute-row{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:10px 0;min-height:54px}.attribute-row>span{font-size:12px;min-width:66px}.attribute-row>b{font-weight:500;font-size:16px;font-variant-numeric:tabular-nums}.attribute-stepper{display:grid;grid-template-columns:32px 40px 32px;align-items:center;margin-left:auto;text-align:center}.attribute-stepper .icon-button{width:30px;height:30px}.attribute-stepper output{font-size:12px;color:var(--jade);font-variant-numeric:tabular-nums}.attribute-effect{font-size:12px;margin-top:17px;color:var(--jade)}.attribute-pending{font-size:11px;color:var(--muted);margin:9px 0 20px}.attribute-editor>.primary{min-width:140px}.achievement-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}.achievement-row:first-child{padding-top:5px}.achievement-details{flex:1;min-width:150px}.achievement-details h3{font-size:15px;font-weight:500;margin-bottom:9px}.achievement-details p{font-size:11px;line-height:1.8;color:var(--muted)}.achievement-progress{display:flex;align-items:center;gap:12px;margin-top:14px}.achievement-progress .progress{flex:1}.achievement-progress>span{font-size:10px;color:var(--muted);white-space:nowrap}.achievement-reward{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.achievement-reward>span{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--gold)}.achievement-reward .primary,.achievement-reward .secondary{min-width:116px;font-size:11px;min-height:38px;gap:7px}.achievement-claimed .achievement-reward>span{color:#819789}.achievement-row>.error{flex-basis:100%}.result-growth{width:100%;padding:15px 0;margin-top:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--jade)}.result-growth strong{font-size:15px;font-weight:500}.result-growth p{font-size:12px;line-height:1.8;margin-top:8px}.result-growth a{display:inline-flex;gap:6px;align-items:center;font-size:12px;margin-top:10px}@media (max-width:760px){.growth-sections{grid-template-columns:1fr;gap:36px}.achievement-row{gap:14px}.achievement-details{min-width:135px}.achievement-reward .primary,.achievement-reward .secondary{min-width:100px;padding:9px 10px}.achievement-details h3{font-size:14px}.attribute-row{min-height:56px}.attribute-stepper{grid-template-columns:36px 42px 36px}.attribute-stepper .icon-button{width:34px;height:34px}.growth-sections .section-title{margin-bottom:18px}}.cave-page{--cave-ink: #233f39;--cave-gold: #d9be7f;--cave-muted: #6d8075;color:var(--cave-ink)}.cave-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px}.cave-location{display:flex;align-items:center;gap:7px;color:#657b6d;font-size:11px;margin-bottom:10px}.cave-heading h1{font-family:var(--brush);font-size:37px;font-weight:400;display:flex;align-items:center;gap:22px}.cave-heading h1 span{font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:12px;font-weight:400;color:#7b8678;border-left:1px solid #b6c7b9;padding-left:22px}.cave-return{display:flex;align-items:center;gap:9px;border:1px solid #b9cbbb;padding:10px 14px;border-radius:5px;font-size:12px}.cave-return:hover{background:#e1eade}.cave-estate{display:grid;grid-template-columns:minmax(0,1fr) 288px;border:1px solid #8f9e85;border-radius:12px;overflow:hidden;background:#f4f6ec;box-shadow:0 16px 36px #284a3620}.cave-world{min-width:0;background:#2b463d;display:flex;flex-direction:column}.cave-panorama{position:relative;isolation:isolate;aspect-ratio:1200 / 780;flex:1;min-height:430px}.cave-art{display:block;position:absolute;width:100%;height:100%;object-fit:fill;transition:filter .6s;z-index:-2}.cave-panorama:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;box-shadow:inset 0 0 65px #14332d38;background:linear-gradient(0deg,#203a33b0,transparent 18%)}.cave-scene-top{position:absolute;top:23px;left:26px;right:22px;display:flex;justify-content:space-between;align-items:flex-start}.cave-seal{writing-mode:vertical-rl;color:#eddeb1;font-family:var(--brush);font-size:29px;letter-spacing:7px;border:1px solid #c6b57c73;outline:1px solid #c6b57c33;outline-offset:4px;padding:11px 7px 5px;background:#233f397d}.cave-weather{display:flex;align-items:center;gap:7px;color:#ecdfbc;background:#223d37bd;padding:8px 10px;border:1px solid #b6b28360;border-radius:4px;font-size:11px}.cave-weather:hover{background:#3c5846}.cave-resident{position:absolute;left:43%;top:48%;width:8%;height:19%;pointer-events:none;filter:drop-shadow(0 5px 4px #23483160)}.cave-resident img{width:100%;height:100%;object-fit:contain}.cave-hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:7px 10px 7px 7px;background:#213e35eb;border:1px solid #b5c29c98;color:#f2ebce;border-radius:5px;box-shadow:0 5px 15px #1c302c35;transition:background .18s,box-shadow .18s;white-space:nowrap}.cave-hotspot:after{content:"";position:absolute;width:1px;height:15px;top:100%;left:50%;background:#eee2b49c}.cave-hotspot[aria-pressed=true]{color:#fff0bd;border-color:#e1c17a;background:#5c5d38f2;box-shadow:0 0 0 3px #e7cf8b22,0 6px 20px #24382e66}.cave-hotspot:hover{background:#42624a;border-color:#eddfb5}.cave-pin{display:grid;place-items:center;width:29px;height:32px;border-right:1px solid #c5d0a94d;padding-right:7px}.cave-hotspot-label{display:grid;gap:3px;text-align:left}.cave-hotspot-label b{font-weight:500;font-size:14px;letter-spacing:1px}.cave-hotspot-label small{color:#c3cfb5;font-size:9px}.cave-hotspot-arrow{opacity:.6;margin-left:2px}.cave-spot-practice{left:47%;top:72%}.cave-spot-library{left:76%;top:34%}.cave-spot-treasure{left:81%;top:82%}.cave-spot-merit{left:25%;top:65%}.cave-spot-gate{left:23%;top:31%}.cave-scene-caption{position:absolute;bottom:16px;left:23px;right:23px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d4dcc8;font-size:10px}.cave-scene-caption>span:first-child{display:flex;align-items:center;gap:7px}.cave-scene-caption i{width:5px;height:5px;border-radius:50%;background:#b8d19b;box-shadow:0 0 7px #d0e2ae}.cave-location-nav{display:grid;grid-template-columns:repeat(5,1fr);padding:0 15px;border-top:1px solid #b1b98c42;min-height:61px;background:#273f36}.cave-location-nav a{display:flex;justify-content:center;align-items:center;gap:9px;color:#b9c6ad;background:transparent;border:0;border-bottom:2px solid transparent;font-size:12px;padding:13px 3px}.cave-location-nav a[aria-pressed=true]{color:#ead49a;border-bottom-color:#cfb374;background:linear-gradient(0deg,#cfb37418,transparent)}.cave-location-nav a:hover{color:#fff0c9}.cave-sidebar{padding:24px 22px 18px;display:flex;flex-direction:column;background:linear-gradient(140deg,#f8f8ee,#e8eee1)}.cave-owner{display:flex;align-items:center;gap:12px}.cave-portrait{width:61px;height:67px;flex-shrink:0;border:1px solid #a7b794;border-radius:50% 50% 8px 8px;background:#dfe7d4;overflow:hidden}.cave-portrait img{display:block;width:100%;height:100%;object-fit:contain;padding-top:3px}.cave-owner>div:last-child{min-width:0}.cave-owner span{color:#7b856f;font-size:10px}.cave-owner h2{font-family:var(--brush);font-size:25px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0}.cave-owner p{font-size:11px;color:#66795d}.cave-cultivation{padding:18px 0;border-bottom:1px solid #becab47a}.cave-cultivation>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:10px;margin-bottom:9px;color:#6b7b61}.cave-cultivation b{font-weight:500}.cave-cultivation .progress{height:5px}.cave-wallet{display:flex;gap:25px;margin-top:14px}.cave-wallet span{display:flex;align-items:center;gap:5px;font-size:10px;color:#708064}.cave-wallet b{font-size:16px;color:#324e3e}.cave-place-detail{padding:21px 0 10px}.cave-place-heading{display:flex;align-items:center;gap:11px}.cave-place-heading>span:first-child{width:43px;height:43px;display:grid;place-items:center;background:#dbe5d0;border:1px solid #bccaaa;border-radius:9px;color:#5f7956}.cave-place-heading small{font-size:9px;color:#7d8874}.cave-place-heading h2{font-family:var(--brush);font-size:26px;font-weight:400;margin-top:3px}.cave-open-tag{font-size:9px;margin-left:auto;color:#657c51;background:#dae5ce;border-radius:3px;padding:4px 6px}.cave-place-detail>p{font-size:12px;color:#65735f;line-height:1.95;margin:17px 0}.cave-next{display:grid;gap:8px;padding:12px;border-left:2px solid #b6a166;background:#e3e8d896;margin:0 0 19px}.cave-next small{font-size:10px;color:#778067}.cave-next strong{font-size:13px;font-weight:500}.cave-next span{font-size:10px;color:#6e795f;line-height:1.6}.cave-next b{color:#92702f;font-weight:500}.cave-page .cave-action{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;min-height:43px;padding:10px;background:#355d45;border-color:#35553c;box-shadow:0 3px #243e2c}.cave-action>svg:last-child{margin-left:auto}.cave-secondary-action{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;border:0;background:transparent;color:#69795e;padding:18px 0 5px}.cave-secondary-action:hover{color:#234c31;text-decoration:underline}.cave-secondary-action b{background:#355d45;color:#fff;padding:2px 5px;border-radius:3px}.cave-note{margin-top:auto;padding-top:19px;border-top:1px solid #becab47a}.cave-note>span{font-family:var(--brush);font-size:18px;color:#8d825e}.cave-note p{font-size:10px;line-height:1.95;color:#7e866f;margin:6px 0}.cave-note a{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#53734e;margin-top:5px}.cave-night .cave-art{filter:brightness(.63) saturate(.75) hue-rotate(25deg)}.cave-night .cave-resident{filter:brightness(.8) drop-shadow(0 0 12px #cddfb65c)}.cave-night .cave-panorama:after{background:linear-gradient(0deg,#172c38b0,transparent 22%),radial-gradient(ellipse at 48% 58%,#c4ddc329,transparent 28%)}.cave-journey{display:flex;align-items:center;gap:17px;padding:21px 24px;margin:17px 0 30px;background:#f4f6eeaa;border:1px solid #bbcbb86b;border-radius:7px}.cave-journey-icon{display:grid;place-items:center;width:42px;height:42px;background:#e0e8d8;color:#728163;border-radius:50%}.cave-journey h2{font-family:var(--brush);font-size:23px;font-weight:400}.cave-journey p{font-size:11px;color:#7a8473;margin-top:5px}.cave-journey-progress{margin-left:auto;width:27%}.cave-journey-progress>span{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#708065;margin-bottom:9px}.cave-journey-progress b{font-size:18px;font-weight:500;color:#3e6146}.cave-journey-progress small{font-size:11px;color:#89917f}.cave-journey-progress .progress{height:5px}.cave-journey>a{display:flex;align-items:center;gap:6px;font-size:12px;border-left:1px solid #c8d3c0;margin-left:10px;padding-left:23px}.cave-management{scroll-margin-top:20px}.cave-management-title{display:flex;align-items:center;gap:16px;margin-bottom:18px}.cave-management-title h2{font-family:var(--brush);font-size:27px;font-weight:400}.cave-management-title span{font-size:11px;color:#7b8875}.cave-page .growth-sections{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr);gap:32px;margin:0;padding:25px;border:1px solid #b8c7b684;border-radius:8px;background:#f7f8f0a6}.cave-page .character-growth .section-title{margin-bottom:17px}.cave-page .character-growth h2{font-size:22px}.cave-page .attribute-heading{margin-top:14px}.cave-page :is(button,a):focus-visible{outline:3px solid #bc9650;outline-offset:4px}@media (min-width: 1500px){.cave-panorama{min-height:520px}}@media (max-width: 1150px){.cave-estate{grid-template-columns:minmax(0,1fr) 258px}.cave-sidebar{padding:20px 17px}.cave-panorama{min-height:490px}.cave-hotspot{gap:5px;padding:7px}.cave-hotspot-arrow{display:none}.cave-hotspot-label b{font-size:12px}.cave-location-nav{padding:0 6px}.cave-location-nav a{gap:5px;font-size:11px}}@media (max-width: 900px){.cave-estate{grid-template-columns:1fr}.cave-panorama{min-height:0;aspect-ratio:1200 / 780}.cave-sidebar{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0 24px;padding:23px}.cave-owner{align-self:start}.cave-cultivation{grid-column:1;border:0}.cave-place-detail{grid-column:2;grid-row:1 / 4;padding:0 0 0 23px;border-left:1px solid #becab47a}.cave-note{grid-column:1}.cave-page .growth-sections{grid-template-columns:1fr;gap:22px}.cave-journey{padding:18px;gap:12px}.cave-journey>a{padding-left:12px}}@media (max-width: 540px){.cave-heading{margin-bottom:18px;gap:10px}.cave-heading h1{font-size:32px}.cave-heading h1 span{display:none}.cave-return{font-size:11px;gap:4px;padding:9px}.cave-estate{border-radius:8px}.cave-panorama{aspect-ratio:1.3}.cave-scene-top{top:15px;left:15px;right:13px}.cave-seal{font-size:20px;padding:7px 4px 1px;letter-spacing:4px}.cave-weather{font-size:9px;padding:5px 7px}.cave-hotspot{gap:4px;padding:6px;border-radius:4px}.cave-pin{width:21px;height:21px;padding-right:4px}.cave-pin svg{width:14px}.cave-hotspot-label b{font-size:11px;letter-spacing:0}.cave-hotspot-label small{display:none}.cave-scene-caption{bottom:11px;left:12px;right:12px;font-size:8px;gap:5px}.cave-location-nav{min-height:58px;padding:0 5px}.cave-location-nav a{flex-direction:column;gap:6px;font-size:10px;padding:9px 2px}.cave-sidebar{display:flex;padding:19px;gap:0}.cave-owner{width:100%}.cave-owner h2{max-width:240px}.cave-cultivation{width:100%;padding:14px 0;border-bottom:1px solid #becab47a}.cave-place-detail{border:0;padding:19px 0 2px}.cave-place-detail>p{margin:13px 0}.cave-note{display:none}.cave-journey{display:grid;grid-template-columns:32px minmax(0,1fr) auto;padding:15px;margin-bottom:24px;gap:12px}.cave-journey-icon{width:32px;height:32px}.cave-journey p{font-size:10px}.cave-journey h2{font-size:21px}.cave-journey-progress{grid-row:2;grid-column:1 / -1;width:100%}.cave-journey>a{font-size:10px;border:0;padding:0;margin:0}.cave-page .growth-sections{padding:16px}}@media (max-width: 540px){.cave-spot-merit{left:20%;top:57%}}@media (prefers-reduced-motion: reduce){.cave-art,.cave-hotspot{transition:none}}.scene-transition{position:relative}.cave-travel-mist{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 10% 35%,#f0f5e9 0%,#eef4e5c9 24%,transparent 65%),radial-gradient(ellipse at 95% 70%,#d9e8da 0%,#e4eddfc9 30%,transparent 70%),linear-gradient(125deg,#e5efdf60,#d4e4dc30)}.cave-breadcrumb{display:inline-flex;align-items:center;min-height:32px;gap:7px;margin-bottom:12px;color:#526f59;font-size:12px}.cave-breadcrumb:hover{color:#284d35;text-decoration:underline}.cave-location-nav a:hover,.cave-location-nav a:focus-visible{background:#c9cf9c16;color:#fff0c9;border-bottom-color:#cfb374}.cave-location-nav a>svg:last-child{opacity:.5}.cave-room-banner{position:relative;display:flex;align-items:center;gap:24px;min-height:176px;padding:30px;overflow:hidden;border:1px solid #82967b;border-radius:9px;background:linear-gradient(90deg,#203c33f5,#335341dd 65%,#37544385),url(/art/cave-estate.svg) center 58% / cover;color:#e6e7ca}.cave-room-emblem{display:grid;place-items:center;flex:0 0 80px;height:80px;border:1px solid #bdc49477;outline:1px solid #bdc49433;outline-offset:5px;border-radius:50%;color:#d7c18b}.cave-room-banner h2{font-family:var(--brush);font-size:32px;font-weight:400;margin-bottom:12px}.cave-room-banner p{font-size:12px;line-height:1.9;color:#c7d4bd;max-width:38em}.cave-room-inscription{position:absolute;right:32px;top:26px;font-family:var(--brush);font-size:94px;opacity:.12;pointer-events:none}.cave-room-nav{display:flex;gap:25px;border-bottom:1px solid #bdcbb7;margin:20px 0 25px}.cave-room-nav a{display:flex;align-items:center;gap:8px;padding:14px 5px;border-bottom:3px solid transparent;font-size:13px;color:#6d8066}.cave-room-nav a[aria-current=page]{border-bottom-color:#a99155;color:#305e3c}.cave-room-trial{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 25px;margin-bottom:22px;border:1px solid #becbb0;border-radius:8px;background:#f3f5e9}.cave-room-trial small{font-size:11px;color:#7b846c}.cave-room-trial h2{font-size:18px;font-weight:500;margin:7px 0}.cave-room-trial p{font-size:12px;color:#7a8166}.cave-room-trial .primary{flex-shrink:0}.cave-room .growth-sections{grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr)}@media (max-width: 760px){.cave-room .growth-sections{grid-template-columns:1fr}.cave-room-banner{min-height:150px;padding:23px;gap:20px}.cave-room-emblem{flex-basis:54px;height:54px}.cave-room-emblem svg{width:28px}.cave-room-banner h2{font-size:25px}.cave-room-banner p{font-size:11px}.cave-room-trial{padding:18px}}@media (max-width: 540px){.cave-location-nav a>svg:last-child{display:none}.cave-room-banner{gap:16px;padding:20px}.cave-room-banner h2{font-size:22px;line-height:1.5}.cave-room-inscription{display:none}.cave-room-trial{align-items:stretch;flex-direction:column;gap:16px}}.cave-home{margin:-28px -36px -42px;min-height:100%}.cave-home .cave-estate{display:block;min-height:calc(100dvh - 76px);border:0;border-radius:0;box-shadow:none;background:#223f37}.cave-home .cave-world{display:block;min-height:inherit}.cave-home .cave-panorama{height:calc(100dvh - 76px);min-height:0;aspect-ratio:auto}.cave-home .cave-location-nav,.cave-home .cave-sidebar,.cave-home .cave-journey{display:none}.cave-home .cave-scene-caption{bottom:20px}.cave-home .cave-seal{font-size:31px}.cave-home .cave-hotspot{padding:9px 12px 9px 8px}.cave-home .cave-hotspot-label b{font-size:15px}.cave-home .cave-hotspot-label small{font-size:10px}.cave-room{min-height:calc(100dvh - 76px);margin:-28px -36px -42px;padding:28px 36px 42px;background:linear-gradient(#1e3e36dc,#e9efe2f2 35%),url(/art/cave-estate.svg) center top / cover fixed}.cave-room .cave-heading{color:#edf0db}.cave-room .cave-location{color:#c2d0bd}.cave-room .cave-heading h1{color:#f3e6bf}.cave-room .cave-return{color:#f0e5c3;border-color:#c8c28e75;background:#203e35a8}.cave-room .cave-room-banner{box-shadow:0 14px 30px #1d3a3029}.cave-room .growth-sections{background:#f5f5e9ed;box-shadow:0 12px 26px #29453620}@media (max-width: 760px){.cave-home{margin:-16px -16px -30px}.cave-home .cave-estate,.cave-home .cave-panorama{min-height:calc(100dvh - 100px);height:calc(100dvh - 100px)}.cave-home .cave-scene-caption{bottom:13px}.cave-room{min-height:calc(100dvh - 70px);margin:-16px -16px -30px;padding:18px 16px 30px}}@media (max-width: 540px){.cave-home .cave-hotspot{padding:6px}.cave-home .cave-hotspot-label b{font-size:11px}.cave-home .cave-hotspot-label small{display:none}}#root:has(.cave-page){grid-template-rows:0 minmax(0,1fr) 0!important}#root:has(.cave-page)>.topbar{display:none}#root:has(.cave-page) .app{max-width:none;min-height:100dvh;padding:0}#root:has(.cave-page) .main-navigation{display:none}.cave-home{margin:0;min-height:100%}.cave-home .cave-estate,.cave-home .cave-panorama{min-height:100dvh;height:100dvh}.cave-room{min-height:100dvh;margin:0;padding:28px 36px 42px}@media (max-width: 760px){.cave-home{margin:0}.cave-home .cave-estate,.cave-home .cave-panorama{min-height:100dvh;height:100dvh}.cave-room{min-height:100dvh;margin:0;padding:18px 16px 30px}}:root{--rpg-ink-950: #153c3e;--rpg-ink-800: #28585a;--rpg-ink-600: #5f7d7d;--rpg-jade-700: #1f665f;--rpg-jade-600: #2f7d73;--rpg-jade-400: #74a99d;--rpg-jade-100: #dcebe4;--rpg-gold-600: #a9782e;--rpg-gold-400: #d5ad63;--rpg-gold-100: #f5e9c9;--rpg-coral-600: #a9584e;--rpg-coral-100: #f3ded8;--rpg-paper: #fbfcf7;--rpg-paper-warm: #faf5e8;--rpg-mist: #eaf3f2;--rpg-violet-mist: #efedf6;--rpg-line: rgba(48, 102, 96, .17);--rpg-line-strong: rgba(41, 94, 88, .28);--rpg-shadow-sm: 0 8px 22px rgba(28, 68, 64, .08);--rpg-shadow-md: 0 18px 48px rgba(25, 62, 60, .13);--rpg-shadow-gold: 0 14px 36px rgba(171, 122, 43, .22);--rpg-radius-sm: 8px;--rpg-radius-md: 8px;--rpg-radius-lg: 22px;--rpg-space-1: 4px;--rpg-space-2: 8px;--rpg-space-3: 12px;--rpg-space-4: 16px;--rpg-space-5: 20px;--rpg-space-6: 24px;--rpg-space-8: 32px;--rpg-space-10: 40px;--rpg-ease: cubic-bezier(.2, .8, .2, 1);--rpg-fast: .16s;--rpg-normal: .26s;--rpg-slow: .48s;--rpg-z-nav: 30;--rpg-z-overlay: 80;--rpg-z-toast: 100}@media (prefers-reduced-motion: reduce){:root{--rpg-fast: 1ms;--rpg-normal: 1ms;--rpg-slow: 1ms}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] *:before,:root[data-reduced-motion=true] *:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}@font-face{font-family:Ma Shan Zheng;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/MaShanZheng-Regular.ttf) format("truetype")}.lesson-check{padding:14px 0;font-size:12px;line-height:1.8;color:#58736e}.lesson-check b{display:block;font-size:11px;font-weight:500;margin-bottom:5px;color:#327b76}:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#23474b;background:#edf4f6;font-synthesis:none;--ink:#23474b;--jade:#327b76;--jade-deep:#205d5a;--gold:#bd8d41;--coral:#c77667;--muted:#788e90;--line:#dce7e6;--brush:"Ma Shan Zheng","KaiTi","STKaiti",serif;font-size:14px;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(160deg,#f1f8f8,#edf4f6,#f0eef7);background-attachment:fixed}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,a{touch-action:manipulation}a{color:var(--jade);text-decoration:none}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance;scroll-margin-top:104px}img{max-width:100%;display:block}svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid #ce9d53;outline-offset:4px}.app:focus{outline:none}::selection{background:#c7dfd9;color:#214a49}.skip-link{position:fixed;z-index:1000;top:10px;left:12px;padding:10px 14px;border-radius:4px;background:#173f3d;color:#fff;box-shadow:0 8px 24px #173f3d3d;transform:translateY(-150%);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.auth-input:focus-within{border-color:#7fa58d;outline:3px solid #ce9d53;outline-offset:2px}.topbar{height:84px;display:flex;align-items:center;gap:26px;padding:0 max(32px,calc((100% - 1256px)/2));background:#fbfdfdda;border-bottom:1px solid #dce8e8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);white-space:nowrap;margin-right:auto;font-family:var(--brush);font-size:29px}.brand-mark{display:grid;place-items:center;width:39px;height:43px;background:var(--jade-deep);color:#f1d694;border-radius:4px 4px 14px}.brand small{display:block;margin-top:4px;font:10px Microsoft YaHei,sans-serif;color:#889b9a}.topbar-resources{display:flex;gap:28px}.topbar-resources>div{display:flex;align-items:center;gap:9px}.topbar-resources>div:first-child>svg{color:var(--jade)}.topbar-resources>div:last-child>svg{color:var(--gold)}.topbar-resources small{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.topbar-resources b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.player-chip{display:flex;align-items:center;gap:10px;padding-left:23px;border-left:1px solid var(--line);color:var(--ink)}.player-chip b{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.player-chip small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid #d8be8c;background:#e8f1e7;position:relative}.avatar img{width:61px;max-width:none;position:absolute;left:-12px;top:-3px}.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--line);border-radius:5px;background:#ffffffc9;color:#5a7779;transition:background .2s,color .2s}.icon-button:hover:not(:disabled){background:#e3eee9;color:var(--jade-deep)}.logout{border:0;background:transparent;width:32px}.main-navigation{position:fixed;z-index:20;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,110px);justify-content:center;gap:25px;padding:10px 20px calc(10px + env(safe-area-inset-bottom));min-height:72px;background:#fcfdfde8;border-top:1px solid #dbe6e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.main-navigation a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;color:#78908f;font-size:13px;border-radius:5px;position:relative;transition:background .2s}.main-navigation a:hover{background:#f0f6f3}.main-navigation .active{color:var(--jade-deep);background:#e4efea;font-weight:600}.main-navigation .active:after{content:"";position:absolute;height:3px;width:20px;bottom:0;left:calc(50% - 10px);background:#c49a56}.app{max-width:1320px;margin:0 auto;padding:30px 32px 112px;min-height:calc(100vh - 84px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.page-heading h1{font-family:var(--brush);font-size:43px;font-weight:400;line-height:1.2}.eyebrow{font-size:11px;font-weight:500;color:#70908c;display:flex;align-items:center;gap:8px;margin-bottom:9px}.heading-description{font-size:12px;color:var(--muted);margin-top:11px;line-height:1.6}.section-label{font-size:11px;color:var(--muted);margin-bottom:13px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:21px}.section-title h2{font-family:var(--brush);font-size:26px;font-weight:400}.section-title>span{color:var(--muted);font-size:12px}.heading-icon{color:#9cb6b0}.muted{color:var(--muted)}.count-label{font-size:12px;color:var(--muted)}.gold{color:var(--gold)}.tag{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;color:#6b8c80;background:#e8f1e8;font-size:10px;border-radius:3px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:11px 18px;font-size:12px;font-weight:500;border-radius:5px;transition:background .18s,transform .18s}.primary{background:var(--jade-deep);color:#fffef6;border:1px solid #205d5a;box-shadow:0 3px 8px #265e5910}.primary:hover:not(:disabled){background:#327f75;transform:translateY(-1px)}.secondary{background:#fafdfc;color:var(--jade);border:1px solid #d5e3de}.secondary:hover:not(:disabled){background:#eaf3ee}.text-button{display:inline-flex;gap:8px;align-items:center;background:transparent;color:var(--jade);padding:5px 0;font-size:12px}.progress{height:6px;background:#dee9e5;border-radius:3px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--jade);border-radius:3px;transition:width .4s}.chapter-counter{width:145px;flex-shrink:0}.chapter-counter>span{font-size:11px;color:var(--muted)}.chapter-counter strong{display:block;font-size:28px;font-weight:500;color:var(--jade-deep);margin:6px 0 10px;font-variant-numeric:tabular-nums}.chapter-counter strong small{font-size:15px;font-weight:400;color:#97aaa8}.realm-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #dae5e5;border-bottom:1px solid #dae5e5;background:#ffffff50;margin-bottom:20px}.realm{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 7px;color:#9aabaa;position:relative;min-width:0}.realm b{font-weight:400;font-size:12px;white-space:nowrap}.realm>span{display:flex}.realm small{font-size:9px;color:#80a499;white-space:nowrap}.realm.current{color:var(--jade-deep);background:#e9f2ed}.realm.current:after{content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:2px;background:#cba45e}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 284px;align-items:stretch}.world-map{position:relative;aspect-ratio:12/7;min-height:475px;overflow:hidden;background:#dcecef}.map-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.map-caption{position:absolute;top:25px;left:28px;display:flex;gap:12px;align-items:center}.seal{writing-mode:vertical-rl;font-family:var(--brush);font-size:22px;color:#fff9df;background:#b16a5b;padding:9px 5px;border-radius:2px}.map-caption p{font-size:10px;color:#6e9490;margin-bottom:5px}.map-caption h2{font-family:var(--brush);font-size:30px;font-weight:400;color:#386563}.map-place{position:absolute;color:#4a7e75;font-family:var(--brush);font-size:20px;writing-mode:vertical-rl}.place-village{left:8%;top:48%}.place-peak{right:8%;top:16%}.map-node{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;width:150px;height:104px;color:var(--ink);background:none;padding:0;z-index:2}.node-1{left:23%;top:69%}.node-2{left:52%;top:54%}.node-3{left:78%;top:36%}.node-pin{width:54px;height:54px;border:4px solid #edf4e9;border-radius:50%;display:grid;place-items:center;background:#bccdc6;box-shadow:0 5px #456f6550,0 8px 16px #3a6b6315;flex-shrink:0;transition:transform .2s}.map-node.current .node-pin{background:#ca9e52;color:#fffaf0;border-color:#fff1c7;box-shadow:0 5px #95713960,0 8px 18px #8b733929}.map-node.done .node-pin{background:#4d9182;color:#fffce8}.map-node:hover:not(:disabled) .node-pin{transform:translateY(-4px)}.map-node.locked{opacity:.82;color:#648581}.node-label{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;padding:8px 11px;background:#f9fdf4dc;border:1px solid #d4dfd1;border-radius:4px;white-space:nowrap;box-shadow:0 3px 8px #436f6410;font-size:11px}.node-label small{font-size:10px;color:#8f9b89}.node-label b{font-weight:500}.node-callout{position:absolute;top:-27px;background:#fff7df;color:#99743d;font-size:10px;padding:4px 9px;border-radius:3px;white-space:nowrap;animation:bob 3s ease-in-out infinite}.node-callout:after{content:"";position:absolute;bottom:-5px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #fff7df}.map-legend{position:absolute;bottom:17px;left:20px;display:flex;gap:17px;padding:9px 12px;background:#f5fbf3ca;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:3px;font-size:10px;color:#5e8176}.map-legend span{display:flex;align-items:center;gap:5px}.quest-panel{padding:25px 24px 18px;background:#fbfdfbd9;border-left:1px solid #e2ebe2;display:flex;flex-direction:column}.status-dot{width:5px;height:5px;border-radius:50%;background:#67a091}.quest-number{display:flex;justify-content:space-between;align-items:center;margin:14px 0 10px;color:#8d9f97;font-size:10px}.difficulty{display:inline-flex;gap:3px;color:#d9e0d6}.difficulty .filled{fill:#d3ad67;color:#d3ad67}.quest-panel h2{font-family:var(--brush);font-size:28px;font-weight:400;line-height:1.4}.quest-description{font-size:12px;line-height:1.9;color:#778f88;margin-top:10px;min-height:46px}.quest-divider{height:1px;background:#e3e9df;margin:20px 0}.rewards{display:flex;align-items:center;flex-wrap:wrap;gap:16px;font-size:11px;color:#8d9b8e}.rewards>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.rewards>span:first-child svg{color:#639a8c}.rewards>span:last-child svg{color:#c5a367}.rewards b{font-size:13px;color:#536e60;font-weight:500}.skill-reward{display:flex;align-items:center;gap:11px;margin:20px 0;color:#c1a76a}.skill-reward small{display:block;font-size:10px;color:#9caa94;margin-bottom:4px}.skill-reward b{font-size:12px;color:#708061;font-weight:400}.quest-action{width:100%;justify-content:space-between;margin-top:auto}.mentor-note{display:flex;align-items:center;gap:11px;margin-top:24px}.mentor-note img{width:51px;height:65px;object-fit:contain}.mentor-note b{font-size:11px;font-weight:500}.mentor-note p{font-size:10px;line-height:1.9;color:#819689;margin-top:5px}.map-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:11px;color:#8b9e97}.map-bottom>span,.map-bottom a{display:flex;align-items:center;gap:7px}.chapter-complete{display:flex;gap:20px;color:var(--gold);margin:12px 0 35px}.back{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#79958f;margin-bottom:15px}.battle-page .page-heading{margin-bottom:20px}.battle-page .page-heading h1{font-size:36px}.battle-heading-extra{display:flex;align-items:center;gap:20px}.arena{height:320px;position:relative;overflow:hidden;background:#daecec}.arena-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;opacity:.73}.arena:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,#e8f2e7 0%,transparent 60%);pointer-events:none}.fighters{position:absolute;top:0;right:10%;bottom:50px;left:10%;display:flex;align-items:end;justify-content:space-around;z-index:1}.fighter{width:220px;position:relative;display:flex;justify-content:center}.fighter>img{height:217px;width:190px;object-fit:contain;filter:drop-shadow(0 4px 2px #4f777618)}.fighter-name{position:absolute;top:-30px;left:0;right:0;text-align:center}.fighter-name>b{font-family:var(--brush);font-size:23px;font-weight:400}.fighter-name>span{display:inline-block;padding:3px 7px;margin-right:8px;color:#679185;background:#f7fbefd6;border-radius:3px;font-size:10px}.enemy .fighter-name{top:-37px}.enemy .fighter-name>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:10px}.enemy .fighter-name b{font-family:var(--brush);font-size:22px;font-weight:400}.enemy .fighter-name span{font-size:10px;color:#83968b;font-variant-numeric:tabular-nums}.enemy-health{height:7px;background:#d2dfd3;border:1px solid #f6f8ee;border-radius:4px;overflow:hidden;margin-top:7px}.enemy-health i{display:block;height:100%;width:100%;background:#c68570;border-radius:4px}.enemy>img{animation:bob 4s ease-in-out infinite}.enemy-2>img{filter:hue-rotate(30deg) drop-shadow(0 4px 2px #4f777618)}.enemy-3>img{filter:hue-rotate(80deg) drop-shadow(0 4px 2px #4f777618)}.versus{align-self:center;display:flex;flex-direction:column;align-items:center;gap:7px;color:#5c8c81;margin-top:25px}.versus span{font-family:var(--brush);font-size:21px}.arena-task{position:absolute;bottom:0;left:0;right:0;min-height:63px;background:#f9fcf2e8;border-top:1px solid #dfe8d7;display:flex;gap:14px;align-items:center;padding:12px 25px;z-index:2;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.task-seal{display:grid;place-items:center;flex-shrink:0;width:29px;height:33px;font-family:var(--brush);font-size:19px;background:#ead9af;color:#8e7748;border-radius:2px}.arena-task small{display:block;font-size:9px;color:#98a18b;margin-bottom:4px}.arena-task p{font-size:12px;line-height:1.7;color:#5b7765}.spell-symbols{position:absolute;top:20%;right:32%;bottom:20%;left:32%;z-index:3;display:flex;align-items:center;justify-content:space-around;pointer-events:none;color:#538c7b;font-family:monospace;font-size:22px}.spell-symbols span{animation:spell 1.1s ease-in-out infinite}.spell-symbols span:nth-child(2){animation-delay:.2s}.spell-symbols span:nth-child(3){animation-delay:.4s}.casting .disciple>img{animation:cast .7s ease-in-out infinite}.fighter>img.recoil{animation:recoil .5s ease-out}.work{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:30px;padding:24px 0 0}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.editor-heading h2{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.draft-status{display:flex;align-items:center;gap:5px;font-size:10px;color:#8d9f95;white-space:nowrap}.code-panel{border:1px solid #345253;border-radius:5px;overflow:hidden;background:#253d40;color:#d7e7de}.editor-tab{display:flex;align-items:center;gap:8px;height:37px;background:#30494b;padding:0 16px;border-bottom:1px solid #48605f;font-size:10px;color:#a9c5bb}.editor-tab small{margin-left:auto;font-size:10px;color:#87a49a}.code-lines{padding:11px 0 13px;overflow-x:auto}.code-line{display:flex;align-items:center;min-width:515px;min-height:26px;font-size:12px;line-height:26px;font-family:Consolas,monospace}.code-line code{font-family:inherit;white-space:pre}.line-number{color:#64837d;text-align:right;width:34px;flex-shrink:0;margin-right:16px;font-size:10px;-webkit-user-select:none;user-select:none}.syntax-keyword{color:#b4bedb}.syntax-type{color:#9ed4c4}.code-line.editable{background:#35534f78}.code-answer-line{display:flex;align-items:center;min-width:0}.code-answer-line input{width:280px;height:26px;background:transparent;border:0;border-bottom:1px dashed #6d8c77;border-radius:0;outline:none;color:#efcc8a;padding:0 4px;line-height:26px;font:12px Consolas,monospace}.code-answer-line input::placeholder{color:#77918a}.code-answer-line input:focus-visible{outline:1px solid #af9a65;outline-offset:1px}.editor-actions{display:flex;align-items:center;gap:9px;margin-top:13px}.editor-actions>.icon-button{width:42px;height:42px}.cast-button{margin-left:auto;min-width:171px}.hint-button.selected{background:#f4e9ca;border-color:#d8c496;color:#927a48}.abandon{font-size:10px;color:#9ca9a2;margin-top:14px;text-decoration:underline;text-underline-offset:3px}.battle-guide{padding-left:25px;border-left:1px solid var(--line)}.guide-heading{display:flex;gap:12px;align-items:center;margin-bottom:14px}.guide-heading img{width:48px;height:59px;object-fit:contain}.guide-heading .eyebrow{font-size:9px;margin-bottom:4px}.guide-heading h2{font-family:var(--brush);font-size:25px;font-weight:400}.battle-guide h3{font-size:12px;font-weight:500;margin-bottom:8px}.battle-guide>p{font-size:11px;line-height:1.9;color:#82968c}.guide-reward{border-top:1px solid #dfe8df;margin-top:18px;padding-top:16px}.guide-reward .rewards{gap:12px;font-size:10px}.hint{padding:15px 0;margin-top:12px;border-top:1px dashed #d1d4b6;color:#8b794a}.hint>b{font-size:11px;display:flex;gap:6px;align-items:center}.hint p{font-size:12px;line-height:1.8;margin-top:7px}.error,.notice{font-size:12px;line-height:1.7;padding:11px 14px;border-left:3px solid #c88c78;background:#f8ece8;color:#976854;margin:12px 0}.notice{border-color:#c4aa70;background:#f5f0dd;color:#917d49}.empty{padding:45px 20px;text-align:center;line-height:2;color:var(--muted)}.empty .primary,.empty .secondary{margin:15px 10px}.empty h1{font-family:var(--brush);font-size:32px;color:var(--ink)}.empty a{margin-left:10px}.spin{animation:spin 1s linear infinite}.learning-tabs{display:flex;gap:32px;border-bottom:1px solid var(--line);margin-bottom:28px}.learning-tabs a{padding:0 2px 14px;color:#8a9c96;font-size:12px;position:relative}.learning-tabs .active{color:var(--jade);font-weight:500}.learning-tabs .active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.skill-card{padding:25px;background:#ffffffb5;border:1px solid #d8e6e0;border-radius:6px;position:relative;overflow:hidden}.skill-card:after{content:"";position:absolute;right:-5px;top:75px;width:36px;height:140px;border:1px solid #e2ebe4;transform:rotate(17deg);pointer-events:none}.skill-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.skill-symbol{width:48px;height:48px;display:grid;place-items:center;color:#609285;background:#e5efdf;border:1px solid #d9e4cd;border-radius:5px}.skill-symbol svg{width:25px;height:25px}.tone-2 .skill-symbol{background:#e5e9f3;color:#7f8fad;border-color:#d9deee}.tone-3 .skill-symbol{background:#f4ebd7;color:#b29961;border-color:#e9dfc6}.skill-card h2{font-family:var(--brush);font-size:32px;font-weight:400;margin:5px 0 9px}.skill-card>p:not(.eyebrow){font-size:12px;color:var(--muted)}.skill-card-footer{border-top:1px solid #e0e8df;margin-top:26px;padding-top:15px;min-height:43px;display:flex;align-items:center}.skill-card-footer>span{display:flex;align-items:center;gap:6px;color:#a0aaa0;font-size:10px}.skill-card.locked{background:#f5f8f7aa}.skill-card.locked h2{color:#7f9690}.skill-card.locked .tag{background:#e8ece8;color:#94a196}.learning-overview{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:50px;padding:10px 0 35px;border-bottom:1px solid var(--line)}.learning-overview h2{font-family:var(--brush);font-size:28px;font-weight:400;margin-bottom:25px}.learning-overview .muted{font-size:11px;margin-top:11px}.learning-numbers{display:flex;align-items:center;justify-content:space-around;border-left:1px solid var(--line);gap:20px}.learning-numbers>div{display:flex;flex-direction:column;gap:12px;text-align:center}.learning-numbers strong{font-size:36px;color:var(--jade);font-weight:400}.learning-numbers span{font-size:10px;color:var(--muted)}.learning-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:32px}.recommendation{display:flex;align-items:center;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.recommend-icon{display:grid;place-items:center;width:43px;height:47px;background:#e0eee6;color:#5f8f7c;border-radius:5px}.recommend-icon.coral{background:#f2e5df;color:#b68570}.recommendation small{font-size:10px;color:var(--muted)}.recommendation h3{font-size:14px;font-weight:500;margin:5px 0}.recommendation p{font-size:10px;color:var(--muted)}.recommendation .icon-button{margin-left:auto;background:transparent;border:0}.knowledge-list>div{display:flex;align-items:center;gap:12px;padding:19px 0;border-bottom:1px solid var(--line)}.knowledge-list>div>span{display:flex}.knowledge-list b{font-size:12px;font-weight:400}.knowledge-list small{margin-left:auto;font-size:10px;color:var(--muted)}.checked{color:var(--jade)}.quiet-empty{font-size:12px;color:var(--muted);padding:25px 0;line-height:1.9}.quiet-empty>a{display:inline-flex;align-items:center;gap:8px;margin-top:15px}.review-list article{display:flex;align-items:center;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.review-number{font-family:var(--brush);font-size:29px;color:#91ada1}.review-list h3{font-size:14px;font-weight:500;margin-bottom:9px}.review-list p{font-size:11px;color:var(--muted)}.review-list p span{color:#b68e74}.review-list button{margin-left:auto}.illustrated-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:75px 20px}.illustrated-empty>svg{color:#9fb6a6;margin-bottom:24px}.illustrated-empty h2{font:30px var(--brush);margin-bottom:13px}.illustrated-empty p{font-size:12px;color:var(--muted);line-height:1.8}.illustrated-empty>a{margin-top:25px}.inventory-summary{display:flex;gap:18px;align-items:center;margin-bottom:38px;padding:22px 0 30px;border-bottom:1px solid var(--line)}.inventory-summary>svg{color:var(--gold)}.inventory-summary small{display:block;color:var(--muted);font-size:11px}.inventory-summary strong{display:block;font-size:29px;font-weight:400;margin-top:4px}.inventory-summary>p{margin-left:auto;color:#93a292;font-family:var(--brush);font-size:21px}.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.book-item{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:5px;background:#ffffff80;padding:23px}.book-cover{flex-shrink:0;width:65px;height:95px;border:1px solid #9ab4a4;border-left:6px solid #729b84;background:#dceadd;color:#5c806c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;border-radius:2px}.book-cover b{font:17px var(--brush)}.tone-2 .book-cover{background:#e3e7f0;border-color:#a8b2c4;border-left-color:#7b8ea8;color:#728199}.tone-3 .book-cover{background:#f0e8d3;border-color:#c4b58a;border-left-color:#ac9765;color:#aa9060}.book-item h3{font-size:13px;font-weight:500;margin-bottom:9px}.book-item p{font-size:11px;color:var(--muted);margin-bottom:16px}.book-item a{display:flex;gap:5px;align-items:center;font-size:11px}.profile-scene{display:flex;align-items:center;gap:55px;padding:25px 70px 30px;background:linear-gradient(100deg,#deebe080,#eff3ef20);border-bottom:1px solid var(--line)}.profile-character{width:200px;height:260px;object-fit:contain;flex-shrink:0}.profile-details{flex:1;min-width:0}.profile-details h2{font-family:var(--brush);font-size:35px;font-weight:400;overflow-wrap:anywhere;margin:17px 0 9px}.profile-details>p{color:#95a398;font:20px var(--brush)}.profile-stats{display:flex;gap:50px;margin-top:30px}.profile-stats>div{display:grid;grid-template-columns:19px auto;align-items:center;gap:8px 9px}.profile-stats svg{color:#b19d72}.profile-stats strong{font-size:23px;font-weight:400}.profile-stats span{grid-column:1/-1;font-size:10px;color:var(--muted)}.profile-progress{padding:30px 0}.profile-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.profile-progress h2{font:24px var(--brush)}.profile-progress span{font-size:12px;color:var(--muted)}.profile-links{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.profile-links>a{display:flex;align-items:center;gap:12px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.profile-links>a>svg:last-child{margin-left:auto;color:#9ab0a4}.story-stage{position:relative;min-height:570px;overflow:hidden;background:#dfeef0}.story-background{position:absolute;width:100%;height:100%;object-fit:cover}.story-mentor{position:absolute;bottom:145px;left:calc(50% - 125px);height:310px;width:250px;object-fit:contain;filter:drop-shadow(0 6px 4px #507e701f)}.story-dialogue{position:absolute;bottom:22px;left:5%;right:5%;padding:24px 30px;background:#fcfdf5ed;border:1px solid #e5e8d4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:5px}.story-dialogue .section-title{margin-bottom:12px}.story-dialogue .section-title h2{font-size:26px}.story-dialogue>p{min-height:44px;font-size:13px;line-height:1.9;color:#6d8574;animation:fade-in .4s ease-out}.story-actions{display:flex;justify-content:flex-end;gap:22px;margin-top:15px}.story-actions .primary{min-width:130px}.result{position:relative;min-height:660px;padding:36px 24px 30px;overflow:hidden}.result-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,#eef5ef,#eef5f0d9 60%,#eef5ef66),url(/art/java-mountains.svg) center/cover;opacity:.8}.result-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:580px;margin:auto}.result .eyebrow{color:#ab9154;font-size:11px}.result h1{font:42px/1.35 var(--brush);margin:8px 0 12px}.result-subtitle{font-size:12px;color:#8da18d}.result-character{height:210px;width:190px;object-fit:contain;margin:15px 0 2px;animation:fade-in .5s ease-out}.result-damage{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0 14px;font-size:11px;color:#889c86}.result-damage>svg{color:#b39964}.result-damage>strong{font-size:29px;font-weight:400;color:#b5824e;margin-right:15px}.result-content>p:not(.eyebrow):not(.result-subtitle){font-size:12px;color:#879680;line-height:1.8}.result .rewards{margin:17px 0;gap:30px}.result-skill{display:flex;align-items:center;gap:9px;font-size:11px;color:#9d936c;padding:12px 0;border-top:1px solid #dce5d4;border-bottom:1px solid #dce5d4;width:280px;justify-content:center}.result-skill>b{font-weight:400;color:#727e57}.result-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}.result-actions .primary,.result-actions .secondary{min-width:145px}.auth{min-height:100dvh;position:relative;display:grid;place-items:center;padding:35px 20px;overflow:hidden;background:#dceef0}.auth-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.auth:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#eef6f131;pointer-events:none}.auth-content{position:relative;z-index:1;width:min(100%,390px)}.auth-intro{text-align:center;margin-bottom:24px}.auth-intro>svg{color:var(--jade-deep);margin:0 auto 13px}.auth-intro .eyebrow{justify-content:center;color:#759b8f}.auth-intro h1{font:52px/1.25 var(--brush);color:#254f4e;text-shadow:0 2px 10px #f4faf0}.auth-intro>p:last-child{font-size:12px;color:#729182;margin-top:12px}.auth-panel{background:#fcfef7e8;border:1px solid #fffef4;border-radius:7px;box-shadow:0 16px 45px #386b6720;padding:26px 30px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.auth-panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.auth-panel-title h2{font:27px var(--brush)}.auth-panel-title>span{font-size:9px;color:#94a68c}.auth form{display:flex;flex-direction:column;gap:17px}.auth label{font-size:11px;color:#7d9382;display:flex;flex-direction:column;gap:8px}.auth-input{display:flex;align-items:center;gap:10px;background:#f8fcf5;border:1px solid #d7e2d0;padding:0 12px;border-radius:4px;color:#9bae95}.auth-input:focus-within{border-color:#7fa58d}.auth-input input{height:43px;width:100%;min-width:0;background:transparent;outline:none;border:0;font-size:12px;color:var(--ink)}.auth-input input::placeholder{color:#a7b39f}.auth .primary{width:100%;margin-top:3px;justify-content:space-between}.auth .text{display:block;background:transparent;margin:19px auto 0;padding:3px;font-size:11px;color:#8c9f83}.auth .error{margin:0;font-size:11px}.auth-footnote{text-align:center;font-size:10px;color:#708e7b;margin-top:22px;text-shadow:0 1px 5px #f5f9ef}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spell{0%{opacity:0;transform:translate(-15px,25px)}40%{opacity:.9}to{opacity:0;transform:translate(40px,-35px)}}@keyframes cast{50%{transform:translate(6px) rotate(2deg)}}@keyframes recoil{25%{transform:translate(-12px) rotate(-5deg)}65%{transform:translate(4px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1600px){.app{padding-top:38px}.world-map{min-height:550px}}@media (max-width:1050px){.topbar{padding:0 24px;gap:18px}.brand{font-size:25px}.topbar-resources{gap:18px}.player-chip{padding-left:15px}.app{padding-left:24px;padding-right:24px}.realm small{display:none}.map-layout{grid-template-columns:minmax(0,1fr) 260px}.quest-panel{padding:21px 19px}.world-map{min-height:470px;aspect-ratio:auto}.map-node{width:133px}.node-1{left:22%;top:71%}.node-2{left:51%;top:54%}.node-3{left:76%;top:35%}.node-label{font-size:10px;padding:7px}.book-grid{gap:14px}.book-item{padding:18px 14px;gap:12px}.profile-scene{padding-left:35px;padding-right:35px}.profile-stats{gap:30px}.learning-columns{gap:35px}}@media (max-width:760px){.topbar{height:70px;padding:0 18px;gap:10px}.brand{font-size:25px;gap:8px}.brand-mark{width:32px;height:36px}.brand-mark svg{width:20px}.brand small{font-size:8px}.player-chip{display:none}.topbar-resources{gap:13px}.topbar-resources svg{width:14px;height:14px}.topbar-resources>div{gap:5px}.topbar-resources small{font-size:8px}.topbar-resources b{font-size:12px}.logout{width:25px}.logout svg{width:16px}.main-navigation{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:7px 12px calc(7px + env(safe-area-inset-bottom));min-height:65px}.main-navigation a{flex-direction:column;gap:4px;font-size:10px;min-height:47px;margin:0 5px}.main-navigation a>svg{width:20px;height:20px}.main-navigation .active{background:#e4eee86e}.app{padding:23px 18px 95px;min-height:calc(100vh - 70px)}.page-heading{gap:14px;margin-bottom:22px}.page-heading h1{font-size:36px}.eyebrow{font-size:9px;margin-bottom:9px}.heading-description{font-size:10px;margin-top:8px}.chapter-counter{width:96px}.chapter-counter>span{font-size:9px}.chapter-counter strong{font-size:22px;margin:6px 0 8px}.chapter-counter strong small{font-size:12px}.chapter-counter .progress{height:4px}.realm-strip{overflow-x:auto;grid-template-columns:repeat(7,88px);margin-left:-18px;margin-right:-18px;margin-bottom:0;padding:0 12px;scrollbar-width:none}.realm-strip::-webkit-scrollbar{display:none}.realm{padding:13px 5px;gap:6px}.realm b{font-size:10px}.realm.current:after{left:9px;right:9px}.realm svg{width:13px}.map-layout{grid-template-columns:1fr;margin:0 -18px}.world-map{min-height:410px;aspect-ratio:auto}.map-art{object-fit:cover;object-position:50% 50%}.map-caption{left:20px;top:20px;gap:9px}.map-caption h2{font-size:27px}.map-caption p{font-size:9px}.seal{font-size:18px;padding:7px 4px}.map-place{font-size:16px}.place-village{left:8%;top:53%}.place-peak{right:6%;top:18%}.node-pin{width:45px;height:45px;border-width:3px}.node-pin svg{width:20px}.map-node{width:124px;height:90px}.node-1{left:22%;top:73%}.node-2{left:51%;top:54%}.node-3{left:78%;top:35%}.node-label{font-size:10px;padding:7px 6px;gap:4px;margin-top:10px}.node-label small{font-size:9px}.node-callout{font-size:9px;top:-24px}.map-legend{font-size:9px;gap:13px;left:18px;bottom:13px;padding:7px 9px}.quest-panel{display:block;border-left:0;border-top:1px solid #dce8de;padding:22px 22px 20px;background:#fbfdf9b8}.quest-panel>.eyebrow{margin-bottom:10px}.quest-number{margin:-23px 0 0;position:absolute;right:24px;width:145px}.quest-panel h2{font-size:27px}.quest-description{font-size:12px;min-height:0;margin-top:8px;max-width:100%}.quest-divider{margin:16px 0}.quest-panel .section-label{font-size:10px;margin-bottom:12px}.skill-reward{margin:14px 0}.quest-action{margin-top:5px;min-height:44px}.mentor-note{margin-top:17px}.mentor-note img{width:42px;height:53px}.mentor-note p{font-size:11px}.map-bottom{gap:10px;font-size:9px;margin-top:16px}.map-bottom svg{width:13px}.back{font-size:10px;margin-bottom:13px}.battle-page .page-heading{align-items:flex-start;gap:10px;margin-bottom:18px}.battle-page .page-heading h1{font-size:30px;line-height:1.3}.battle-heading-extra{flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;padding-top:3px}.battle-heading-extra .tag{font-size:8px;padding:4px 6px}.difficulty{gap:2px}.difficulty svg{width:10px;height:10px}.arena{height:285px;margin:0 -18px}.fighters{top:0;right:5%;bottom:60px;left:5%;gap:10px}.fighter{width:128px}.fighter>img{height:180px;width:150px;max-width:none}.fighter-name{top:-19px}.fighter-name>b{font-size:18px}.fighter-name>span{font-size:8px;padding:2px 4px;margin-right:5px}.enemy .fighter-name{top:-28px}.enemy .fighter-name b{font-size:18px}.enemy .fighter-name span{font-size:8px}.enemy-health{height:6px;margin-top:5px}.versus{gap:5px;margin-top:20px}.versus svg{width:20px}.versus span{font-size:16px}.arena-task{padding:12px 18px;gap:10px;min-height:64px}.arena-task p{font-size:11px}.arena-task small{font-size:8px}.task-seal{width:25px;height:29px;font-size:17px}.work{grid-template-columns:1fr;gap:25px;padding-top:22px}.editor-heading h2{font-size:12px;gap:6px}.editor-heading h2 svg{width:16px}.draft-status{font-size:9px}.code-line{font-size:11px;min-width:480px;min-height:26px}.code-answer-line input{font-size:11px;width:190px}.line-number{width:22px;margin-right:10px;font-size:9px}.editor-actions{gap:7px}.editor-actions .secondary{padding:10px 12px;gap:6px;font-size:11px}.editor-actions .icon-button{width:38px}.cast-button{min-width:145px;font-size:11px;padding:10px 12px;gap:8px}.battle-guide{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.guide-heading{margin-bottom:12px}.guide-heading img{width:41px;height:49px}.guide-heading h2{font-size:24px}.battle-guide>p{font-size:12px}.guide-reward{margin-top:16px;padding-top:14px}.guide-reward .rewards,.error,.notice{font-size:11px}.learning-tabs{gap:27px;margin-bottom:23px}.learning-tabs a{font-size:11px;padding-bottom:12px}.skill-grid{grid-template-columns:1fr;gap:16px}.skill-card{padding:22px}.skill-card-top{margin-bottom:19px}.skill-card h2{font-size:30px}.skill-card-footer{margin-top:21px}.skill-card:after{right:20px;top:70px;height:90px;width:55px}.learning-overview{grid-template-columns:1fr;gap:23px;padding-bottom:23px}.learning-overview h2{font-size:24px;margin-bottom:20px;line-height:1.5}.learning-numbers{border-left:0;border-top:1px solid var(--line);padding-top:21px;justify-content:space-between}.learning-numbers>div{flex:1;gap:8px}.learning-numbers>div+div{border-left:1px solid var(--line)}.learning-numbers strong{font-size:29px}.learning-columns{grid-template-columns:1fr;gap:30px;margin-top:26px}.section-title h2{font-size:25px}.recommendation{padding:16px 0}.knowledge-list>div{padding:16px 0}.review-list article{gap:12px;padding:21px 0;flex-wrap:wrap}.review-list h3{font-size:12px}.review-list p{font-size:10px}.review-list button{font-size:10px;padding:8px 10px;gap:6px;min-height:36px}.review-number{font-size:25px}.illustrated-empty{padding:65px 15px}.illustrated-empty h2{font-size:27px}.illustrated-empty p{font-size:11px}.inventory-summary{gap:14px;margin-bottom:30px}.inventory-summary>p{font-size:17px;max-width:135px;line-height:1.7}.book-grid{grid-template-columns:1fr;gap:14px}.book-item{padding:20px;gap:23px}.book-item h3{font-size:14px}.book-item p{font-size:12px}.book-item a{font-size:11px}.profile-scene{padding:20px 0 25px;gap:16px;flex-direction:column;margin:0 -18px}.profile-character{width:145px;height:190px}.profile-details{text-align:center;width:100%;padding:0 24px}.profile-details h2{font-size:30px;margin:14px 0 10px}.profile-stats{justify-content:space-around;gap:15px;margin-top:26px;text-align:left}.profile-stats strong{font-size:23px}.profile-links{grid-template-columns:1fr;gap:0}.profile-links>a{border-top:0;padding:21px 0}.profile-progress{padding:26px 0 12px}.profile-details>p{font-size:19px}.story-stage{margin:0 -18px;min-height:590px}.story-mentor{height:260px;bottom:220px;width:210px;left:calc(50% - 105px)}.story-dialogue{left:18px;right:18px;bottom:20px;padding:21px}.story-dialogue>p{font-size:12px;min-height:68px}.story-dialogue .section-title h2{font-size:25px}.story-actions .primary{min-width:120px}.story-actions{gap:15px}.result{margin:0 -18px;min-height:650px;padding:30px 22px}.result h1{font-size:34px}.result-character{height:195px;margin-top:18px}.result-damage{gap:8px;flex-wrap:wrap}.result-damage>strong{font-size:26px;margin-right:7px}.result-damage .tag{font-size:9px}.result-actions{gap:10px;width:100%}.result-actions .primary,.result-actions .secondary{min-width:0;flex:1;max-width:160px}.result .rewards{gap:23px}.auth{padding:28px 20px}.auth-intro h1{font-size:44px}.auth-intro{margin-bottom:23px}.auth-panel{padding:25px}.auth-intro .eyebrow{font-size:10px}.auth-panel-title h2{font-size:27px}.auth-footnote{font-size:10px}.auth-background{object-position:45% center}}@media (max-width:370px){.brand{font-size:22px}.brand-mark{width:29px}.topbar{padding:0 12px;gap:7px}.topbar-resources{gap:9px}.topbar-resources>div{gap:3px}.topbar-resources svg{width:12px}.topbar-resources b{font-size:11px}.topbar-resources small{font-size:8px}.brand small{font-size:7px}.cast-button{min-width:134px;font-size:10px;padding:10px 8px}.editor-actions .secondary{padding:10px 8px;font-size:10px}.main-navigation a{margin:0 3px}.battle-page .page-heading h1{font-size:27px}.node-label{font-size:9px}.node-label small{display:none}.node-1{left:22%}.node-3{left:78%}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (max-width:760px){.arena{height:265px}.fighter>img{height:160px;width:135px}.quest-panel{position:relative}.quest-number{top:24px;margin-top:0}.editor-actions{scroll-margin-bottom:90px}}#root:has(>.topbar){height:100dvh;display:grid;grid-template-rows:84px minmax(0,1fr) auto}.topbar{grid-row:1}.main-navigation{position:relative;grid-row:3}.app{grid-row:2;width:100%;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:35px;scrollbar-width:thin;scrollbar-color:#bdcfc8 transparent}.quest-description,.battle-guide>p,.heading-description{color:#70867f}.story-dialogue>p{color:#5f7765}.profile-details>p{color:#7e9683}@media (max-width:760px){#root:has(>.topbar){grid-template-rows:70px minmax(0,1fr) auto}.app{padding-bottom:30px}.editor-actions{scroll-margin-bottom:20px}}.answer-prefix{display:flex;align-items:center;gap:18px;padding:15px 18px;background:#eef5f4;border-bottom:1px solid var(--line)}.answer-prefix>span{font-size:11px;color:#637f7e}.answer-prefix code{font:15px/1.6 Consolas,monospace;color:#28647d;white-space:pre-wrap;overflow-wrap:anywhere}.answer-toolbar{display:flex;align-items:center;gap:12px;padding:9px 12px;background:#fafcfc;border-bottom:1px solid var(--line);color:#6e8483;font-size:11px}.answer-toolbar>small{margin-left:auto;font-size:10px;white-space:nowrap}.editor-modes{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.editor-modes button{display:flex;align-items:center;gap:5px;background:transparent;padding:7px 9px;color:#758986;font-size:11px}.editor-modes button[aria-pressed=true]{background:#deeee8;color:var(--jade-deep)}.monaco-host{height:144px;width:100%;overflow:hidden}.plain-code-answer{display:block;resize:vertical;min-height:144px;height:144px;max-height:360px;width:100%;border:0;background:#fff;color:#254f58;padding:14px 18px;font:14px/1.8 Consolas,monospace;-moz-tab-size:2;tab-size:2}.plain-code-answer:focus-visible{outline:2px solid #bd8d41;outline-offset:-2px}.editor-section{min-width:0}.editor-actions{flex-wrap:wrap}.editor-actions .cast-button{margin-left:auto}.editor-actions .run-button{gap:7px}.lesson-objective{font-size:12px;line-height:1.9}.lesson-notes{padding-left:20px;margin:14px 0;color:#58736e;font-size:12px;line-height:1.9}.lesson-notes li+li{margin-top:9px}.lesson-example{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;color:#56746e}.lesson-example summary,.solution summary{cursor:pointer;font-weight:500}.lesson-example pre,.solution pre{font:13px/1.8 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#e6efee;border-left:2px solid #78a898;margin:12px 0;color:#254f58}.lesson-example p,.solution p{font-size:12px;line-height:1.9;color:#58736e}.hint ol{padding-left:18px;margin:10px 0;font-size:12px;line-height:1.9}.hint li+li{margin-top:7px}.hint>.muted{display:block;font-size:11px;margin-top:10px}.run-result{margin-top:16px;padding:16px 0;border-top:2px solid #c88d72;border-bottom:1px solid var(--line)}.run-result.passed{border-top-color:#68a48b}.run-result>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.run-result b{font-size:13px;font-weight:500}.run-result span{font-size:10px;color:#758986}.run-result p{font-size:12px;line-height:1.8;margin-top:8px;color:#647d79}.solution{width:100%;text-align:left;margin-top:24px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.solution summary{font-size:14px}.solution pre{font-size:14px}.result-content .solution+.result-actions{margin-top:20px}@media (max-width:760px){.answer-toolbar{gap:8px;padding:8px}.answer-toolbar>span{font-size:10px}.editor-modes button{padding:7px;font-size:10px}.answer-prefix{padding:12px}.editor-actions{display:grid;grid-template-columns:38px minmax(0,1fr) minmax(0,1fr);gap:8px}.editor-actions .cast-button{grid-column:1/-1;width:100%;margin-left:0;min-height:44px}.editor-actions .secondary{padding:10px 7px}.solution{margin-top:20px}.solution pre{font-size:13px}.lesson-notes{font-size:12px}.monaco-host{height:132px}.plain-code-answer{height:132px;min-height:132px}}.disclosure{border-block-end:1px solid var(--line);min-width:0}.disclosure-heading{margin:0;font:inherit}.disclosure-heading>button{display:flex;align-items:center;gap:9px;width:100%;min-height:48px;padding:10px 0;color:var(--jade-deep);background:transparent;text-align:left}.disclosure-heading>button>span{font-size:15px;font-weight:500}.disclosure-heading small{margin-left:auto;font-size:11px;color:var(--muted);text-align:right}.disclosure-heading svg{flex-shrink:0;transform:rotate(-90deg)}.disclosure-heading svg.expanded{transform:rotate(0)}.disclosure-body{padding:0 0 14px}.disclosure-body[hidden],.content-tab-panel[hidden]{display:none}.content-tabs,.content-tab-panel{min-width:0}.content-tablist{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px;gap:4px}.content-tablist>button{flex:1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-height:42px;padding:9px 10px;font-size:13px;background:transparent;border-bottom:2px solid transparent;color:var(--muted)}.content-tablist>button[aria-selected=true]{color:var(--jade-deep);border-color:var(--jade);background:#e8f1ed}.content-tablist small{font-size:10px;color:#9b6c2c}.collection-pager{display:flex;align-items:center;gap:9px;margin:10px 0 14px;font-size:12px;color:var(--muted)}.collection-pager>span{margin-right:auto;font-variant-numeric:tabular-nums}.collection-pager .icon-button{width:36px;height:36px}.collection-pager select{border:1px solid var(--line);border-radius:4px;background:#fff;min-height:36px;padding:5px 8px;color:var(--jade-deep);font:inherit}.app{padding-top:20px}.app .page-heading{margin-bottom:16px}.app .page-heading h1{font-size:34px}.app .learning-tabs{margin-bottom:18px}.app .section-title{margin-bottom:14px}.app .section-title h2{font-size:21px}.app .illustrated-empty{padding:30px 16px}.app .book-reading-note{padding:10px 12px;margin-bottom:12px}.app .learning-overview{gap:24px;padding:0 0 18px}.app .learning-overview h2{font-size:20px;margin-bottom:12px}.app .learning-summary{padding:16px 0;margin-bottom:12px}.app .learning-summary dd{margin-top:6px;font-size:22px}.app .learning-columns{gap:24px;margin-top:0}.today-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:28px;align-items:start}.app .review-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.app .review-list article{padding:14px 0}.app .recommendation,.app .upcoming-review{padding:14px 0}.app .knowledge-list>div{padding:12px 0}.app .skill-grid{gap:12px}.app .skill-card{padding:16px}.app .skill-card-top{margin-bottom:10px}.app .skill-card .skill-symbol{width:34px;height:34px}.app .skill-card h2{font-size:25px}.app .skill-card-footer{margin-top:12px;padding-top:9px;min-height:32px}.app .catalog-toolbar{margin-top:12px}.app .catalog-count{margin:10px 0}.app .skill-detail-objective{padding:14px 0;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;margin-bottom:14px}.app .skill-detail-objective h2{font-size:15px}.app .skill-detail-panel{border:0;border-radius:0;padding:8px 0;background:transparent}.app .skill-detail-notes li{padding:11px 0}.app .skill-detail-explanation{margin-top:12px}.app .skill-detail-pagination{margin-top:16px}.app .skill-practice{padding:12px 0;margin-bottom:14px}.app .growth-sections{display:block;margin:18px 0}.app .attribute-heading{margin-top:14px}.app .attribute-list,.app .achievement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.app .achievement-row{padding:14px 0}.app .profile-scene{padding:12px 0;gap:24px}.app .profile-character{width:105px;height:135px}.app .profile-details h2{font-size:25px;margin:9px 0}.app .profile-details>p{display:none}.app .profile-stats{margin-top:14px}.app .profile-progress{padding:14px 0}.app .inventory-summary{margin-bottom:16px}.app .book-grid{gap:12px}.app .book-item{padding:14px;gap:16px}.app .shop-intro{margin-bottom:16px}.app .shop-preview{height:135px}.app .shop-preview>img{height:125px}.app .shop-card-info{padding:14px}.app .daily-tasks{padding:12px 0}.app .daily-heading h2{font-size:18px}.app .daily-summary{margin:14px 0 4px}.app .daily-task{padding:12px 0;gap:14px}.app .daily-description p{margin:4px 0 6px}.app .daily-date{font-size:10px}.app .solution{margin-top:12px}.app .result{padding-top:20px;min-height:0}.app .result-character{height:115px;margin:10px 0}.app .result-actions{margin-top:16px}.app .profile-links>a{padding:13px 0}.app .map-layout{align-items:start;gap:24px}.app .quest-panel{padding:18px}.app .quest-panel h2{font-size:26px}.app .quest-description{margin:12px 0}.app .quest-action{margin-top:14px}.app .mentor-note{margin-top:14px;padding-top:12px}.app .map-stages{margin-bottom:12px}.battle-view-tools{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin:-4px 0 10px}.battle-view-tools .secondary{padding:7px 12px;min-height:34px;font-size:12px}.app .work{gap:22px;padding-top:16px}.app .scene-compact .arena{height:auto;min-height:0;padding-top:150px}.app .scene-compact .fighters{inset:38px 12% auto;height:108px}.app .scene-compact .fighter{width:200px}.app .scene-compact .fighter>img{height:108px;width:110px}.app .scene-compact .fighter-name{top:-26px}.app .scene-compact .fighter-name b{font-size:18px}.app .scene-compact .enemy .fighter-name{top:-31px}.app .scene-compact .arena-task{position:relative;bottom:auto;min-height:58px;padding:10px 16px}.app .editor-focus .work{grid-template-columns:minmax(0,1fr)}.battle-guide-slot[hidden],.arena[hidden]{display:none}.focus-task{border-left:3px solid var(--gold);padding:10px 14px;background:#f1f5ee;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.battle-guide .disclosure-heading>button>span{font-size:12px}.battle-guide .lesson-check{font-size:12px;color:var(--muted);line-height:1.8}.app .battle-guide{border:0;padding:0}.app .scene-compact .enemy .fighter-name span{white-space:nowrap;flex-shrink:0}.app .editor-focus .monaco-host,.app .editor-focus .plain-code-answer{height:300px;min-height:200px}@media (max-width: 760px){.app{padding-top:16px}.app .page-heading h1{font-size:29px}.app .learning-overview{grid-template-columns:minmax(0,1fr) 105px;gap:12px}.app .learning-overview h2{font-size:16px;line-height:1.6}.app .learning-numbers{display:grid;gap:10px;border-top:0;padding-top:0}.app .learning-numbers>div{border-left:0;gap:3px}.app .learning-numbers strong{font-size:21px}.app .learning-numbers span{font-size:10px}.app .learning-columns{gap:14px}.today-workspace,.app .review-list{grid-template-columns:minmax(0,1fr);gap:12px}.app .profile-scene{flex-direction:row;gap:10px;margin:0}.app .profile-character{width:68px;height:110px}.app .profile-details{min-width:0;padding:0;text-align:left}.app .profile-details h2{font-size:21px;overflow-wrap:anywhere}.app .profile-stats{flex-wrap:wrap;justify-content:flex-start;gap:10px 14px}.app .profile-stats strong{font-size:17px}.app .daily-task{grid-template-columns:28px minmax(0,1fr) 112px;gap:9px}.app .daily-symbol{width:28px;height:30px}.app .daily-reward{grid-column:3;grid-row:auto;justify-content:flex-end;font-size:12px}.app .daily-action{grid-column:3;grid-row:2}.app .daily-description{grid-column:2;grid-row:span 2}.app .daily-description h3{font-size:13px}.app .daily-description p{font-size:11px}.app .daily-action>*{min-height:36px;padding:7px 5px;font-size:11px}.app .daily-summary{gap:9px 14px;font-size:11px}.app .skill-card{padding:14px}.app .skill-card-top{margin-bottom:6px}.app .skill-card-top{position:absolute;right:14px;top:14px}.app .skill-card-top .skill-symbol{display:none}.app .skill-card>.eyebrow{padding-right:68px}.app .skill-card h2{font-size:23px}.app .skill-card .eyebrow{margin-bottom:3px}.app .shop-card{display:grid;grid-template-columns:76px minmax(0,1fr)}.app .shop-preview{height:100%;min-height:130px;padding:8px 4px}.app .shop-preview>img{width:68px;height:95px;object-fit:contain}.app .shop-preview>.tag{top:6px;right:3px;font-size:9px}.app .shop-preview .avatar{width:54px;height:54px}.app .shop-preview .book-cover{width:54px;min-width:0;height:80px;padding:8px 4px}.app .shop-preview .book-cover b{font-size:12px}.app .shop-card-info{padding:11px}.app .shop-card-info h3{font-size:16px}.app .shop-card-info>p:not(.eyebrow){font-size:11px;margin:7px 0}.app .shop-card-info .eyebrow{margin-bottom:4px}.app .shop-card-action{flex-wrap:wrap;gap:6px;margin-top:9px}.app .shop-card-action button{min-height:34px;padding:7px 9px;font-size:11px}.app .program-battle .monaco-host,.app .program-battle .plain-code-answer{height:200px;min-height:200px}.content-tablist>button{padding:8px 5px;font-size:12px}.app .scene-compact .arena{padding-top:123px}.app .scene-compact .fighters{inset:34px 5% auto;height:87px;gap:10px}.app .scene-compact .fighter{width:110px}.app .scene-compact .fighter>img{height:87px;width:96px}.app .scene-compact .fighter-name b{font-size:15px}.app .scene-compact .fighter-name>span{display:none}.app .scene-compact .versus{margin-top:0}.app .battle-guide{padding:8px 0 0}.app .editor-focus .monaco-host,.app .editor-focus .plain-code-answer{height:240px}.app .attribute-list,.app .achievement-list{grid-template-columns:minmax(0,1fr)}.app .map-layout{display:flex;flex-direction:column;gap:10px}.app .map-layout>*{width:100%;min-width:0}.app .map-layout>.quest-panel{order:-1;padding:14px 0}.app .quest-panel .quest-number{position:static;margin:0 0 8px}.app .quest-panel h2{font-size:23px}.app .quest-description{font-size:12px}.app .quest-panel .mentor-note{display:flex;padding-top:10px}.app .quest-panel .mentor-note img{width:32px;height:42px}.app .quest-panel .mentor-note p{font-size:11px}}.rpg-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:var(--rpg-radius-sm);font-weight:650;letter-spacing:0;transition:transform var(--rpg-fast) var(--rpg-ease),box-shadow var(--rpg-fast),background var(--rpg-fast),border-color var(--rpg-fast)}.rpg-button:hover:not(:disabled){transform:translateY(-2px)}.rpg-button:active:not(:disabled){transform:translateY(0) scale(.98)}.rpg-button-sm{min-height:34px;padding:7px 12px;font-size:11px}.rpg-button-md{min-height:42px;padding:10px 17px;font-size:12px}.rpg-button-lg{min-height:48px;padding:12px 22px;font-size:13px}.rpg-button-primary{color:#fffdf4;background:linear-gradient(135deg,var(--rpg-jade-700),var(--rpg-jade-600));border-color:#17554f;box-shadow:0 6px #164c48,0 12px 24px #1c574f29}.rpg-button-primary:hover:not(:disabled){box-shadow:0 4px #164c48,0 14px 26px #1c574f38}.rpg-button-secondary{color:var(--rpg-jade-700);background:#fffffae0;border-color:var(--rpg-line-strong);box-shadow:var(--rpg-shadow-sm)}.rpg-button-secondary:hover:not(:disabled){background:#fff;border-color:var(--rpg-jade-400)}.rpg-button-ghost{color:var(--rpg-jade-700);background:transparent}.rpg-button-ghost:hover:not(:disabled){background:var(--rpg-jade-100)}.rpg-button-danger{color:var(--rpg-coral-600);background:var(--rpg-coral-100);border-color:#a9584e33}.rpg-card{position:relative;border:1px solid var(--rpg-line);border-radius:var(--rpg-radius-md);box-shadow:var(--rpg-shadow-sm);overflow:hidden}.rpg-card-paper{background:#fdfdf7eb}.rpg-card-jade{background:linear-gradient(135deg,#ddede5f0,#f4f9f3e6)}.rpg-card-gold{background:linear-gradient(135deg,#f9efd2f0,#fffcf0eb)}.rpg-card-mist{background:linear-gradient(135deg,#e7f2f0eb,#efedf7e6)}.rpg-card.is-interactive{transition:transform var(--rpg-normal) var(--rpg-ease),box-shadow var(--rpg-normal)}.rpg-card.is-interactive:hover{transform:translateY(-4px);box-shadow:var(--rpg-shadow-md)}.rpg-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:650;white-space:nowrap}.rpg-badge-jade{color:var(--rpg-jade-700);background:var(--rpg-jade-100)}.rpg-badge-gold{color:var(--rpg-gold-600);background:var(--rpg-gold-100)}.rpg-badge-coral{color:var(--rpg-coral-600);background:var(--rpg-coral-100)}.rpg-badge-muted{color:var(--rpg-ink-600);background:#dee8e6cc}.rpg-progress{position:relative;overflow:hidden;height:8px;border-radius:999px;background:#2b605a1a}.rpg-progress-indicator{width:100%;height:100%;border-radius:inherit;transition:transform var(--rpg-slow) var(--rpg-ease)}.rpg-progress-indicator.tone-jade{background:linear-gradient(90deg,var(--rpg-jade-600),#65a496)}.rpg-progress-indicator.tone-gold{background:linear-gradient(90deg,var(--rpg-gold-600),#e0bd73)}.rpg-progress-indicator.tone-coral{background:linear-gradient(90deg,var(--rpg-coral-600),#d18b7a)}.rpg-tooltip{z-index:var(--rpg-z-toast);padding:7px 10px;border-radius:6px;color:#fffef6;background:var(--rpg-ink-950);box-shadow:var(--rpg-shadow-md);font-size:11px;animation:rpg-pop var(--rpg-fast) var(--rpg-ease)}.rpg-tooltip-arrow{fill:var(--rpg-ink-950)}.rpg-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--rpg-z-overlay);background:#122d2d6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:rpg-fade var(--rpg-normal) var(--rpg-ease)}.rpg-drawer{position:fixed;box-sizing:border-box;z-index:calc(var(--rpg-z-overlay) + 1);top:0;right:0;bottom:0;width:min(430px,92vw);padding:26px;color:var(--rpg-ink-950);background:linear-gradient(150deg,#fcfaf0,#edf5f0);border-left:1px solid rgba(178,136,62,.3);box-shadow:-20px 0 60px #1437352e;animation:rpg-drawer-in var(--rpg-normal) var(--rpg-ease);overscroll-behavior:contain}.rpg-drawer:before,.rpg-modal:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(188,147,71,.2);border-radius:inherit;pointer-events:none}.rpg-drawer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:8px 4px 20px;border-bottom:1px solid var(--rpg-line)}.rpg-drawer-heading h2,.rpg-modal h2{font-family:var(--brush);font-weight:400;font-size:30px}.rpg-drawer-heading p,.rpg-modal>p{margin-top:7px;color:var(--rpg-ink-600);font-size:11px;line-height:1.7}.rpg-drawer-close,.sound-panel-close{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--rpg-ink-600);background:#ffffffa6;border:1px solid var(--rpg-line)}.rpg-drawer-handle{display:none}.rpg-scroll-area{height:calc(100% - 94px)}.rpg-scroll-viewport{width:100%;height:100%;padding:20px 8px 20px 4px;overscroll-behavior:contain}.rpg-scrollbar{width:8px;padding:2px}.rpg-scroll-thumb{border-radius:999px;background:#2c675f40}.rpg-modal{position:fixed;box-sizing:border-box;z-index:calc(var(--rpg-z-overlay) + 1);left:50%;top:50%;width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:32px;transform:translate(-50%,-50%);border-radius:var(--rpg-radius-lg);color:var(--rpg-ink-950);background:linear-gradient(150deg,#fffdf4,#e9f3ee);box-shadow:var(--rpg-shadow-md);animation:rpg-modal-in var(--rpg-normal) var(--rpg-ease);overscroll-behavior:contain}.rpg-modal>.rpg-drawer-close{position:absolute;right:20px;top:20px}.rpg-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.rpg-tabs-list{display:flex;gap:6px;padding:5px;border-radius:11px;background:#dae9e4b8}.rpg-tabs-trigger{flex:1;min-height:40px;padding:8px 12px;border-radius:8px;background:transparent;color:var(--rpg-ink-600);font-size:12px;transition:background var(--rpg-fast),color var(--rpg-fast),box-shadow var(--rpg-fast)}.rpg-tabs-trigger[data-state=active]{color:var(--rpg-jade-700);background:#fffffae6;box-shadow:0 4px 14px #24504b1a}.rpg-tabs-content{outline:none}.rpg-tabs-content:focus-visible{outline:3px solid var(--rpg-gold-400);outline-offset:4px}.rpg-skeleton{display:block;min-height:18px;border-radius:7px;background:linear-gradient(100deg,#cdded999 20%,#f3f8f4e6,#cdded999 60%);background-size:220% 100%;animation:rpg-shimmer 1.4s linear infinite}.rpg-empty{padding:44px 20px;text-align:center;color:var(--rpg-ink-600);border:1px dashed var(--rpg-line-strong);border-radius:var(--rpg-radius-md);background:#fffffa8a}.rpg-empty-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 16px;border-radius:50%;color:var(--rpg-jade-700);background:var(--rpg-jade-100)}.rpg-empty h2{font-family:var(--brush);font-size:28px;font-weight:400;color:var(--rpg-ink-950)}.rpg-empty p{margin:9px 0 18px;font-size:12px;line-height:1.8}.sound-trigger{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--rpg-ink-600);background:#fffffa99;border:1px solid var(--rpg-line);transition:color var(--rpg-fast),background var(--rpg-fast),transform var(--rpg-fast)}.sound-trigger:hover{color:var(--rpg-jade-700);background:#fff;transform:translateY(-1px)}.sound-trigger.is-on{color:var(--rpg-gold-600);background:var(--rpg-gold-100);border-color:#b17e2d40}.sound-panel{z-index:var(--rpg-z-toast);width:310px;padding:20px;border:1px solid rgba(177,126,45,.24);border-radius:var(--rpg-radius-md);color:var(--rpg-ink-950);background:linear-gradient(150deg,#fffdf6,#edf5f1);box-shadow:var(--rpg-shadow-md);animation:rpg-pop var(--rpg-fast) var(--rpg-ease)}.sound-panel-arrow{fill:#f5f8ee}.sound-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--rpg-line)}.sound-panel-heading span{display:block;color:var(--rpg-gold-600);font-size:9px;letter-spacing:0}.sound-panel-heading strong{display:block;margin-top:5px;font-family:var(--brush);font-size:24px;font-weight:400}.sound-panel-close{width:30px;height:30px}.sound-setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid var(--rpg-line)}.sound-setting-row b{display:block;font-size:12px;font-weight:600}.sound-setting-row small{display:block;margin-top:4px;color:var(--rpg-ink-600);font-size:10px}.rpg-switch{position:relative;width:42px;height:24px;flex-shrink:0;border-radius:999px;background:#c9d6d2;transition:background var(--rpg-fast)}.rpg-switch[data-state=checked]{background:var(--rpg-jade-600)}.rpg-switch-thumb{display:block;width:18px;height:18px;transform:translate(3px);border-radius:50%;background:#fff;box-shadow:0 2px 6px #14323033;transition:transform var(--rpg-fast) var(--rpg-ease)}.rpg-switch[data-state=checked] .rpg-switch-thumb{transform:translate(21px)}.sound-volume{display:block;padding:15px 0 5px}.sound-volume>span{display:flex;align-items:center;gap:7px;font-size:11px}.sound-volume output{margin-left:auto;color:var(--rpg-jade-700);font-variant-numeric:tabular-nums}.sound-volume input{width:100%;margin-top:12px;accent-color:var(--rpg-jade-600)}.sound-panel-mark{display:flex;align-items:center;gap:7px;margin-top:13px;color:var(--rpg-ink-600);font-size:9px}.rpg-toast{border:1px solid var(--rpg-line-strong)!important;background:#fffdf5f7!important;color:var(--rpg-ink-950)!important;box-shadow:var(--rpg-shadow-md)!important;font-family:inherit!important}@keyframes rpg-fade{0%{opacity:0}}@keyframes rpg-pop{0%{opacity:0;transform:translateY(4px) scale(.97)}}@keyframes rpg-drawer-in{0%{opacity:0;transform:translate(35px)}}@keyframes rpg-modal-in{0%{opacity:0;transform:translate(-50%,-47%) scale(.97)}}@keyframes rpg-shimmer{to{background-position:-120% 0}}@media (max-width: 760px){.rpg-drawer{top:auto;left:0;width:100%;height:auto;max-height:min(78dvh,680px);padding:18px;border-left:0;border-top:1px solid rgba(178,136,62,.3);border-radius:22px 22px 0 0;animation-name:rpg-sheet-in}.rpg-drawer-handle{display:block;width:42px;height:4px;margin:-7px auto 11px;border-radius:999px;background:#3b5b563d}.rpg-drawer-heading{padding-top:2px}.rpg-scroll-area{height:auto;max-height:calc(78dvh - 92px)}.rpg-scroll-viewport{max-height:calc(78dvh - 92px)}.sound-panel{width:min(310px,calc(100vw - 24px))}}@keyframes rpg-sheet-in{0%{opacity:0;transform:translateY(35px)}}body{color:var(--rpg-ink-950);background-color:#e9f2f1;background-image:linear-gradient(120deg,rgba(255,255,255,.46),transparent 48%),repeating-linear-gradient(90deg,rgba(35,85,80,.025) 0 1px,transparent 1px 52px),linear-gradient(155deg,#edf6f4,#eef3f2 52%,#efedf6)}body:before{content:"";position:fixed;top:76px;right:0;bottom:0;left:0;pointer-events:none;opacity:.22;background:linear-gradient(180deg,transparent 0 74%,rgba(104,139,133,.12) 74% 75%,transparent 75%),repeating-linear-gradient(6deg,transparent 0 46px,rgba(78,121,114,.05) 47px 48px)}#root:has(>.topbar){height:100dvh;display:grid;grid-template-rows:76px minmax(0,1fr)}.topbar{grid-row:1;height:76px;gap:18px;padding:0 max(24px,calc((100% - 1440px)/2));border-bottom-color:#2a5b5724;background:#fafcf7e6;box-shadow:0 8px 30px #1d44400f;z-index:var(--rpg-z-nav)}.brand{margin-right:14px;font-size:27px}.brand-mark{width:42px;height:44px;border-radius:8px 8px 16px;background:linear-gradient(150deg,#1e6962,#174b4a);box-shadow:0 5px #113e3d,0 10px 20px #184b4829;transform:rotate(-2deg)}.brand-mark svg{filter:drop-shadow(0 1px 0 rgba(255,255,255,.2))}.main-navigation{position:static;display:flex;grid-row:auto;justify-content:center;gap:5px;min-height:0;padding:0;margin-right:auto;border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.main-navigation a{min-width:66px;min-height:42px;padding:7px 11px;gap:7px;border-radius:9px;font-size:12px;overflow:hidden;transition:color var(--rpg-fast),background var(--rpg-fast),transform var(--rpg-fast)}.main-navigation a:hover{background:#deede7b8;transform:translateY(-1px)}.main-navigation .active{color:var(--rpg-jade-700);background:#daebe3e0}.main-navigation .active:after{display:none}.main-navigation a i{position:absolute;left:50%;bottom:3px;width:0;height:2px;border-radius:2px;background:var(--rpg-gold-400);transition:width var(--rpg-normal) var(--rpg-ease),left var(--rpg-normal) var(--rpg-ease)}.main-navigation .active i{left:calc(50% - 11px);width:22px}.topbar-resources{gap:8px}.resource-chip{min-width:74px;padding:7px 10px 7px 7px;border:1px solid var(--rpg-line);border-radius:10px;background:#fffffab3}.resource-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--rpg-jade-100)}.topbar-resources>div:last-child .resource-icon{background:var(--rpg-gold-100)}.player-chip{padding-left:12px;border-left:0}.player-chip .avatar{box-shadow:0 0 0 3px #cfa75726}.player-chip .avatar img{height:auto}.logout{border-radius:50%}.app{grid-row:2;width:100%;max-width:1440px;min-height:0;padding:28px 36px 42px}.route-stage{min-height:100%}.page-heading{position:relative;align-items:flex-end;min-height:82px;margin-bottom:20px;padding-bottom:17px}.page-heading-copy{position:relative;z-index:1}.app .page-heading h1{color:var(--rpg-ink-950);font-size:39px;line-height:1.14;text-shadow:0 2px 0 rgba(255,255,255,.7)}.page-heading .eyebrow{color:var(--rpg-gold-600);letter-spacing:0}.heading-brush{position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(39,99,91,.35),rgba(183,137,55,.25) 42%,transparent)}.heading-brush:before{content:"";position:absolute;left:0;top:-2px;width:88px;height:5px;background:var(--rpg-jade-700);clip-path:polygon(0 40%,84% 0,100% 52%,76% 100%,0 72%);opacity:.72}.primary{border-radius:var(--rpg-radius-sm);background:linear-gradient(135deg,var(--rpg-jade-700),var(--rpg-jade-600));border-color:#17554f;box-shadow:0 5px #164c48,var(--rpg-shadow-sm)}.primary:hover:not(:disabled){background:linear-gradient(135deg,#26756c,#3b8b7e);box-shadow:0 3px #164c48,var(--rpg-shadow-md)}.secondary{border-radius:var(--rpg-radius-sm);background:#fffffae0;border-color:var(--rpg-line-strong);box-shadow:var(--rpg-shadow-sm)}.icon-button{border-radius:9px;border-color:var(--rpg-line);background:#fffffac2}.learning-tabs{gap:7px;width:fit-content;padding:5px;margin-bottom:22px;border:1px solid var(--rpg-line);border-radius:11px;background:#dae9e4ad}.learning-tabs a{min-height:34px;display:flex;align-items:center;padding:7px 13px;border-radius:8px}.learning-tabs .active{background:#fffffae6;box-shadow:0 4px 14px #234d481a}.learning-tabs .active:after{display:none}.content-tablist{padding:5px;border:0;border-radius:11px;background:#dae9e4ad}.content-tablist>button{border:0;border-radius:8px}.content-tablist>button[aria-selected=true]{border:0;background:#fffffaeb;box-shadow:0 4px 14px #234d481a}.rpg-loading{display:grid;grid-template-columns:52px minmax(0,320px);align-items:center;justify-content:center;gap:17px;min-height:280px;color:var(--rpg-ink-600)}.loading-seal{display:grid;place-items:center;width:52px;height:60px;color:#fff8df;background:var(--rpg-coral-600);border-radius:4px;font-family:var(--brush);font-size:27px;animation:loading-breathe 1.4s ease-in-out infinite}.rpg-loading .rpg-skeleton{width:260px}.rpg-loading .rpg-skeleton.short{width:170px;margin-top:8px}.rpg-loading p{margin-top:12px;font-size:11px}.rpg-error-panel{display:flex;align-items:center;gap:15px;max-width:700px;margin:40px auto;padding:18px;border:1px solid rgba(169,88,78,.18);border-radius:var(--rpg-radius-md);color:var(--rpg-coral-600);background:#fcf0ebe0;box-shadow:var(--rpg-shadow-sm)}.rpg-error-panel>div{flex:1}.rpg-error-panel b{font-size:13px}.rpg-error-panel p{margin-top:5px;font-size:11px;line-height:1.6}.map-page .chapter-counter{width:174px;padding:14px 16px}.map-page .chapter-counter>span{color:var(--rpg-ink-600);font-size:9px;letter-spacing:0}.map-page .chapter-counter strong{margin:5px 0 8px;font-size:25px}.realm-strip{overflow:hidden;border:1px solid var(--rpg-line);border-radius:12px;background:#fffffaa3;box-shadow:var(--rpg-shadow-sm)}.realm{padding:13px 8px}.realm.current{background:linear-gradient(135deg,#d5e9dff2,#f7f4e1cc)}.realm.current:after{bottom:0;height:3px;border-radius:3px 3px 0 0}.map-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:13px 0 16px;border:0}.map-stages button{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px 10px;min-height:60px;padding:10px 13px;text-align:left;border:1px solid var(--rpg-line);border-radius:10px;color:var(--rpg-ink-600);background:#fffffaa8;overflow:hidden;transition:transform var(--rpg-fast),border-color var(--rpg-fast),box-shadow var(--rpg-fast)}.map-stages button:hover{transform:translateY(-2px);border-color:var(--rpg-jade-400);box-shadow:var(--rpg-shadow-sm)}.map-stages button[aria-pressed=true]{color:var(--rpg-ink-950);border-color:#2b6f6661;background:linear-gradient(135deg,#deeee6,#f6efda);box-shadow:0 6px 18px #2156501a}.map-stages button:after{content:"";position:absolute;left:0;bottom:0;width:0;height:3px;background:var(--rpg-gold-400);transition:width var(--rpg-normal)}.map-stages button[aria-pressed=true]:after{width:100%}.map-stages button>span:not(.stage-route){grid-column:1;font-size:12px;font-weight:650}.map-stages button>i{grid-column:2;grid-row:1 / 3;align-self:center;color:var(--rpg-jade-700);font-size:10px;font-style:normal}.stage-route{display:flex;align-items:center;gap:5px;font-size:9px}.map-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:stretch!important}.map-layout>.disclosure{border:1px solid var(--rpg-line);border-radius:var(--rpg-radius-md);background:#fffffa8c;box-shadow:var(--rpg-shadow-sm);overflow:hidden}.map-layout>.disclosure>.disclosure-heading{display:none}.map-layout>.disclosure>.disclosure-body{height:100%;padding:0}.world-map{min-height:490px;border-radius:var(--rpg-radius-md);isolation:isolate}.map-art{filter:saturate(.96) contrast(1.03);transform:scale(1.02)}.world-map:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 70px #1e4a4621}.map-atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.map-atmosphere i{position:absolute;width:180px;height:36px;border-radius:50%;background:#fffff875;filter:blur(7px);animation:cloud-drift 14s linear infinite}.map-atmosphere i:nth-child(1){left:-16%;top:22%}.map-atmosphere i:nth-child(2){left:30%;top:64%;animation-delay:-5s;animation-duration:19s}.map-atmosphere i:nth-child(3){left:70%;top:35%;animation-delay:-9s;animation-duration:22s}.map-route-glow{position:absolute;left:11%;right:15%;bottom:21%;height:35%;z-index:1;border-bottom:2px dashed rgba(206,163,81,.48);transform:rotate(-14deg);filter:drop-shadow(0 0 5px rgba(255,225,152,.55));pointer-events:none}.map-caption,.map-place,.map-node,.map-legend{z-index:3}.node-pin{position:relative;width:58px;height:58px;border-width:4px;box-shadow:0 6px #25564d4d,0 12px 25px #19413d2e}.map-node.current .node-pin{animation:node-pulse 2.2s ease-in-out infinite}.map-node.current .node-pin:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border:1px solid rgba(213,173,92,.5);border-radius:50%;animation:node-ring 2.2s ease-out infinite}.node-label{padding:8px 12px;border:1px solid rgba(43,96,87,.2);border-radius:8px;box-shadow:var(--rpg-shadow-sm)}.node-callout{display:flex;align-items:center;gap:4px;top:-30px;border:1px solid rgba(187,136,48,.2);border-radius:999px;box-shadow:var(--rpg-shadow-sm)}.quest-panel{min-height:100%;padding:24px!important;border-left:1px solid rgba(177,126,45,.2);display:flex}.quest-panel:before{content:"";position:absolute;right:13px;top:12px;width:42px;height:56px;border:1px solid rgba(174,130,54,.15);transform:rotate(9deg)}.quest-banner{display:flex;justify-content:space-between;align-items:center}.quest-banner>span{color:var(--rpg-gold-600);font-family:var(--brush);font-size:17px}.quest-panel h2{margin-top:4px;font-size:32px!important}.quest-description{color:var(--rpg-ink-600);font-size:12px}.quest-panel .disclosure{margin-top:12px;border-color:#aa80392e}.quest-panel .quest-action{width:100%;justify-content:space-between;margin-top:auto}.mentor-note{padding-top:14px;border-top:1px solid rgba(170,128,57,.18)}.map-bottom{padding:0 4px}.battle-page .back{padding:5px 9px;border-radius:7px;background:#fffffa85}.battle-page .page-heading{margin-bottom:5px}.battle-heading-extra .rpg-badge{min-height:26px}.battle-view-tools{margin:0 0 12px}.battle-view-tools .text-button,.battle-view-tools .rpg-button{min-height:36px}.arena{height:340px;border:1px solid var(--rpg-line-strong);border-radius:var(--rpg-radius-md);box-shadow:var(--rpg-shadow-md);isolation:isolate}.arena-background{opacity:.85;transform:scale(1.025)}.arena:after{background:linear-gradient(0deg,#eef6e7eb,#eef6e71f 62%)}.arena-vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 80px #1e4c4629}.battle-hud{position:absolute;z-index:4;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.battle-hud>span{padding:6px 10px;border-radius:999px;color:var(--rpg-ink-600);background:#fffff8ad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:9px}.fighters{top:32px;right:10%;bottom:64px;left:10%}.fighter>img{filter:drop-shadow(0 12px 10px rgba(42,84,77,.18))}.fighter-name{padding:5px 9px;border-radius:8px;background:#fafdf1bd;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:var(--rpg-shadow-sm)}.enemy-health{height:8px}.versus{width:62px;height:62px;align-self:center;justify-content:center;border:1px solid rgba(179,136,58,.28);border-radius:50%;color:var(--rpg-gold-600);background:#fff8dcb8;box-shadow:var(--rpg-shadow-gold);transform:rotate(-4deg)}.arena-task{padding:13px 22px;background:#fafceee6}.task-seal{width:34px;height:38px;color:#fff9e7;background:var(--rpg-coral-600)}.work{grid-template-columns:minmax(0,1fr) 320px;gap:18px!important}.editor-section{padding:18px;border:1px solid var(--rpg-line);border-radius:var(--rpg-radius-md);background:#fffffab8;box-shadow:var(--rpg-shadow-sm)}.editor-heading h2{color:var(--rpg-ink-950)}.code-panel{border-radius:11px;border-color:#29494a;box-shadow:0 14px 36px #1d373729}.editor-tab{height:42px;background:linear-gradient(90deg,#294b4c,#34585a)}.editor-actions{min-height:54px;margin-top:15px}.editor-actions .save-draft-button{width:42px;padding:0;border:1px solid var(--rpg-line);background:#fffffabf}.editor-actions .cast-button{min-width:190px;margin-left:auto}.hint-button.selected{color:var(--rpg-gold-600);border-color:#b589395c;background:var(--rpg-gold-100)}.run-result{border-radius:10px;border-left-width:4px;box-shadow:var(--rpg-shadow-sm)}.battle-guide-slot{padding:17px;border:1px solid var(--rpg-line);border-radius:var(--rpg-radius-md);background:linear-gradient(150deg,#f6f9eee0,#ebf3eed1);box-shadow:var(--rpg-shadow-sm)}.battle-guide-slot>.disclosure{border:0}.battle-guide-slot>.disclosure>.disclosure-heading button{padding-top:0}.battle-hints-drawer .battle-hints{margin:0;padding:0;border:0;background:transparent;color:var(--rpg-ink-800)}.battle-hints-drawer .battle-hints-heading{padding:5px 0 12px;border-bottom:1px solid var(--rpg-line)}.battle-hints-drawer .battle-hints ol{margin:16px 0;padding:0;list-style:none;counter-reset:hint}.battle-hints-drawer .battle-hints li{position:relative;counter-increment:hint;padding:14px 15px 14px 48px;border:1px solid rgba(174,133,62,.18);border-radius:10px;background:#fffceba6}.battle-hints-drawer .battle-hints li:before{content:counter(hint);position:absolute;left:14px;top:13px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:#fff9e7;background:var(--rpg-gold-600);font-size:10px}.battle-hints-drawer .battle-hints-footer{padding-top:15px}.app .result-v2{position:relative;min-height:calc(100% - 8px);margin:-28px -36px -42px;padding:36px;overflow:hidden;background:#eaf3ef;isolation:isolate}.result-v2 .result-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-3;opacity:.82;background:linear-gradient(180deg,#edf8f42e,#eff1e6e0),url(/art/java-mountains.svg) center 45% / cover no-repeat}.result-v2:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;box-shadow:inset 0 0 140px #26544d2e}.result-clouds{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.result-clouds i{position:absolute;width:280px;height:65px;border-radius:50%;background:#fffff680;filter:blur(12px);animation:cloud-drift 16s linear infinite}.result-clouds i:nth-child(1){top:18%;left:-10%}.result-clouds i:nth-child(2){top:55%;left:45%;animation-delay:-6s}.result-clouds i:nth-child(3){top:35%;left:78%;animation-delay:-11s}.result-v2 .result-content{width:min(690px,100%);margin:0 auto;padding:12px 0 30px;text-align:center}.result-v2 h1{margin-top:12px;color:var(--rpg-ink-950);font-family:var(--brush);font-size:47px;font-weight:400}.result-v2 .result-subtitle{margin-top:7px;color:var(--rpg-ink-600);font-size:12px;letter-spacing:0}.result-hero{position:relative;width:220px;height:190px;margin:8px auto 2px}.app .result-v2 .result-character{position:relative;z-index:2;height:176px;margin:0 auto;filter:drop-shadow(0 12px 11px rgba(37,79,72,.18))}.result-halo{position:absolute;left:50%;top:48%;width:150px;height:150px;transform:translate(-50%,-50%);border:1px solid rgba(194,149,65,.38);border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(210,171,94,.18) 0 5deg,transparent 5deg 18deg);animation:halo-spin 18s linear infinite}.result-seal{position:absolute;z-index:3;right:2px;bottom:24px;display:grid;place-items:center;width:55px;height:59px;color:#fff7dd;border:3px double rgba(255,245,212,.8);background:var(--rpg-coral-600);font-family:var(--brush);font-size:30px;box-shadow:var(--rpg-shadow-md)}.result-recap{padding:20px 24px}.result-v2 .result-damage{justify-content:center;margin:0}.result-v2 .result-damage strong{color:var(--rpg-coral-600);font-size:34px}.result-recap>p{margin-top:11px;color:var(--rpg-ink-600);font-size:11px}.result-loot{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:16px;padding-top:15px;border-top:1px solid var(--rpg-line)}.result-v2 .result-skill{margin:0}.result-v2 .result-growth{padding:14px 18px;border-radius:10px;background:#faf4dcdb;box-shadow:var(--rpg-shadow-sm)}.result-v2 .result-growth strong{display:flex;justify-content:center;align-items:center;gap:7px}.result-v2 .solution{text-align:left;border:1px solid var(--rpg-line);border-radius:10px;background:#fffffab8}.result-v2 .result-actions{justify-content:center;gap:12px}.result-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.result-particles i{position:absolute;width:6px;height:12px;border-radius:2px;background:var(--rpg-gold-400);animation:particle-fall 3.8s linear infinite}.result-particles i:nth-child(3n){background:var(--rpg-jade-400)}.result-particles i:nth-child(3n+1){background:var(--rpg-coral-600)}.result-particles i:nth-child(1){left:8%;top:-5%;animation-delay:-.2s}.result-particles i:nth-child(2){left:16%;top:-9%;animation-delay:-2.1s}.result-particles i:nth-child(3){left:25%;top:-4%;animation-delay:-1.3s}.result-particles i:nth-child(4){left:35%;top:-10%;animation-delay:-3s}.result-particles i:nth-child(5){left:44%;top:-7%;animation-delay:-.8s}.result-particles i:nth-child(6){left:54%;top:-4%;animation-delay:-2.5s}.result-particles i:nth-child(7){left:63%;top:-9%;animation-delay:-1.7s}.result-particles i:nth-child(8){left:72%;top:-6%;animation-delay:-.4s}.result-particles i:nth-child(9){left:81%;top:-8%;animation-delay:-3.3s}.result-particles i:nth-child(10){left:90%;top:-3%;animation-delay:-1.1s}.result-particles i:nth-child(11){left:31%;top:-15%;animation-delay:-2.8s}.result-particles i:nth-child(12){left:68%;top:-13%;animation-delay:-.9s}@keyframes loading-breathe{50%{transform:translateY(-4px);box-shadow:0 9px 20px #a9584e33}}@keyframes cloud-drift{0%{transform:translate(-60px)}to{transform:translate(calc(100vw + 180px))}}@keyframes node-pulse{50%{box-shadow:0 6px #8e642366,0 12px 30px #d3a95766}}@keyframes node-ring{0%{transform:scale(.7);opacity:.9}to{transform:scale(1.3);opacity:0}}@keyframes halo-spin{to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes particle-fall{to{transform:translateY(105vh) rotate(2turn)}}@media (max-width: 1100px){.topbar{gap:10px}.main-navigation a{min-width:55px;padding-inline:8px}.player-chip>span:last-child{display:none}.player-chip{padding-left:2px}.resource-chip{min-width:65px;padding-right:7px}.map-layout{grid-template-columns:minmax(0,1fr) 290px}}@media (min-width: 761px) and (max-width: 900px){.topbar{gap:7px;padding-inline:16px}.brand{font-size:23px;margin-right:0}.main-navigation a{min-width:48px;padding-inline:6px;font-size:11px}.player-chip{display:none}}@media (max-width: 760px){#root:has(>.topbar){grid-template-rows:68px minmax(0,1fr)}.topbar{height:68px;padding:0 14px;gap:8px;backdrop-filter:none;-webkit-backdrop-filter:none}.brand{margin-right:auto;font-size:23px}.brand-mark{width:35px;height:38px}.brand small{font-size:8px}.topbar-resources{gap:5px}.resource-chip{min-width:0;padding:5px 6px;border:0;background:transparent}.resource-chip .resource-icon{width:23px;height:23px;background:transparent!important}.resource-chip small{display:none}.resource-chip b{font-size:12px}.player-chip,.logout{display:none}.sound-trigger{width:34px;height:34px}.main-navigation{position:fixed;z-index:var(--rpg-z-nav);left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;min-height:67px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--rpg-line);background:#fcfdf8f0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 -10px 30px #1e464214}.main-navigation a{min-width:0;min-height:48px;margin:0 3px;padding:5px;flex-direction:column;gap:3px;font-size:10px}.main-navigation .active{background:var(--rpg-jade-100)}.main-navigation a i{bottom:1px}.app{padding:18px 16px calc(86px + env(safe-area-inset-bottom))}.app .page-heading{min-height:67px;padding-bottom:14px}.app .page-heading h1{font-size:32px}.heading-description{font-size:10px}.learning-tabs{width:100%;max-width:100%;gap:3px;overflow-x:auto;scrollbar-width:none}.learning-tabs a{flex:0 0 auto;padding-inline:11px;font-size:10px}.map-page .chapter-counter{width:105px;padding:9px 10px}.map-page .chapter-counter strong{font-size:20px}.realm-strip{margin-inline:0;border-radius:10px}.map-stages{display:flex;gap:7px;margin-inline:-16px;padding:0 16px 6px;overflow-x:auto;scrollbar-width:none}.map-stages button{min-width:138px;min-height:55px}.app .map-layout{display:flex;flex-direction:column;gap:12px;margin:0}.app .map-layout>.quest-panel{order:-1;padding:17px!important;border:1px solid rgba(177,126,45,.2);border-radius:var(--rpg-radius-md)}.quest-panel:before{display:none}.quest-panel .quest-number{position:static;width:auto;margin:12px 0 7px}.quest-panel .disclosure{display:none}.quest-panel .quest-action{margin-top:14px}.quest-panel .mentor-note{display:none!important}.map-layout>.disclosure>.disclosure-heading{display:block;padding:0 13px}.world-map{min-height:420px;border-radius:0 0 12px 12px}.map-route-glow{bottom:25%}.map-legend{gap:9px}.battle-page .page-heading{min-height:62px}.battle-view-tools{gap:8px}.battle-view-tools .text-button,.battle-view-tools .rpg-button{font-size:10px}.battle-hud>span{display:none}.arena{margin:0;border-radius:12px}.app .scene-compact .arena{padding-top:134px}.app .scene-compact .fighters{inset:40px 5% auto;height:90px}.app .scene-compact .arena-task{padding:11px 13px}.versus{width:42px;height:42px}.versus span{font-size:13px}.work{grid-template-columns:1fr}.editor-section{padding:13px}.editor-actions{position:sticky;z-index:8;bottom:calc(69px + env(safe-area-inset-bottom));flex-wrap:wrap;padding:9px;margin:13px -5px 0;border:1px solid var(--rpg-line);border-radius:11px;background:#fbfcf7f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -8px 24px #1c444014}.editor-actions .save-draft-button{width:38px}.editor-actions .hint-button,.editor-actions .run-button{flex:1;padding-inline:8px;font-size:10px}.editor-actions .cast-button{flex-basis:100%;order:4;width:100%;min-width:0;margin-left:0}.battle-guide-slot{padding:13px}.app .result-v2{margin:-18px -16px calc(-86px - env(safe-area-inset-bottom));padding:24px 16px calc(95px + env(safe-area-inset-bottom))}.result-v2 h1{font-size:36px}.result-hero{height:170px}.app .result-v2 .result-character{height:158px}.result-recap{padding:17px 14px}.result-loot{flex-direction:column;gap:12px}.result-v2 .result-actions{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 390px){.brand>span:last-child{font-size:21px}.brand small,.topbar-resources .resource-icon{display:none}.resource-chip{padding-inline:3px}.map-page .chapter-counter{width:90px}.map-page .chapter-counter>span{font-size:8px}.node-label{max-width:116px;white-space:normal;line-height:1.25}.result-v2 .result-damage{gap:6px}.result-v2 .result-damage strong{font-size:29px}}.game-location-page{--world-green: #294d3d;--world-green-deep: #193a32;--world-gold: #c8aa68;--world-paper: #f4f5e9;position:relative}.game-location-heading{position:relative;display:flex;align-items:center;gap:18px;min-height:108px;margin-bottom:17px;padding:20px 24px;overflow:hidden;border:1px solid #8fa286;border-radius:8px;color:#e7e8cf;background-color:var(--world-green);box-shadow:0 10px 28px #29483a1f;isolation:isolate}.game-location-heading:before{content:"";position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;opacity:.38;background:url(/art/cave-estate.svg) center 47% / 125% auto no-repeat}.game-location-heading:after{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#18392ff2,#294c3dd9 53%,#345744b8)}.game-location-mark{display:grid;place-items:center;flex:0 0 55px;width:55px;height:61px;border:1px solid #d4c48b8a;outline:1px solid #d4c48b30;outline-offset:4px;color:#ead598;background:#1d3c34a8}.game-location-copy{min-width:0}.game-location-copy p{color:#bdcdb7;font-size:10px;margin-bottom:4px}.game-location-copy h1{color:#f4ecd1;font:35px/1.18 var(--brush);letter-spacing:0}.game-location-copy>span{display:block;margin-top:6px;color:#c5d0ba;font-size:11px}.location-tally{display:grid;min-width:125px;margin-left:auto;padding-left:23px;border-left:1px solid #d7ca9b42}.location-tally small{color:#b8c8b2;font-size:9px}.location-tally strong{color:#f0d38c;font-size:28px;font-weight:400;margin:2px 0;font-variant-numeric:tabular-nums}.location-tally span{display:flex;align-items:center;gap:5px;color:#c6d1b9;font-size:9px}.map-location-heading{margin-bottom:10px;background-color:#284b42}.map-location-heading:before{background-image:url(/art/java-mountains.svg);background-position:center 46%;background-size:cover;opacity:.72}.map-location-heading:after{background:linear-gradient(90deg,#173b35ed,#315d50c7 55%,#1e4840a8)}.map-location-heading .chapter-counter{margin-left:auto;width:168px;padding:12px 15px;border-color:#d3c68a52;background:#edf0dce8;box-shadow:0 7px 20px #172d2442}.map-page .realm-strip{background:#edf1e7;border-color:#9dac8d;box-shadow:none}.map-page .map-stages{padding:8px;margin-top:9px;border:1px solid #9aaa8e;border-radius:7px;background:#263f35}.map-page .map-stages button{color:#bfcab5;border-color:transparent;background:transparent;box-shadow:none}.map-page .map-stages button:hover{border-color:#cbb87975;background:#385344;box-shadow:none}.map-page .map-stages button[aria-pressed=true]{color:#f0e3b9;border-color:#d3b87369;background:#536048;box-shadow:inset 0 -2px #d0b46e}.map-page .map-stages button>i{color:#d9c47e}.map-page .map-layout{border:1px solid #81937a;border-radius:10px;overflow:hidden;gap:0;box-shadow:0 18px 38px #26453625;background:#29483a}.map-page .map-layout>.disclosure{border:0;border-radius:0;box-shadow:none}.map-page .world-map{min-height:570px;border-radius:0}.map-page .world-map:after{box-shadow:inset 0 0 90px #183a35a1;border-right:1px solid #a99b6647}.map-page .quest-panel{border:0;border-radius:0;background:linear-gradient(155deg,#f3f3e7,#e8ecdd);box-shadow:none}.map-page .map-bottom{margin-top:14px;padding:10px 14px;border:1px solid #b8c5b1;border-radius:6px;background:#eef2e8b8}.learning-location-heading:before{background-position:77% 31%;background-size:165% auto;opacity:.64}.learning-location-heading:after{background:linear-gradient(90deg,#1c3a32f2,#355342dc 58%,#675b3bb8)}.learning-page .learning-tabs,.bag-page .learning-tabs{gap:0;margin:0 0 18px;padding:0 14px;border:1px solid #9cab8f;border-radius:6px;background:#29463a;overflow-x:auto;scrollbar-width:none}.learning-page .learning-tabs a,.bag-page .learning-tabs a{flex:0 0 auto;min-width:112px;padding:14px 16px 12px;border-bottom:3px solid transparent;color:#bdcbb8;text-align:center}.learning-page .learning-tabs a:hover,.bag-page .learning-tabs a:hover{color:#f4e7bd;background:#ffffff0a}.learning-page .learning-tabs a.active,.bag-page .learning-tabs a.active{color:#f0d995;border-color:#c6aa62;background:linear-gradient(0deg,#c8ab671f,transparent)}.learning-page .learning-overview{position:relative;gap:32px;padding:26px 28px;border:1px solid #b2bea8;border-radius:8px;background:linear-gradient(105deg,#f5f5e8,#edf1e5);box-shadow:0 9px 24px #29483a10}.learning-page .learning-overview:before{content:"修";position:absolute;right:30px;top:-5px;color:#a48c4e12;font:112px var(--brush);pointer-events:none}.learning-page .learning-overview h2{color:#294637;margin-bottom:18px}.learning-page .learning-numbers{position:relative;z-index:1;border-color:#bdc8b4}.learning-page .learning-numbers strong{color:#927837}.learning-page .learning-summary{margin:12px 0 20px;padding:11px 18px;border:1px solid #aebb9f;border-radius:6px;background:#2c483b;color:#dce2ce}.learning-page .learning-summary div+div{border-color:#c5d0b02b}.learning-page .learning-summary dt{color:#b9c6b1}.learning-page .learning-summary dd{color:#ead28e}.learning-page .content-tabs{border:1px solid #b4c1a9;border-radius:8px;overflow:hidden;background:#f4f5eaab}.learning-page .content-tablist{margin:0;padding:0 18px;background:#e4eadd;border-bottom-color:#afbc9f}.learning-page .content-tab-panel{padding:24px}.learning-page .recommendation{padding:15px;margin-bottom:9px;border:1px solid #bac5ae;border-radius:6px;background:#f8f8ef}.learning-page .recommendation:last-child{border-bottom:1px solid #bac5ae}.learning-page .recommend-icon{border:1px solid #b0c1a5}.learning-page .daily-tasks{padding:20px;border:1px solid #b8c5ad;border-radius:7px;background:#eef1e5}.learning-page .daily-heading{border-bottom-color:#b5c1aa}.bag-location-heading:before{background-position:83% 73%;background-size:150% auto;opacity:.66}.bag-location-heading:after{background:linear-gradient(90deg,#203a31f2,#4a5039dd 58%,#75603ab8)}.bag-page .inventory-summary{position:relative;display:grid;grid-template-columns:auto auto auto 1fr;gap:16px;margin:0 0 13px;padding:20px 24px;border:1px solid #aaae87;border-radius:7px;background:linear-gradient(105deg,#ebe9d6,#f4f3e6);box-shadow:0 7px 20px #4d493117}.bag-page .inventory-summary>svg{align-self:center}.bag-page .inventory-summary>div{min-width:88px;padding-right:22px;border-right:1px solid #c4c4a5}.bag-page .inventory-summary strong{color:#465c3c}.bag-page .inventory-summary>p{align-self:center;justify-self:end}.bag-page .learning-tabs{background:#3f4735;border-color:#888d6c}.bag-page>.section-title{margin:21px 0 14px;padding:13px 17px;border-left:3px solid #ae9659;background:#eff1e6}.bag-page .book-grid{gap:15px}.bag-page .book-item{position:relative;min-height:154px;border-color:#adb99e;background:linear-gradient(120deg,#f7f7ed,#ebeee2);box-shadow:0 7px 16px #314a3712;overflow:hidden}.bag-page .book-item:after{content:"";position:absolute;right:-22px;bottom:-28px;width:78px;height:78px;border:1px solid #b39a5e2e;border-radius:50%}.bag-page .book-cover{box-shadow:5px 7px #263e2e14}.bag-page .illustrated-empty{min-height:360px;border:1px solid #b7c2ad;border-radius:8px;background:#f2f4e9}.bag-page .shop-intro{border-color:#acb999;background:#eff1e4}.bag-page .shop-card{border-color:#aeb99e;background:#f5f5ea;box-shadow:0 8px 20px #35463212}.story-page{min-height:100%}.story-page .story-stage{min-height:calc(100dvh - 146px);border:1px solid #778d7b;border-radius:10px;box-shadow:0 18px 42px #2443382e;background:#345749}.story-page .story-background{filter:saturate(.88) contrast(1.04);transform:scale(1.015)}.story-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#173830ad 0%,transparent 37%,#17342ea8 75%,#142e29e6 100%),linear-gradient(90deg,#18382e5c,transparent 40%,#19382e42)}.story-scene-heading{position:absolute;z-index:2;top:28px;left:32px;display:flex;align-items:center;gap:15px;color:#e7e8cd;text-shadow:0 2px 8px #132b25}.story-chapter-seal{display:grid;place-items:center;width:45px;height:51px;border:1px solid #dbc984aa;outline:1px solid #dbc9843d;outline-offset:4px;color:#efd895;background:#203e35bd;font:25px var(--brush)}.story-scene-heading p{color:#c1d0ba;font-size:9px}.story-scene-heading h1{color:#f2e8c8;font:37px/1.2 var(--brush);margin:2px 0}.story-scene-heading div>span{color:#c3ceb7;font-size:10px}.story-objective{position:absolute;z-index:2;top:30px;right:30px;display:grid;grid-template-columns:22px auto;gap:2px 8px;min-width:190px;padding:11px 14px;color:#d5dfcc;border:1px solid #c6bc8666;border-radius:5px;background:#1f3d35d6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.story-objective svg{grid-row:1 / 3;align-self:center;color:#d7bd79}.story-objective span{font-size:9px;color:#afc1b1}.story-objective b{font-size:11px;font-weight:500}.story-page .story-mentor{z-index:2;bottom:183px;height:345px;width:290px;left:calc(50% - 145px);filter:drop-shadow(0 14px 10px #1e392e59)}.story-page .story-dialogue{z-index:3;bottom:25px;left:3%;right:3%;min-height:178px;padding:21px 25px 18px;border:1px solid #c6ba86;border-left:4px solid #a98b45;border-radius:6px;background:#f4f3e6f2;box-shadow:0 15px 38px #182f2854;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.story-speaker{display:flex;align-items:center;gap:11px}.story-speaker>span{display:grid;place-items:center;width:35px;height:39px;color:#f6e7b6;background:#365844;border:1px solid #778b69;font:20px var(--brush)}.story-speaker small{color:#798271;font-size:9px}.story-speaker h2{font:23px var(--brush);margin-top:2px}.story-progress{display:flex;align-items:center;gap:5px;margin-left:auto;color:#7e866f}.story-progress i{display:block;width:25px;height:3px;border-radius:2px;background:#d4dacd}.story-progress i.active{background:#aa904e}.story-progress b{margin-left:6px;font-size:10px;font-weight:400}.story-page .story-dialogue>p{min-height:42px;margin:9px 46px 0;color:#3f594a;font-size:13px;line-height:1.9;animation:story-line .28s ease-out}.story-page .story-actions{margin:4px 0 0}.story-page .story-actions .primary{justify-content:space-between;min-width:142px;background:#345d43;border-color:#284c36;box-shadow:0 3px #223e2c}.level-up-dialogue{position:relative;width:100%;margin-top:16px;padding:16px 18px 14px;color:#e7e5c9;border:1px solid #b89a5a;border-left:4px solid #d0ae61;background:linear-gradient(105deg,#2c4a3c,#3c5943);box-shadow:0 9px 22px #1e392d2e;text-align:left}.level-up-speaker{display:flex;align-items:center;gap:12px}.level-up-speaker img{align-self:end;width:58px;height:67px;object-fit:contain;margin:-9px 0 -5px;filter:drop-shadow(0 5px 4px #172e2559)}.level-up-speaker div{min-width:0}.level-up-speaker small{color:#c0c7aa;font-size:9px}.level-up-speaker h2{margin-top:2px;color:#f2df9e;font:23px var(--brush)}.level-up-speaker span{color:#b5c5ae;font-size:10px}.level-up-speaker>svg{margin-left:auto;flex:0 0 auto;color:#e2c978}.level-up-dialogue>p{min-height:43px;margin:10px 4px 8px 70px;color:#e9ebd8;font-size:12px;line-height:1.85}.level-up-actions{display:flex;justify-content:flex-end;min-height:34px}.level-up-actions .primary{min-width:112px;min-height:34px;padding:7px 11px;font-size:11px}.level-up-complete{display:inline-flex;align-items:center;gap:6px;color:#e5d18a;font-size:10px}@keyframes story-line{0%{opacity:0;transform:translateY(5px)}}@media (max-width: 1050px){.map-page .world-map{min-height:520px}.learning-page .content-tab-panel{padding:20px}.story-page .story-stage{min-height:640px}}@media (max-width: 760px){.game-location-heading{min-height:92px;padding:15px 16px;gap:13px}.game-location-mark{flex-basis:42px;width:42px;height:47px}.game-location-mark svg{width:19px}.game-location-copy h1{font-size:29px}.game-location-copy>span{font-size:9px}.location-tally{min-width:76px;padding-left:12px}.location-tally strong{font-size:23px}.map-location-heading .chapter-counter{width:103px;padding:8px 9px}.map-page .map-stages{margin-inline:0;padding:6px;background:#263f35}.map-page .map-stages button{min-width:134px}.map-page .map-layout{margin:0;display:flex;border-radius:8px}.map-page .map-layout>.quest-panel{border-top:1px solid #a99b6652}.map-page .map-layout>.disclosure>.disclosure-heading{background:#29463a;color:#dae0c9}.map-page .map-layout>.disclosure>.disclosure-heading button{color:inherit}.map-page .world-map{min-height:430px}.learning-page .learning-tabs,.bag-page .learning-tabs{margin-inline:0;padding-inline:5px}.learning-page .learning-tabs a,.bag-page .learning-tabs a{min-width:98px;padding-inline:10px}.learning-page .learning-overview{padding:20px}.learning-page .learning-overview:before{font-size:85px;right:15px}.learning-page .learning-summary{margin-top:10px}.learning-page .content-tab-panel,.learning-page .daily-tasks{padding:15px}.bag-page .inventory-summary{grid-template-columns:auto 1fr 1fr;padding:16px}.bag-page .inventory-summary>p{grid-column:1 / -1;justify-self:start;margin:0;font-size:16px}.bag-page .inventory-summary>div{min-width:0;padding-right:10px}.story-page .story-stage{min-height:calc(100dvh - 103px);margin:0;border-radius:8px}.story-scene-heading{top:19px;left:20px;gap:12px}.story-scene-heading h1{font-size:30px}.story-chapter-seal{width:36px;height:42px;font-size:21px}.story-objective{top:91px;left:20px;right:auto;min-width:175px;padding:8px 11px}.story-page .story-mentor{height:255px;width:220px;left:calc(50% - 110px);bottom:235px}.story-page .story-dialogue{left:12px;right:12px;bottom:14px;min-height:214px;padding:17px}.story-page .story-dialogue>p{min-height:72px;margin:10px 4px 0;font-size:12px}.story-progress i{width:13px}.story-page .story-actions{margin-top:8px}.level-up-dialogue{margin-top:13px;padding:13px 13px 12px}.level-up-speaker img{width:46px;height:56px}.level-up-speaker h2{font-size:20px}.level-up-speaker span{font-size:9px}.level-up-dialogue>p{min-height:67px;margin:9px 2px 7px;font-size:11px}}@media (max-width: 390px){.game-location-copy>span,.game-location-copy p{display:none}.location-tally span{display:none}.map-location-heading .chapter-counter{width:86px}.learning-page .learning-tabs a{min-width:92px}.bag-page .learning-tabs a{min-width:50%}.story-scene-heading,.story-objective{left:16px}.story-speaker h2{font-size:21px}.story-progress b{display:none}}@media (prefers-reduced-motion: reduce){.story-page .story-dialogue>p{animation:none}}.academy-routes{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:13px;border:1px solid #8e9d83;background:#263f35;box-shadow:inset 0 0 24px #142c254f}.academy-routes:before{content:"";position:absolute;left:10%;right:10%;top:50%;height:1px;background:#c8b3713d;pointer-events:none}.academy-routes a{position:relative;display:grid;grid-template-columns:35px minmax(0,1fr) 14px;grid-template-rows:auto auto;align-items:center;gap:1px 10px;min-height:58px;padding:9px 11px;color:#bcc9b6;border:1px solid #ffffff0d;background:#345044e8;box-shadow:0 5px 12px #13282030;transition:transform .18s ease,border-color .18s ease,color .18s ease}.academy-routes a:hover{transform:translateY(-2px);color:#f1dfaa;border-color:#c8b3716b}.academy-routes a[aria-current]{color:#f4df9f;border-color:#caae6396;background:#4a5c46;box-shadow:inset 0 -3px #c8aa61}.academy-routes a>span{grid-row:1 / 3;display:grid;place-items:center;width:35px;height:39px;color:#dac481;border:1px solid #bda7645c;background:#1f3930}.academy-routes a>b{align-self:end;font-size:12px;font-weight:500}.academy-routes a>small{align-self:start;color:#91a292;font-size:9px}.academy-routes a>svg{grid-column:3;grid-row:1 / 3;color:#819383}.map-page .map-stages{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:12px 0 16px;padding:12px 18px;border:1px solid #84947e;border-radius:0;background:#213b32;overflow-x:auto;scrollbar-width:none}.map-page .map-stages:before{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#a9986463}.map-page .map-stages a{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;min-width:135px;min-height:52px;padding:8px 10px;color:#acbdae;border:1px solid #698073;background:#2e4a3d;box-shadow:0 5px #172b24}.map-page .map-stages a:hover{color:#f1dfad;border-color:#c2aa65;transform:translateY(-2px)}.map-page .map-stages a.current{color:#f5e1a5;border-color:#cfb66c;background:#506047;box-shadow:0 5px #28372d,inset 0 0 16px #d0b9701a}.map-page .map-stages a>span:nth-child(2){font:17px var(--brush)}.map-page .map-stages a>i{color:#d9c37e;font-size:9px;font-style:normal}.stage-route{display:grid;place-items:center;color:#cdb973}.stage-route small{font-size:8px}.world-map-shell{min-width:0;height:100%;overflow:hidden;border-right:1px solid #a99b6647}.learning-page .learning-summary{position:relative;display:flex;justify-content:center;gap:0;margin:12px 0 18px;padding:0;border:1px solid #a79667;border-radius:0;background:#eee9d8;color:#304a3d;box-shadow:0 5px #c5bea7}.learning-page .learning-summary:before,.learning-page .learning-summary:after{content:"";width:20px;background:#584f39}.learning-page .learning-summary>div{flex:1;max-width:230px;padding:13px 24px;border-left:1px dashed #b4aa88;text-align:center}.learning-page .learning-summary>div:first-child{border-left:0}.learning-page .learning-summary dt{color:#687369;font-size:9px}.learning-page .learning-summary dd{margin:4px 0 0;color:#8e7335;font:23px var(--brush)}.study-courtyard{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);gap:16px;align-items:start}.study-desk{min-height:100%;padding:20px;border:1px solid #a9b39b;background:#f1f1e3;box-shadow:inset 8px 0 #38514312}.study-desk .section-title{padding-bottom:12px;border-bottom:1px solid #b8c0aa}.study-desk .section-title small{color:#8d855f;font-size:9px}.study-desk .recommendation{margin-top:10px;padding:14px;border:1px solid #b8c1ab;background:#f8f7eb}.knowledge-scroll{position:relative;margin-top:20px;padding:20px 26px 24px;border:1px solid #afa98b;background:#f3efdf;box-shadow:0 7px 18px #3b503b12}.knowledge-scroll:before,.knowledge-scroll:after{content:"";position:absolute;left:10px;right:10px;height:5px;border:1px solid #766e50;background:#4e523d}.knowledge-scroll:before{top:-4px}.knowledge-scroll:after{bottom:-4px}.scroll-shelf-heading{display:flex;align-items:end;gap:13px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #b7b092}.scroll-shelf-heading>span{color:#87784f;font-size:9px}.scroll-shelf-heading h2{font:25px var(--brush)}.scroll-shelf-heading small{margin-left:auto;color:#7b8677}.library-inscription{display:flex;align-items:center;gap:14px;min-height:72px;margin-bottom:18px;padding:14px 18px;color:#e3e7d3;border:1px solid #86947b;background:#344a39;box-shadow:inset 0 -7px #28392e}.library-inscription>svg{color:#d8bd73}.library-inscription h2{color:#f1e4bc;font:21px var(--brush)}.library-inscription p{margin-top:4px;color:#b4c1ae;font-size:10px}.library-inscription>span{margin-left:auto;color:#ddc579;font:22px var(--brush)}.skill-library-page>.scroll-shelf-heading{margin:0;padding:11px 17px;color:#e8dcc0;border:1px solid #655f47;background:#413f30}.skill-library-page .skill-grid{position:relative;gap:14px;padding:19px 18px 25px;border-inline:1px solid #847d60;background:#313b2e;box-shadow:inset 0 -11px #202b22}.skill-library-page .skill-card{min-height:194px;padding:18px 17px 16px 22px;border:1px solid #b3aa83;border-left:7px solid #627a62;border-radius:1px;background:#eeeada;box-shadow:5px 7px #1c2921}.skill-library-page .skill-card.tone-2{border-left-color:#747f9c}.skill-library-page .skill-card.tone-3{border-left-color:#a58c54}.skill-library-page .skill-card.locked{filter:saturate(.55);opacity:.8}.skill-library-page .skill-card:after{right:13px;top:44px;width:36px;height:105px;border-color:#9887512b}.skill-library-page .skill-card h2{font-size:27px}.vault-doors{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:20px}.vault-doors a{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 20px;align-items:center;gap:13px;min-height:72px;padding:12px 16px;color:#dbe1cf;border:1px solid #7d8465;background:#3f4937;box-shadow:inset 0 -6px #30382c,0 5px 12px #343b2b1a}.vault-doors a:hover{color:#f0d999;border-color:#b19b5f}.vault-doors a[aria-current]{color:#f0dc9d;border-color:#c3a85f;box-shadow:inset 0 -6px #775f32,0 5px 12px #343b2b1a}.vault-doors a>span{display:grid;place-items:center;width:44px;height:48px;color:#ddc278;border:1px solid #aa985e68;background:#2a382c}.vault-doors b,.vault-doors small{display:block}.vault-doors b{font:18px var(--brush)}.vault-doors small{margin-top:4px;color:#aeb9a6;font-size:9px}.review-location-heading:before{background-position:24% 58%}.review-scroll-heading{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 17px;color:#ebe3c9;border:1px solid #765e51;background:#493b35}.review-scroll-heading>svg{color:#d49b78}.review-scroll-heading small{color:#bda99c;font-size:9px}.review-scroll-heading h2{margin-top:2px;font:23px var(--brush)}.review-scroll-heading>span{color:#d5b09a;font-size:9px}.review-cave-page .review-list{padding:6px 20px 17px;border:1px solid #b5aa8d;border-top:0;background:#f2eee0}.review-cave-page .review-list article{margin:0;padding:17px 4px;border-bottom:1px dashed #b5aa8d}.review-cave-page .review-number{display:grid;place-items:center;width:41px;height:46px;color:#8f614f;border:1px solid #b18c75;background:#eadfd1}.collection-pager{justify-content:flex-end;min-height:40px}.collection-range{margin-right:auto}.collection-page-stones{display:flex;align-items:center;gap:5px}.collection-page-stones button{width:29px;height:31px;color:#68786b;border:1px solid #aeb7a4;background:#ececdd;font:14px var(--brush)}.collection-page-stones button:hover{color:#8c7137;border-color:#ad965e}.collection-page-stones button[aria-current]{color:#f1dfaa;border-color:#b89d5a;background:#405542}@media (max-width: 900px){.academy-routes{grid-template-columns:repeat(2,minmax(0,1fr))}.study-courtyard{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.academy-routes{gap:7px;padding:8px}.academy-routes a{grid-template-columns:31px minmax(0,1fr);min-height:52px;padding:7px 8px;gap:1px 8px}.academy-routes a>span{width:31px;height:35px}.academy-routes a>svg{display:none}.map-page .map-stages{gap:10px;margin-inline:0;padding:10px 13px}.map-page .map-stages a{min-width:127px}.world-map-shell{border-right:0;border-top:1px solid #a99b6652}.learning-page .learning-summary:before,.learning-page .learning-summary:after{width:9px}.learning-page .learning-summary>div{padding:11px 6px}.learning-page .learning-summary dd{font-size:20px}.study-desk,.knowledge-scroll{padding:15px}.skill-library-page .skill-grid{padding:13px}.skill-library-page .skill-card{min-height:142px;padding:14px 66px 14px 16px}.skill-library-page .skill-card-top{right:13px}.vault-doors{gap:8px}.vault-doors a{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:10px}.vault-doors a>span{width:34px;height:39px}.vault-doors a>svg{display:none}.review-scroll-heading{grid-template-columns:32px minmax(0,1fr)}.review-scroll-heading>span{display:none}.review-cave-page .review-list{padding-inline:13px}.collection-range{font-size:10px}}@media (max-width: 390px){.academy-routes a>small,.vault-doors small{display:none}.academy-routes a{grid-template-rows:1fr}.vault-doors b{font-size:16px}.collection-page-stones button{width:27px}}#root:has(.game-app){grid-template-rows:0 minmax(0,1fr) 0!important}#root:has(.game-app)>.topbar{display:none}#root:has(.game-app) .main-navigation{display:none}#root:has(.game-app) .app{max-width:none;min-height:100dvh;padding:30px 36px 42px;background:linear-gradient(180deg,#1b3c35e8 0,#e6eee3f4 38%,#edf1e8),url(/art/cave-estate.svg) center / cover fixed}.game-app .route-stage:not(:has(.cave-page)){width:min(100%,1320px);min-height:100%;margin:0 auto}.game-app .world-return{position:relative;z-index:3;display:inline-flex;margin:0 0 12px;padding:7px 11px;color:#ebdfb8;border:1px solid #c2b67d6e;border-radius:4px;background:#203e35b8}.game-app .world-return:hover{color:#fff0c9;background:#345542;text-decoration:none}.game-app .game-location-page,.game-app .battle-page{min-height:calc(100dvh - 72px)}@media (max-width: 760px){#root:has(.game-app) .app{padding:18px 16px 30px}.game-app .route-stage:not(:has(.cave-page)){width:100%}.game-app .world-return{margin-bottom:9px;font-size:11px}.game-app .game-location-page,.game-app .battle-page{min-height:calc(100dvh - 48px)}}
