@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:block;src:url(/fonts/eb-garamond-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400 800;font-display:block;src:url(/fonts/eb-garamond-latin-wght-italic.woff2) format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lato-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Lato;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/lato-latin-400-italic.woff2) format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/lato-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Lato;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/lato-latin-700-italic.woff2) format("woff2")}@font-face{font-family:Oswald;font-style:normal;font-weight:200 700;font-display:swap;src:url(/fonts/oswald-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/courier-prime-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Courier Prime;font-style:normal;font-weight:700;font-display:block;src:url(/fonts/courier-prime-latin-700-normal.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}:root{--paper: #e6e7e9;--ink: #23262b;--card: #f1f0ec;--card-ink: #23262b;--brass: #8a6b39;--brass-lit: #b08a3e;--rain: #557365;--jam: #8d3a3a;--vignette: .14;--grain: .5;--light: none;--faint: color-mix(in oklab, var(--ink), transparent 20%);--fainter: color-mix(in oklab, var(--ink), transparent 32%);--rule: color-mix(in oklab, var(--ink), transparent 86%);--brass-text: color-mix(in oklab, var(--brass), var(--ink) 38%);--press-hi: color-mix(in oklab, var(--paper), #ffffff 45%);--press-lo: color-mix(in oklab, var(--paper), #000000 26%);--card-faint: color-mix(in oklab, var(--card-ink), transparent 22%);--card-rule: color-mix(in oklab, var(--card-ink), transparent 84%);--card-dot: color-mix(in oklab, var(--card-ink), transparent 90%);--card-press-hi: color-mix(in oklab, var(--card), #ffffff 62%);--card-press-lo: color-mix(in oklab, var(--card), #000000 20%);--size: 1.1875rem;--chrome: .8125rem;--chrome-sm: .75rem;--measure: 34rem;--pad: clamp(1.15rem, 5.2vw, 1.9rem);--book-h: 3.85rem;--settle: 0px;--type: "Courier Prime", "Courier New", ui-monospace, monospace;--story: "EB Garamond", Garamond, Georgia, serif;--story-scale: 1.1;--story-leading: 1.66;color-scheme:light}:root[data-size="0"]{--size: 1.0625rem;--chrome: .75rem;--chrome-sm: .6875rem}:root[data-size="2"]{--size: 1.375rem;--chrome: .9375rem;--chrome-sm: .875rem}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--paper);color:var(--ink);font-family:var(--story);font-size:calc(var(--size) * var(--story-scale));line-height:var(--story-leading);font-variant-numeric:oldstyle-nums;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color 1.1s ease,color 1.1s ease}#root{height:100dvh;overflow:hidden}#root.settling{animation:settle .2s cubic-bezier(.2,.8,.3,1)}@keyframes settle{0%{transform:translateY(0)}35%{transform:translateY(var(--settle))}to{transform:translateY(0)}}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.weather{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background-color:var(--paper);transition:background-color 1.1s ease}.weather-light,.vignette,.grain,.shaft{position:absolute;inset:0;display:block}.weather-light{background-image:var(--light);transition:opacity 1.1s ease}.vignette{background:radial-gradient(118% 84% at 50% 42%,transparent 38%,color-mix(in oklab,var(--ink),transparent 40%) 128%);opacity:var(--vignette);transition:opacity 1.1s ease}.grain{background-image:url(/paper-grain.png);background-repeat:repeat;background-size:192px 192px;mix-blend-mode:soft-light;opacity:var(--grain);transition:opacity 1.1s ease}.mote{position:absolute;border-radius:50%;background:color-mix(in oklab,var(--ink),transparent 55%);opacity:.3;animation:drift linear infinite}@keyframes drift{0%{transform:translateZ(0)}50%{transform:translate3d(14px,-22px,0)}to{transform:translateZ(0)}}.streak{position:absolute;top:-14%;width:1px;background:linear-gradient(to bottom,transparent,color-mix(in oklab,var(--ink),transparent 30%));animation:fall linear infinite}@keyframes fall{to{transform:translateY(1000%)}}.star{position:absolute;border-radius:50%;background:color-mix(in oklab,var(--ink),transparent 20%);animation:twinkle ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.18}50%{opacity:.5}}.shaft{background:linear-gradient(108deg,transparent 26%,color-mix(in oklab,#fff8e6,transparent 62%) 42%,color-mix(in oklab,#fff8e6,transparent 78%) 56%,transparent 70%);opacity:.55}.weather[data-ambience=gloom] .vignette{background:radial-gradient(92% 62% at 50% 46%,transparent 26%,color-mix(in oklab,var(--ink),transparent 22%) 120%),repeating-linear-gradient(to bottom,transparent 0 46px,color-mix(in oklab,var(--ink),transparent 92%) 46px 50px)}.weather[data-ambience=dark] .vignette{background:radial-gradient(100% 74% at 50% 34%,transparent 12%,color-mix(in oklab,#000,transparent 32%) 110%)}.chrome{font-family:var(--type);font-size:var(--chrome);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.chrome-btn{padding:.6rem .95rem;border:1px solid var(--rule);border-radius:1px;background:color-mix(in oklab,var(--paper),var(--ink) 5%);box-shadow:inset 0 1px 0 var(--press-hi),0 1px color-mix(in oklab,var(--ink),transparent 92%);transition:border-color .2s ease,background .2s ease,transform .12s ease}.chrome-btn:active{background:color-mix(in oklab,var(--brass),transparent 86%);transform:translateY(1px);box-shadow:inset 0 1px 3px color-mix(in oklab,var(--ink),transparent 80%)}.chrome-btn[data-primary=true]{border-color:color-mix(in oklab,var(--brass),transparent 40%);color:var(--brass-text)}.app{height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.reader{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;z-index:2}.reader-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:calc(env(safe-area-inset-top,0px) + .7rem) var(--pad) .35rem}.reader-head .chapter-mark{letter-spacing:.16em}.reader-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.reader-scroll::-webkit-scrollbar{display:none}.reader-column{max-width:var(--measure);margin:0 auto;padding:.5rem var(--pad) calc(var(--book-h) + 5rem)}.reader-column{animation:page-turn .72s cubic-bezier(.22,.9,.28,1) both}@keyframes page-turn{0%{opacity:0;transform:translate(9px) rotateY(2.5deg)}to{opacity:1;transform:none}}.chapter-plate{width:min(78%,17rem);margin:1.9rem auto .4rem;aspect-ratio:320 / 170;color:var(--ink);opacity:.88;animation:plate-in .9s cubic-bezier(.16,.9,.3,1) both}.chapter-plate .plate{display:block;width:100%;height:100%}@keyframes plate-in{0%{opacity:0;transform:scale(.985)}to{opacity:.88;transform:none}}.chapter-title{margin:.9rem 0 2.5rem;text-align:center}.chapter-title .num{display:block;font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.24em;text-transform:uppercase;color:var(--fainter);margin-bottom:.85rem}.chapter-title .name{font-size:1.08em;font-weight:600;letter-spacing:.09em;text-transform:uppercase;text-shadow:0 1px 0 var(--press-hi)}.chapter-title .rule{width:2.4rem;height:2px;margin:1.2rem auto 0;background:linear-gradient(to bottom,var(--rule) 0 1px,var(--press-hi) 1px 2px)}.beat{margin:0 0 1.15em;animation:beat-in .62s cubic-bezier(.16,.9,.3,1) both}@keyframes beat-in{0%{opacity:0;transform:translateY(7px);filter:blur(1.6px)}60%{filter:blur(.2px)}to{opacity:1;transform:none;filter:none}}.beat[data-past=true]{color:color-mix(in oklab,var(--ink),var(--paper) 16%);transition:color .7s ease}.beat[data-mode=solo]{margin:2.3em 0;text-align:center;font-size:1.08em;text-shadow:0 1px 0 var(--press-hi)}.beat[data-mode=thesis]{margin:2.8em 0;padding:1.6em 1.2em;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);box-shadow:inset 0 1px 0 var(--press-hi),inset 0 -1px 0 var(--press-hi);font-size:1.05em;line-height:1.78}.beat.quote{margin:2em 0;padding:1.25rem;color:var(--card-ink);background-color:var(--card);background-image:linear-gradient(to bottom,color-mix(in oklab,var(--brass),transparent 90%),transparent 44%),url(/paper-grain.png);background-size:auto,192px 192px;background-blend-mode:normal,soft-light;border:1px solid var(--card-rule);border-left:3px solid color-mix(in oklab,var(--brass),transparent 48%);box-shadow:0 2px 10px color-mix(in oklab,#000,transparent 90%),inset 0 1px 0 var(--card-press-hi);font-size:.95em}.beat strong{font-weight:700;letter-spacing:.015em}.beat em{font-style:italic}.beat-fullscreen{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 2rem) var(--pad) calc(env(safe-area-inset-bottom,0px) + 2rem);background:var(--paper);animation:fade-in .62s ease both}.beat-fullscreen:after{content:"";position:absolute;inset:0;background-image:url(/paper-grain.png);background-size:192px 192px;mix-blend-mode:soft-light;opacity:var(--grain);pointer-events:none}.beat-fullscreen .inner{position:relative;z-index:1;max-width:26rem;text-align:center;font-size:1.18em;line-height:1.74;text-shadow:0 1px 0 var(--press-hi)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.token{display:inline;position:relative;padding:.02em .06em;margin:0 -.06em;color:inherit;font:inherit;cursor:pointer;white-space:nowrap;text-shadow:0 1px 0 var(--press-hi);background-image:linear-gradient(to bottom,transparent 63%,color-mix(in oklab,var(--brass),transparent 66%) 63%);animation:token-breathe 3.6s ease-in-out infinite}@keyframes token-breathe{0%,to{background-image:linear-gradient(to bottom,transparent 63%,color-mix(in oklab,var(--brass),transparent 72%) 63%)}50%{background-image:linear-gradient(to bottom,transparent 63%,color-mix(in oklab,var(--brass),transparent 48%) 63%)}}.token:active{background-color:color-mix(in oklab,var(--brass),transparent 62%)}.token[data-taken=true]{animation:none;background-image:none;color:var(--brass-text);font-weight:600;text-shadow:none}.token-lift{position:fixed;z-index:60;pointer-events:none;color:var(--brass-text);font-weight:600;animation:token-lift 1s cubic-bezier(.2,.7,.3,1) both}@keyframes token-lift{0%{opacity:1;transform:translate(0) scale(1);filter:blur(0)}to{opacity:0;transform:translateY(-2.8rem) scale(.84);filter:blur(1px)}}.book{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--book-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:stretch;background-color:var(--card);background-image:url(/paper-grain.png);background-size:192px 192px;background-blend-mode:soft-light;color:var(--card-ink);border-top:1px solid color-mix(in oklab,var(--card-ink),transparent 74%);box-shadow:0 -1px 0 var(--card-press-hi) inset,0 -10px 26px color-mix(in oklab,#000,transparent 86%)}.book-spine{width:2.3rem;flex:none;position:relative;background:linear-gradient(to right,#3a2c15,#6b5228 26%,#8a6b39 54%,#5d4620 84%,#2f2410);border-right:1px solid color-mix(in oklab,#000,transparent 60%);touch-action:none}.book-spine:after{content:"";position:absolute;inset:.42rem .34rem;border-radius:1px;background:repeating-linear-gradient(to bottom,transparent 0 8px,rgba(255,255,255,.09) 8px 9px,rgba(0,0,0,.16) 9px 10px);border-left:1px solid rgba(255,255,255,.16);border-right:1px solid rgba(0,0,0,.28)}.spine-hint{position:absolute;left:100%;top:.32rem;bottom:.32rem;width:0;z-index:2;pointer-events:none;background:linear-gradient(to right,#fffffff0,#f6f4efb3 55%,#e4e2db0f);border-right:1px solid rgba(0,0,0,.16);box-shadow:2px 0 7px #00000029;animation:spine-tease 3.4s cubic-bezier(.3,.7,.3,1) infinite}@keyframes spine-tease{0%,48%,to{width:0;opacity:0}66%{width:15px;opacity:1}86%{width:2px;opacity:.5}}.book-spine[data-glint=true]:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(112deg,transparent 34%,color-mix(in oklab,var(--brass-lit),transparent 30%) 50%,transparent 66%);animation:glint 4.4s ease-in-out infinite}@keyframes glint{0%,70%,to{opacity:0}84%{opacity:1}}.book-halves{flex:1;display:flex;min-width:0}.book-half{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.3rem;padding:0 .9rem;text-align:left}.book-half+.book-half{border-left:1px solid color-mix(in oklab,var(--card-ink),transparent 88%);box-shadow:-1px 0 0 var(--card-press-hi)}.book-half .label{font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--card-faint)}.slots{display:flex;gap:.28rem;align-items:center}.slot{width:.78rem;height:.98rem;border:1px solid color-mix(in oklab,var(--card-ink),transparent 66%);border-radius:1px;background:color-mix(in oklab,var(--card),var(--card-ink) 6%);box-shadow:inset 0 1px 2px color-mix(in oklab,var(--card-ink),transparent 78%),0 1px 0 var(--card-press-hi);position:relative}.slot[data-filled=true]{background:linear-gradient(150deg,color-mix(in oklab,var(--brass-lit),transparent 26%),color-mix(in oklab,var(--brass),var(--card-ink) 26%));border-color:color-mix(in oklab,var(--brass),var(--card-ink) 44%);box-shadow:inset 0 1px #ffffff59,0 1px 2px color-mix(in oklab,#000,transparent 82%);animation:struck .42s cubic-bezier(.2,.9,.3,1) both}@keyframes struck{0%{transform:scale(1.5);opacity:0}55%{transform:scale(.94);opacity:1}to{transform:scale(1)}}.slot[data-filled=true]:after{content:"";position:absolute;inset:2px;border:1px solid color-mix(in oklab,var(--card),transparent 50%)}.slot.entry[data-filled=true]{background:linear-gradient(150deg,color-mix(in oklab,var(--rain),#ffffff 26%),color-mix(in oklab,var(--rain),var(--card-ink) 26%));border-color:color-mix(in oklab,var(--rain),var(--card-ink) 40%)}.book-half[data-closed=true]{opacity:.42;transition:opacity .9s ease}.gate-stage{display:grid;place-items:center;padding:2.6rem 0 1rem;perspective:1400px}.gate-book{position:relative;width:min(15rem,60vw);aspect-ratio:2 / 2.68;transform-style:preserve-3d;touch-action:none;cursor:grab;filter:drop-shadow(0 14px 30px rgba(0,0,0,.42))}.gate-pages{position:absolute;inset:.35rem .3rem .3rem .7rem;background:linear-gradient(115deg,#efe9dc,#fbf7ee 42%,#e6e0d2);border-radius:1px 3px 3px 1px;box-shadow:inset 0 0 26px #786c5638;display:grid;align-content:center;gap:1.15rem;padding:0 1.5rem}.gate-rule{display:block;height:1px;background:#786c563d}.gate-cover{position:absolute;inset:0;transform-origin:left center;border-radius:2px 4px 4px 2px;background:linear-gradient(105deg,#4a3a22 0 1.9rem,#5f4a2a 1.9rem,#55422400),linear-gradient(120deg,#5b4728,#6a5433 46%,#3d2f1a);border:1px solid rgba(255,255,255,.12);box-shadow:4px 0 18px #0000004d}.gate-spine{position:absolute;left:0;top:0;bottom:0;width:1.9rem;border-right:1px solid rgba(0,0,0,.42);background:repeating-linear-gradient(to bottom,transparent 0 14px,rgba(255,255,255,.08) 14px 17px,rgba(0,0,0,.22) 17px 19px),linear-gradient(to right,#241a0c,#6b5228 42%,#8a6b39 66%,#2e2312)}.gate-rule-box{position:absolute;inset:18% 12% 18% 34%;border:1.5px solid rgba(168,133,74,.75);box-shadow:inset 0 0 0 3px #0000002e}.gate-book[data-idle=true] .gate-cover{animation:gate-tease 3.6s cubic-bezier(.3,.7,.3,1) infinite}@keyframes gate-tease{0%,46%,to{transform:rotateY(0)}66%{transform:rotateY(-15deg)}86%{transform:rotateY(-3deg)}}.jar-tab{position:fixed;bottom:calc(var(--book-h) + env(safe-area-inset-bottom,0px) + .7rem);z-index:31;width:2.7rem;height:3.3rem;display:grid;place-items:end center;padding-bottom:.22rem;background:color-mix(in oklab,var(--paper),var(--ink) 7%);border:1px solid var(--rule);border-radius:3px;box-shadow:0 3px 12px color-mix(in oklab,#000,transparent 88%),inset 0 1px 0 var(--card-press-hi);touch-action:none}.jar-tab[data-side=right]{right:.7rem}.jar-tab[data-side=left]{left:.7rem}.jar-drawer{position:fixed;inset:auto 0 0;z-index:45;padding:1.6rem var(--pad) calc(env(safe-area-inset-bottom,0px) + 1.6rem);background-color:var(--card);background-image:url(/paper-grain.png);background-size:192px 192px;background-blend-mode:soft-light;color:var(--card-ink);border-top:1px solid var(--card-rule);border-radius:12px 12px 0 0;box-shadow:0 -12px 44px color-mix(in oklab,#000,transparent 78%);animation:drawer-up .38s cubic-bezier(.2,.85,.3,1) both;display:grid;justify-items:center;gap:1rem;touch-action:none}@keyframes drawer-up{0%{transform:translateY(100%)}to{transform:none}}.jar-stage{touch-action:none;user-select:none;filter:drop-shadow(0 6px 12px color-mix(in oklab,#000,transparent 84%))}.stamp-target{position:fixed;bottom:calc(var(--book-h) + env(safe-area-inset-bottom,0px) + 1.4rem);z-index:34;width:5.8rem;height:5.8rem;display:grid;place-items:center;touch-action:none;filter:drop-shadow(0 8px 14px color-mix(in oklab,#000,transparent 78%));animation:rise .48s cubic-bezier(.2,.8,.3,1) both}.stamp-target[data-side=right]{right:calc(var(--pad) - .4rem)}.stamp-target[data-side=left]{left:calc(var(--pad) - .4rem)}.stopper{transform-box:fill-box;transform-origin:50% 100%}.stopper-off{animation:stopper-off .62s cubic-bezier(.16,.9,.26,1) both}.stopper-off-still{transform:translate(9px,-14px) rotate(34deg);opacity:.9}@keyframes stopper-off{0%{transform:none}26%{transform:translate(1px,-11px) rotate(-7deg)}to{transform:translate(9px,-14px) rotate(34deg);opacity:.9}}.puff{transform-box:fill-box;transform-origin:50% 50%;opacity:0;animation:puff-rise 1.8s linear infinite both}@keyframes puff-rise{0%{transform:translate(0) scale(.4);opacity:0}16%{opacity:.78}60%{opacity:.5}to{transform:translate(var(--dx),-54px) scale(1.8);opacity:0}}.puff-still{animation:none;transform:translate(calc(var(--dx) * .7),var(--rest)) scale(1.25);opacity:.4}.stamp-hint{position:fixed;z-index:35;bottom:calc(var(--book-h) + env(safe-area-inset-bottom,0px) + 7.6rem);max-width:13.5rem;display:grid;gap:.3rem;padding:.7rem .85rem;background:var(--card);color:var(--card-ink);border:1px solid color-mix(in oklab,var(--brass),transparent 45%);box-shadow:0 6px 18px color-mix(in oklab,#000,transparent 82%);animation:hint-in .52s cubic-bezier(.2,.8,.3,1) both;animation-delay:.26s;pointer-events:none}.stamp-hint[data-side=right]{right:calc(var(--pad) - .4rem)}.stamp-hint[data-side=left]{left:calc(var(--pad) - .4rem)}.stamp-hint:after{content:"";position:absolute;bottom:-5px;width:8px;height:8px;background:var(--card);border-right:1px solid color-mix(in oklab,var(--brass),transparent 45%);border-bottom:1px solid color-mix(in oklab,var(--brass),transparent 45%);transform:rotate(45deg)}.stamp-hint[data-side=right]:after{right:2.2rem}.stamp-hint[data-side=left]:after{left:2.2rem}.stamp-hint .head{font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.2em;text-transform:uppercase;color:var(--brass-text)}.stamp-hint .body{font-family:var(--type);font-size:var(--chrome-sm);line-height:1.45}@keyframes hint-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.stamp-body{transform:translateY(0)}.stamp-body[data-mode=demo]{animation:stamp-demo 3.1s cubic-bezier(.3,.7,.3,1) infinite}@keyframes stamp-demo{0%,58%,to{transform:translateY(0)}70%{transform:translateY(7px)}82%{transform:translateY(0)}}.stamp-body[data-mode=resist]{animation:stamp-resist .42s cubic-bezier(.3,.8,.4,1)}@keyframes stamp-resist{0%{transform:translateY(3px)}40%{transform:translateY(-1.5px)}70%{transform:translateY(.6px)}to{transform:translateY(0)}}.stamp-target[data-pulsing=true]{animation:rise .48s cubic-bezier(.2,.8,.3,1) both,pulse 2.8s ease-in-out 1.2s infinite}@keyframes pulse{0%,to{filter:drop-shadow(0 8px 14px color-mix(in oklab,#000,transparent 78%))}50%{filter:drop-shadow(0 8px 14px color-mix(in oklab,#000,transparent 78%)) drop-shadow(0 0 12px color-mix(in oklab,var(--brass-lit),transparent 46%))}}.doc{position:relative;color:var(--card-ink);background-color:var(--card);background-image:url(/paper-grain.png);background-size:192px 192px;background-blend-mode:soft-light;border:1px solid var(--card-rule);box-shadow:0 6px 22px color-mix(in oklab,#000,transparent 80%),inset 0 1px 0 var(--card-press-hi);padding:1.25rem 1.25rem 1.4rem;max-width:30rem;width:100%}.doc:before{content:"";position:absolute;inset:5px -4px -6px 5px;z-index:-1;background:color-mix(in oklab,var(--card),var(--card-ink) 8%);transform:rotate(.5deg);box-shadow:0 4px 14px color-mix(in oklab,#000,transparent 86%)}.doc.aged{background-color:color-mix(in oklab,var(--card),var(--brass) 11%);border-color:color-mix(in oklab,var(--brass),transparent 58%)}.doc-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding-bottom:.65rem;margin-bottom:.95rem;border-bottom:1px solid var(--card-rule);box-shadow:0 1px 0 var(--card-press-hi)}.doc-title{font-family:var(--type);font-size:calc(var(--chrome) * 1.08);letter-spacing:.16em;text-transform:uppercase;font-weight:700}.doc .chrome{color:var(--card-faint)}.row{display:grid;grid-template-columns:6.8rem 1fr;gap:.55rem;align-items:baseline;padding:.55rem 0;border-bottom:1px dotted var(--card-dot)}.row .label{font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.07em;text-transform:uppercase;color:var(--card-faint)}.row .value{font-size:.95em;min-height:1.4em;color:var(--card-ink);display:flex;flex-direction:column;justify-content:flex-end}.row .value>.illegible{margin-bottom:-.15em}.row .value.hand{font-style:italic;color:color-mix(in oklab,var(--card-ink),var(--brass) 34%);animation:written .52s ease both}@keyframes written{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}.row .value.struck{text-decoration:line-through;color:var(--card-faint)}.fixture-row{display:grid;grid-template-columns:1.4rem 1fr;gap:.85rem;align-items:center;width:100%;text-align:left;padding:.62rem 0;border-bottom:1px dotted var(--card-dot);color:var(--card-ink)}.fixture-line{font-size:.95em}.blank-line{display:block;height:1.05em;border-bottom:1px solid var(--card-rule);box-shadow:0 1px 0 var(--card-press-hi)}.overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 1.2rem) var(--pad) calc(env(safe-area-inset-bottom,0px) + 1.2rem);background:color-mix(in oklab,var(--paper),var(--ink) 14%);animation:fade-in .3s ease both;overflow-y:auto}.overlay:before{content:"";position:fixed;inset:0;background-image:url(/paper-grain.png);background-size:192px 192px;mix-blend-mode:soft-light;opacity:var(--grain);pointer-events:none}.overlay-inner{position:relative;width:100%;max-width:30rem;display:grid;gap:1.1rem;justify-items:center;animation:doc-in .46s cubic-bezier(.2,.85,.3,1) both}@keyframes doc-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.screen{height:100%;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 1.4rem) var(--pad) calc(env(safe-area-inset-bottom,0px) + 1.6rem);gap:1.4rem;overflow-y:auto;position:relative;z-index:2}.screen-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.screen h1{font-size:1.5rem;font-weight:600;letter-spacing:.02em;text-shadow:0 1px 0 var(--press-hi)}.screen-body{max-width:var(--measure);width:100%;margin:0 auto;display:grid;gap:1.1rem}.title-screen{height:100%;display:grid;place-items:center;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 2rem) var(--pad) calc(env(safe-area-inset-bottom,0px) + 2rem);position:relative;z-index:2}.title-inner{display:grid;justify-items:center;gap:2.3rem;text-align:center}.title-word{font-size:clamp(1.9rem,9vw,2.6rem);font-weight:600;letter-spacing:.18em;text-transform:uppercase;line-height:1.25;text-shadow:0 1px 0 var(--press-hi),0 -1px 0 color-mix(in oklab,var(--ink),transparent 88%)}.title-block{display:grid;justify-items:center;gap:.95rem}.title-author{font-size:.95rem;letter-spacing:.26em;text-transform:uppercase;color:var(--faint);text-shadow:0 1px 0 var(--press-hi)}.title-actions{display:grid;gap:.6rem;width:min(15rem,70vw)}.setting{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--rule);box-shadow:0 1px 0 var(--press-hi)}.setting .name{font-size:.95em}.setting .note{display:block;font-family:var(--type);font-size:var(--chrome-sm);color:var(--faint);line-height:1.55;margin-top:.25rem;text-transform:none;letter-spacing:0}.font-setting{display:block}.font-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.85rem}.font-option{padding:.85rem .35rem;border:1px solid var(--rule);border-radius:1px;background:color-mix(in oklab,var(--paper),var(--ink) 4%);box-shadow:inset 0 1px 0 var(--press-hi);color:var(--ink);line-height:1.2;transition:background .18s ease,border-color .18s ease}.font-option[data-on=true]{background:color-mix(in oklab,var(--brass),transparent 78%);border-color:color-mix(in oklab,var(--brass),transparent 45%);box-shadow:inset 0 1px 3px color-mix(in oklab,var(--ink),transparent 84%)}.segmented{display:flex;border:1px solid var(--rule);border-radius:1px;overflow:hidden;flex:none;box-shadow:inset 0 1px 0 var(--press-hi)}.segmented button{padding:.55rem .75rem;font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.segmented button+button{border-left:1px solid var(--rule)}.segmented button[data-on=true]{background:color-mix(in oklab,var(--brass),transparent 78%);color:var(--ink);box-shadow:inset 0 1px 3px color-mix(in oklab,var(--ink),transparent 84%)}.chapter-list{display:grid;gap:.5rem}.chapter-row{display:flex;align-items:center;gap:.85rem;padding:.85rem .95rem;border:1px solid var(--rule);background:color-mix(in oklab,var(--paper),var(--ink) 4%);box-shadow:inset 0 1px 0 var(--press-hi);text-align:left}.chapter-row[data-locked=true]{opacity:.36;cursor:default}.chapter-thumb{flex:none;width:3.4rem;aspect-ratio:320 / 170;color:var(--ink);opacity:.7}.chapter-thumb .plate{display:block;width:100%;height:100%}.chapter-row .n{font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.07em;color:var(--faint);width:2.6rem;flex:none}.chapter-row .t{flex:1;font-size:.92em}.registry-list{display:grid;gap:.15rem}.registry-row{display:grid;grid-template-columns:1.9rem 1fr auto;gap:.7rem;align-items:baseline;padding:.66rem 0;border-bottom:1px solid var(--rule);box-shadow:0 1px 0 var(--press-hi)}.registry-row .n{font-family:var(--type);font-size:var(--chrome-sm);color:var(--fainter)}.registry-row .nm{font-size:1.03em}.registry-row .nm.held{color:color-mix(in oklab,var(--ink),var(--brass) 26%);text-shadow:0 1px 0 var(--press-hi)}.registry-row .wh{font-family:var(--type);font-size:var(--chrome-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.registry-ghost{position:absolute;inset:0;z-index:0;pointer-events:none;display:grid;align-content:center;gap:.4rem;padding:0 var(--pad);opacity:.16;overflow:hidden}.registry-ghost span{font-size:1.15em;letter-spacing:.06em}.end-cover{display:grid;justify-items:center;gap:1.5rem;padding:2.6rem 1.6rem;background-color:color-mix(in oklab,var(--card),var(--brass) 5%);background-image:url(/paper-grain.png);background-size:192px 192px;background-blend-mode:soft-light;color:var(--card-ink);border:1px solid color-mix(in oklab,var(--brass),transparent 56%);box-shadow:0 8px 26px color-mix(in oklab,#000,transparent 82%),inset 0 1px 0 var(--card-press-hi);text-align:center}.plain-count{font-family:var(--type);font-size:var(--chrome);letter-spacing:.08em;color:var(--faint)}.wait-screen{position:fixed;left:0;right:0;top:0;bottom:calc(var(--book-h) + env(safe-area-inset-bottom,0px));z-index:50;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 2.2rem) var(--pad) 2.2rem;background:color-mix(in oklab,var(--paper),var(--ink) 46%);animation:fade-in .5s ease both}.window-frame{width:min(21rem,82vw);display:grid;justify-items:stretch;filter:drop-shadow(0 10px 26px rgba(0,0,0,.3))}.window-pane{position:relative;aspect-ratio:3 / 4;overflow:hidden;background:linear-gradient(to bottom,#8e9aa2,#a6b0b4 46%,#7d8890);border:.55rem solid color-mix(in oklab,var(--card),var(--ink) 22%);border-radius:2px;box-shadow:inset 0 0 30px #00000057;transition:filter .4s linear}.window-sill{height:.7rem;background:linear-gradient(to bottom,color-mix(in oklab,var(--card),var(--ink) 14%),color-mix(in oklab,var(--card),var(--ink) 34%));border-radius:0 0 2px 2px;box-shadow:0 2px #00000038}.glazing-bar{position:absolute;background:color-mix(in oklab,var(--card),var(--ink) 26%);box-shadow:0 0 4px #0000004d}.glazing-bar.vertical{left:calc(50% - .16rem);top:0;bottom:0;width:.32rem}.glazing-bar.horizontal{top:calc(42% - .16rem);left:0;right:0;height:.32rem}.rain-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:.85}.rain-drop{position:absolute;top:-14%;width:1.5px;height:14%;border-radius:1px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.85));animation:rain-fall linear infinite}@keyframes rain-fall{to{transform:translateY(950%)}}.bloom-screen{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:var(--pad);background:radial-gradient(120% 90% at 50% 16%,color-mix(in oklab,#d7e6d8,transparent 12%),transparent 68%),var(--paper);animation:fade-in 1.1s ease both}.bloom-label{font-family:var(--type);font-size:clamp(1rem,5.6vw,1.5rem);letter-spacing:.24em;text-transform:uppercase;text-align:center;color:color-mix(in oklab,var(--ink),var(--rain) 44%);animation:bloom-in 2.6s ease both}@keyframes bloom-in{0%{opacity:0;letter-spacing:.55em;filter:blur(4px)}to{opacity:1;letter-spacing:.24em;filter:none}}.ink-star{position:absolute;border-radius:50%;background:radial-gradient(circle,#16305c 0%,color-mix(in oklab,#1e3a6b,transparent 34%) 52%,transparent 74%);pointer-events:none;mix-blend-mode:multiply;filter:blur(.4px)}.illegible{display:block;width:100%;color:var(--card-faint);opacity:.8}.illegible.dense{opacity:.55}.rotate-guard{display:none}@media(orientation:landscape)and (max-height:34rem){.rotate-guard{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:2rem;background:var(--paper);text-align:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}:root[data-reduce-motion=true] *,:root[data-reduce-motion=true] *:before,:root[data-reduce-motion=true] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}:root[data-reduce-motion=false] *,:root[data-reduce-motion=false] *:before,:root[data-reduce-motion=false] *:after{animation-duration:revert-layer;animation-iteration-count:revert-layer;transition-duration:revert-layer}
