:root{color-scheme:light;--paper: #e9e5da;--ink: #30372d;--muted: #626759;--green: #426347;--rule: rgba(63, 71, 54, .25);font-family:Segoe UI,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button{border:0;background:none}button:disabled{opacity:.5;cursor:wait}button:active:not(:disabled),.book-open:active{transform:scale(.96)}button,a,input{outline-offset:6px}button:focus-visible,a:focus-visible{outline:2px solid var(--green)}a{color:inherit;text-decoration:none}input{min-width:0}button{transition:background-color .2s,color .2s,transform .2s}button:hover:not(:disabled){color:var(--green)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;left:20px;top:12px;z-index:50;padding:14px;background:var(--paper);transform:translateY(-160%)}.skip-link:focus{transform:none}#portal{min-height:100svh;isolation:isolate}.line-field,.archive-scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.line-field{z-index:-1;transition:opacity .8s}.archive-scene{opacity:0;z-index:-1;transition:opacity .15s;background:var(--paper)}.archive-scene.visible{opacity:1;pointer-events:auto}.archive-scene canvas{display:block;width:100%;height:100%;touch-action:pan-y}.text-button{font-size:11px;min-height:40px;padding:8px 0}.intro-stage,.loading-stage{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:4;pointer-events:none}.intro-stage button{pointer-events:auto}.stage-caption{position:absolute;top:calc(50% - 15.5vw);font:10px/1.5 Courier New,monospace;letter-spacing:3px;margin:0}.word-svg{display:block;width:100%;height:auto;overflow:visible}.word-svg path{fill:transparent;stroke:var(--ink);stroke-width:1.15;stroke-dasharray:1;stroke-dashoffset:1}.intro-word,.loading-words{width:94vw;position:relative}.intro-word{perspective:1000px}.intro-word svg{transform:translateZ(-900px) rotateX(12deg);transform-origin:50% 55%;opacity:0;transition:transform 1.8s cubic-bezier(.16,1,.3,1),opacity .3s}.intro-stage.drawing .intro-word svg{transform:translateZ(0) rotateX(0);opacity:1}.drawing .word-svg path{animation:draw-letter 1.6s cubic-bezier(.4,0,.2,1) calc(var(--letter) * 65ms) forwards}.filled .word-svg path{fill:var(--ink);transition:fill .4s}.intro-baseline{width:87%;position:absolute;top:calc(50% + 13.5vw);display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding-top:19px;font-size:11px;letter-spacing:2px}.intro-baseline span:last-child{font:10px Courier New,monospace}.skip-intro{position:absolute;bottom:90px;right:6.5%;font-size:12px}.skip-intro span{margin-left:30px}.intro-stage.dissolve .intro-word{transform:scale(1.06);opacity:0;filter:blur(2px);transition:transform .65s,opacity .65s,filter .65s}.intro-stage.dissolve path{fill:transparent;stroke-dasharray:.04 .035}.intro-stage.dissolve .intro-baseline,.intro-stage.dissolve .stage-caption{opacity:0;transition:opacity .4s}.blink-twice{animation:blink-twice .72s steps(1,end)}.access-stage{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 24px 95px;opacity:0;transform:translateY(18px);transition:opacity .5s,transform .6s}.access-stage.entered{opacity:1;transform:none}.access-heading{text-align:center;margin-bottom:30px}.eyebrow{font:10px/1.6 Courier New,monospace;letter-spacing:1.8px;margin:0}.eyebrow span{margin-left:15px}.access-heading h1{font:700 clamp(28px,3.1vw,43px)/1.5 Georgia,"Songti SC",SimSun,serif;letter-spacing:4px;margin:15px 0 8px;text-wrap:balance}.access-subtitle{font-size:12px;color:var(--muted);letter-spacing:1px;margin:0}.access-card{width:min(420px,100%);border:1px solid var(--rule);background:var(--paper);padding:24px 32px 0;position:relative}.card-label{display:flex;justify-content:space-between;font:9px/1.3 Courier New,monospace;letter-spacing:1px;border-bottom:1px solid var(--rule);padding-bottom:17px;margin-bottom:22px}.access-card label{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1px;margin:16px 0 8px}.access-card label span{font:8px Courier New,monospace;color:var(--muted);letter-spacing:1.4px}.access-card input{width:100%;height:42px;padding:9px 0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s}.access-card input:focus{border-color:var(--green);box-shadow:0 1px var(--green)}input::placeholder{color:#797c70;font-size:12px}.password-row,.code-row{display:flex;align-items:center;position:relative}.password-row input{padding-right:42px}.password-toggle{position:absolute;right:0;top:0;min-width:40px;min-height:42px;font-size:10px;color:var(--muted)}.send-code{font-size:10px;border-bottom:1px solid var(--rule);height:42px;flex-shrink:0;padding:8px 0 8px 12px;min-width:95px;font-variant-numeric:tabular-nums}#form-note{font-size:11px;line-height:1.8;min-height:23px;margin:13px 0 8px;color:#705036}.primary-button{min-height:46px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 17px;background:var(--green);color:#f6f2e8;font-size:12px;letter-spacing:2px}.primary-button:hover:not(:disabled){background:#334e38;color:#fff}.primary-button>span:last-child{font-size:20px;line-height:1}.form-secondary{display:grid;grid-template-columns:1fr 1fr;margin:15px -32px 0;border-top:1px solid var(--rule)}.form-secondary button{font-size:11px;letter-spacing:1px;min-height:53px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.form-secondary button+button{border-left:1px solid var(--rule)}.form-secondary button:hover{background:#dcded1}.card-corner{position:absolute;width:7px;height:7px;border-color:var(--ink);border-style:solid;pointer-events:none}.corner-tl{top:-1px;left:-1px;border-width:1px 0 0 1px}.corner-tr{top:-1px;right:-1px;border-width:1px 1px 0 0}.corner-bl{bottom:-1px;left:-1px;border-width:0 0 1px 1px}.corner-br{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.access-footnote{font-size:10px;letter-spacing:2px;margin-top:25px;color:var(--muted);text-align:center}.access-footnote span{display:block;font:8px/2.5 Courier New,monospace;letter-spacing:1.8px}.access-stage.leaving{opacity:0;transform:scale(1.04)}.access-stage.leaving .access-card{background:transparent;border-style:dashed}.access-stage.leaving input{transform:translate(30px);opacity:0;transition:transform .4s,opacity .3s}.register-mode{padding-top:18px}.register-mode .card-label{margin-bottom:8px}.register-mode label{margin-top:10px}.register-mode input{height:36px}.access-stage:has(.register-mode){padding-top:110px;padding-bottom:80px}.access-stage:has(.register-mode) .access-heading{margin-bottom:18px}.access-stage:has(.register-mode) .access-heading h1{font-size:30px;margin-top:8px}.access-stage:has(.register-mode) .access-footnote{margin-top:14px}.loading-stage{z-index:6}.loading-words{aspect-ratio:4}.loading-word,.success-word{position:absolute;top:0;right:0;bottom:0;left:0}.loading-word .word-svg path{stroke:#656b5e;fill:transparent}.loading-stage.drawing .loading-word .word-svg path{fill:var(--ink);transition:fill .8s .35s}.success-word{clip-path:inset(0 50% 0 50%);background:var(--paper)}.success-word .word-svg path{fill:var(--green);stroke:var(--green);stroke-dashoffset:0;stroke-width:.4;animation:none}.loading-meta{position:absolute;top:calc(50% + 13.5vw);width:87%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.5px}#loading-progress{font:11px Courier New,monospace;letter-spacing:2px;font-variant-numeric:tabular-nums}.progress-track{position:absolute;top:calc(50% + 13.5vw + 37px);height:1px;background:var(--rule);width:87%}.progress-track i{display:block;background:var(--green);width:100%;height:1px;transform:scaleX(0)}.loading-stage.complete .success-word{background:transparent}.loading-stage.complete .loading-word{opacity:0}.pulse{animation:single-pulse .32s steps(1,end)}.loading-stage.finished{opacity:0;transform:scale(1.025);transition:opacity .5s,transform .5s}.loading-stage.finished .success-word path{fill:transparent;stroke-dasharray:.01 .015}.navigation-loading{background:var(--paper)}.archive-ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .8s}.archive-ui.entered{opacity:1}.archive-ui button,.archive-ui a{pointer-events:auto}.shelf-arrow{position:absolute;top:45%;width:50px;height:50px;border:1px solid rgba(48,55,45,.4);border-radius:50%;background:#e9e5dac7;font-size:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.shelf-prev{left:3.4vw}.shelf-next{right:3.4vw}.book-number{font:italic 64px/1 Georgia,serif;letter-spacing:-4px}.book-number span{font:10px Courier New,monospace;letter-spacing:0;display:block;margin-top:9px}.book-open{display:flex;gap:48px;align-items:center;padding:16px 24px;background:var(--green);color:var(--paper);font-size:12px;letter-spacing:2px;transition:background-color .2s,transform .2s}.book-open:hover{background:#334e38}.book-open span{font-size:22px}.fallback-shelf{height:76%;display:flex;align-items:center;justify-content:center;gap:3vw;perspective:1400px;padding:100px 5vw}.fallback-shelf button{width:17vw;max-width:240px;aspect-ratio:.68;background:#dcd7ca;border:1px solid var(--rule);box-shadow:-8px 5px #c5bfac,0 25px 40px #50554844;display:flex;flex-direction:column;align-items:center;justify-content:space-around;color:var(--ink);transform:rotateY(-25deg);transition:transform .8s,background-color 1s,color .4s}.fallback-shelf button.selected{transform:translateZ(100px) rotate(-5deg);color:var(--paper)}.fallback-shelf small,.fallback-shelf span{font:10px Georgia;letter-spacing:1px}.fallback-shelf strong{font:700 28px SimSun,serif}@keyframes draw-letter{to{stroke-dashoffset:0}}@keyframes blink-twice{0%,38%,70%,to{opacity:1}18%,55%{opacity:.12}}@keyframes single-pulse{0%,44%,to{opacity:1}18%,33%{opacity:.08}}@media(min-width:1600px){.access-card{width:460px;padding-left:36px;padding-right:36px}.form-secondary{margin-left:-36px;margin-right:-36px}.access-heading{margin-bottom:35px}.access-card input{height:46px}}@media(max-width:900px){.book-number{font-size:49px}.book-open{padding:13px 18px;gap:30px}.stage-caption{top:calc(50% - 20vw)}.intro-baseline,.loading-meta{top:calc(50% + 18vw)}.progress-track{top:calc(50% + 18vw + 37px)}}@media(max-width:600px){.access-stage{padding:110px 24px 80px}.access-heading{margin-bottom:23px}.access-heading h1{font-size:30px;letter-spacing:3px}.access-subtitle{font-size:10px;letter-spacing:.5px}.access-card{padding:22px 24px 0}.form-secondary{margin-left:-24px;margin-right:-24px}.form-secondary button{padding:12px 15px;font-size:10px}.access-footnote{font-size:9px}.card-label{font-size:8px}.stage-caption{font-size:8px;letter-spacing:1.6px;top:calc(50% - 52vw)}.intro-baseline{font-size:9px;letter-spacing:1px;top:calc(50% + 22vw);gap:20px;line-height:1.8}.intro-baseline span:last-child{font-size:8px;white-space:nowrap}.loading-meta{top:calc(50% + 22vw);font-size:9px;letter-spacing:.5px}.progress-track{top:calc(50% + 22vw + 35px)}#loading-progress{font-size:9px}.skip-intro{bottom:100px}.shelf-arrow{width:42px;height:42px;top:40%}.shelf-prev{left:15px}.shelf-next{right:15px}.book-number{font-size:42px;letter-spacing:-2px}.book-number span{font-size:9px}.book-open{grid-column:1/-1;padding:10px 16px;font-size:11px;justify-content:space-between;min-height:44px}.fallback-shelf{height:58%;gap:15px;overflow:hidden}.fallback-shelf button{min-width:28vw}.fallback-shelf button:not(.selected){opacity:.5}.fallback-shelf strong{font-size:18px}.fallback-shelf span{display:none}.fallback-shelf small{font-size:7px}.register-mode input{height:35px}.access-stage:has(.register-mode){padding-top:98px}.access-stage:has(.register-mode) .access-heading h1{font-size:26px}.access-stage:has(.register-mode) .access-subtitle{display:none}}@media(max-height:720px)and (min-width:601px){.access-stage{padding-top:95px;padding-bottom:65px}.access-heading{margin-bottom:15px}.access-heading h1{font-size:30px;margin:8px 0}.access-card{padding-top:16px}.card-label{margin-bottom:10px;padding-bottom:10px}.access-footnote{margin-top:15px}.access-stage:has(.register-mode){justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}.word-svg path{stroke-dashoffset:0}.intro-word svg{transform:none!important;opacity:1!important}.access-stage{transform:none}.pulse,.blink-twice{animation:none!important}}#archive-title,.stage-caption{position:relative;width:fit-content}.signal-reveal #archive-title:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform-origin:right;animation:data-strip-reveal 1s steps(7,end) both}.stage-caption{position:absolute}.blink-twice{animation:none}.blink-twice .word-svg{animation:blink-twice .72s steps(1,end)}.blink-twice:after{content:"";position:absolute;left:4%;right:4%;top:31%;height:49%;background:var(--ink);animation:signal-word-block .72s steps(1,end) both;pointer-events:none}.loading-stage.complete .stage-caption:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform-origin:right;animation:data-strip-reveal .65s steps(5,end) both}@keyframes data-strip-reveal{0%,18%{transform:scaleX(1)}26%{transform:scaleX(.84)}34%{transform:scaleX(.97)}49%{transform:scaleX(.6)}62%{transform:scaleX(.64)}78%{transform:scaleX(.28)}to{transform:scaleX(0)}}@keyframes signal-word-block{0%,30%,67%,to{opacity:0;clip-path:inset(0)}18%{opacity:1;clip-path:inset(12% 0 53%)}55%{opacity:1;clip-path:inset(61% 0 6%)}}@media(prefers-reduced-motion:reduce){.blink-twice:after{display:none}.signal-reveal #archive-title:after,.loading-stage.complete .stage-caption:after{display:none}}.archive-ui{top:0;right:0;bottom:0;left:0;pointer-events:none}.archive-ui .shelf-arrow{top:50%;transform:translateY(-50%);border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;font:300 44px/1 Georgia,serif;width:48px;height:64px;opacity:.42;transition:opacity .2s,color .2s}.archive-ui .shelf-arrow:hover,.archive-ui .shelf-arrow:focus-visible{opacity:1;background:none}.archive-ui .shelf-prev{left:3vw}.archive-ui .shelf-next{right:3vw}.archive-ui .shelf-arrow:active{transform:translateY(-50%) scale(.96)}.book-caption{position:absolute;left:calc(50% + 23vw);top:45%;width:min(180px,17vw);transform:translateY(-50%);pointer-events:none;color:var(--ink)}.book-caption h1{font:600 clamp(20px,2.1vw,32px)/1.5 Georgia,"Songti SC",SimSun,serif;letter-spacing:3px;margin:12px 0 16px;width:fit-content}.book-caption .book-number{font:10px/1.5 Courier New,monospace;letter-spacing:1.5px;margin:0}.book-caption .book-number span{display:inline;font:inherit;letter-spacing:inherit;margin-left:10px;color:var(--muted)}.book-caption .book-open{display:inline-flex;gap:20px;align-items:center;min-height:44px;padding:0;background:none;color:var(--ink);font-size:11px;letter-spacing:1px;border-bottom:1px solid var(--rule);pointer-events:auto}.book-caption .book-open:hover{background:none;color:var(--green)}.book-caption .book-open span{font-size:16px}.book-note{font-size:11px;line-height:1.8}.book-note:empty{display:none}.scene-menu-toggle{position:absolute;right:3vw;top:calc(50% + 58px);min-width:48px;min-height:44px;font:22px/1 Georgia,serif;letter-spacing:3px;opacity:.38}.scene-menu-toggle:hover,.scene-menu-toggle:focus-visible{opacity:1}.archive-menu{width:min(380px,calc(100vw - 40px));padding:35px;border:1px solid var(--rule);color:var(--ink);background:var(--paper);pointer-events:auto;box-shadow:0 30px 120px #30372d24}.archive-menu::backdrop{background:#e9e5da66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.archive-menu h2{font:600 30px/1.5 Georgia,SimSun,serif;margin:12px 0 23px;letter-spacing:4px}.menu-close{position:absolute;right:10px;top:10px;width:44px;height:44px;font:24px Georgia}.menu-index{display:grid;border-top:1px solid var(--rule)}.menu-index button{display:flex;align-items:center;gap:20px;min-height:54px;padding:10px 0;border-bottom:1px solid var(--rule);text-align:left;font-size:13px}.menu-index button span:first-child{font:10px Courier New,monospace;color:var(--muted)}.menu-index button span:last-child{margin-left:auto}.menu-index button[aria-pressed=true]{color:var(--green)}.menu-actions{display:flex;justify-content:space-between;gap:20px;margin-top:18px}.menu-actions button{font-size:11px;min-height:44px;padding:0}.menu-help{font-size:10px;line-height:2;color:var(--muted);margin:15px 0 0}.access-stage{padding-top:70px;padding-bottom:70px}.access-stage:has(.register-mode){padding-top:55px;padding-bottom:55px}.fallback-shelf{height:100%;padding:0 9vw;gap:1.5vw}.fallback-shelf button{min-width:0;max-width:220px;transform:rotateY(72deg);transition:transform .7s,background-color 1s,color .4s}.fallback-shelf button.selected{transform:translateZ(100px) rotateX(-20deg) rotateY(25deg) rotate(14deg)}@media(max-width:900px){.book-caption{left:auto;right:10vw;width:110px;top:41%}.book-caption h1{font-size:23px;letter-spacing:2px}.book-caption .book-open{gap:12px;font-size:10px}}@media(max-width:600px){.archive-ui .shelf-arrow{width:40px;height:52px;font-size:34px}.archive-ui .shelf-prev{left:4px}.archive-ui .shelf-next{right:4px}.scene-menu-toggle{right:1px;top:calc(50% + 48px);min-width:44px;font-size:19px}.book-caption{left:24px;right:auto;top:calc(50% - 52vw);transform:none;width:auto;display:flex;align-items:center;gap:12px}.book-caption .book-number{display:none}.book-caption h1{font-size:15px;margin:0;letter-spacing:2px}.book-caption .book-open{font-size:10px;gap:10px;min-height:40px;border:0}.book-caption .book-open span{font-size:13px}.access-stage,.access-stage:has(.register-mode){padding-top:40px;padding-bottom:40px}.archive-menu{padding:28px}.fallback-shelf{gap:0}.fallback-shelf button{min-width:26vw}.fallback-shelf button.selected{transform:translateZ(60px) rotateX(-15deg) rotateY(20deg) rotate(12deg)}}@media(prefers-reduced-motion:reduce){.archive-ui,.fallback-shelf button{transition:none}.signal-reveal #archive-title:after{display:none}}.loading-stage.drawing .loading-word .word-svg path{animation-duration:.72s;animation-delay:calc(var(--letter) * 45ms);transition:fill .25s .35s}@media(prefers-reduced-motion:reduce){.loading-stage.drawing .loading-word .word-svg path{animation-duration:.001ms;animation-delay:0ms;transition:none}}.loading-stage.handoff .stage-caption,.loading-stage.handoff .loading-meta,.loading-stage.handoff .progress-track{opacity:0;transition:opacity .2s}.loading-stage.handoff .success-word{clip-path:inset(0)!important}
