:root{--bg: #dce3df;--bg-overlay: #d3dcd7;--ink: #102a30;--muted: #4a5e63;--accent: #106b85;--rule: #bfcbc6;--pad-x: clamp(20px, 5vw, 56px);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--dot: rgba(74, 94, 99, .22)}:root[data-tod=morning]{--bg: #e0e4da;--bg-overlay: #d7dccf}:root[data-tod=evening]{--bg: #dfe3dc;--bg-overlay: #d5dbd3}:root[data-tod=night]{--bg: #d8e0e3;--bg-overlay: #cfd8dc}html,body{margin:0;padding:0;background:var(--bg);transition:background-color 1.2s ease}body{font-family:Sora,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{color:var(--ink)}::selection{background:var(--accent);color:var(--bg)}@keyframes nDraw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes nRise{0%{transform:translateY(.38em);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes nThicken{0%{font-variation-settings:"wght" 100}to{font-variation-settings:"wght" 600}}@keyframes nFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes nCaret{0%,45%{opacity:1}50%,95%{opacity:0}}@keyframes nAppear{0%{opacity:0}to{opacity:1}}@keyframes nInkIn{0%{opacity:0;font-variation-settings:"wght" 150;letter-spacing:.01em}to{opacity:1;font-variation-settings:"wght" 600;letter-spacing:-.035em}}@keyframes nQin{0%{opacity:0;transform:translateY(.34em)}to{opacity:1;transform:translateY(0)}}.root{background:var(--bg);color:var(--ink);min-height:100vh;font-size:17px;line-height:1.65;position:relative;transition:background-color .6s ease,color .6s ease}.root[data-stage=loading] .hdr,.root[data-stage=loading] main,.root[data-stage=loading] .line-canvas,.root[data-stage=loading] .rail{visibility:hidden}.line-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}main{position:relative;z-index:2}.ink-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.line-canvas{transition:filter .55s var(--ease-out),opacity .55s var(--ease-out),transform .55s var(--ease-out)}.line-canvas.is-focus-out{filter:blur(7px);opacity:0;transform:scale(.985)}.line-canvas.no-transition{transition:none}.root.is-inking .hero .name{animation:nInkIn .75s var(--ease-out) both}.root.is-inking .hero .sub,.root.is-inking .hero .now,.root.is-inking .hero .cue{animation:nFade .5s .25s ease both}.board{position:fixed;inset:0;z-index:1;pointer-events:none}.board svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.board path{fill:none;stroke:var(--ink);stroke-width:1;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.board circle{fill:var(--ink)}.board-label{position:absolute;left:0;top:0;display:grid;gap:1px;font-size:13px;line-height:1.3;white-space:nowrap;opacity:0}.board-label b{font-weight:400;font-variation-settings:"wght" 500;color:var(--ink)}.board-label span{font-size:12px;color:var(--muted)}.board-dim{position:absolute;left:0;top:0;font-size:12px;color:var(--muted);white-space:nowrap;transform-origin:50% 0;font-variant-numeric:tabular-nums;opacity:0}.board--narrow .board-label b{font-size:11px}.board--narrow .board-label span{display:none}.sheet{display:inline-grid;grid-template-columns:auto auto;margin:22px 0 0;border:1px solid var(--rule);font-size:12px;line-height:1.35}.sheet>div{padding:6px 12px}.sheet>div+div{border-left:1px solid var(--rule)}.sheet dt{color:var(--muted)}.sheet dd{margin:0;color:var(--ink);font-variation-settings:"wght" 500}.root[data-revealed] .line-canvas{opacity:0;transition:opacity .4s ease}.grain{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.86 0 0 0 0 0.89 0 0 0 0 0.87 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}.cursor{position:fixed;top:0;left:0;z-index:80;width:8px;height:8px;border-radius:50%;border:1.5px solid transparent;background:var(--accent);pointer-events:none;opacity:0;transition:width .16s var(--ease-out),height .16s var(--ease-out),background-color .16s ease,border-color .16s ease,opacity .16s ease}.cursor--on[data-mode=dot],.cursor--on[data-mode=drag]{opacity:1}.cursor--on[data-mode=link]{opacity:1;width:26px;height:26px;background:transparent;border-color:var(--accent)}.cursor:after{content:"drag";position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:11px;letter-spacing:.02em;color:var(--accent);opacity:0;transition:opacity .16s ease}.cursor[data-mode=drag]:after{opacity:1}html.is-dragging .cursor:after{content:"turn"}.stick{position:fixed;right:0;bottom:0;z-index:35;pointer-events:none;display:block;width:520px;height:284px;transform-origin:right bottom;overflow:visible}@media (max-width: 640px){.stick{width:320px;height:175px}}.root[data-revealed] .stick{z-index:61}.steam path{opacity:0;animation:steamUp 2.2s ease-out infinite}.steam path:nth-child(2){animation-delay:.7s}.steam path:nth-child(3){animation-delay:1.4s}@keyframes steamUp{0%{opacity:0;transform:translateY(1px)}30%{opacity:.55}to{opacity:0;transform:translateY(-4px)}}.zzz text{opacity:0}.stick--asleep .zzz text{animation:zFloat 2.6s ease-in-out infinite}.stick--asleep .zzz text:nth-child(2){animation-delay:.5s}.stick--asleep .zzz text:nth-child(3){animation-delay:1s}@keyframes zFloat{0%{opacity:0;transform:translateY(2px)}25%{opacity:.8}to{opacity:0;transform:translate(3px,-6px)}}.stick--asleep{cursor:default}.stick [data-p=hit]{pointer-events:all;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;outline:none}.stick{-webkit-tap-highlight-color:transparent}.root[data-stage=loading] .stick [data-p=hit]{pointer-events:none}.bubble{--life: 2.6s;position:fixed;z-index:62;max-width:26ch;padding:8px 12px;font-size:13px;line-height:1.4;letter-spacing:.005em;color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:12px 12px 4px;box-shadow:0 6px 20px #102a3014;pointer-events:none;animation:bubbleIn .26s var(--ease-out) both,bubbleOut .26s ease calc(var(--life) - .26s) forwards}.bubble:after{content:"";position:absolute;right:10px;bottom:-6px;width:10px;height:10px;background:var(--bg);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transform:rotate(45deg)}.bubble--hint{color:var(--bg);background:var(--accent);border-color:var(--accent);font-variation-settings:"wght" 500}.bubble--hint:after{background:var(--accent);border-color:var(--accent)}.bubble--link{pointer-events:auto}.bubble--link a{color:var(--accent);font-variation-settings:"wght" 500;text-decoration:underline;text-underline-offset:3px}@keyframes bubbleIn{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubbleOut{to{opacity:0;transform:translateY(-4px)}}.hdr{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(16px,2.4vw,26px) var(--pad-x);background:transparent}.mark{display:flex;align-items:center;color:var(--accent)}.mark:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.mark svg{display:block}.mark path{stroke-dasharray:1;stroke-dashoffset:1}.root:not([data-stage=loading]) .mark path{animation:nDraw .9s cubic-bezier(.65,0,.35,1) both}.nav{display:flex;align-items:center;gap:clamp(8px,1.2vw,14px);opacity:0}.root:not([data-stage=loading]) .nav{animation:nFade .6s .3s ease both}.pill{position:relative;display:inline-block;overflow:hidden;isolation:isolate;font-size:14px;letter-spacing:.01em;color:var(--ink);border:1px solid var(--rule);border-radius:999px;padding:8px 16px;transition:border-color .26s ease,color .26s ease,background-color .26s ease}.pill:hover{border-color:var(--accent);color:var(--accent)}.pill-liquid{position:absolute;inset:0;width:100%;height:100%;display:none;pointer-events:none}.pill--liquid .pill-liquid{display:block}.pill-label{position:relative;z-index:1;transition:color .22s ease .12s}.pill--liquid:hover{border-color:var(--accent);color:var(--bg)}.pill--liquid:hover .pill-label{color:var(--bg)}.pill:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hero-sticky{position:relative;min-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:clamp(96px,14vw,140px) var(--pad-x) clamp(200px,30vh,280px)}.root[data-line=on] .hero{height:160vh}.root[data-line=on] .hero-sticky{position:fixed;inset:0;height:100vh;height:100svh;min-height:0;will-change:transform;justify-content:flex-end;padding-bottom:clamp(88px,15vh,150px)}@media (max-width: 720px){.root[data-line=on] .hero-sticky{padding-bottom:clamp(170px,26vh,230px)}}.hero-sticky>.shape-svg{position:absolute;right:var(--pad-x);top:50%;width:min(34vw,380px);transform:translateY(-50%)}@media (max-width: 720px){.hero-sticky>.shape-svg{top:96px;right:50%;width:46vw;transform:translate(50%)}}.cue{margin:clamp(22px,3vw,32px) 0 0;font-size:13px;letter-spacing:.01em;color:var(--muted);opacity:0}.root:not([data-stage=loading]) .cue{animation:nFade .7s 2.5s ease both}.root:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(var(--dot) 1px,transparent 1.4px);background-size:24px 24px;background-position:12px 12px;-webkit-mask-image:radial-gradient(ellipse 55% 42% at 50% 50%,#000 25%,transparent 80%);mask-image:radial-gradient(ellipse 55% 42% at 50% 50%,#000 25%,transparent 80%);opacity:0}.root:not([data-stage=loading]):before{animation:nFadeIn 1.2s .9s ease both}@keyframes nFadeIn{to{opacity:1}}.name{margin:0;font-size:clamp(44px,7.4vw,112px);font-variation-settings:"wght" 600;letter-spacing:-.035em;line-height:.98;display:flex;flex-wrap:wrap;transition:font-variation-settings .4s ease,opacity .5s ease,letter-spacing .6s ease}.root:not([data-stage=loading]) .name{animation:nThicken .9s .62s ease backwards}@media (hover: none){.name{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}}.word{display:inline-flex}.gap{display:inline-block;width:.26em}.ch{display:inline-block;opacity:0}.root:not([data-stage=loading]) .ch{animation:nAppear 90ms linear both}.sub{margin:clamp(16px,2.2vw,24px) 0 0;font-size:clamp(17px,1.7vw,20px);font-variation-settings:"wght" 300;color:var(--muted);min-height:1.6em;display:inline-flex;align-items:center;width:fit-content;cursor:default;opacity:0;transition:opacity .5s ease}.root:not([data-stage=loading]) .sub{animation:nFade .6s 1.18s ease both}.now{margin:10px 0 0;font-size:13px;letter-spacing:.01em;color:var(--muted);opacity:0}.root:not([data-stage=loading]) .now{animation:nFade .6s 1.5s ease both}.caret{display:inline-block;width:1px;height:1.05em;margin-left:3px;background:currentColor;animation:nCaret 1.1s steps(1) infinite}.notfound{padding-bottom:clamp(200px,30vh,280px)}.code{margin:0 0 12px;font-size:13px;letter-spacing:.08em;color:var(--muted)}.name--small{font-size:clamp(32px,5vw,64px)}.sub--static{opacity:1}.pill--home{margin-top:clamp(20px,3vw,32px);width:fit-content;font-size:14px}.root:not([data-stage=loading]) .name--small{animation:nThicken .9s .3s ease backwards}.root:not([data-stage=loading]) .sub--static,.root:not([data-stage=loading]) .pill--home,.root:not([data-stage=loading]) .code{animation:nFade .6s .5s ease both}.root[data-revealed] .name{opacity:0;letter-spacing:.06em;font-variation-settings:"wght" 600}.root[data-revealed] .sub{opacity:0}.ch-sticky{position:relative;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);padding:clamp(72px,12vh,120px) var(--pad-x)}.ch-text{max-width:34rem}.ch-stage{display:flex;align-items:center;justify-content:center}.root[data-line=on] .chap{height:190vh}.root[data-line=on] .ch-sticky{position:sticky;top:0;height:100vh;height:100svh;padding-block:0}.root[data-line=on] .ch-stage{height:72vh;cursor:grab;touch-action:pan-y;-webkit-tap-highlight-color:transparent}html.is-dragging,html.is-dragging .ch-stage,html.is-dragging .end-stage{cursor:grabbing;-webkit-user-select:none;user-select:none}@media (max-width: 720px){.ch-sticky{grid-template-columns:minmax(0,1fr);gap:8px}.ch-stage{order:-1}.root[data-line=on] .ch-sticky{grid-template-rows:46% auto;align-items:start}.root[data-line=on] .ch-stage{height:100%}}.ch-when{margin:0;font-size:14px;letter-spacing:.01em;color:var(--muted);font-variant-numeric:tabular-nums}.ch-title{margin:.3em 0 .25em;font-size:clamp(30px,4.6vw,64px);font-weight:400;font-variation-settings:"wght" 600;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}.ch-org{margin:0;font-size:17px;color:var(--accent)}.ch-org a{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .26s ease}.ch-org a:hover{text-decoration-color:currentColor}.ch-body p{margin:14px 0 0}.ch-blurb{max-width:40ch;font-size:17px;color:var(--muted)}@media (max-width: 720px){.ch-blurb{font-size:16px}.ch-body p{margin-top:10px}}.ch-ask{font:inherit;font-size:15px;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:999px;padding:9px 18px;cursor:pointer;transition:border-color .26s ease,color .26s ease}.ch-ask:hover{border-color:var(--accent);color:var(--accent)}.ch-ask:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.blurb-link{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px;transition:color .26s ease,text-decoration-color .26s ease}.blurb-link:hover{color:var(--accent);text-decoration-color:var(--accent)}.shape-svg{display:block;width:min(100%,360px);height:auto;overflow:visible}.shape-svg path{fill:none;stroke:var(--ink);stroke-width:.035;stroke-linecap:round;stroke-linejoin:round}.end-sticky{position:relative;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(72px,12vh,120px) var(--pad-x) clamp(200px,30vh,260px)}.root[data-line=on] .end{height:220vh}.root[data-line=on] .end-sticky{position:sticky;top:0;height:100vh;height:100svh;padding-bottom:clamp(64px,11vh,110px)}@media (max-width: 720px){.root[data-line=on] .end-sticky{padding-bottom:190px}}.end-stage{display:none}.root[data-line=on] .end-stage{display:block;position:absolute;inset:0 0 46%;cursor:grab;touch-action:pan-y}.end-text{position:relative;max-width:40rem}.end-title{margin:0;font-size:clamp(30px,4vw,56px);font-weight:400;font-variation-settings:"wght" 600;letter-spacing:-.03em;line-height:1.05}.end-lede{margin:12px 0 0;font-size:17px;color:var(--muted)}.end-links{list-style:none;margin:clamp(18px,2.4vw,26px) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:18px}.end-links a{text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:5px;transition:color .26s ease,text-decoration-color .26s ease}.end-links a:hover{color:var(--ink);text-decoration-color:var(--ink)}.end-links a:focus-visible,.ch-org a:focus-visible,.blurb-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.end-again{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:clamp(22px,3vw,32px) 0 0;font-size:14px;color:var(--muted)}.end-again button{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:999px;padding:7px 16px;cursor:pointer;transition:border-color .26s ease,color .26s ease}.end-again button:hover{border-color:var(--accent);color:var(--accent)}.end-again button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.root.is-rewinding .ch-text,.root.is-rewinding .end-text{opacity:0;transition:opacity .45s ease}.foot{margin:clamp(22px,3vw,36px) 0 0;font-size:13px;letter-spacing:.01em;color:var(--muted)}.rail{position:fixed;left:var(--pad-x);bottom:clamp(18px,3vh,28px);z-index:40;display:flex;align-items:center;gap:12px;opacity:0}.root:not([data-stage=loading]) .rail{animation:nFade .7s 2.8s ease both}.rail ol{position:relative;display:flex;list-style:none;margin:0;padding:0}.rail ol:before{content:"";position:absolute;left:9px;right:9px;top:50%;height:1px;background:var(--rule)}.rail button{position:relative;display:grid;place-items:center;width:18px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.rail button span{width:5px;height:5px;border-radius:50%;background:var(--muted);opacity:.55;transition:transform .26s var(--ease-out),background-color .26s ease,opacity .26s ease}.rail button:hover span{opacity:1;transform:scale(1.4)}.rail button[aria-current] span{background:var(--accent);opacity:1;transform:scale(1.8)}.rail button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:4px}.rail-label{font-size:13px;letter-spacing:.01em;color:var(--muted);white-space:nowrap;animation:nFade .4s var(--ease-out) both}@media (max-width: 720px){.rail{display:none}}.overlay{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,2vw,22px);padding:clamp(96px,14vw,140px) var(--pad-x);background:var(--bg-overlay);opacity:0;transition:opacity .5s ease;cursor:pointer}.overlay--in{opacity:1}.q{margin:0;cursor:default;width:fit-content;font-size:clamp(18px,2vw,26px);font-variation-settings:"wght" 300;letter-spacing:-.015em;line-height:1.35;color:var(--muted);max-width:24ch;animation:nQin .56s var(--ease-out) both}.hint{margin:clamp(24px,4vw,40px) 0 0;font-size:13px;letter-spacing:.01em;color:var(--muted)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:.22s!important}@keyframes nRise{0%{opacity:0}to{opacity:1}}@keyframes nQin{0%{opacity:0}to{opacity:1}}}
