:root{--ink:#101714;--paper:#f1e7cf;--muted:#b9b5a3;--gold:#d1b77b;--line:rgba(208,184,124,.28);--top:0px;--bottom:0px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:"Songti SC","STSong","SimSun","Microsoft YaHei",serif;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:rgba(15,23,20,.76);border-radius:3px;padding:12px 16px;line-height:1.5;touch-action:manipulation}button:focus{outline:2px solid var(--gold);outline-offset:3px}button:disabled{cursor:default;opacity:.48}button:active{background:#354536}button[hidden],[hidden]{display:none!important}
#app{height:100%;position:relative;max-width:1200px;margin:auto;overflow:hidden;background:#10201f}#landscape,.scene-shade{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}#landscape{image-rendering:pixelated}.scene-shade{background:linear-gradient(180deg,rgba(6,14,15,.2),rgba(9,15,14,.2) 28%,rgba(9,16,14,.72) 72%,#101714)}
#toolbar{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:16px 26px;padding-top:calc(16px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));min-height:65px;background:linear-gradient(rgba(7,15,14,.75),rgba(7,15,14,0))}#toolbar button{border:0;background:none;padding:5px 9px;font-size:14px}#toolbar nav{display:flex}#toolbar nav button+button{margin-left:8px}.wordmark{letter-spacing:.12em}.small-seal{display:inline-flex;background:#9f3d32;color:#f7ddbc;font-size:13px;align-items:center;justify-content:center;vertical-align:middle;width:23px;height:25px;border:1px solid #c18b68;letter-spacing:0}
.eyebrow{font:11px/1.8 "Microsoft YaHei",sans-serif;letter-spacing:.25em;color:var(--gold);margin:0 0 14px}#home{position:relative;z-index:1;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:100px 26px 20px;padding-top:calc(100px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));text-align:center}.home-inner{width:100%;max-width:500px;margin:0 auto}.home-inner h1{position:relative;display:inline-block;font-size:66px;font-weight:400;letter-spacing:.12em;line-height:1.35;margin:14px 0 0;text-shadow:0 3px 24px #061411}.title-seal{position:absolute;right:-29px;top:10px;font-size:14px;line-height:1.3;letter-spacing:2px;background:#923b30;border:1px solid #bc7456;padding:5px 3px;color:#f5ddbb}.book-subtitle{font-size:18px;letter-spacing:.6em;margin:9px 0 29px;padding-left:.6em;color:#d3cfb9}.home-poem{font-size:20px;line-height:1.9;letter-spacing:.12em;margin:20px auto 24px}.home-poem p{margin:0}.home-description{font-size:14px;line-height:2.05;color:#c4c8b8;margin-bottom:30px}.home-actions{max-width:340px;margin:auto}.primary,.secondary{display:block;width:100%;padding:15px 20px;letter-spacing:.1em;text-align:left}.primary{background:#d9c89d;color:#243229;border:1px solid #eddfba;box-shadow:0 3px 20px rgba(0,0,0,.15)}.primary:active{background:#c2b083}.primary span{font-size:12px;float:right;letter-spacing:0;padding-top:3px}.secondary{margin-top:10px;background:rgba(14,30,25,.88);border-color:#7b8260}.secondary span{font-size:11px;color:var(--muted);display:block;letter-spacing:0;margin-top:4px}.home-links{display:flex;justify-content:center;align-items:center;margin-top:15px}.home-links button{background:none;border:0;font-size:13px;padding:10px 7px}.home-links i{color:var(--gold);font-style:normal;margin:0 5px}.edition{font:10px/1.8 "Microsoft YaHei",sans-serif;letter-spacing:.16em;color:#929d8f;margin-top:22px}.adaptation{max-width:450px;margin:25px auto 0;font-size:10px;line-height:1.8;color:#91a092}
#reader{height:100%;position:relative;z-index:1;padding:72px 26px 0;padding-top:calc(72px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));display:flex;flex-direction:column}.chapter-heading{flex-shrink:0}.chapter-heading .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:5px}.chapter-heading h2{font-size:16px;font-weight:400;line-height:1.55;margin:0 0 12px;letter-spacing:.04em}.reading-progress{height:1px;background:rgba(220,220,190,.16)}.reading-progress span{height:1px;display:block;background:#d0be8d;width:0;transition:width .3s}
#stage{height:30%;min-height:90px;max-height:275px;position:relative;flex-shrink:1}#portrait{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:100%;width:auto;max-height:270px;image-rendering:pixelated;filter:drop-shadow(0 7px 7px rgba(0,0,0,.26))}#scene-label{position:absolute;bottom:7px;left:0;right:0;font-size:11px;line-height:1.6;letter-spacing:.08em;color:#e5ddc2;text-align:right;text-shadow:0 1px 4px #000;margin:0;pointer-events:none}
#dialogue{background:rgba(12,23,20,.94);border:1px solid rgba(194,174,117,.43);box-shadow:0 14px 40px rgba(0,0,0,.22);padding:21px 23px;min-height:210px;flex:1;display:flex;flex-direction:column;position:relative;max-height:65%}.dialogue-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px;flex-shrink:0;line-height:1.6}#speaker{font-size:15px;letter-spacing:.1em;color:#e6c78d}#page-kind{font:10px/1.6 "Microsoft YaHei",sans-serif;color:#8f9d8c;margin-left:14px;text-align:right}#text-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;flex:1;touch-action:pan-y}#read-text{font-size:19px;line-height:1.95;letter-spacing:.035em;margin:0;white-space:pre-wrap;overflow-wrap:break-word}.callback{font-size:13px;line-height:1.9;color:#aab99e;border-left:2px solid #74876a;padding-left:12px;margin-top:16px}.choice{display:block;width:100%;text-align:left;font-size:15px;line-height:1.8;margin-top:11px;padding:12px 15px;background:#1d3027;border-color:#61725a;letter-spacing:.025em}.choice .letter{display:inline-block;color:#bca772;width:21px;font-family:serif}.choice small{display:block;font:11px/1.7 "Microsoft YaHei",sans-serif;color:#a4aa92;margin:5px 0 0 21px}.choice.locked{background:#17251f}.choice:disabled{opacity:.58}#reader-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 0 17px;padding-bottom:calc(17px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));min-height:64px}#reader-footer button{font-size:13px;background:rgba(14,25,21,.75);padding:8px 11px}#reading-hint{color:#a3ad9b;font-size:10px;text-align:center;padding:0 7px;line-height:1.6}
#poem-panel{position:relative;flex:1;text-align:center;min-height:0;padding:44px 0 20px;display:flex;flex-direction:column}#poem-panel h2{font-size:22px;line-height:1.6;font-weight:400;letter-spacing:.08em;margin:0 0 24px;text-shadow:0 2px 6px #10221b}#poem-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 20px;touch-action:pan-y}#poem-text{font-size:23px;line-height:2.2;letter-spacing:.13em;white-space:pre-wrap;margin:0;overflow-wrap:break-word;text-shadow:0 2px 7px #051311}.poem-source{color:#b5bdab;font-size:11px;letter-spacing:.15em;margin:18px 0 0}.is-poem #stage,.is-poem #dialogue{display:none}.is-poem #reader-footer{background:rgba(9,21,18,.5)}.is-poem .chapter-heading{opacity:.7}.is-poem .scene-shade{background:rgba(8,20,20,.26)}
#complete{position:relative;z-index:1;height:100%;overflow-y:auto;padding:110px 28px 40px;text-align:center}.complete-inner{max-width:440px;margin:auto}.final-seal{width:32px;height:36px;font-size:20px;margin:15px 0}.complete-inner h1{font-size:32px;line-height:1.7;font-weight:400;letter-spacing:.12em;margin:20px 0}.complete-inner>p:not(.eyebrow){font-size:15px;line-height:2;color:#c2cbbb}.complete-inner .complete-verse{font-size:24px!important;line-height:2.2!important;letter-spacing:.18em;color:var(--paper)!important;margin:35px 0}#ending-imprint{font-size:11px;line-height:2.1;margin:24px 0}.complete-inner .secondary{text-align:center;margin-bottom:30px}
.modal{position:absolute;z-index:8;top:0;left:0;right:0;bottom:0;background:rgba(3,10,8,.74);display:flex;align-items:center;justify-content:center;padding:24px;padding-top:calc(24px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));padding-bottom:calc(24px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))}.modal-card{background:#111f1a;border:1px solid #69745a;box-shadow:0 20px 80px #030906;width:100%;max-width:660px;max-height:100%;display:flex;flex-direction:column;padding:26px 25px;min-height:0}.modal-card>header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-card h2{font-size:24px;font-weight:400;margin:0 0 18px;letter-spacing:.1em}.modal-card .eyebrow{font-size:10px;margin-bottom:6px}#close-modal{font:26px/1 sans-serif;padding:8px;border:0;background:none;margin-bottom:16px}#modal-tabs{display:flex;overflow-x:auto;flex-shrink:0;margin:0 0 20px;border-bottom:1px solid var(--line)}#modal-tabs button{border:0;border-radius:0;white-space:nowrap;font-size:12px;padding:9px 13px;background:none;color:var(--muted)}#modal-tabs button.active{color:var(--paper);border-bottom:2px solid var(--gold)}#modal-body{overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;touch-action:pan-y}.modal-copy{font-size:13px;line-height:2;color:#aeb9a5;margin:0 0 16px}.card{display:block;width:100%;border:1px solid #44573f;padding:15px 17px;margin:0 0 12px;text-align:left;background:#182920}.card h3{font-size:16px;line-height:1.7;font-weight:400;letter-spacing:.03em;margin:0 0 5px}.card p{font-size:12px;line-height:1.85;color:#b1bda6;margin:0}.card .tag{font-size:10px;color:var(--gold);letter-spacing:.08em;margin-bottom:6px}.card .poem-copy{font-size:16px;line-height:2.1;color:#dedcc3;white-space:pre-wrap}.trait-row{display:flex;align-items:center;font-size:13px;margin-bottom:15px}.trait-row>span{width:44px}.trait-track{height:3px;background:#2d402e;flex:1;margin:0 15px}.trait-track>i{display:block;height:3px;background:#bda970}.setting-button{display:block;width:100%;margin-bottom:12px;text-align:left;padding:14px 18px}#storage-status{position:absolute;z-index:10;top:72px;left:15px;right:15px;padding:10px;background:#5c3e2b;color:#fff3cf;font-size:12px;line-height:1.7;text-align:center}#toast{position:absolute;z-index:10;bottom:90px;left:30px;right:30px;text-align:center;background:#263d2c;border:1px solid var(--gold);padding:13px;font-size:13px;line-height:1.7;pointer-events:none}#boot{position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;background:#101714;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:13px;letter-spacing:.2em}#boot .small-seal{width:40px;height:45px;font-size:25px;margin-bottom:20px}
@media(min-width:700px){#home{padding-top:120px}.home-inner h1{font-size:78px}.home-description{font-size:16px}.home-poem{font-size:23px}#reader{max-width:840px;margin:auto;padding-left:60px;padding-right:60px}#dialogue{padding:25px 32px;max-height:56%}#read-text{font-size:21px;line-height:2}#stage{height:35%;max-height:310px}#portrait{max-height:300px}.chapter-heading h2{font-size:20px}.chapter-heading .eyebrow{font-size:11px}#poem-panel{padding-top:50px}#poem-text{font-size:28px;line-height:2.1}.complete-inner h1{font-size:38px}}
@media(max-width:370px){#toolbar{padding-left:12px;padding-right:12px}#toolbar nav button+button{margin-left:1px}#home{padding-left:20px;padding-right:20px}.home-inner h1{font-size:55px}.home-description{font-size:13px}.home-poem{font-size:18px}#reader{padding-left:15px;padding-right:15px}#dialogue{padding:17px}#read-text{font-size:17px;line-height:1.9}.modal{padding:13px}.modal-card{padding:20px 17px}.choice{font-size:14px}#poem-text{font-size:20px;letter-spacing:.07em}}
@media(max-height:720px){#home{padding-top:82px}.home-inner h1{font-size:52px;margin-top:5px}.book-subtitle{margin-bottom:18px}.home-poem{margin:16px auto;font-size:18px}.home-description{margin-bottom:20px;font-size:13px}.edition{margin-top:12px}.adaptation{margin-top:14px}#reader{padding-top:65px}#stage{height:23%;min-height:55px}#dialogue{max-height:70%;min-height:140px;padding:15px 19px}#read-text{font-size:17px;line-height:1.85}.dialogue-top{padding-bottom:8px;margin-bottom:10px}#reader-footer{padding-top:10px;padding-bottom:10px}#poem-panel{padding-top:20px}#poem-panel h2{font-size:19px;margin-bottom:15px}#poem-text{font-size:20px;line-height:1.9}}
@media(max-height:480px) and (min-width:600px){#reader{padding-top:56px;padding-left:25px;padding-right:25px;max-width:100%}.chapter-heading{width:100%;max-width:none}.chapter-heading h2{font-size:14px;margin-bottom:5px}.chapter-heading .eyebrow{display:none}#stage{position:absolute;left:10px;top:90px;bottom:55px;width:30%;height:auto;max-height:none}#scene-label{text-align:center;font-size:10px}#dialogue{margin-top:12px;margin-left:32%;max-height:none;min-height:0}#read-text{font-size:16px}#reader-footer{margin-left:32%;min-height:48px}.choice{font-size:13px;padding:8px;margin-top:8px}.is-poem #reader-footer{margin-left:0}#poem-panel{padding-top:10px}#poem-text{font-size:18px}.modal-card{padding:15px 20px}.modal-card h2{font-size:20px;margin-bottom:10px}#modal-tabs{margin-bottom:10px}}
.chapter-heading{background:rgba(10,23,19,.83);padding:10px 12px 0;border-top:1px solid rgba(208,184,124,.15)}
.stage-action{font-size:12px;line-height:1.9;letter-spacing:.03em;color:#9fab97;margin:0 0 10px;padding-left:10px;border-left:1px solid #50634b}
@media(min-width:371px) and (max-width:699px) and (min-height:721px){#poem-text{font-size:21px;letter-spacing:.08em}}
@media(max-height:720px){#home{padding-top:calc(82px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}#reader{padding-top:calc(65px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}#reader-footer{padding-bottom:calc(10px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))}}
@media(max-height:480px) and (min-width:600px){#reader{padding-top:calc(56px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Mobile-first AVG composition: match the original 600px stage and bottom dialogue. */
#app{max-width:600px;height:100%;height:100dvh}
#reader{max-width:none;padding:0;margin:0;display:block}
#toolbar{padding:10px 12px;padding-top:calc(10px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));min-height:48px}
#toolbar nav button+button{margin-left:0}
.chapter-heading{position:absolute;top:calc(53px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));left:12px;right:12px;padding:6px 10px;background:rgba(10,23,19,.65)}
.chapter-heading h2{font-size:14px;margin:0 0 5px}.chapter-heading .eyebrow{font-size:9px;margin-bottom:3px}
#dialogue{position:absolute;left:12px;right:12px;bottom:calc(12px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));height:34%;min-height:168px;max-height:300px;margin:0;padding:15px 17px 36px;display:flex}
.dialogue-top{padding-bottom:7px;margin-bottom:8px}#speaker{font-size:14px}#read-text{font-size:16px;line-height:1.66;letter-spacing:.025em}.stage-action{font-size:11px;line-height:1.65;margin-bottom:7px}
#stage{position:absolute;left:12px;right:12px;top:130px;bottom:calc(34% + 6px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));width:auto;height:auto;min-height:0;max-height:none;pointer-events:none}
#portrait{height:100%;max-height:384px;width:auto;max-width:100%;object-fit:contain;object-position:bottom;bottom:0}
#scene-label{display:none}
#reader-footer{position:absolute;left:24px;right:24px;bottom:calc(17px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));padding:0;min-height:25px;margin:0;z-index:2}
#reader-footer button{padding:3px 5px;font-size:11px;border:0;background:none}#reading-hint{font-size:10px}#next{width:28px;overflow:hidden;white-space:nowrap;font-size:0!important}#next:after{content:'▾';font-size:18px;color:var(--gold)}
#choices:empty{display:none}#choices{position:absolute;z-index:4;left:20px;right:20px;top:calc(130px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));bottom:calc(34% + 24px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;touch-action:pan-y;padding:8px 0}
#choices .choice{flex-shrink:0;margin:5px 0;padding:12px 14px;font-size:14px;line-height:1.65;background:rgba(17,29,23,.97);border-color:#a38c60;text-align:center}#choices .choice small{text-align:left}
.is-choice #portrait{opacity:.24}.is-choice #dialogue{height:28%;min-height:140px}.is-choice #choices{bottom:calc(28% + 26px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))}
#poem-panel{position:absolute;top:130px;left:12px;right:12px;bottom:60px;padding:20px 0 0}#poem-text{font-size:21px;line-height:2;letter-spacing:.07em}.is-poem #reader-footer{background:none}.is-poem .chapter-heading{opacity:.7}
@media(min-width:500px){#read-text{font-size:19px}#choices .choice{font-size:16px}}
@media(max-height:650px){.chapter-heading{top:50px}.chapter-heading .eyebrow{display:none}#stage{top:95px;bottom:180px}#portrait{max-height:256px}#dialogue{height:168px;min-height:168px;padding-top:10px}#read-text{font-size:15px}#choices{top:95px;bottom:188px}.is-choice #choices{bottom:170px}.is-choice #dialogue{height:150px;min-height:150px}#choices .choice{padding:9px 12px;font-size:13px}#poem-panel{top:95px;padding-top:10px}}
@media(max-height:480px){#stage{top:85px;bottom:165px}#portrait{max-height:140px}.chapter-heading h2{font-size:12px}#dialogue{height:155px;min-height:155px}#choices,.is-choice #choices{top:85px;bottom:160px}#choices .choice{padding:8px 10px}#poem-panel{top:85px}#poem-text{font-size:18px}}

#choices .choice:first-child{margin-top:auto}#choices .choice:last-child{margin-bottom:auto}

/* The original visual-novel cue appears only after the line finishes. */
#next{height:28px;overflow:visible;position:relative;min-width:32px}
#next:after{display:block;opacity:0;text-shadow:0 0 9px rgba(218,190,120,.4)}
#next.ready:after{opacity:1;animation:dialogue-cue 1.05s ease-in-out infinite}
@keyframes dialogue-cue{0%,100%{transform:translateY(-2px);opacity:.55}50%{transform:translateY(4px);opacity:1}}
#app[data-motion="off"] #next:after{animation:none;transform:none;opacity:1}
#app[data-motion="off"] #next:not(.ready):after{opacity:0}
#landscape{image-rendering:pixelated}
.scene-shade{background:linear-gradient(180deg,rgba(5,15,21,.16),rgba(6,17,20,.03) 23%,rgba(6,17,20,.05) 55%,rgba(9,20,20,.43) 76%,#101714)}
.screen-home .scene-shade,.screen-complete .scene-shade{background:linear-gradient(180deg,rgba(5,17,24,.26),rgba(7,22,26,.45) 45%,rgba(7,19,21,.91))}
.chapter-heading{background:rgba(10,23,24,.72)}
#dialogue{background:rgba(10,22,21,.95);border-color:rgba(190,172,123,.63);box-shadow:0 8px 30px rgba(0,0,0,.32),inset 0 0 0 3px rgba(180,158,101,.035)}
@media(prefers-reduced-motion:reduce){#next.ready:after{animation:none;transform:none}}

/* The title screen has its own pixel panorama and an open view of the shore. */
.screen-home .scene-shade{background:linear-gradient(180deg,rgba(5,15,25,.08),rgba(5,18,27,.04) 40%,rgba(5,18,27,.1) 54%,rgba(7,20,25,.68) 85%,rgba(7,18,23,.9))}
.screen-home #home{padding-top:calc(76px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}
.screen-home .home-inner>.eyebrow{margin-bottom:8px;font-size:10px;text-shadow:0 2px 8px #0a1e2c}
.screen-home .home-inner h1{font-size:58px;letter-spacing:.12em;margin:0;line-height:1.35;text-shadow:0 3px 0 #163438,0 6px 18px #081d2a}
.screen-home .book-subtitle{font-size:16px;margin:7px 0 15px;color:#dbd9bd;text-shadow:0 2px 8px #0a1e2c}
.screen-home .home-poem{font-size:17px;line-height:1.85;margin:0 0 20vh;color:#e5ddbf;text-shadow:0 2px 7px #071d2c}
.screen-home .home-description{font-size:13px;line-height:1.85;margin:0 0 18px;color:#c9d6c4;text-shadow:0 2px 7px #071d2c}
.screen-home .home-actions{width:100%;max-width:330px}
.screen-home .edition{margin-top:14px}.screen-home .adaptation{margin-top:18px}
@media(max-height:720px){.screen-home #home{padding-top:calc(64px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)))}.screen-home .home-inner h1{font-size:48px}.screen-home .home-poem{font-size:15px;margin-bottom:15vh}.screen-home .book-subtitle{font-size:14px;margin-bottom:10px}.screen-home .home-description{font-size:12px;margin-bottom:12px}.screen-home .primary{padding:11px 15px}.screen-home .home-links{margin-top:8px}.screen-home .edition{margin-top:7px}}

/* Famous verses use a shared offline Kai bitmap atlas, independent of system fonts. */
#poem-window{flex:1;min-height:88px;max-width:320px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}
.is-poem .scene-shade{background:rgba(8,20,20,.48)}
#poem-canvas{display:block;width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 2px 2px #10201e)}
.poem-controls{display:flex;justify-content:center;flex-shrink:0;margin-top:8px}.poem-controls button{font-size:12px;padding:7px 16px;margin:0 5px;background:rgba(11,25,24,.64)}
#poem-panel #poem-scroll{padding:4px 12px}#poem-panel #poem-text{font-family:KaiTi,STKaiti,"Kaiti SC",serif;font-size:28px;line-height:1.95;letter-spacing:.04em}
#poem-panel .poem-source{margin:12px 0 0}#poem-panel h2{margin-bottom:12px}
@media(max-width:370px){#poem-panel #poem-text{font-size:25px}}
@media(max-height:480px){#poem-panel{top:82px;bottom:45px;padding-top:0}#poem-panel>.eyebrow,#poem-panel .poem-source{display:none}#poem-panel h2{font-size:17px;margin-bottom:3px}#poem-window{min-height:60px;max-width:300px}.poem-controls{margin-top:2px}.poem-controls button{padding:3px 12px}#poem-panel #poem-text{font-size:23px}}

/* Keep native bitmap glyphs and move each complete line at subpixel precision. */
#poem-window{position:relative}
.poem-lines{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);pointer-events:none;overflow:hidden}
.poem-line{position:absolute;left:0;top:0;width:100%;height:auto;image-rendering:pixelated;will-change:transform,opacity;filter:drop-shadow(0 2px 2px #10201e)}
