@font-face{font-family:Sarabun;font-style:normal;font-weight:200;font-display:swap;src:url(/_next/static/media/cb43f56622f3a8b7-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:200;font-display:swap;src:url(/_next/static/media/d2ecdf7d92f6fe71-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Sarabun;font-style:normal;font-weight:200;font-display:swap;src:url(/_next/static/media/830d361210c7d062-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Sarabun;font-style:normal;font-weight:200;font-display:swap;src:url(/_next/static/media/0540592d5ee06e9c-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6211ef845df10dad-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/ae276ebc9070dd85-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/cb0cc0f907592c8f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Sarabun;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d660c4b004d35ef0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f8092a6a9ad7a44c-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/96ad5eed80b1484c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0ab56aae8cf76709-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a1a058a3e6543db0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun Fallback;src:local("Arial");ascent-override:109.45%;descent-override:23.78%;line-gap-override:0.00%;size-adjust:97.58%}.__className_785a35{font-family:Sarabun,Sarabun Fallback;font-style:normal}.__variable_785a35{--font-sarabun:"Sarabun","Sarabun Fallback"}:root{--bg-center:#0e0c0a;--bg-mid:#070605;--ink:#ece8e1;--ink-cool:#e9eaec;--ink-emphasis:#f3ece4;--ink-meta:#828282;--ink-signoff:#8a8076;--ink-faint:rgba(236,232,225,0.14);--maxw:34ch;--dawn:900ms;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:radial-gradient(ellipse at 50% 40%,var(--bg-center) 0,var(--bg-mid) 55%,#000 100%);color:var(--ink);font-family:var(--font-sarabun),"Sarabun",sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}.stage{height:100svh;min-height:100vh;overflow:hidden}.atmos,.stage{position:fixed;inset:0}.atmos{z-index:1}.atmos,.grain{pointer-events:none}.grain{position:fixed;inset:-50%;width:200%;height:200%;opacity:.035;mix-blend-mode:soft-light;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%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grainShift .6s steps(4) infinite}@keyframes grainShift{0%{transform:translate(0)}25%{transform:translate(-4%,2%)}50%{transform:translate(3%,-3%)}75%{transform:translate(-2%,3%)}to{transform:translate(2%,-2%)}}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,transparent 52%,rgba(0,0,0,.62) 100%);animation:vignettePulse 14s ease-in-out infinite}.vignette.deepen{background:radial-gradient(ellipse at 50% 46%,transparent 40%,rgba(0,0,0,.82) 100%);transition:background 3s var(--ease)}@keyframes vignettePulse{0%,to{opacity:.92}50%{opacity:1}}.stardust{position:fixed;inset:0;pointer-events:none}.star{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:0;animation:twinkle var(--dur,9s) ease-in-out var(--delay,0s) infinite,drift var(--ddur,60s) linear var(--delay,0s) infinite}@keyframes twinkle{0%,to{opacity:0}50%{opacity:var(--max,.16)}}@keyframes drift{0%{transform:translateY(0)}to{transform:translateY(-26px)}}.bloom{position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(circle at 50% 45%,rgba(255,248,236,.09),transparent 60%);opacity:0}.bloom.fire{animation:bloom 1.6s var(--ease) forwards}@keyframes bloom{0%{opacity:0}35%{opacity:1}to{opacity:0}}.heartbeat{position:fixed;left:50%;bottom:16%;width:3px;height:3px;border-radius:50%;background:var(--ink-signoff);transform:translateX(-50%);animation:beat calc(8s / var(--breath-scale, 1)) ease-in-out infinite;z-index:3}@keyframes beat{0%,to{opacity:.1}50%{opacity:.28}}.layer{position:fixed;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:24px}.fade-enter{animation:softIn 1.2s var(--ease) both}.fade-exit{animation:softOut 1.2s var(--ease) both}@keyframes softIn{0%{opacity:0}to{opacity:1}}@keyframes softOut{0%{opacity:1}to{opacity:0}}.cover{text-align:center;max-width:36ch;animation:coverBreath calc(6s / var(--breath-scale, 1)) ease-in-out infinite}@keyframes coverBreath{0%,to{opacity:.62}50%{opacity:.8}}.cover .greet{font-weight:200;font-size:1.18rem;line-height:1.8;opacity:0;margin:0 0 14px;color:var(--ink)}.cover .greet.show{animation:softIn 1.6s var(--ease) forwards}.cover .timer{margin-top:30px;font-size:1rem;letter-spacing:2px;color:var(--ink-meta);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cover .note{margin-top:10px;font-size:.8rem;color:#4f4f4f}.cover .rule{width:0;height:1px;margin:26px auto 0;background:var(--ink-faint);animation:drawRule 1.4s var(--ease) forwards}@keyframes drawRule{to{width:60px}}.open-btn{margin-top:22px;font-size:1.05rem;color:var(--ink);opacity:0;letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:letter-spacing .5s var(--ease),border-color .5s var(--ease),opacity 1.4s var(--ease);animation:softIn 1.6s var(--ease) .4s forwards}.open-btn:hover{letter-spacing:4px;border-color:rgba(236,232,225,.5)}.envelope-wrap{perspective:1100px;display:flex;flex-direction:column;align-items:center;gap:26px}.envelope{position:relative;width:min(74vw,320px);height:min(48vw,208px);transform-style:preserve-3d;animation:envBreath 4s ease-in-out infinite}@keyframes envBreath{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}.env-body{position:absolute;inset:0;background:linear-gradient(160deg,rgba(216,207,192,.16),rgba(216,207,192,.08));border:1px solid rgba(216,207,192,.22);border-radius:4px;overflow:hidden}.env-body:after,.env-body:before{content:"";position:absolute;bottom:0;width:52%;height:100%;background:linear-gradient(rgba(216,207,192,.05),rgba(216,207,192,.1));border-top:1px solid rgba(216,207,192,.12)}.env-body:before{left:0;transform:skewX(28deg);transform-origin:bottom left}.env-body:after{right:0;transform:skewX(-28deg);transform-origin:bottom right}.env-flap{position:absolute;top:0;left:0;width:100%;height:52%;background:linear-gradient(180deg,rgba(216,207,192,.2),rgba(216,207,192,.1));-webkit-clip-path:polygon(0 0,100% 0,50% 100%);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transform:rotateX(0deg);z-index:3;transition:transform .9s var(--ease)}.env-seal{position:absolute;top:38%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:rgba(150,60,60,.42);box-shadow:0 0 14px rgba(150,60,60,.3);z-index:4;transition:opacity .5s var(--ease)}.env-letter{position:absolute;left:8%;width:84%;bottom:8%;height:70%;background:linear-gradient(rgba(236,232,225,.1),rgba(236,232,225,.04));border:1px solid rgba(236,232,225,.12);border-radius:2px;transform:translateY(0);z-index:2;transition:transform 1s var(--ease) .35s}.envelope.opening{animation:none}.envelope.opening .env-flap{transform:rotateX(180deg)}.envelope.opening .env-seal{opacity:0}.envelope.opening .env-letter{transform:translateY(-46%)}.envelope-hint{font-size:.95rem;color:var(--ink-signoff);letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:letter-spacing .5s var(--ease),border-color .5s var(--ease)}.envelope-hint:hover{letter-spacing:4px;border-color:rgba(138,128,118,.5)}.chapter{text-align:center;color:var(--ink)}.chapter .num{font-size:2.6rem;font-weight:200;letter-spacing:8px;margin:0}.chapter .ch-rule{width:0;height:1px;margin:20px auto;background:var(--ink-faint);animation:drawRule 1.6s var(--ease) .3s forwards}.chapter .sub{font-size:.92rem;font-weight:300;letter-spacing:1px;color:var(--ink-meta);margin:0 auto;max-width:30ch;line-height:1.7}.reader{position:fixed;inset:0;z-index:2;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.reader::-webkit-scrollbar{display:none}.reader-inner{min-height:100%;max-width:var(--maxw);margin:0 auto;padding:46vh 26px 52vh;display:flex;flex-direction:column;gap:1.05rem}.line{margin:0;font-size:clamp(1.05rem,2.6vw + .6rem,1.28rem);line-height:1.85;letter-spacing:.01em;text-align:center;color:var(--ink);opacity:0;transform:translateY(10px);filter:blur(6px);transition:opacity 1.2s var(--ease),transform var(--dawn) var(--ease),filter var(--dawn) var(--ease),color 1.2s var(--ease);word-break:normal;overflow-wrap:break-word;will-change:opacity,transform,filter}.line.in{opacity:.32;transform:translateY(0);filter:blur(0)}.line.in.current{opacity:1;text-shadow:0 0 18px rgba(236,232,225,.1)}.line.part2{color:var(--ink-cool)}.line.emphasis{transition:opacity 1.2s var(--ease),transform 1.4s var(--ease),filter 1.4s var(--ease),color 1.2s var(--ease)}.line.emphasis.in.current{font-size:clamp(1.22rem,3vw + .7rem,1.5rem);color:var(--ink-emphasis);text-shadow:0 0 20px rgba(243,236,228,.12);margin:.7rem 0}.line.settled{opacity:.06!important;text-shadow:none!important}.chapter-backdrop{position:fixed;inset:0;z-index:4;background:radial-gradient(ellipse at 50% 42%,var(--bg-center) 0,var(--bg-mid) 60%,#000 100%);animation:softIn 1.4s var(--ease) both}.line.quote.in.current{color:#d9d3c8;font-style:italic}.line.signoff{font-weight:200;margin-top:2.4rem}.line.signoff.in.current{color:var(--ink-signoff);text-shadow:none}.caret:after{content:"|";margin-left:2px;animation:blink 1s steps(1) infinite;opacity:.7}@keyframes blink{0%,to{opacity:.7}50%{opacity:0}}.controls{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:20px;padding:10px 18px;opacity:.18;transition:opacity .6s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.controls.awake{opacity:.72}.ctrl{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:.86rem;letter-spacing:1px;color:var(--ink);opacity:.85;transition:opacity .3s var(--ease)}.ctrl:hover{opacity:1}.ctrl.active{color:var(--ink-emphasis)}.ctrl.glyph{font-size:1rem}.tempo-group{display:inline-flex;gap:12px;font-size:.82rem}.tempo-group .t{color:var(--ink-meta);transition:color .3s var(--ease);min-height:44px;display:inline-flex;align-items:center}.tempo-group .t.on{color:var(--ink)}.sep{width:1px;height:16px;background:rgba(236,232,225,.16)}.tap-hint{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);z-index:6;font-size:.8rem;letter-spacing:1px;color:var(--ink-meta);animation:hintPulse 2.6s ease-in-out infinite;pointer-events:none}.tap-hint.gone{animation:softOut .8s var(--ease) forwards}@keyframes hintPulse{0%,to{opacity:.3}50%{opacity:.6}}.progress{position:fixed;left:0;bottom:0;height:1px;width:100%;z-index:6;transform-origin:left;background:var(--ink-faint);transform:scaleX(var(--p,0));transition:transform .9s var(--ease),height .5s var(--ease)}.progress.seam{height:2px}.reader-exit{position:fixed;top:15px;left:14px;z-index:7;font-size:.82rem;letter-spacing:1px;color:var(--ink-meta);opacity:.34;padding:6px 10px 6px 2px;transition:opacity .4s var(--ease),color .4s var(--ease)}.reader-exit:hover{opacity:1;color:var(--ink-emphasis)}.reader-help{position:fixed;top:13px;right:15px;z-index:7;width:26px;height:26px;border:1px solid rgba(138,128,118,.4);border-radius:50%;font-size:.8rem;color:var(--ink-meta);opacity:.3;transition:opacity .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}.reader-help:hover{opacity:1;color:var(--ink-emphasis);border-color:rgba(138,128,118,.7)}.reader-hint{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;max-width:90vw;padding:12px 20px;background:rgba(12,11,10,.72);border:1px solid var(--line);border-radius:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:softIn .7s var(--ease) both;pointer-events:none}.reader-hint.gone{animation:softOut .9s var(--ease) forwards}.reader-hint .rh-line{font-size:.92rem;color:var(--ink-signoff);letter-spacing:.5px}.reader-hint .rh-sub{font-size:.78rem;color:var(--ink-meta);letter-spacing:.5px}.signature{text-align:center;color:var(--ink);max-width:32ch;display:flex;flex-direction:column;align-items:center;gap:18px}.signature .photo{width:132px;height:132px;border-radius:50%;object-fit:cover;filter:grayscale(.25) brightness(.92);border:1px solid rgba(236,232,225,.14);box-shadow:0 0 40px rgba(0,0,0,.6)}.signature .sig-rule{width:70px;height:1px;background:var(--ink-faint)}.signature .from{font-weight:200;font-size:1.5rem;letter-spacing:2px;color:var(--ink-signoff);margin:0}.signature .to{font-size:.92rem;color:var(--ink-meta);letter-spacing:1px;margin:0}.signature .date{font-size:.8rem;color:#555;letter-spacing:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0}.signature .replay{margin-top:16px;font-size:.95rem;color:var(--ink-signoff);letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:color .4s var(--ease),border-color .4s var(--ease),letter-spacing .4s var(--ease)}.signature .replay:hover{color:var(--ink);border-color:rgba(138,128,118,.5);letter-spacing:3px}@media (prefers-reduced-motion:reduce){.cover,.envelope,.grain,.heartbeat,.stardust,.vignette{animation:none!important}.line{transform:none!important;filter:none!important;transition:opacity .8s ease,color .8s ease!important}.chapter-backdrop,.index-inner,.reader-hint{animation:none!important}.bubble{transform:none!important;filter:none!important;transition:opacity .8s ease!important}}.chapter .ch-title{font-size:1.5rem;font-weight:300;letter-spacing:1px;color:var(--ink);margin:0 auto 6px;max-width:26ch;line-height:1.5}.index{position:fixed;inset:0;z-index:2;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.index::-webkit-scrollbar{display:none}.index-inner{max-width:40ch;margin:0 auto;padding:13vh 26px 16vh;animation:softIn 1.4s var(--ease) both}.index-head{text-align:center;margin-bottom:42px}.ix-to{font-size:.9rem;color:var(--ink-meta);letter-spacing:2px;margin:0 0 8px}.ix-title{font-size:2rem;font-weight:200;letter-spacing:4px;color:var(--ink);margin:0}.ix-sub{font-size:.85rem;color:var(--ink-signoff);margin:14px 0 0;line-height:1.6}.ix-rule{width:60px;height:1px;background:var(--ink-faint);margin:24px auto 0}.act-sec{margin-bottom:36px}.act-head{text-align:center;margin-bottom:20px}.act-label{display:block;font-size:.78rem;letter-spacing:3px;color:var(--ink-meta)}.act-title{display:block;font-size:1.15rem;font-weight:300;letter-spacing:2px;color:var(--ink);margin-top:4px}.act-note{display:block;font-size:.72rem;color:#5a5a5a;letter-spacing:1px;margin-top:6px}.toc-list{display:flex;flex-direction:column;gap:10px}.toc-item{display:flex;gap:14px;text-align:left;width:100%;padding:14px 16px;border-radius:10px;border:1px solid rgba(236,232,225,.07);background:rgba(236,232,225,.015);transition:border-color .4s var(--ease),background .4s var(--ease),opacity .4s var(--ease)}.toc-item:hover{border-color:rgba(236,232,225,.2);background:rgba(236,232,225,.04)}.toc-no{font-size:1.1rem;font-weight:200;color:var(--ink-signoff);min-width:1.7em;line-height:1.5}.toc-body{display:flex;flex-direction:column;gap:3px}.toc-title{font-size:1.04rem;color:var(--ink);letter-spacing:.5px}.toc-date{font-size:.74rem;color:var(--ink-meta);letter-spacing:1px}.toc-blurb{font-size:.82rem;color:#7a766f;line-height:1.55;margin-top:3px}.toc-dot{color:var(--ink-signoff);margin-left:8px}.toc-item.read{opacity:.45}.toc-item.next{border-color:rgba(236,232,225,.26);background:rgba(236,232,225,.05);box-shadow:0 0 26px rgba(0,0,0,.45)}.index-foot{text-align:center;margin-top:32px}.end-btn{font-size:.92rem;color:var(--ink-signoff);letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:color .4s var(--ease),border-color .4s var(--ease),letter-spacing .4s var(--ease)}.end-btn:hover{color:var(--ink);border-color:rgba(138,128,118,.5);letter-spacing:3px}.ix-mute{min-width:40px;min-height:40px;font-size:1rem;color:var(--ink-meta);opacity:.6;transition:opacity .3s var(--ease),color .3s var(--ease)}.ix-mute:hover{opacity:1}.ix-mute.on{color:var(--ink-emphasis)}.chat-inner{max-width:38ch;align-items:stretch;gap:.5rem;padding:40vh 22px 50vh}.brow{display:flex;width:100%}.brow.her{justify-content:flex-start}.brow.him{justify-content:flex-end}.bcol{display:flex;flex-direction:column;max-width:82%}.brow.him .bcol{align-items:flex-end}.who{font-size:.66rem;letter-spacing:1px;color:#5f5f5f;margin:0 8px 3px}.bubble{margin:0;padding:9px 14px;border-radius:15px;font-size:clamp(.98rem,2.2vw + .55rem,1.12rem);line-height:1.6;letter-spacing:.01em;opacity:0;transform:translateY(10px);box-shadow:0 0 0 0 rgba(236,232,225,0);transition:opacity 1s var(--ease),transform var(--dawn) var(--ease),box-shadow 1.1s var(--ease);will-change:opacity,transform}.bubble.her{background:rgba(212,220,228,.07);border:1px solid rgba(212,220,228,.1);color:var(--ink-cool);border-bottom-left-radius:5px}.bubble.him{background:rgba(236,226,210,.1);border:1px solid rgba(236,226,210,.12);color:var(--ink);border-bottom-right-radius:5px}.bubble.in{opacity:.5;transform:none}.bubble.in.current{opacity:1}.bubble.hi.in.current{box-shadow:0 0 24px 1px rgba(236,232,225,.1)}.bubble.media{font-style:italic;color:var(--ink-meta);background:none;border:1px dashed rgba(236,232,225,.14)}.reflect-sep{display:flex;align-items:center;justify-content:center;gap:12px;margin:2.6rem 4px 1.1rem;opacity:0}.reflect-sep.in{animation:softIn 1.8s var(--ease) forwards}.reflect-sep:after,.reflect-sep:before{content:"";height:1px;width:30px;background:var(--ink-faint)}.reflect-sep span{font-size:.72rem;letter-spacing:2px;color:var(--ink-meta);white-space:nowrap}.reflect{margin:.55rem auto;max-width:30ch;text-align:center;font-size:clamp(1.06rem,2.6vw + .6rem,1.28rem);line-height:1.95;letter-spacing:.01em;color:var(--ink-emphasis);opacity:0;transform:translateY(10px);filter:blur(6px);transition:opacity 1.3s var(--ease),transform 1.3s var(--ease),filter 1.3s var(--ease)}.reflect.in{opacity:.82;transform:none;filter:blur(0)}.reflect.in.current{opacity:1;text-shadow:0 0 22px rgba(243,236,228,.12)}@media (prefers-reduced-motion:reduce){.reflect{transform:none!important;filter:none!important;transition:opacity .8s ease!important}}.ix-music,.music-group{display:inline-flex;align-items:center;gap:8px}.ix-music{position:fixed;top:14px;right:14px;z-index:6;padding:4px 6px}.vol{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:64px;height:36px;background:transparent;cursor:pointer;opacity:.7;transition:opacity .3s var(--ease)}.vol:hover{opacity:1}.vol::-webkit-slider-runnable-track{height:2px;background:rgba(236,232,225,.25);border-radius:2px}.vol::-moz-range-track{height:2px;background:rgba(236,232,225,.25);border-radius:2px}.vol::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;margin-top:-5px;border-radius:50%;background:var(--ink)}.vol::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--ink)}.controls{flex-wrap:wrap;justify-content:center;max-width:94vw;row-gap:6px}@media (max-width:540px){.controls{gap:12px;bottom:16px;padding:8px 12px}.controls .sep{display:none}.tempo-group{gap:10px;font-size:.8rem}.vol{width:56px}.tap-hint{bottom:70px}.index-inner{padding:9vh 20px 16vh}.ix-title{font-size:1.7rem;letter-spacing:3px}.toc-item{padding:13px;gap:11px}.toc-blurb{font-size:.8rem}.reader-inner{padding:42vh 20px 50vh}.chat-inner{padding:38vh 16px 48vh;max-width:100%}.bcol{max-width:86%}.reflect{max-width:26ch}.chapter .num{font-size:2.2rem}.chapter .ch-title{font-size:1.3rem}}@media (max-width:380px){.tempo-group{gap:8px}.ctrl{min-width:40px}.ix-music{top:10px;right:10px}}.sig-bg{position:fixed;inset:0;z-index:-1;background-image:url(/ending.jpg);background-size:cover;background-position:center 38%;filter:blur(7px) brightness(.42) grayscale(.18);transform:scale(1.06);opacity:0;animation:sigBgIn 4.5s var(--ease) forwards}.sig-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(7,6,5,.4) 0,rgba(7,6,5,.86) 100%)}@keyframes sigBgIn{to{opacity:.5}}.nowplaying{position:fixed;top:14px;left:16px;z-index:6;display:flex;align-items:center;gap:8px;max-width:56vw;font-size:.72rem;letter-spacing:.5px;color:var(--ink-meta);opacity:.55;pointer-events:none;animation:softIn 1.4s var(--ease) both}.np-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-eq{display:inline-flex;align-items:flex-end;gap:2px;height:11px;flex:none}.np-eq i{width:2px;height:100%;background:var(--ink-signoff);transform-origin:bottom;transform:scaleY(.3);animation:eq .9s ease-in-out infinite}.np-eq i:nth-child(2){animation-delay:.25s}.np-eq i:nth-child(3){animation-delay:.45s}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.nowplaying.muted .np-eq i{animation:none;transform:scaleY(.3)}@media (prefers-reduced-motion:reduce){.np-eq i{transform:scaleY(.6)}.np-eq i,.sig-bg{animation:none!important}.sig-bg{opacity:.5}}.letter-prelude{max-width:28ch;text-align:center;font-size:clamp(1rem,2.4vw + .6rem,1.18rem);font-weight:200;line-height:1.95;letter-spacing:.01em;color:var(--ink-meta);opacity:0;transform:translateY(8px);filter:blur(6px);transition:opacity 1.6s var(--ease),transform 1.6s var(--ease),filter 1.6s var(--ease)}.letter-prelude.in{opacity:.72;transform:none;filter:blur(0)}.rest{text-align:center;max-width:28ch;display:flex;flex-direction:column;align-items:center;gap:34px}.rest-pulse{margin:0;font-size:1.5rem;font-weight:200;letter-spacing:2px;color:var(--ink-signoff);animation:restBeat 1.15s ease-out infinite}@keyframes restBeat{0%{opacity:1;text-shadow:0 0 26px rgba(243,236,228,.16)}9%{opacity:.6;text-shadow:0 0 6px rgba(243,236,228,.04)}16.5%{opacity:.86;text-shadow:0 0 15px rgba(243,236,228,.11)}27%{opacity:.5;text-shadow:0 0 0 rgba(243,236,228,0)}to{opacity:.5;text-shadow:0 0 0 rgba(243,236,228,0)}}.rest-note{margin:0;font-size:.95rem;font-weight:200;line-height:1.9;letter-spacing:.5px;color:var(--ink-meta)}.rest-note-line{display:block;opacity:0;animation:softIn 2.6s var(--ease) forwards}.rest-note-line.delay{animation-delay:1.2s}.rest-reopen{margin-top:8px;font-size:.85rem;color:#555;letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:color .4s var(--ease),border-color .4s var(--ease),letter-spacing .4s var(--ease)}.rest-reopen:hover{color:var(--ink-meta);border-color:rgba(138,128,118,.4);letter-spacing:2px}.rest-stay{display:flex;flex-direction:column;gap:14px;max-width:26ch;margin:2px auto 0}.rest-stay-line{margin:0;font-size:.9rem;font-weight:200;line-height:1.85;letter-spacing:.3px;color:var(--ink-meta);opacity:0;animation:softIn 3.5s var(--ease) forwards}.whisper-open{margin-top:2px;font-size:.85rem;color:#565656;letter-spacing:.5px;border-bottom:1px solid transparent;padding-bottom:3px;transition:color .4s var(--ease),border-color .4s var(--ease)}.whisper-open:hover{color:var(--ink-meta);border-color:rgba(138,128,118,.4)}.whisper{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(82vw,30ch)}.whisper-input{width:100%;resize:none;background:rgba(236,232,225,.04);border:1px solid rgba(236,232,225,.14);border-radius:10px;padding:12px 14px;color:var(--ink);font-family:inherit;font-size:.95rem;font-weight:200;line-height:1.7;outline:none;transition:border-color .4s var(--ease)}.whisper-input:focus{border-color:rgba(236,232,225,.3)}.whisper-input::placeholder{color:#5a5a5a}.whisper-send{font-size:.9rem;color:var(--ink-signoff);letter-spacing:1px;border-bottom:1px solid transparent;padding-bottom:3px;transition:color .4s var(--ease),border-color .4s var(--ease),letter-spacing .4s var(--ease)}.whisper-send:hover:not(:disabled){color:var(--ink);border-color:rgba(138,128,118,.5);letter-spacing:2px}.whisper-send:disabled{opacity:.4}.whisper-done{margin:0;font-size:.92rem;font-weight:200;color:var(--ink-signoff);letter-spacing:.5px;animation:softIn 1.4s var(--ease) both}.whisper-err{margin:0;font-size:.8rem;color:var(--ink-meta)}.code365{margin-top:20px;font-size:.7rem;letter-spacing:3px;color:rgba(236,232,225,.1);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:color .6s var(--ease)}.code365:hover{color:rgba(236,232,225,.32)}.code-reveal{display:flex;flex-direction:column;gap:6px;margin-top:2px;animation:softIn 1.8s var(--ease) both}.code-reveal p{margin:0;font-size:.82rem;font-weight:200;letter-spacing:1px;color:var(--ink-signoff)}.code365,.rest .whisper-open,.rest-reopen{opacity:0;animation:softIn 2.4s var(--ease) 6s forwards}.ambient{position:fixed;inset:0;z-index:3;pointer-events:none}.touch-glow{left:0;top:0;width:300px;height:300px;margin:-150px 0 0 -150px;background:radial-gradient(circle,rgba(243,236,228,.05) 0,transparent 68%);opacity:0;will-change:transform,opacity}.spark,.touch-glow{position:fixed;border-radius:50%}.spark{width:4px;height:4px;margin:-2px 0 0 -2px;background:#fff;box-shadow:0 0 8px 2px rgba(255,255,255,.55);animation:sparkFlash 1.4s var(--ease) forwards}@keyframes sparkFlash{0%{opacity:0;transform:scale(.3)}25%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.stardust{transform:translate(calc(var(--tiltx, 0) * 14px),calc(var(--tilty, 0) * 14px));transition:transform .7s var(--ease)}@media (prefers-reduced-motion:reduce){.ambient{display:none!important}.stardust{transform:none!important}.rest-pulse{animation:none!important;opacity:.85}.code365,.rest .whisper-open,.rest-note-line,.rest-reopen,.rest-stay-line{animation:none!important;opacity:1!important}.letter-prelude{transform:none!important;filter:none!important;transition:opacity .8s ease!important}}.polaroids-wrap{flex-direction:column;gap:12px;margin:6px 0 2px}.polaroids,.polaroids-wrap{display:flex;align-items:center}.polaroids{justify-content:center;gap:8px}.pol{width:92px;background:none;border:0;padding:0;cursor:pointer;perspective:800px}.pol-inner{position:relative;display:block;width:100%;aspect-ratio:104/132;transform-style:preserve-3d;transition:transform 1s var(--ease);will-change:transform}.pol.flipped .pol-inner{transform:rotateY(180deg)}.pol-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:3px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.55)}.pol-cover{display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,#ece7df,#ddd6ca 55%,#cfc7ba)}.pol-seal{font-size:1.05rem;color:rgba(60,54,48,.3)}.pol-photo{transform:rotateY(180deg);background:#f4f0e8;padding:6px 6px 0;display:flex;flex-direction:column;align-items:center}.pol-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#15130f;filter:saturate(.94) contrast(1.02)}.pol-cap{font-size:.5rem;line-height:1.45;color:#4a463f;text-align:center;padding:4px 2px;letter-spacing:.2px}.pol-nudge{font-size:.8rem;color:var(--ink-meta);letter-spacing:.5px;opacity:0;transform:translateY(-4px);transition:opacity .6s var(--ease),transform .6s var(--ease);min-height:1.1em;margin:0}.pol-nudge.in{opacity:.85;transform:none}@media (prefers-reduced-motion:reduce){.pol-inner{transition:none!important}}.ix-whisper{margin:14px auto 0;max-width:32ch;font-size:.82rem;font-weight:200;font-style:italic;line-height:1.7;letter-spacing:.3px;color:var(--ink-meta);opacity:0;animation:softIn 2s var(--ease) .4s forwards}.toc-item.anniv{border-color:rgba(236,232,225,.18);background:rgba(236,232,225,.035)}.toc-item.anniv .toc-no{color:var(--ink-emphasis);text-shadow:0 0 16px rgba(243,236,228,.2)}.toc-anniv{margin-top:1px;font-size:.72rem;font-weight:200;font-style:italic;letter-spacing:.2px;color:var(--ink-emphasis);opacity:.8}@media (prefers-reduced-motion:reduce){.ix-whisper{animation:none!important;opacity:.8}}.draft-row{overflow:hidden;max-height:90px;transition:max-height .7s var(--ease),opacity .7s var(--ease)}.draft-row.gone{max-height:0;opacity:0}.bubble.draft{opacity:.55;transform:none;filter:none;font-style:italic;background:none;border:1px dashed rgba(236,226,210,.18);color:var(--ink-meta);min-width:44px;min-height:1.2em}.bubble.draft .typing{display:inline-flex;gap:4px;align-items:center;height:1.2em}.bubble.draft .typing i{width:5px;height:5px;border-radius:50%;background:var(--ink-meta);animation:typedot 1.2s ease-in-out infinite}.bubble.draft .typing i:nth-child(2){animation-delay:.2s}.bubble.draft .typing i:nth-child(3){animation-delay:.4s}@keyframes typedot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:.7;transform:translateY(-2px)}}.bubble.draft .caret{display:inline-block;width:1px;height:1.05em;margin-left:1px;background:var(--ink-meta);vertical-align:text-bottom;animation:caretblink 1s step-end infinite}@keyframes caretblink{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.draft-row{transition:opacity .6s ease!important}.bubble.draft .caret,.bubble.draft .typing i{animation:none!important}}.line.has-hidden{cursor:help;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.line.has-hidden>span:first-child{border-bottom:1px dotted rgba(236,232,225,.32);padding-bottom:1px}.line.has-hidden>span:first-child:after{content:" ⋯";color:var(--ink-meta);opacity:.55;font-style:normal;transition:opacity .6s var(--ease)}.line.has-hidden.revealed>span:first-child:after{opacity:0}.line.has-hidden.revealed{opacity:.95!important}.line-hidden{display:block;margin:7px auto 0;max-width:30ch;font-size:.82rem;font-weight:200;font-style:italic;line-height:1.7;letter-spacing:.2px;color:var(--ink-meta);opacity:0;max-height:0;overflow:hidden;filter:blur(4px);transition:opacity .7s var(--ease),max-height .7s var(--ease),filter .7s var(--ease)}.line.revealed .line-hidden{opacity:.9;max-height:6em;filter:blur(0)}@media (prefers-reduced-motion:reduce){.line-hidden{transition:opacity .5s ease!important;filter:none!important}.tap-hint{animation:none!important;opacity:.5}}.star.lit{width:3px;height:3px;opacity:.55;background:#fff;box-shadow:0 0 7px 1px rgba(255,255,255,.45);animation:drift var(--ddur,60s) linear var(--delay,0s) infinite,litIn 2.4s var(--ease) forwards}@keyframes litIn{0%{opacity:0}to{opacity:.55}}@media (prefers-reduced-motion:reduce){.star.lit{animation:none!important;opacity:.55}}