@font-face{font-family:LongCang;src:url(assets/fonts/longcang.woff2) format('woff2');font-display:swap}
body{font-family:WenKai,Text,serif;font-size:16px}.frame{font-family:WenKai,Text,serif}button,input{font-family:WenKai,Text,serif}.obj .tag,.catalogue .tag,.notebook .tag,.map-object .tag,.folio-object .tag{font-family:LongCang,WenKai,serif;font-size:25px;font-weight:400;line-height:1.35;letter-spacing:.04em}.obj .tag small{font-family:WenKai,serif;font-size:10px;letter-spacing:0}.candidate,.map-region,.collection-list strong{font-family:LongCang,WenKai,serif;font-size:21px;line-height:1.5}.narrative p,.story-text p,.final-narrative p,.research-note p,.stage-report p,.annotation p,.modern-notes p,.submission p,.submission-text p,.opening-excerpt,.application-form,.signature-area small{font-family:WenKai,Text,serif}.opening-excerpt{font-family:MaShan,Brush,WenKai,serif}.signature-area span{font-family:ZhiMangXing,WenKai,serif}.book-title,.shelf-intro h2{font-family:LongCang,WenKai,serif}
.shelf-intro{margin:12px 0 24px}.shelf-intro p{font-size:13px;color:#87725d;margin:4px 0}.bookshelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px 13px;align-items:end;background:repeating-linear-gradient(0deg,transparent 0 184px,#9c795b18 185px,#fff6 188px,transparent 191px);padding:12px 0 24px}.shelf-book{padding:0;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;background:none;transform:none}.book-cover{display:block;position:relative;width:100%;height:162px;background:#d9c49a url(assets/binding.jpg) center/100% 100%;box-shadow:2px 3px 0 #c2ad86,3px 5px 0 #e0d2b2,4px 6px 7px #4c37252b;border-radius:2px 1px 1px 3px;isolation:isolate}.book-cover:after{content:'';position:absolute;inset:1px 2px 1px auto;width:2px;background:#f2e8cd88;z-index:-1}.variant-1 .book-cover{height:154px;background:#d5c09e url(assets/paper.jpg) center/cover;border-left:6px solid #998161}.variant-2 .book-cover{height:166px;background:#988472 url(assets/emboss.jpg) center/cover;filter:sepia(.25)}.variant-3 .book-cover{height:158px;background:#dfd0ae url(assets/paper.jpg) center/cover;box-shadow:2px 2px #b5a080,3px 4px #e1d4b5,4px 6px 8px #4c37252b}.book-thread{position:absolute;left:6px;top:12%;bottom:8%;width:6px;background:repeating-linear-gradient(0deg,transparent 0 24px,#dfcca3 25px 27px,#634d33 28px 29px);opacity:.8}.book-title{position:absolute;right:11%;top:8%;bottom:9%;writing-mode:vertical-rl;text-orientation:upright;font-size:clamp(17px,5.1vw,23px);line-height:1.13;background:#f1e5c9eb;padding:7px 3px;max-width:72%;overflow:hidden;letter-spacing:.025em;box-shadow:0 0 0 1px #84664128;color:#3d2c1f;text-align:start;overflow-wrap:anywhere}.book-index{position:absolute;bottom:6px;left:9px;font:9px/1 WenKai;color:#c8b89a}.variant-1 .book-index,.variant-3 .book-index{color:#735e43}.read-seal{position:absolute;left:12%;bottom:14%;font:18px/.95 LongCang;color:#8b4035d9;border:2px double #8b4035bd;padding:3px;transform:rotate(-11deg);border-radius:2px 1px 3px 1px;mask-image:radial-gradient(circle at 21% 17%,transparent 0 1px,#000 1.6px),linear-gradient(#000,#000);mask-composite:intersect;text-shadow:.5px 0 #9a514241}.book-status{font:12px/1.5 WenKai;color:#7e674e;padding-top:10px;min-height:30px;text-align:center}.empty-shelf{padding:24px 0;color:#8c755c}.shelf-book:active .book-cover{transform:translateY(-5px) rotate(-1deg)}.paper-action{display:flex;align-items:center;gap:10px;min-height:48px;padding:11px 14px;width:100%;background:#f1e7d0 url(assets/paper.jpg) center/cover;border:1px solid #ab91705e;box-shadow:1px 2px #bdab8d55;color:#654b32;font-family:WenKai,serif;font-size:16px;line-height:1.4;text-decoration:none}.paper-action span:last-child{margin-left:auto}.paper-action small{display:block;font-size:11px;color:#927a5c}.reading-dock{padding:9px 18px max(10px,env(safe-area-inset-bottom));gap:12px;background:#f1e6d4f5}.reading-dock .paper-action{font-size:16px;min-height:52px;padding:9px 12px}.reading-dock>.paper-action+span{flex:none}.vertical-reader .leaf{padding-top:24px}.vertical-reader .doc-head h1{font:24px/1.4 LongCang,WenKai,serif;margin:8px 0}.vertical-reader .doc-head p{font:12px/1.7 WenKai;margin:6px 0 12px;color:#897058}.ancient-scroll{direction:rtl;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%;margin:18px 0 16px;border-block:1px solid #a48b6238;background:linear-gradient(90deg,#aa8d6411,transparent 8%,transparent 95%,#aa8d6414)}.ancient-columns{display:flex;direction:rtl;flex-direction:row;width:max-content;min-width:100%;align-items:flex-start;gap:7px;padding:8px}.ancient-line{font:22px/1.85 MaShan,Brush,WenKai,serif;writing-mode:vertical-rl;text-orientation:upright;direction:ltr;height:clamp(275px,47svh,410px);width:auto;min-width:46px;flex:none;padding:12px 6px;letter-spacing:.05em;white-space:normal;word-break:normal;overflow-wrap:normal;background:none;border-radius:0;border:0;text-align:start;color:#332719}.ancient-line.active{background:#a87a3e13;box-shadow:inset -2px 0 #9a514276}.ancient-line .source-number{font-family:WenKai,serif;font-size:10px;line-height:1.5;text-combine-upright:all;color:#9a8165;margin-bottom:12px;letter-spacing:0}.modern-notes{writing-mode:horizontal-tb;padding:16px 14px;background:#f9f2e2cc;border-left:2px solid #9d7b55;margin-top:12px;box-shadow:1px 2px 4px #68513a0c}.modern-notes small{font-size:11px;color:#8e765a}.modern-notes p{font:15px/1.9 WenKai;margin:10px 0 0}.reader-invitation{font-size:12px;color:#927a5e}.reader-footer{margin-top:16px}.reader-footer small{font:11px WenKai}.ancient-narrative{font-family:MaShan,Brush,WenKai,serif!important;writing-mode:vertical-rl;text-orientation:upright;height:auto;max-height:57svh;min-height:13em;max-width:100%;overflow-x:auto;line-height:1.8!important;font-size:23px!important;margin-inline:auto!important;letter-spacing:.045em}.opening-excerpt{writing-mode:vertical-rl;text-orientation:upright;height:13em;margin-inline:auto;line-height:1.9}.local-line .sentence{font-family:MaShan,Brush,WenKai,serif;writing-mode:vertical-rl;text-orientation:upright;height:14em;width:auto;max-width:100%;line-height:1.85;font-size:21px}.local-line{overflow-x:auto}.local-line .annotation{writing-mode:horizontal-tb}.hand-letter>img{max-height:55svh}.hand-translation{font:clamp(24px,6.5vw,30px)/1.8 ZhiMangXing,WenKai,serif;writing-mode:vertical-rl;text-orientation:upright;height:calc(clamp(24px,6.5vw,30px)*min(24,max(13,var(--hand-length))));max-width:100%;width:max-content;overflow-x:auto;letter-spacing:.06em;white-space:normal;word-break:normal;overflow-wrap:normal;margin:25px auto 18px;text-align:start;padding:10px 6px}.hand-letter .hand-translation{min-height:320px}.hand-letter{padding-bottom:12px}.airport-cg{max-width:520px;width:100%;height:100svh;min-height:100svh;overflow:hidden;position:relative;background:#f5eddf;isolation:isolate;box-shadow:none}.airport-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%;mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 24%,#000 86%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 24%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;z-index:-1}.airport-top{position:absolute;top:calc(12px + env(safe-area-inset-top));left:20px}.airport-top button{font-size:12px;color:#735c47;background:#f7efdf99;padding:5px 10px;border-radius:1px}.airport-dialogue{position:absolute;left:5%;right:5%;bottom:calc(24px + env(safe-area-inset-bottom));min-height:170px;max-height:45svh;overflow:auto;background:#fff8e6cf;border:1px solid #c4ab834f;padding:19px 21px 15px;box-shadow:0 3px 15px #6c51351a;color:#3f3023}.airport-dialogue .speaker{display:block;font:14px/1.4 WenKai;letter-spacing:.1em;color:#8d4b3b;margin-bottom:12px}.airport-dialogue p{font:18px/1.9 WenKai;margin:5px 0 18px;white-space:pre-wrap}.airport-dialogue.narrator-line p{color:#6e5741;font-size:16px}.cg-next{font:11px/1.5 WenKai;color:#9d8468;display:block;margin-left:auto;min-height:30px;padding:5px 0;text-align:right}.automatic-ending{position:relative;overflow:hidden;height:100svh;min-height:100svh;width:100%;max-width:520px;margin:auto;background:#faf6ed;display:grid;place-items:center;box-shadow:none}.automatic-ending .terminal-cg{position:absolute;inset:0;animation:airport-out 2.6s ease forwards}.warm-white{position:absolute;inset:0;background:#faf6ed;animation:warm-arrival 2.6s ease forwards}.ending-title{font-family:WenKai,serif;font-size:35px;color:#514236;letter-spacing:.25em;text-indent:.25em}.ending-fin .ending-title{animation:fin-title 3s ease both}.ending-theend .ending-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,14vw,60px);font-weight:400;letter-spacing:.12em;text-indent:.12em;animation:end-title 4.6s ease both}.rolling-credits{height:100svh;min-height:100svh;max-width:520px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f7f1e5 url(assets/paper.jpg) center/cover;padding:calc(27px + env(safe-area-inset-top)) 24px max(15px,env(safe-area-inset-bottom));animation:credits-in 1.1s ease;box-shadow:none}.rolling-credits header{text-align:center;padding-bottom:19px}.rolling-credits h1{font:27px/1.5 LongCang,WenKai;margin:0 0 14px;letter-spacing:.1em}.rolling-credits header p{font:9px/1.8 WenKai;letter-spacing:.08em;text-transform:uppercase;max-width:32em;margin:0 auto 8px}.rolling-credits strong{font:17px/1.8 WenKai;font-weight:400}.credits-middle{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.credits-middle h2{font:21px/1.5 LongCang,WenKai;text-align:center;margin:5px 0 14px}.credits-window{overflow:hidden;min-height:0;mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent)}.credits-track{--cycle-height:1000px;--roll-duration:60s;animation:credits-loop var(--roll-duration) linear infinite;will-change:transform}.credits-copy{padding:0;margin:0}.credits-copy ol{list-style:none;padding:0;margin:0;text-align:center}.credits-copy li{font:17px/1.9 WenKai;padding:14px 0;margin:0;min-height:60px}.rolling-credits footer{text-align:center;padding-top:18px}.rolling-credits footer>small{font:10px/1.8 WenKai;letter-spacing:.15em}.rolling-credits footer>p{font:18px/1.8 WenKai;margin:5px 0}.credits-actions{display:flex;justify-content:center;gap:30px}.credits-actions button{font:11px WenKai;color:#92795e;padding:5px 0;min-height:32px}.terminal-cg .airport-dialogue{pointer-events:none}@keyframes airport-out{from{opacity:1}to{opacity:0}}@keyframes warm-arrival{from{opacity:0}to{opacity:1}}@keyframes fin-title{0%{opacity:0}18%,78%{opacity:1}100%{opacity:0}}@keyframes end-title{0%{opacity:0}18%,82%{opacity:1}100%{opacity:0}}@keyframes credits-in{from{opacity:0}to{opacity:1}}@keyframes credits-loop{from{transform:translateY(0)}to{transform:translateY(calc(-1*var(--cycle-height)))}}@media(max-width:350px){.bookshelf{gap:23px 9px}.book-cover{height:145px}.variant-1 .book-cover{height:140px}.variant-2 .book-cover{height:150px}.variant-3 .book-cover{height:144px}.book-title{font-size:18px;right:10%;padding:6px 2px}.ancient-line{font-size:21px}.airport-dialogue{left:4%;right:4%;padding:17px;bottom:calc(16px + env(safe-area-inset-bottom))}.airport-dialogue p{font-size:17px}.rolling-credits{padding-inline:19px}.rolling-credits h1{font-size:25px}.credits-copy li{font-size:16px}.hand-translation{font-size:24px;height:calc(24px*min(24,max(13,var(--hand-length))))}}@media(prefers-reduced-motion:reduce){.credits-track{animation:credits-loop var(--roll-duration) linear infinite!important}.ending-title{opacity:1}.warm-white{opacity:1}}
@font-face{font-family:EndSerif;src:url(assets/fonts/end-serif.woff2) format('woff2');font-display:swap}.ending-theend .ending-title{font-family:EndSerif,serif}.book-title{font-size:var(--title-font,20px);max-width:78%;right:8%;padding-inline:2px}
.hand-translation{width:100%;margin-inline:0;padding-inline:14px}.final-narrative p.ancient-narrative.past{height:5em;min-height:0;max-height:5em;overflow:hidden;font-size:17px!important;opacity:.22}.variant-0 .read-seal,.variant-2 .read-seal{left:auto;right:9%;bottom:10%;font-size:14px}
.airport-visual{position:absolute;inset:0;z-index:-1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent),linear-gradient(0deg,transparent,#000 24%,#000 86%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent),linear-gradient(0deg,transparent,#000 24%,#000 86%,transparent);-webkit-mask-composite:source-in}.airport-visual .airport-portrait{width:125%;height:125%;left:-12.5%;top:-20%;inset:auto;position:absolute;left:-12.5%;top:-20%;object-position:50% 50%;mask-image:none;-webkit-mask-image:none}.airport-dialogue[role=button]{cursor:pointer}.airport-dialogue[role=button]:focus-visible{outline:2px solid #9b7151;outline-offset:3px}.airport-dialogue .cg-next{min-height:20px;pointer-events:none}
@font-face{font-family:ZhiMangXing;src:url(assets/final/zhimangxing.woff2) format('woff2');font-display:swap}

@media(prefers-reduced-motion:reduce){.credits-track{animation-duration:calc(var(--roll-duration)*1.5)!important}}
.hand-translation{height:var(--hand-em,16em);font-family:ZhiMangXing,WenKai,serif}.airport-cg,.automatic-ending,.rolling-credits{height:100vh;min-height:100vh;height:100svh;min-height:100svh}.ancient-line{height:340px;height:clamp(275px,47svh,410px)}.airport-dialogue{max-height:45vh;max-height:45svh}.source-number{-webkit-text-combine:horizontal}
.signature-area span{font-family:WenKai,Text,serif}
body.cinematic-mode{padding-block:0}
.application-title{font-size:19px!important;line-height:1.5!important;letter-spacing:0!important;white-space:nowrap}
