:root{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:#f1e9d8;background:#14262d;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;--ink: #152a31;--deep: #102129;--paper: #eee7d7;--paper-dark: #d9cfb9;--vermilion: #b95542;--gold: #dfba70;--sage: #76928a}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}body{min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid #f0c86f;outline-offset:4px}button,a{touch-action:manipulation}#game-root{position:fixed;inset:0;min-height:100dvh;overflow:hidden;background:var(--deep)}.primary-button,.secondary-button,.danger-button,.text-button{min-height:46px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 22px;border-radius:3px;font-weight:600;letter-spacing:.04em;transition:transform .18s ease,background .18s ease,color .18s ease}.primary-button{background:var(--vermilion);color:#fff7e9;box-shadow:0 8px 30px #0c1a2040}.primary-button:hover{background:#ca634d;transform:translateY(-2px)}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.primary-button.large,.secondary-button.large{min-height:56px;padding:15px 25px}.secondary-button{background:transparent;color:inherit;border:1px solid #d8cba866}.secondary-button:hover{background:#e8dcc012;border-color:#d8cba8aa}.text-button{background:transparent;color:inherit;padding-inline:12px}.text-button:hover{color:var(--gold)}.danger-button{background:#a9483a;color:#fff}.icon-button{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #21353d22;background:#eee7d780;color:var(--ink);transition:background .18s ease,transform .18s ease}.icon-button:hover{background:#fff7e4;transform:translateY(-1px)}.icon-button.dark{color:#f1e8d5;border-color:#e8dbbd35;background:#10252c70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.icon-button.dark:hover{background:#28434c}.section-kicker{display:block;font:600 11px/1.4 ui-monospace,monospace;letter-spacing:.18em;color:#a98253}.title-screen{position:absolute;inset:0;min-height:100dvh;overflow:hidden;background:#142930}.title-screen:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 68% 32%,#5370684d,transparent 42%),linear-gradient(105deg,#10242b,#19343a 62%,#243e40)}.title-map{position:absolute;inset:0 0 0 32%;opacity:.9}.title-map svg{width:100%;height:100%}.map-contour{fill:none;stroke:#88a092;stroke-width:1.2;opacity:.28}.map-contour.faint{opacity:.14}.map-river{fill:none;stroke:#82b3b0;stroke-width:24;opacity:.07}.map-route{fill:none;stroke:#d7b774;stroke-width:2;stroke-dasharray:6 10;animation:routeDash 20s linear infinite}.title-map g circle{fill:#142930;stroke:#e0bc75;stroke-width:2}.title-map g .route-core{fill:#e0bc75;stroke:none}.map-label{position:absolute;color:#d6c59d;font:500 14px "Noto Serif SC",serif;letter-spacing:.2em;opacity:.75}.label-0{left:10%;top:70%}.label-1{left:31%;top:56%}.label-2{left:54%;top:57%}.label-3{left:69%;top:38%}.label-4{left:79%;top:31%}.title-grain,.paper-grain{position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.title-topbar{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:calc(24px + env(safe-area-inset-top)) 4vw 20px}.mini-brand{display:flex;align-items:center;gap:12px}.mini-brand>span{width:42px;height:42px;display:grid;place-items:center;background:var(--vermilion);color:#f7e9d1;font:700 15px "Noto Serif SC",serif;border-radius:2px}.mini-brand small{font:500 11px ui-monospace,monospace;letter-spacing:.16em;color:#b9c7bd}.title-tools{display:flex;align-items:center;gap:12px}.archive-link{min-height:46px;display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:#e7dfcb;padding:8px 12px}.archive-link:hover{color:var(--gold)}.title-content{position:absolute;z-index:2;left:7vw;top:50%;transform:translateY(-49%);max-width:760px}.title-era{display:flex;align-items:center;gap:14px;width:230px;font:500 13px ui-monospace,monospace;color:#d9bd82;letter-spacing:.12em}.title-era i{height:1px;flex:1;background:#d9bd8277}.title-overline{margin:24px 0 8px;font:500 15px "Noto Serif SC",serif;letter-spacing:.32em;color:#b9c8bd}.title-content h1{margin:0;display:flex;align-items:baseline;gap:.16em;font:900 clamp(54px,6.5vw,104px)/1.12 "Noto Serif SC","Songti SC",serif;letter-spacing:.02em;color:#f0e8d5;text-shadow:0 10px 40px #07181d66}.title-content h1 em{font-style:normal;color:var(--vermilion);font-size:.7em}.title-english{margin:12px 0 0;font:500 12px ui-monospace,monospace;letter-spacing:.45em;color:#c3a86f}.title-edition{display:inline-flex;margin-top:14px;padding:5px 9px;border:1px solid #d7b77445;color:#d9c597;background:#10242b66;font-size:11px;letter-spacing:.12em}.title-description{margin:28px 0;color:#cbd3c8;font:400 16px/1.9 "Noto Serif SC",serif;letter-spacing:.08em}.title-actions{display:flex;flex-wrap:wrap;gap:12px}.game-mode-list{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px;color:#a9bbb3;font-size:12px}.game-mode-list span{display:inline-flex;align-items:center;gap:7px}.route-index{position:absolute;z-index:2;right:4vw;top:50%;transform:translateY(-42%);width:210px;padding:22px;border:1px solid #d9c28f30;background:#12282d70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.route-index-title{font:500 11px "Noto Serif SC",serif;color:#baa87f;letter-spacing:.16em}.route-index ol{list-style:none;margin:20px 0;padding:0}.route-index li{display:flex;align-items:center;gap:12px;min-height:36px;color:#c8d0c4;font-size:13px}.route-index li i{font:400 10px ui-monospace,monospace;color:#809b92}.route-index li.current,.route-index li.current i{color:#f0c575}.ending-record{padding-top:16px;border-top:1px solid #d9c28f25;display:flex;justify-content:space-between;align-items:center;color:#9fb1a8;font-size:12px}.ending-record strong{color:#e0bd78;font:500 14px ui-monospace,monospace}.title-footer{position:absolute;z-index:3;left:4vw;right:4vw;bottom:calc(18px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:16px;color:#8fa39b;font-size:11px}.title-footer button{min-height:44px;display:inline-flex;align-items:center;gap:6px;color:#a8b8ae;background:transparent;border:0}.title-footer button:hover{color:#eed18e}.confirm-backdrop{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:#08161dcc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.confirm-card{width:100%;max-width:440px;background:var(--paper);color:var(--ink);padding:30px;box-shadow:0 30px 90px #0006}.confirm-card h2{font-family:"Noto Serif SC",serif}.confirm-card p{line-height:1.8;color:#526068}.confirm-card>div{display:flex;gap:12px;margin-top:24px}.novel-screen,.ending-screen{position:absolute;inset:0;min-height:100dvh;overflow:hidden;background:#61766f}.novel-art{position:absolute;inset:0;overflow:hidden;background:#101c20}.novel-scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:brightness(.8) saturate(.82) contrast(1.04);animation:sceneReveal .65s ease both;image-rendering:auto;backface-visibility:hidden}.art-modern .novel-scene-image{filter:brightness(.86) saturate(.82) contrast(1.02)}.novel-scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0712168c 0%,transparent 30%,transparent 52%,#0712169c 82%,#071216e8 100%),linear-gradient(90deg,#07121645,transparent 35%,transparent 75%,#07121638)}@keyframes sceneReveal{0%{opacity:.25;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}.novel-header{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;gap:18px;padding:calc(22px + env(safe-area-inset-top)) 4vw 16px;color:#f5ebd7;text-shadow:0 2px 12px #12272c}.novel-header>div{display:flex;flex-direction:column;gap:4px}.novel-header>div span{font:600 13px "Noto Serif SC",serif;letter-spacing:.16em}.novel-header>div strong{font-size:11px;font-weight:400;color:#d9dfd1;letter-spacing:.08em}.novel-progress{margin-left:auto;font:500 12px ui-monospace,monospace;letter-spacing:.12em}.dialogue-panel{position:absolute;z-index:5;left:50%;transform:translate(-50%);bottom:calc(4vh + env(safe-area-inset-bottom));width:calc(100% - 8vw);max-width:1120px;min-height:204px;padding:28px 34px 24px;color:var(--ink);background:#f3eddfed;border:1px solid #fff9ec;box-shadow:0 22px 70px #10252b66;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);backface-visibility:hidden}.dialogue-panel:before{content:"";position:absolute;top:0;left:34px;width:64px;height:3px;background:var(--vermilion)}.speaker-row{display:flex;align-items:center;gap:14px}.speaker-name{font:700 17px "Noto Serif SC",serif;color:#934635;letter-spacing:.08em}.chapter-label{font-size:11px;color:#7e8179;letter-spacing:.14em}.dialogue-text{margin:16px 0 10px;min-height:58px;max-width:72ch;font:600 19px/1.85 "Noto Serif SC",Songti SC,serif;letter-spacing:.025em;color:#142e35;text-shadow:0 0 1px #142e3512}.is-quote .dialogue-text{font-size:20px;color:#273f44}.cursor{color:var(--vermilion);animation:blink .8s steps(1) infinite}.cursor.hidden{visibility:hidden}.advance-hint{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#7c7c70;font-size:12px}.novel-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.novel-choices button{min-height:62px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;text-align:left;gap:4px 12px;padding:13px 16px;color:#20383d;background:#d9dfd34d;border:1px solid #2c4a4530;transition:background .18s ease,border-color .18s ease,transform .18s ease}.novel-choices button:hover{background:#fff9e8;border-color:#a85642;transform:translateY(-2px)}.novel-choices button>span{font:600 15px "Noto Serif SC",serif}.novel-choices button svg{grid-column:2;grid-row:1;color:var(--vermilion)}.ending-screen{background:#132a31}.ending-screen .novel-art{filter:brightness(.45) saturate(.7)}.ending-card{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 40px);max-width:620px;text-align:center;padding:46px;background:#142a30ed;border:1px solid #d9c18d4d;box-shadow:0 30px 100px #0005}.ending-card h1{margin:18px 0;font:700 42px "Noto Serif SC",serif}.ending-card p{color:#c7d0c5;font:400 16px/2 "Noto Serif SC",serif}.ending-actions{display:flex;flex-direction:column;gap:8px;margin-top:28px}.game-view{position:absolute;inset:0;min-height:100dvh;overflow:hidden;background:#14252d}#game-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;touch-action:none}.game-toolbar{position:absolute;z-index:8;top:calc(96px + env(safe-area-inset-top));right:22px;display:flex;flex-direction:column;gap:8px}.runner-controls{position:absolute;z-index:7;left:0;right:0;bottom:calc(20px + env(safe-area-inset-bottom));display:none;justify-content:space-between;align-items:flex-end;padding:0 24px;pointer-events:none}.runner-controls button{pointer-events:auto;width:82px;height:72px;border:1px solid #f0dfb855;color:#fff0d4;background:#152c34b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;touch-action:none;-webkit-user-select:none;user-select:none}.runner-controls .jump-button{width:92px;height:92px;background:#aa503edb;border-color:#f5c9a199}.runner-controls button:active{transform:scale(.94);background:#d0795b}.runner-start-hint{position:absolute;z-index:5;left:50%;bottom:26px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;color:#f2e8d2;text-shadow:0 2px 8px #10252d;pointer-events:none;animation:hintFade 5s forwards;white-space:nowrap}.runner-start-hint span{font:600 14px "Noto Serif SC",serif;letter-spacing:.1em}.runner-start-hint small{color:#d5dacc;font-size:11px}.game-exit-mobile{display:none}.game-overlay{position:absolute;z-index:12;inset:0;display:grid;place-items:center;overflow-y:auto;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));background:#0b1b23c9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pause-card,.rhythm-intro,.result-card{width:100%;max-width:500px;padding:36px;text-align:center;background:#eee7d7;color:var(--ink);border:1px solid #fff4dd;box-shadow:0 30px 100px #0006}.pause-card>span{color:#9b5946;font-size:12px;letter-spacing:.14em}.pause-card h2{margin:10px 0;font:700 40px "Noto Serif SC",serif}.pause-card p{margin:0 0 24px;color:#5f6b6b;line-height:1.8}.pause-card button{width:100%;margin-top:8px}.pause-card .secondary-button,.rhythm-intro .text-button{color:#2b4247}.rhythm-intro{max-width:560px}.rhythm-intro>svg{margin:24px auto 8px;color:var(--vermilion)}.rhythm-intro h1{margin:0;font:900 52px "Noto Serif SC",serif;letter-spacing:.08em}.rhythm-intro>p{color:#6a746e}.rhythm-rules{display:flex;flex-direction:column;gap:8px;margin:24px 0;padding:18px;background:#d9dfd466;color:#334b4f;font-size:14px}.rhythm-intro .synth-note{font-size:11px}.rhythm-intro .primary-button{margin:12px 0}.rhythm-touch{position:absolute;z-index:7;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(88%,460px);display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.rhythm-touch button{height:62px;border:1px solid #e8d59a55;background:#183642aa;color:#e9dbb6;font:600 16px ui-monospace,monospace;border-radius:4px;touch-action:none;-webkit-user-select:none;user-select:none}.rhythm-touch button:active{background:#b68c48;color:#10252d;transform:translateY(-3px)}.result-card{position:relative;max-width:560px}.result-rank{position:absolute;right:28px;top:18px;color:#b55a43;font:700 72px/1 ui-monospace,monospace;opacity:.9}.result-card h2{margin:22px 0 8px;font:700 24px "Noto Serif SC",serif}.result-score{font:600 42px ui-monospace,monospace;color:#263f45}.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:26px 0}.result-grid div{display:flex;flex-direction:column;gap:5px}.result-grid strong{font:600 19px ui-monospace,monospace}.result-grid span{color:#7b8077;font-size:10px}.result-card button{margin:5px}.result-card .secondary-button{color:#2b4247}.archive-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:24px;background:#07171edb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.archive-modal{width:100%;max-width:1060px;height:min(88dvh,850px);display:flex;flex-direction:column;overflow:hidden;color:var(--ink);background:var(--paper);box-shadow:0 40px 120px #0008}.archive-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:26px 30px 18px;border-bottom:1px solid #233d421c}.archive-header h2{display:flex;align-items:center;gap:12px;margin:6px 0 0;font:700 28px "Noto Serif SC",serif}.archive-tabs{flex:0 0 auto;display:flex;gap:4px;padding:0 30px;border-bottom:1px solid #233d421c}.archive-tabs button{min-height:50px;display:inline-flex;align-items:center;gap:7px;padding:0 18px;border:0;border-bottom:3px solid transparent;color:#66736f;background:transparent}.archive-tabs button.active{color:#9d4938;border-bottom-color:#ad513f}.archive-tabs button:hover{color:#9d4938}.archive-content{flex:1;overflow-y:auto;padding:26px 30px 36px;overscroll-behavior:contain}.archive-article{max-width:850px;margin:0 auto}.archive-article h3{font:700 22px "Noto Serif SC",serif}.archive-article p{color:#4d6061;line-height:1.9;font-size:15px}.archive-lead{margin-top:0;font:500 17px/1.8 "Noto Serif SC",serif!important;color:#2e494d!important}.history-timeline{list-style:none;margin:28px 0;padding:0}.history-timeline li{display:grid;grid-template-columns:170px 1fr;gap:22px;position:relative;padding:0 0 26px}.history-timeline li:before{content:"";position:absolute;left:169px;top:7px;bottom:-4px;width:1px;background:#a38d6166}.history-timeline li:after{content:"";position:absolute;left:165px;top:7px;width:9px;height:9px;border-radius:50%;background:#ad5a43}.history-timeline time{font:500 12px ui-monospace,monospace;color:#9c5a46;padding-top:3px}.history-timeline li>div{padding-left:18px}.history-timeline strong{font:700 18px "Noto Serif SC",serif}.history-timeline p{margin:5px 0 0}.two-column-article{display:grid;grid-template-columns:210px 1fr;gap:34px}.zhu-portrait{min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#233f43;color:#e4d5b6}.zhu-portrait span{font:700 110px "Noto Serif SC",serif;opacity:.8}.zhu-portrait small{font:500 12px ui-monospace,monospace;letter-spacing:.15em}.archive-article blockquote{margin:22px 0;padding:18px 22px;border-left:3px solid #b55b45;background:#dcd7c86b;color:#374f52;font:500 17px/1.9 "Noto Serif SC",serif}.diary-page{padding:28px;margin-bottom:26px;background:#dfd5bc;border:1px solid #b8a783;transform:rotate(-.4deg);box-shadow:0 8px 20px #50432616}.diary-page>span{font:500 12px ui-monospace,monospace;color:#875443}.diary-page blockquote{margin-bottom:8px}.diary-page small{color:#747269}.anthem-article{display:grid;grid-template-columns:1fr 1fr;gap:30px}.anthem-lyrics{margin-top:0!important}.source-list{max-width:850px;margin:36px auto 0;padding-top:24px;border-top:1px solid #233d4222}.source-list h3{font:700 18px "Noto Serif SC",serif}.source-list>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.source-list a{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;color:#2e494d;text-decoration:none;border:1px solid #233d4222;transition:background .18s ease}.source-list a:hover{background:#fff8e8}.source-list a span{display:flex;flex-direction:column;gap:4px}.source-list a strong{font-size:13px}.source-list a small{color:#79817b;font-size:11px}.final-screen{position:absolute;inset:0;min-height:100dvh;overflow-y:auto;display:grid;place-items:center;padding:40px 20px;background:radial-gradient(circle at 50% 35%,#31534f,#10252d 65%)}.final-rings{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none}.final-rings i{position:absolute;width:min(70vw,720px);aspect-ratio:1;border:1px solid #dabb7022;border-radius:50%}.final-rings i:nth-child(2){width:min(52vw,540px)}.final-rings i:nth-child(3){width:min(34vw,360px)}.final-content{position:relative;z-index:2;max-width:650px;text-align:center}.final-seal{width:64px;height:78px;display:grid;place-items:center;margin:24px auto;padding:8px;background:#a84d3c;color:#f2dfbb;font:700 22px/1.2 "Noto Serif SC",serif;border:2px solid #d79877}.final-content h1{margin:0;font:900 clamp(48px,6vw,80px)/1.35 "Noto Serif SC",serif;letter-spacing:.08em}.final-content h1 span{color:#d8bc7b}.final-content>p{color:#c2cec3;font:400 16px/2 "Noto Serif SC",serif}.final-content blockquote{margin:24px 0;color:#e5d7b7;font:500 18px/1.9 "Noto Serif SC",serif}.final-stats{display:flex;justify-content:center;gap:50px;margin:26px 0}.final-stats div{display:flex;flex-direction:column;gap:6px}.final-stats span{color:#8fa89f;font-size:11px}.final-stats strong{color:#edce86;font:500 22px ui-monospace,monospace}.final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.final-screen footer{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;color:#6f8c84;font-size:11px}@keyframes routeDash{to{stroke-dashoffset:-320}}@keyframes blink{50%{opacity:0}}@keyframes hintFade{0%,65%{opacity:1}to{opacity:0;visibility:hidden}}@media(pointer:coarse),(max-width:800px){.runner-controls{display:flex}.runner-start-hint{bottom:calc(126px + env(safe-area-inset-bottom))}}@media(max-width:1100px){.route-index{display:none}.title-content{left:7vw}}@media(max-width:700px){.title-map{inset:0;opacity:.45;transform:translate(18%)}.title-topbar{padding-inline:20px}.archive-link{padding-inline:6px;font-size:13px}.mini-brand small{display:none}.title-content{left:24px;right:24px;top:47%;transform:translateY(-50%)}.title-overline{margin-top:18px;font-size:12px;letter-spacing:.18em}.title-content h1{flex-wrap:wrap;gap:0 .14em;font-size:clamp(46px,13vw,62px)}.title-content h1 span:last-child{flex-basis:100%}.title-content h1 em{display:none}.title-english{font-size:10px;letter-spacing:.25em}.title-description{margin:22px 0;font-size:14px;line-height:1.8}.title-actions{flex-direction:column;align-items:stretch;max-width:340px}.title-actions button{width:100%}.game-mode-list{gap:10px 15px;margin-top:18px;font-size:10px}.title-footer{left:20px;right:20px;justify-content:center}.title-footer>span{display:none}.novel-header{padding-inline:16px;gap:12px}.novel-header>div span{font-size:11px}.novel-header>div strong{font-size:10px}.novel-progress{font-size:10px}.dialogue-panel{width:calc(100% - 24px);bottom:calc(12px + env(safe-area-inset-bottom));min-height:250px;max-height:54dvh;overflow-y:auto;padding:22px 20px 18px}.dialogue-panel:before{left:20px}.dialogue-text{font-size:16px;line-height:1.8;margin-top:12px}.is-quote .dialogue-text{font-size:17px}.speaker-name{font-size:15px}.novel-choices{grid-template-columns:1fr;gap:8px}.novel-choices button{min-height:58px}.advance-hint{margin-top:8px}.ending-card{padding:32px 24px}.ending-card h1{font-size:34px}.ending-card p{font-size:15px}.game-toolbar{top:calc(92px + env(safe-area-inset-top));right:12px}.game-toolbar .icon-button{width:44px;height:44px}.archive-backdrop{padding:0}.archive-modal{height:100dvh;max-width:none}.archive-header{padding:calc(18px + env(safe-area-inset-top)) 18px 14px}.archive-header h2{font-size:24px}.archive-tabs{padding:0 10px;overflow-x:auto}.archive-tabs button{flex:1;justify-content:center;padding:0 10px;white-space:nowrap;font-size:12px}.archive-content{padding:20px 18px 32px}.history-timeline li{grid-template-columns:1fr;gap:8px;padding-left:20px}.history-timeline li:before{left:3px}.history-timeline li:after{left:0}.history-timeline li>div{padding-left:0}.two-column-article,.anthem-article{grid-template-columns:1fr}.zhu-portrait{min-height:170px}.zhu-portrait span{font-size:74px}.source-list>div{grid-template-columns:1fr}.pause-card,.rhythm-intro,.result-card{padding:28px 22px}.rhythm-intro h1{font-size:42px}.result-grid{grid-template-columns:repeat(2,1fr);gap:16px}.result-rank{font-size:54px}.result-score{font-size:34px}.final-screen{padding:32px 20px 58px}.final-content h1{font-size:48px}.final-content>p{font-size:14px}.final-content blockquote{font-size:16px}.final-stats{gap:28px}.final-actions{flex-direction:column}.final-actions button{width:100%}.final-rings i{width:120vw}.final-rings i:nth-child(2){width:90vw}.final-rings i:nth-child(3){width:60vw}}@media(max-height:690px)and (min-width:701px){.title-content{top:52%}.title-description{margin:16px 0}.game-mode-list{margin-top:12px}.dialogue-panel{bottom:16px;min-height:190px;padding-block:20px}.dialogue-text{margin-block:10px}.novel-choices{margin-top:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.chapter-cover-link{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:20px;padding:0;background:none;border:0;color:#dfc791;font-size:14px}.cover-modes{font-size:11px!important;letter-spacing:.14em;color:#aebeb0;margin:6px 0 0}.chapter-screen{position:absolute;inset:0;overflow:auto;padding:36px max(24px,6vw);background:radial-gradient(ellipse at 70% 0,#34564c80,transparent 60%),#10252c}.chapter-header{display:flex;align-items:center;gap:20px;max-width:1200px;margin:auto}.chapter-header h1{font:600 clamp(26px,4vw,40px) "Songti SC",serif;margin:7px 0}.chapter-status{margin-left:auto;font-size:12px;color:#c4cbb4}.chapter-tabs{display:flex;gap:22px;max-width:1200px;margin:26px auto 22px;border-bottom:1px solid #ead3a733}.chapter-tabs button{background:none;color:#a9bbb4;border:0;padding:14px 2px;border-bottom:2px solid transparent;font-size:15px}.chapter-tabs button[aria-pressed=true]{color:#e9cf96;border-color:#b95542}.chapter-grid,.ending-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1200px;margin:auto}.chapter-card{position:relative;min-height:260px;background-size:cover;background-position:center;border:1px solid #e9cf962b;display:flex;align-items:flex-end;transition:border-color .2s}.chapter-card:hover{border-color:#dfba7080}.chapter-card.locked{filter:saturate(.4)}.chapter-card-content{padding:26px;width:100%}.chapter-card-content>span{display:flex;gap:12px;align-items:center;color:#d5bc84;font-size:11px;letter-spacing:.08em}.chapter-card h2{font:600 25px Songti SC,serif;margin:12px 0}.chapter-card p{color:#c7d0bf;font-size:12px}.chapter-card-actions{display:flex;gap:4px;flex-wrap:wrap}.chapter-card-actions button{font-size:12px;padding:10px 12px}.prologue{background:linear-gradient(120deg,#273f3caa,#10252cc9),url(../art/novel-archive.webp) center/cover}.finale{background:radial-gradient(circle at 60% 10%,#516954,#122930)}.chapter-footnote{max-width:1200px;margin:30px auto;color:#9db2a9;font-size:12px;line-height:1.8}.ending-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ending-grid article{padding:26px;border:1px solid #dfba702b;background:#061b2240}.ending-grid article>span{font-size:11px;color:#a9ad92}.ending-grid h2{font:600 24px Songti SC,serif}.ending-grid p{font-size:14px;line-height:1.9;color:#b7c5ba}.ending-grid .found{border-color:#b9554270}.unlock-notice{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px!important;color:#dfc791!important}.settings-dialog{width:min(460px,calc(100% - 32px));padding:28px;background:var(--paper);color:var(--ink);border:1px solid #fff5df;box-shadow:0 20px 100px #0008;max-height:90dvh;overflow:auto}.settings-dialog::backdrop{background:#07171edb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.settings-dialog header{display:flex;align-items:center;justify-content:space-between}.settings-dialog h2{margin:8px 0;font:600 28px Songti SC,serif}.settings-dialog p{color:#67776d;font-size:13px}.settings-dialog label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin:25px 0;font-size:14px}.settings-dialog input{width:100%;accent-color:#a9533f}.settings-dialog select{padding:9px;background:#fff9ec;border:1px solid #66776d55;color:var(--ink)}.settings-dialog output{font:12px monospace;color:#a45840}.settings-dialog small{display:block;color:#637266;font-size:11px;margin:20px 0}.settings-dialog>.primary-button{width:100%}.task-screen{position:absolute;inset:0;overflow:auto;background-size:cover;background-position:center;background-attachment:fixed;padding:24px max(24px,5vw);color:#efe6d1}.task-header{display:flex;align-items:center;gap:16px;max-width:1100px;margin:auto;font-size:12px;color:#c3d0c1}.task-header>div{display:flex;align-items:center;gap:10px;margin-left:auto}.task-body{max-width:900px;margin:44px auto 0}.task-introduction{margin-bottom:32px}.task-introduction .section-kicker{color:#d9b770;letter-spacing:.22em}.task-introduction h1{font:600 clamp(27px,4vw,43px)/1.4 "Songti SC","STSong",serif;margin:14px 0}.task-introduction p{font-size:15px;color:#becdc0;line-height:1.9}.task-fiction{display:inline-block;padding:6px 9px;border:1px solid #b8c2aa35;color:#b8c2aa;font-size:10px;letter-spacing:.06em}.task-instruction{color:#b4c4b7;font-size:12px;line-height:1.9;margin:22px 0}.task-feedback{display:flex;align-items:center;gap:10px;min-height:52px;padding:14px 0;color:#e6c38d;font-size:14px;line-height:1.8}.task-feedback.success{color:#bfd3a6}.task-continue{margin:4px 0 10px}.task-footer{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:32px auto 0;padding-top:16px;border-top:1px solid #c5b88b25;font-size:11px;color:#8ea99c}.task-footer button{font-size:11px}.task-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.packing-summary{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:12px;color:#c3d1bb;margin-bottom:20px}.packing-summary strong{color:#e4c78c;font:20px monospace}.capacity-track{grid-column:1/-1;height:4px;background:#b8d3bd22}.capacity-track i{display:block;height:100%;background:#dbb671;transition:width .2s}.packing-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.packing-grid>button{display:flex;align-items:center;gap:18px;min-height:96px;text-align:left;padding:18px;background:#09202980;border:1px solid #adc2af33;color:#e8dfc8;transition:background .2s,border-color .2s}.packing-grid>button.selected{border-color:#d4b471;background:#3d534dcc}.packing-grid strong,.packing-grid small{display:block}.packing-grid strong{font:600 18px Songti SC,serif}.packing-grid small{font-size:11px;color:#b9c7b7;margin-top:8px}.item-stamp{display:grid;place-items:center;width:44px;height:48px;flex-shrink:0;border:1px solid #b8a57b77;background:#b8a57b14;color:#d4bc85;font:23px Songti SC,serif}.item-weight{margin-left:auto;display:flex;align-items:center;gap:5px;font:12px monospace;white-space:nowrap;color:#d9bd85}.route-resource{display:flex;justify-content:space-between;color:#bdcbb9;font-size:13px;border-bottom:1px solid #d5bd8833;padding-bottom:16px}.route-resource strong{color:#dfba70;font:20px monospace}.route-path{display:flex;list-style:none;padding:16px 0;gap:10px;flex-wrap:wrap;min-height:70px}.route-path li{display:flex;align-items:center;gap:10px;font-size:12px;color:#dec48b}.route-options{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.route-options button{padding:24px;background:#142f34ce;border:1px solid #c8c09c44;color:#ebdfc3;text-align:left;min-height:190px}.route-options button:disabled{opacity:.55}.route-options button:hover:enabled{border-color:#ddba76;background:#2d4946}.route-options button>span{font-size:10px;color:#ddba76}.route-options h2{font:600 23px Songti SC,serif}.route-options p{font-size:13px;line-height:1.8;color:#c0d0c0}.route-options small{color:#e8a081;font-size:11px}.shelter-stage{background:#163339a8;border:1px solid #c6bf9844;padding:24px}.shelter-sky{display:flex;justify-content:space-between;gap:16px;align-items:center;color:#cfddb8;font-size:16px}.shelter-sky strong{font:30px monospace;color:#e0bf7d}.phase-warning .shelter-sky{color:#e9bd70}.phase-strike .shelter-sky{color:#eaa189}.phase-strike{box-shadow:inset 0 0 90px #ad5c3438}.shelter-scene{height:170px;position:relative;border-bottom:2px solid #bdc6a566}.shelter-roof{position:absolute;right:15%;bottom:0;width:160px;height:90px;border:3px solid #c6b78f;border-radius:90px 90px 0 0;background:#142b30b0;display:flex;justify-content:center;padding-top:14px;font-size:11px;color:#ceb889}.school-group{display:flex;gap:12px;position:absolute;bottom:2px;left:10%;z-index:2;transition:left .65s ease}.school-group.in-cover{left:calc(85% - 130px)}.school-group i{display:block;width:15px;height:32px;background:#b9c3ac;border-radius:6px 6px 0 0;position:relative}.school-group i:before{content:"";position:absolute;left:2px;top:-15px;width:11px;height:11px;border-radius:50%;background:#d3b58b}.school-group i:nth-child(2){height:38px;background:#a36448}.shelter-status{display:flex;justify-content:space-between;gap:15px;padding-top:22px;color:#d4c092;font-size:12px}.circuit-label{display:flex;justify-content:space-between;max-width:440px;margin:0 auto 18px;font-size:12px;color:#dfbd79}.circuit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(100%,440px);margin:auto}.circuit-grid button{aspect-ratio:1;padding:0;position:relative;background:#203c3e;border:1px solid #c9bb8e44;color:#d2bd82}.circuit-grid svg{display:block;width:100%;height:100%}.circuit-grid line{stroke:#7c9791;stroke-width:8;stroke-linecap:round}.circuit-grid circle{fill:#9ba98e}.circuit-grid .powered{background:#6a613c66;border-color:#ddba76}.circuit-grid .powered line{stroke:#dfb860}.circuit-grid .powered circle{fill:#edce88}.circuit-grid button>span{position:absolute;right:5px;bottom:2px;font:11px serif}.circuit-grid .destination{border:2px solid #dfba70}.task-3 .task-instruction,.task-3 .task-feedback{max-width:600px;margin-inline:auto}.task-3 .task-body{text-align:center}.diary-sort{list-style:none;padding:0;display:grid;gap:10px}.diary-sort li{display:flex;align-items:center;gap:20px;padding:17px 22px;background:#153038da;border:1px solid #d6c19733}.diary-number{color:#d2b37a;font:22px monospace}.diary-sort strong{font:600 18px Songti SC,serif}.diary-sort p{margin:6px 0 0;color:#b8cabc;font-size:12px}.diary-sort small{display:block;color:#dfb775;margin-top:7px;font-size:11px}.sort-actions{margin-left:auto;display:flex;gap:8px}.sort-actions .icon-button{width:36px;height:36px}.novel-header>div.novel-tools{display:flex;flex-direction:row;gap:6px;margin-left:auto}.novel-tools .icon-button{width:38px;height:38px}.novel-progress{margin-left:14px}.history-badge{margin-left:auto;font-size:10px;color:#8c6a4c;letter-spacing:.06em}.source-note{display:block;font-size:10px;line-height:1.6;color:#7d7968;margin:10px 0}.reading-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}.reading-actions button{min-height:36px;padding:7px 10px;color:#6f7669;font-size:12px}.reading-actions button:first-child{margin-right:auto}.reading-actions button:hover{color:#a64b38}.read-badge{font-size:10px;color:#8a927e}.novel-choices button small{font-size:10px;color:#7a806d;line-height:1.6;grid-row:2}.speaker-row{flex-wrap:wrap}.game-toolbar{gap:6px}@media(max-width:900px){.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-options{grid-template-columns:1fr 1fr}.chapter-status{max-width:170px;line-height:1.8}.task-body{margin-top:30px}}@media(max-width:600px){.chapter-screen{padding:24px 16px}.chapter-header{gap:12px}.chapter-status{display:none}.chapter-grid,.ending-grid{grid-template-columns:1fr}.chapter-card{min-height:230px}.task-screen{padding:18px 16px}.task-header{gap:10px}.task-header>span{font-size:11px}.task-header .text-button{padding:6px}.task-introduction h1{font-size:28px}.task-introduction p{font-size:13px}.packing-grid{grid-template-columns:1fr;gap:8px}.packing-grid>button{min-height:80px;padding:14px}.route-options{grid-template-columns:1fr}.route-options button{min-height:150px}.route-resource{gap:12px;font-size:11px}.shelter-stage{padding:18px 12px}.shelter-sky{font-size:12px}.shelter-roof{right:2%;width:135px}.school-group.in-cover{left:calc(98% - 116px)}.shelter-status{font-size:10px}.diary-sort li{padding:14px 10px;gap:12px}.diary-sort strong{font-size:15px}.diary-sort p{font-size:11px}.sort-actions{flex-direction:column;gap:2px}.novel-header{gap:8px}.novel-header>div>span{letter-spacing:.04em}.novel-tools .icon-button{width:32px;height:32px}.novel-progress{display:none}.history-badge{font-size:9px}.dialogue-panel{max-height:65dvh}.novel-choices button{min-height:66px}.task-footer{gap:10px}.cover-modes{font-size:9px!important}.title-content{top:48%}.chapter-cover-link{margin-top:12px;font-size:12px}.title-tools{gap:6px}.final-actions{padding-bottom:20px}}@media(max-height:560px)and (orientation:landscape){.dialogue-panel{max-height:65dvh;overflow:auto}.chapter-screen,.task-screen{padding-top:16px}.title-content h1{font-size:42px}.title-content{top:53%}.title-description{font-size:12px;line-height:1.5;margin:10px 0}.title-edition{display:none}.title-content .large{min-height:44px;padding:10px 16px}.title-topbar{padding-block:12px}.cover-modes{display:none}}
