/* XiaoxiaKe / fifth edition. All fonts and media are local. */
:root{--green:#00624f;--forest:#064f40;--ink:#193e34;--muted:#53685f;--paper:#fcfaf5;--cream:#f1ebdf;--orange:#ff5a00;--rust:#a64016;--line:#d3d8cc;--serif:"STSong","Songti SC","SimSun",serif;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-padding-top:72px;color-scheme:light;-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:18px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2{font-family:var(--serif);font-weight:500;line-height:1.35;text-wrap:balance}
h3{font-size:22px;font-weight:600;line-height:1.55}
p{overflow-wrap:break-word;line-break:strict}
.phrase{display:inline-block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;cursor:pointer;background:none;min-height:44px;touch-action:manipulation}
button:disabled{opacity:.38;cursor:default}
button,a{-webkit-tap-highlight-color:transparent;outline-offset:5px}
:focus-visible{outline:3px solid var(--rust)}.forest :focus-visible{outline-color:#ffc597}
h1:focus,h2:focus{outline:none}
img{display:block;max-width:100%;height:auto}svg{display:block}
[hidden]{display:none!important}.js-only{display:none!important}.js .js-only{display:flex!important}.js [hidden]{display:none!important}
.skip-link{position:fixed;top:-100px;left:20px;padding:10px 20px;background:white;z-index:100}.skip-link:focus{top:10px}
.toolbar{position:fixed;inset:0 0 auto;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1240px)/2));background:var(--paper);border-bottom:1px solid var(--line);z-index:20}
.wordmark{display:flex;gap:16px;align-items:center;font-size:23px;font-weight:700;letter-spacing:.08em;min-height:44px}
.wordmark span{font-size:12px;font-weight:400;letter-spacing:.16em;border-left:1px solid var(--line);padding-left:16px;color:var(--muted)}
.toolbar__actions{gap:8px;align-items:center}.toolbar__actions button{padding:0 12px;font-size:14px;white-space:nowrap;border:1px solid transparent;transition:background .18s,border-color .18s}
.toolbar__actions button[aria-pressed="true"]{border-color:var(--green);color:var(--green)}
#soundButton:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:#aab8b0;vertical-align:1px}#soundButton[aria-pressed="true"]:before{background:var(--orange);box-shadow:0 0 0 4px rgb(255 90 0 / .12);animation:music-pulse 1.8s ease-in-out infinite}
#menuButton{display:flex;gap:12px;align-items:center;border-color:var(--line);margin-left:8px}.menu-icon{display:block;width:16px;height:9px;border-block:1px solid currentColor}
.screen{position:relative;min-height:100svh;scroll-margin-top:0;border-bottom:1px solid var(--line);overflow:clip}
.paper{background:var(--paper)}.cream{background:var(--cream)}.forest{background:var(--forest);color:var(--paper);--line:#477567;--muted:#d1ded5}
.chapter{position:relative;width:min(1240px,100%);margin:auto;min-height:100svh;padding:120px 40px 110px;display:flex;flex-direction:column;justify-content:center}
.eyebrow{font-size:13px;letter-spacing:.14em;font-weight:500;color:var(--rust);margin-bottom:18px;line-height:1.7}
.forest .eyebrow{color:#ffb07c}.section-heading{margin-bottom:40px}
.section-heading h2{font-size:clamp(32px,3.7vw,50px);max-width:18em;letter-spacing:.015em}
.heading-split{display:grid;grid-template-columns:1.7fr 1fr;gap:50px;align-items:end}
.heading-split .lead{max-width:20em;padding-bottom:4px}
.lead{font-size:20px;line-height:1.85;color:var(--muted)}
.micro-label,.art-label{font-size:13px;letter-spacing:.07em;color:var(--muted)}
.interaction-note,.source-note,.view-hint{font-size:14px;line-height:1.8;color:var(--muted);margin-top:24px}
.button{display:inline-flex;width:fit-content;align-items:center;justify-content:space-between;gap:44px;min-height:54px;padding:12px 23px;border:1px solid var(--green);background:var(--green);color:white;font-size:16px;transition:background .2s}
.button span{font-size:21px}.text-button,.text-link{min-height:44px;display:inline-flex;gap:22px;align-items:center;font-size:15px;border-bottom:1px solid currentColor;padding:8px 0;white-space:nowrap}
.cover-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}.cover-actions .button>span:first-child{font-size:16px}.quiet-entry{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:8px 2px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.quiet-entry span{font-size:17px;color:var(--green)}
.cover-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.cover-orbit{position:absolute;right:-8%;top:4%;width:min(80vw,1100px);aspect-ratio:1;border:1px solid #d8e0d4;border-radius:50%;pointer-events:none;animation:orbit-turn 30s linear infinite;animation-play-state:paused}
.cover-orbit:after{content:"";position:absolute;inset:9%;border:1px solid #e2e3d7;border-radius:50%}
.cover-orbit i{position:absolute;display:block;inset:6% auto auto 21%;width:30px;height:30px;border-radius:50%;background:var(--orange)}
.cover-orbit i+i{inset:auto 9% 18% auto;width:18px;height:18px;background:var(--green)}
.is-current .cover-orbit{animation-play-state:running}
.school-signature{width:330px;max-width:90%;height:auto;margin-bottom:52px}
.cover h1{font-size:clamp(72px,8.3vw,112px);line-height:1.15;letter-spacing:.04em;color:var(--green);white-space:nowrap}
.title-dot{color:var(--orange);font-family:var(--sans);font-size:.65em;letter-spacing:0;margin-left:-.14em}
.cover-tagline{font-family:var(--serif);font-size:29px;line-height:1.6;margin-top:20px;letter-spacing:.03em}
.cover-intro{font-size:18px;color:var(--muted);margin:20px 0 30px;max-width:17em}
.cover-edition{margin-top:46px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.film-column{min-width:0;position:relative}.stage-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--green);font-size:12px;color:var(--muted)}
.film-card{background:white;border:1px solid var(--line);box-shadow:18px 24px 0 #e7e9dd}
.film-frame{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:white}
#logoPoster{width:76%;height:76%;object-fit:contain}#logoVideo{width:100%;height:100%;object-fit:contain;background:white}
.film-play{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);align-items:center;gap:10px;padding:8px 16px;min-height:44px;border:1px solid var(--line);background:var(--paper);font-size:14px;white-space:nowrap;color:var(--green)}
.play-icon{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor;margin-right:2px}
.play-duration{font-size:12px;border-left:1px solid var(--line);padding-left:10px;color:var(--muted)}
.film-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:22px}
.film-title{font:500 19px/1.6 var(--serif)}
#videoStatus{font-size:14px;color:var(--muted);line-height:1.75;margin-top:6px;min-height:25px;max-width:23em}
.film-caption .text-button{font-size:14px;flex:none}.film-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;align-items:center;margin-top:30px;font-size:14px;color:var(--muted)}
.film-foot a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;border-bottom:1px solid var(--line);gap:12px;color:var(--green)}
.origin-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:76px;align-items:center}
.origin-copy .lead{max-width:23em}.origin-route{position:relative;margin-top:38px;padding-top:42px}
.origin-route svg{position:absolute;top:0;left:0;width:100%;height:80px;overflow:visible}
.route-base,.route-ink{fill:none;stroke-width:1.5}.route-base{stroke:#d7ddcc}.route-ink{stroke:var(--orange);stroke-dasharray:1;stroke-dashoffset:0}
.is-current .route-ink{animation:route-draw 1.8s ease-out both}
.origin-chain{position:relative;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0;gap:22px}
.origin-chain li{position:relative}.route-dot{display:block!important;width:12px;height:12px;border:3px solid var(--paper);outline:1px solid var(--orange);background:var(--orange);border-radius:50%;margin-bottom:22px}
.origin-chain li:nth-child(2){padding-top:7px}.origin-chain li:nth-child(3){padding-top:0}
.origin-chain small{display:block;font-size:12px;color:var(--muted)}.origin-chain strong{display:block;font:500 34px/1.5 var(--serif);margin:7px 0;color:var(--green)}
.origin-chain li>span:last-child{display:block;font-size:14px;color:var(--muted)}
.origin-bottom{border-top:1px solid var(--line);padding-top:24px;margin-top:32px;font-size:17px}
.origin-art{position:relative;text-align:center;padding-bottom:12px}
.origin-art img{position:relative;width:100%;z-index:1;transform-origin:50% 90%;animation:companion-breathe 6s ease-in-out infinite;animation-play-state:paused}
.is-current .origin-art img{animation-play-state:running}
.origin-sun{position:absolute;inset:8% 8% 10%;border-radius:50% 50% 46% 54%;background:#e7d9b7}
.origin-art:before{content:"";position:absolute;inset:1% 1% 3%;border:1px solid #d8dfce;border-radius:50%;transform:rotate(-15deg)}
.origin-art figcaption{position:relative;font-size:14px;color:var(--muted);z-index:1}
.art-stamp{position:absolute;right:2%;bottom:12%;border:1px solid var(--rust);border-radius:50%;padding:13px 16px;font:500 17px/1.4 var(--serif);color:var(--rust);transform:rotate(10deg);z-index:2}
.meaning-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:76px;align-items:center}
.meaning-figure{background:#fffefa;border:1px solid var(--line);padding:26px 28px 0;box-shadow:-13px 13px 0 #e4ddce}
.meaning-art{position:relative;aspect-ratio:1;display:grid;place-items:center;margin-top:12px}
.meaning-art img{width:92%;height:92%;object-fit:contain}.meaning-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.meaning-focus{opacity:0;fill:none;stroke:var(--rust);stroke-width:.65;stroke-dasharray:2 1.5;transition:opacity .25s}
[data-active="landscape"] .focus-landscape,[data-active="people"] .focus-people,[data-active="badge"] .focus-badge{opacity:1}
.meaning-figure figcaption{border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;gap:15px;min-height:94px;font-size:14px;color:var(--muted)}
.colour-pair{display:flex;gap:5px;flex:none;padding:4px;border:1px solid transparent;transition:border-color .2s}
.colour-pair i{display:block;width:12px;height:24px;background:var(--green)}.colour-pair i+i{background:var(--orange)}[data-active="colour"] .colour-pair{border-color:var(--rust)}
.meaning-item{position:relative;border-top:1px solid var(--line);padding:18px 0 18px 16px;border-left:2px solid transparent;transition:border-color .2s,background .2s}
.meaning-item.is-selected{border-left-color:var(--orange);background:#f9f5ec}.meaning-item:last-of-type{border-bottom:1px solid var(--line)}
.meaning-item h3 button{display:flex;align-items:center;text-align:left;gap:18px;width:100%;padding:0 14px 0 0;min-height:48px}
.item-number{font:400 14px/1 var(--sans);color:var(--rust)}
.meaning-item small{font:400 14px/1.5 var(--sans);display:inline-block;color:var(--muted);margin-left:16px}
.meaning-arrow{margin-left:auto;font-size:21px;color:var(--muted);transition:transform .25s}.meaning-item.is-selected .meaning-arrow{color:var(--rust);transform:rotate(45deg)}
.meaning-item p{margin:14px 20px 0 34px;font-size:18px;line-height:1.85;color:var(--muted)}
.js .meaning-item:not(.is-selected) p{display:none}
.character-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
.character-platform{position:relative;background:#f3ede0;overflow:hidden;padding:24px 20px 0;border:1px solid #e1ded0}
.character-platform .art-label{position:relative;z-index:2}.character-platform img{position:relative;width:100%;max-width:420px;margin:auto;z-index:1}
.character-halo{position:absolute;inset:20% 13% 3%;border:1px solid #d5c7a5;border-radius:50% 50% 0 0;transform:rotate(-9deg)}
.character-halo:before{content:"";position:absolute;inset:10% -5% -1%;border:1px solid #dfd4bb;border-radius:50% 50% 0 0;transform:rotate(16deg)}
.view-tabs{justify-content:space-between;gap:0;margin-top:14px;width:100%;border-bottom:1px solid var(--line);padding-bottom:10px}
.view-tabs button{font-size:15px;min-width:44px;flex:1;padding:10px 8px;position:relative}
.view-tabs button[aria-selected="true"]{background:var(--green);color:white}
.profile-traits{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.profile-traits span{font-size:13px;border:1px solid #c6d4c5;padding:4px 12px;background:#f1f3e9;color:var(--green)}
.character-state h3{font:500 36px/1.5 var(--serif);margin:16px 0}.character-state>p:not(.micro-label){font-size:18px;line-height:1.9;color:var(--muted);max-width:23em;min-height:68px}
.character-state blockquote{font:500 24px/1.7 var(--serif);padding-left:22px;border-left:2px solid var(--orange);margin:25px 0 28px;max-width:20em}
.character-state blockquote{text-wrap:balance;line-break:strict;overflow-wrap:break-word}
details summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;min-height:52px;list-style:none;font-size:16px}
details summary::-webkit-details-marker{display:none}details summary span{font-size:22px;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details summary:focus-visible{outline:3px solid var(--rust);outline-offset:3px}
.profile-details,.future-details{border-block:1px solid var(--line)}.profile-list{margin:0;padding-bottom:12px}.profile-list div{display:grid;grid-template-columns:36px 1fr;gap:18px;padding:8px 0;font-size:16px}
.profile-list dt{color:var(--muted)}.profile-list dd{margin:0;line-height:1.8}.view-hint{margin-top:15px}
.spirit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.spirit-grid article{border:1px solid var(--line);position:relative;transition:background .3s,border-color .3s}
.spirit-grid article.is-selected{background:#165c48;border-color:#d4c59f}
.spirit-grid button{width:100%;padding:24px 28px 30px;text-align:left;display:flex;flex-direction:column;position:relative}
.spirit-number{font-size:12px;color:#cfdbc9}.spirit-symbol{font:400 100px/1.2 var(--serif);color:#e8d3ad;display:block;margin:25px 0 28px;transition:transform .3s}
.spirit-name{font-size:24px;display:block}.spirit-key{font-size:17px;color:#f0e5d2;margin-top:8px;display:block}
.spirit-arrow{position:absolute;right:24px;top:24px;font-size:25px;color:#d4c59f}
.spirit-fallback{font-size:17px;padding:0 28px 24px}.js .spirit-fallback{display:none}
.spirit-detail{align-items:center;gap:25px;margin-top:30px;min-height:62px;font-size:19px;line-height:1.8}
.spirit-detail>span{font-size:13px;white-space:nowrap;color:#ffb07c}.spirit-detail p{color:#f2eee0}
.school-values{border-top:1px solid var(--line);margin-top:24px}.school-values summary{font-size:15px;color:#d1ded5}
.school-values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:20px 0}
.school-values h3{font-size:18px;color:#eee5d3;font-weight:500}.school-values p{font-size:16px;color:var(--muted);margin-top:5px}
.service-layout{display:grid;grid-template-columns:.8fr 1.4fr;gap:60px;align-items:stretch}
.service-stops{flex-direction:column;position:relative;padding:8px 0}
.service-stops:before{content:"";position:absolute;top:32px;bottom:32px;left:22px;width:1px;background:#cbd5c7}
.service-stops button{position:relative;display:grid;grid-template-columns:44px 1fr;gap:1px 24px;padding:15px 14px 15px 0;text-align:left;width:100%;border-radius:0;align-items:center}
.service-stops button>span{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border:1px solid #b9cbb8;border-radius:50%;background:var(--paper);font-size:13px;transition:background .2s,color .2s}
.service-stops button strong{font-size:22px;font-weight:500}.service-stops button small{font-size:14px;color:var(--muted)}
.service-stops button[aria-pressed="true"]>span{background:var(--green);color:white;border-color:var(--green)}.service-stops button[aria-pressed="true"] strong{color:var(--green)}
.service-panel{position:relative;background:#e9ecdf;border:1px solid #d5dbc9;padding:44px 50px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;min-height:440px}
.service-entry{position:relative;z-index:1}.service-entry+.service-entry{margin-top:35px}.js .service-entry+.service-entry{margin-top:0}.js .service-entry:not(.is-selected){display:none}
.service-entry h3{font:500 44px/1.45 var(--serif);margin:20px 0 22px;max-width:11em}
.service-entry>p:not(.micro-label){font-size:18px;line-height:1.9;color:var(--muted);max-width:22em}.service-entry .text-link{margin-top:26px;color:var(--green)}
.service-watermark{position:absolute;right:5px;bottom:5px;font:400 300px/1 var(--serif);color:#dce3cf;transform:rotate(-9deg);pointer-events:none}
.service-hint{position:relative;font-size:14px;color:var(--muted);margin-top:35px}.source-note{margin-top:22px}
.application-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:76px;align-items:center}
.application-stage{position:relative;background:#eee3d1;overflow:hidden;touch-action:pan-y;border:1px solid #dbd0be;box-shadow:15px 15px 0 #e4dbc9}
.application-stage>img{width:100%;height:530px;object-fit:contain;user-select:none;-webkit-user-drag:none}
.gallery-index{position:absolute;left:17px;top:15px;font-size:12px;letter-spacing:.1em;background:#fcfaf5e8;padding:5px 10px;color:var(--ink)}
.zoom-button{position:absolute;right:15px;bottom:15px;gap:12px;align-items:center;padding:8px 14px;border:1px solid #c6cbbd;background:#fcfaf5f2;font-size:14px}
.concept-label{display:inline-flex;border:1px solid #bfceb8;color:var(--green);padding:4px 10px;font-size:12px;letter-spacing:.08em;margin-bottom:24px}
.application-story h3{font:500 44px/1.45 var(--serif);color:var(--green);margin:18px 0 22px}.application-story h3 span{display:block}
.application-story>p:not(.micro-label){font-size:18px;line-height:1.9;color:var(--muted);max-width:21em;min-height:70px}
.application-detail{font-size:14px;color:var(--rust);display:block;margin-top:18px}
.application-tabs{gap:0;justify-content:space-between;border-block:1px solid var(--line);margin-top:32px}
.application-tabs button{display:flex;flex-direction:column;gap:4px;align-items:start;position:relative;flex:1;padding:15px 9px;font-size:16px;min-height:75px;border-bottom:2px solid transparent}
.application-tabs button span{font-size:11px;color:var(--muted)}.application-tabs button[aria-selected="true"]{border-bottom-color:var(--orange);background:#faf6ed;color:var(--green)}
.gallery-controls{align-items:center;justify-content:space-between;gap:8px;margin-top:18px}.gallery-controls button{width:46px;height:46px;flex:none;border:1px solid #b8c6b1;border-radius:50%;font-size:22px}.gallery-controls p{font-size:13px;color:var(--muted);text-align:center}
.application-disclaimer{font-size:13px;line-height:1.8;color:var(--muted);margin-top:18px;max-width:29em}
.application-static{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}.application-static figcaption{font-size:16px;margin-top:10px}
.finale-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:40px 70px;align-items:center}
.finale h2{font-size:clamp(48px,5.4vw,72px);line-height:1.4;color:var(--green);letter-spacing:.04em}.finale h2 span{display:block}
.finale .lead{margin:25px 0;font-size:20px}.future-directions{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--green);margin:26px 0 18px}
.future-directions span+span:before{content:"·";margin-right:12px;color:var(--rust)}.future-details p{font-size:17px;line-height:1.9;color:var(--muted);padding:0 0 20px}.finale .text-link{margin-top:23px}
.finale-actions{margin-top:18px}.share-actions{align-items:center;flex-wrap:wrap;gap:10px;margin-top:24px}.share-actions button{min-height:46px;padding:8px 16px;border:1px solid var(--green);font-size:14px}.share-actions button:first-child{background:var(--green);color:white}.share-actions button:last-child{background:transparent;color:var(--green)}.share-note{margin-top:10px;font-size:13px;color:var(--muted)}
.finale-companion{position:relative;min-height:390px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.companion-ring{position:absolute;width:330px;height:330px;top:0;border:1px solid #cfdbc5;border-radius:50%;background:#edf0e4}
.companion-ring:after{content:"";position:absolute;inset:-14px;border:1px dashed #ced6c3;border-radius:50%;animation:orbit-turn 36s linear infinite;animation-play-state:paused}
.is-current .companion-ring:after{animation-play-state:running}
.pet-hello{position:relative;display:flex;align-items:center;flex-direction:column;width:100%;padding:30px 0 0;text-align:center}
.pet-hello img{width:192px;height:208px;object-fit:contain;margin:0 auto 36px;image-rendering:auto}
.pet-hello>span{font-size:14px;color:var(--muted);justify-content:center;align-items:center;gap:7px;min-height:44px;border-bottom:1px solid #c5cfba}
.companion-label{position:relative;margin-top:20px;font:500 18px/1.8 var(--serif);color:var(--muted)}
.finale-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid var(--line);padding-top:28px;margin-top:15px}
.school-credit{display:flex;align-items:center;gap:16px}.school-credit img{width:58px;height:58px}.school-credit p{font-size:15px;letter-spacing:.03em}.school-credit span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.finale-logo{width:68px;height:68px;object-fit:contain}
.reading-nav{position:fixed;inset:auto 0 0;z-index:20;background:var(--paper);border-top:1px solid var(--line);padding:9px max(28px,calc((100vw - 1240px)/2)) calc(9px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.reading-progress{position:absolute;top:-2px;left:0;right:0;height:2px;background:var(--line)}.reading-progress span{display:block;height:100%;background:var(--orange);width:12.5%;transition:width .28s ease}
.reading-nav button{font-size:14px;padding:0 10px;white-space:nowrap}.reading-position{display:flex;gap:8px;align-items:center;line-height:1.5;font-size:13px}#currentPage{color:var(--green);font-weight:600;font-variant-numeric:tabular-nums}.reading-total{color:var(--muted)}#currentTitle{margin-left:20px;color:var(--muted)}
dialog{width:min(720px,calc(100% - 32px));max-height:calc(100svh - 48px);overflow:auto;padding:36px;border:1px solid var(--line);color:var(--ink);background:var(--paper);overscroll-behavior:contain}
dialog::backdrop{background:rgb(13 40 31 / .65)}.dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.dialog-header .eyebrow{font-size:12px;margin-bottom:12px}.dialog-header h2{font-size:28px}
.dialog-header button{font-size:28px;min-width:44px;line-height:1;padding:0;border:1px solid var(--line);flex:none}
.chapter-menu{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.chapter-menu a{display:flex;align-items:center;gap:18px;font-size:16px;padding:18px 4px;min-height:60px;border-top:1px solid var(--line)}.chapter-menu a span{color:var(--rust);font-size:12px}.chapter-menu a[aria-current]{color:var(--green);font-weight:600;background:var(--cream)}
.menu-footnote{margin-top:25px;font-size:13px;color:var(--muted)}
.image-dialog{width:min(760px,calc(100% - 24px));padding:22px}.image-dialog .dialog-header{margin-bottom:14px;align-items:center}.image-dialog h2{font:500 21px/1.6 var(--serif)}.image-dialog>img{width:100%;height:min(70svh,780px);object-fit:contain;background:#f0e7da}.image-dialog>p{font-size:13px;color:var(--muted);margin-top:12px}
.toast{position:fixed;z-index:40;left:50%;bottom:calc(85px + env(safe-area-inset-bottom));transform:translate(-50%,8px);max-width:min(520px,calc(100% - 36px));padding:15px 22px;border:1px solid #698879;background:var(--forest);color:white;box-shadow:0 6px 24px rgb(8 43 29 / .12);font-size:16px;line-height:1.75;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s;min-width:min(320px,calc(100% - 36px))}
.toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.no-script-note{padding:16px 24px;background:var(--cream);font-size:16px}
@keyframes orbit-turn{to{transform:rotate(360deg)}}@keyframes route-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes companion-breathe{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(.7deg)}}@keyframes music-pulse{0%,100%{transform:scale(.92);opacity:.75}50%{transform:scale(1.12);opacity:1}}
@media(hover:hover){.toolbar button:hover,.view-tabs button:not([aria-selected="true"]):hover{background:var(--cream)}.button:hover{background:var(--forest)}.text-link:hover,.film-foot a:hover{color:var(--rust);border-color:var(--rust)}.chapter-menu a:hover{background:var(--cream)}.film-play:hover,.zoom-button:hover{border-color:var(--green)}.spirit-grid article:hover{background:#165c48}.spirit-grid button:hover .spirit-symbol{transform:translateY(-5px)}.service-stops button:hover{background:#eef1e6}.application-tabs button:hover{background:#faf6ed}.gallery-controls button:hover{background:var(--green);color:white}}
@media(max-width:1050px){.chapter{padding-inline:34px}.cover-layout{gap:42px}.cover h1{font-size:82px}.cover-tagline{font-size:26px}.school-signature{margin-bottom:36px}.film-caption{padding:18px;gap:10px;flex-wrap:wrap}.film-caption .text-button{padding-block:0}.heading-split{gap:30px}.origin-layout,.meaning-layout,.character-layout,.application-layout{gap:42px}.meaning-item small{display:block;margin-left:0}.meaning-item p{font-size:17px}.character-state h3{font-size:31px}.spirit-grid{gap:16px}.spirit-grid button{padding:22px}.spirit-name{font-size:22px}.spirit-key{font-size:15px}.service-layout{gap:35px}.service-panel{padding:34px}.application-stage>img{height:480px}.application-story h3{font-size:38px}.application-tabs button{font-size:15px}.finale-layout{gap:35px}}
@media(max-width:760px){
 html{scroll-padding-top:64px}body{font-size:17px}.toolbar{height:64px;padding-inline:20px}.wordmark{font-size:21px;letter-spacing:.03em}.wordmark span{display:none}.toolbar__actions{gap:3px}.toolbar__actions button{font-size:12px;padding-inline:9px}#menuButton{gap:8px;margin-left:2px}.menu-icon{width:13px}
 .chapter{padding:98px 24px 100px}.eyebrow{font-size:12px;margin-bottom:14px;letter-spacing:.09em}.section-heading{margin-bottom:27px}.section-heading h2{font-size:34px;line-height:1.45}.heading-split{display:block}.heading-split .lead{margin-top:16px;max-width:26em}.lead{font-size:18px;line-height:1.9}
 .cover-layout{grid-template-columns:1fr;gap:30px;padding-top:91px}.cover-orbit{width:160vw;right:-75%;top:15%;animation:none}.school-signature{width:245px;max-width:100%;margin-bottom:24px}.cover h1{font-size:72px}.cover-tagline{font-size:25px;margin-top:10px}.cover-intro{font-size:17px;max-width:none;margin:12px 0 21px}.cover .button{font-size:15px;min-height:50px}.cover-actions{align-items:stretch;gap:8px 14px}.cover-actions .button{max-width:100%;text-align:left;gap:20px}.cover-actions .button>span:first-child{font-size:15px}.quiet-entry{min-height:50px}.cover-edition{display:none}.film-column{width:100%;max-width:420px;margin:auto}.film-card{box-shadow:8px 10px 0 #e7e9dd}.film-frame{height:280px;aspect-ratio:auto}#logoPoster{width:70%;height:78%}.stage-heading{font-size:11px;padding:8px 0}.film-caption{padding:16px;gap:8px;flex-wrap:nowrap}.film-title{font-size:18px}#videoStatus{font-size:14px}.film-caption .text-button{font-size:13px}.film-play{bottom:12px;font-size:13px}.play-duration{font-size:11px}.film-foot{margin-top:18px;font-size:14px}.film-foot p{font-size:13px}
 .origin-layout,.meaning-layout,.character-layout,.application-layout{grid-template-columns:1fr;gap:30px}.origin-copy .lead{max-width:26em}.origin-route{margin-top:25px}.origin-chain{gap:18px}.origin-chain strong{font-size:30px}.origin-chain small{font-size:11px}.origin-chain li>span:last-child{font-size:13px}.origin-bottom{font-size:16px;margin-top:24px;padding-top:20px}.origin-art{width:min(100%,360px);margin:auto}.origin-art img{max-width:330px;margin:auto;animation:none}.origin-art figcaption{font-size:14px}.art-stamp{font-size:15px;padding:10px 13px}
 .meaning-figure{width:min(100%,370px);margin:auto;padding:18px 20px 0;box-shadow:-7px 7px 0 #e4ddce}.meaning-art{max-width:260px;margin:10px auto 0}.meaning-figure figcaption{font-size:14px;min-height:76px;padding:16px 0;gap:12px}.meaning-item{padding:15px 0 15px 12px}.meaning-item h3{font-size:21px}.meaning-item small{display:inline-block;margin-left:12px;font-size:12px}.meaning-item h3 button{gap:12px;padding-right:10px}.meaning-item p{font-size:17px;margin-left:29px;margin-top:12px}.interaction-note{font-size:14px;margin-top:18px}
 .character-platform{max-width:430px;margin:auto;padding:18px 18px 0}.character-platform img{max-width:290px}.art-label{font-size:12px}.view-tabs{max-width:430px;margin:12px auto 0;padding-bottom:8px}.view-tabs button{font-size:14px;padding:8px 4px}.profile-traits{margin-bottom:22px;gap:7px}.profile-traits span{font-size:12px;padding:3px 10px}.character-state h3{font-size:30px;margin:10px 0 13px}.character-state>p:not(.micro-label){font-size:17px;min-height:0;max-width:28em}.character-state blockquote{font-size:23px;margin:20px 0;padding-left:17px}.profile-list div{font-size:16px}.view-hint{font-size:14px}
 .spirit-grid{grid-template-columns:1fr;gap:13px}.spirit-grid button{padding:18px 20px;display:grid;grid-template-columns:56px 1fr;gap:4px 18px;align-items:center}.spirit-symbol{grid-row:1/3;grid-column:1;font-size:58px;margin:0;line-height:1.3}.spirit-number{display:none}.spirit-name{grid-column:2;font-size:22px}.spirit-key{grid-column:2;font-size:16px;margin-top:0}.spirit-arrow{right:15px;top:12px;font-size:18px}.spirit-fallback{padding:0 20px 18px;font-size:16px}.spirit-detail{align-items:start;flex-direction:column;gap:8px;font-size:18px;margin-top:23px;min-height:98px}.school-values{margin-top:18px}.school-values summary{font-size:14px}.school-values-grid{grid-template-columns:repeat(2,1fr);gap:24px 18px}.school-values h3{font-size:18px}.school-values p{font-size:15px}
 .service-layout{grid-template-columns:1fr;gap:24px}.service-stops{flex-direction:row;flex-wrap:wrap;gap:8px;padding:0}.service-stops:before{display:none}.service-stops button{width:calc((100% - 16px)/3);border:1px solid var(--line);padding:10px 6px;display:flex;align-items:center;justify-content:center;gap:7px;min-height:54px}.service-stops button>span{width:auto;height:auto;min-width:17px;border:0;border-radius:0;font-size:11px;display:block;background:none}.service-stops button strong{font-size:15px}.service-stops button small{display:none}.service-stops button[aria-pressed="true"]{background:var(--green);color:white}.service-stops button[aria-pressed="true"] strong{color:white}.service-stops button[aria-pressed="true"]>span{background:none}.service-panel{padding:30px 27px;min-height:375px}.service-entry h3{font-size:36px;margin:15px 0 18px}.service-entry>p:not(.micro-label){font-size:17px}.service-entry .text-link{margin-top:18px}.service-hint{font-size:14px;margin-top:22px}.service-watermark{font-size:250px}.source-note{font-size:13px;margin-top:20px}
 .application-layout{gap:28px}.application-gallery{width:min(100%,420px);margin:auto}.application-stage{box-shadow:8px 8px 0 #e4dbc9}.application-stage>img{height:min(48svh,390px)}.gallery-index{font-size:11px;left:12px;top:12px;padding:3px 8px}.zoom-button{font-size:13px;padding:7px 11px;right:12px;bottom:12px}.concept-label{font-size:11px;margin-bottom:16px}.application-story h3{font-size:33px;line-height:1.5;margin:12px 0 14px}.application-story h3 span{display:inline-block}.application-story>p:not(.micro-label){font-size:17px;min-height:0;max-width:28em}.application-detail{font-size:13px;margin-top:13px}.application-tabs{margin-top:23px}.application-tabs button{font-size:15px;padding:12px 10px;min-height:70px}.gallery-controls{margin-top:15px}.gallery-controls p{font-size:13px}.application-disclaimer{font-size:12px;margin-top:16px}.application-static{grid-template-columns:1fr}
 .finale-layout{grid-template-columns:1fr;gap:36px}.finale h2{font-size:52px}.finale .lead{font-size:18px;margin:20px 0}.future-directions{font-size:14px;margin:20px 0 12px;gap:10px}.future-directions span+span:before{margin-right:10px}.future-details p{font-size:16px}.finale .text-link{font-size:14px;margin-top:20px}.share-actions{margin-top:18px}.share-actions button{flex:1 1 140px}.share-note{font-size:12px}.finale-companion{min-height:360px;padding-top:8px}.companion-ring{width:290px;height:290px;top:0}.pet-hello{padding-top:18px}.pet-hello img{width:192px;height:208px;margin-bottom:24px}.pet-hello>span{font-size:13px}.companion-label{font-size:17px;margin-top:18px}.finale-footer{grid-column:auto;padding-top:24px;margin-top:0;gap:20px}.school-credit{gap:12px}.school-credit img{width:47px;height:47px}.school-credit p{font-size:14px}.school-credit span{font-size:11px}.finale-logo{width:54px;height:54px}
 .reading-nav{padding:6px 13px calc(6px + env(safe-area-inset-bottom));min-height:60px;gap:6px}.reading-nav button{font-size:13px;padding-inline:8px}.reading-position{gap:4px;font-size:12px}#currentTitle{display:none}.toast{font-size:16px;bottom:calc(78px + env(safe-area-inset-bottom));padding:13px 18px}
 dialog{padding:24px;max-height:calc(100svh - 32px)}.dialog-header h2{font-size:23px}.dialog-header .eyebrow{font-size:11px}.dialog-header{gap:12px;margin-bottom:18px}.chapter-menu{grid-template-columns:1fr}.chapter-menu a{font-size:16px;padding:13px 4px;min-height:53px}.menu-footnote{font-size:12px}.image-dialog{padding:16px}.image-dialog h2{font-size:19px}.image-dialog>img{height:65svh}
}
@media(max-width:360px){.toolbar{padding-inline:14px}.toolbar__actions button{padding-inline:7px}.chapter{padding-inline:20px}.cover h1{font-size:64px}.cover-tagline{font-size:23px}.section-heading h2{font-size:31px}.film-caption{flex-wrap:wrap;padding:14px}.film-frame{height:245px}.meaning-item small{margin-left:7px;font-size:11px}.meaning-item h3{font-size:20px}.meaning-item p{margin-left:0}.origin-chain{gap:12px}.origin-chain li>span:last-child{font-size:12px}.profile-traits{gap:5px}.profile-traits span{padding-inline:8px}.spirit-grid button{padding:16px;gap:4px 14px;grid-template-columns:48px 1fr}.spirit-symbol{font-size:50px}.spirit-key{font-size:14px}.spirit-name{font-size:20px}.service-stops button{gap:4px}.service-stops button strong{font-size:14px}.service-panel{padding:25px}.service-entry h3{font-size:33px}.gallery-controls p{font-size:12px}.application-story h3{font-size:31px}.finale h2{font-size:47px}.school-credit p{font-size:12px}.finale-logo{width:44px;height:44px}.reading-nav button{font-size:12px}}
@media(max-height:600px) and (min-width:761px){.chapter{padding-top:104px;padding-bottom:100px}.school-signature{margin-bottom:25px}.cover h1{font-size:76px}.cover-tagline{font-size:25px}.cover-edition{margin-top:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
body.dialog-open{overflow:hidden}
html.is-backgrounded *,html.is-backgrounded *::before,html.is-backgrounded *::after{animation-play-state:paused!important}
button:active{filter:brightness(.92)}
#viewPanel[aria-busy="true"] .art-label::after{content:" · 加载中"}
#applicationPanel[aria-busy="true"] .gallery-index::after{content:" · 加载中"}
/* Keep the selection controls next to the media on small screens. */
html{scroll-padding-top:0}
button,a,summary{scroll-margin-block:85px}
.application-gallery{min-width:0}
.application-gallery .application-tabs{margin:0 0 18px}
.spirit-grid article.is-selected .spirit-arrow{transform:rotate(45deg)}
.view-tabs button[aria-selected="true"]{box-shadow:inset 0 -3px var(--orange)}
.service-stops button[aria-pressed="true"] strong:after{content:" ·"}
@media(max-width:760px){
 .application-gallery .application-tabs{margin-bottom:16px}
 .application-stage>img{height:min(42svh,340px)}
 .application-story h3 span{display:block}
 .meaning-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .meaning-item{display:contents}
 .meaning-item h3{font-size:18px}
 .meaning-item:nth-child(1) h3{grid-area:1/1}
 .meaning-item:nth-child(2) h3{grid-area:1/2}
 .meaning-item:nth-child(3) h3{grid-area:2/1}
 .meaning-item:nth-child(4) h3{grid-area:2/2}
 .meaning-item h3 button{gap:9px;padding:9px 11px;border:1px solid #c5ccbd;background:#f8f4eb}
 .meaning-item small{display:none}
 .meaning-arrow{font-size:18px}
 .meaning-item.is-selected h3 button{border-bottom:3px solid var(--orange)}
 .meaning-item p{grid-column:1/-1;grid-row:3;margin:8px 0 0;padding:12px 14px;background:#f8f4eb;min-height:120px}
 .meaning-list .interaction-note{grid-column:1/-1;margin-top:5px}
 html:not(.js) .meaning-list{display:block}
 html:not(.js) .meaning-item{display:block;margin-top:15px}
 html:not(.js) .meaning-item p{min-height:0}
}
