:root{color:#43292e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f8efe8;--paper-warm:#efe0d6;--card:#fffaf5;--card-soft:#fcf4ed;--ink:#43292e;--muted:#78595d;--line:#dec8c2;--rose:#9e3f55;--rose-deep:#7f2d41;--rose-wash:#9e3f5514;--rose-border:#9e3f5542;--bar:#f8efe8e0;--envelope:#ecd0c6;--envelope-deep:#dfb9ac;--flap:#f5e1d8;--tape:#f3deceb8;--shadow-sm:0 4px 14px -6px #4e232d29;--shadow:0 14px 36px -16px #4e232d3d, 0 4px 12px -4px #4e232d14;--shadow-lg:0 24px 52px -20px #4e232d52, 0 6px 18px -6px #4e232d1f;--serif:"Instrument Serif", Georgia, serif;--hand:"Caveat", "Segoe Print", "Bradley Hand", cursive;--sans:"Archivo", Arial, sans-serif;--header-height:80px;-webkit-text-size-adjust:100%;font-synthesis:none;background:#f8efe8;font-family:Archivo,Arial,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#1e1619;--paper-warm:#281d21;--card:#2c2025;--card-soft:#251b1f;--ink:#faebe1;--muted:#cfb2b4;--line:#4f3941;--rose:#e5a1b0;--rose-deep:#f0bac6;--rose-wash:#e5a1b01a;--rose-border:#e5a1b04d;--bar:#1e1619e0;--envelope:#5b3e46;--envelope-deep:#493037;--flap:#724e57;--tape:#78565f7a;--shadow-sm:0 6px 16px -6px #00000073;--shadow:0 18px 42px -16px #00000094, 0 4px 12px -4px #00000059;--shadow-lg:0 28px 60px -18px #000000b8}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 20px);scrollbar-gutter:stable}body{background:radial-gradient(ellipse 90% 55% at 50% -5%, var(--rose-wash), transparent 70%), radial-gradient(circle at 85% 25%, var(--rose-wash), transparent 45%), var(--paper);min-width:0;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;transition:background-color .35s,color .35s}body:after{content:"";pointer-events:none;z-index:80;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--rose-wash);color:var(--rose)}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .2s,background-color .2s,border-color .2s,color .2s,box-shadow .2s}button:disabled,input:disabled{cursor:default}button,a,input,summary{-webkit-tap-highlight-color:transparent}button,a{-webkit-user-select:none;user-select:none}img{max-width:100%;display:block}button,a,p,h1,h2,figcaption{overflow-wrap:anywhere}:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.section:focus{outline:none}.section:focus-visible{outline:2px solid var(--rose);outline-offset:6px;border-radius:4px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon-button{background:0 0;border:1px solid #0000;border-radius:50%;flex:0 0 44px;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.icon-button:hover{background:var(--rose-wash);border-color:var(--rose-border)}.icon-button:active{transform:scale(.95)}.text-button{letter-spacing:.01em;min-height:44px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;padding:.6rem 1.1rem;font-size:.82rem}.text-button:hover{color:var(--rose);background:var(--rose-wash);border-color:var(--rose-border)}.topbar{z-index:30;padding:max(.5rem, env(safe-area-inset-top,0px)) max(.85rem, env(safe-area-inset-right,0px)) .45rem max(.85rem, env(safe-area-inset-left,0px));background:var(--bar);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.3rem .6rem;display:grid;position:fixed;inset:0 0 auto;box-shadow:0 4px 20px -12px #43292e24}@supports ((-webkit-backdrop-filter:blur(16px)) or (backdrop-filter:blur(16px))){.topbar,.music-player{-webkit-backdrop-filter:blur(16px)saturate(140%)}}.brand{text-align:left;min-width:0;min-height:44px;font:600 1.7rem/1 var(--hand);color:var(--rose);background:0 0;border:0;border-radius:8px;justify-self:start;padding:.15rem .25rem}.brand:hover{opacity:.88}.brand em{color:var(--ink);font-style:normal}.brand span{font:400 .62rem/1.35 var(--sans);letter-spacing:.02em;color:var(--muted);padding-top:.22rem;display:block}.header-actions{align-items:center;gap:.35rem;display:flex}.theme-button{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow-sm)}.color-all{border:1px solid var(--line);background:var(--card);font-variant-numeric:tabular-nums;min-height:44px;color:var(--rose);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:.38rem;padding:.35rem .75rem;font-size:.72rem;font-weight:500;display:inline-flex}.color-all:hover{border-color:var(--rose);background:var(--rose-wash)}.color-all.is-complete{background:var(--rose);border-color:var(--rose);color:var(--card)}.color-all.is-complete svg{fill:currentColor}.chapter-nav{scrollbar-width:none;overscroll-behavior-x:contain;grid-area:2/1/auto/-1;gap:.25rem;min-width:0;padding-bottom:.15rem;display:flex;overflow-x:auto}.chapter-nav::-webkit-scrollbar{display:none}.chapter-nav button{min-height:40px;font:italic 400 1.02rem var(--serif);color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;flex:1 0 auto;padding:.35rem .8rem}.chapter-nav button:hover{color:var(--ink);background:var(--rose-wash)}.chapter-nav button[aria-current]{background:var(--rose-wash);border-color:var(--rose-border);color:var(--rose);font-weight:500}.reading-progress{background:linear-gradient(90deg, var(--rose), var(--rose-deep));transform-origin:0;height:2.5px;box-shadow:0 0 8px var(--rose-border);position:absolute;inset:auto 0 -1px}.cover{width:min(920px,100% - 2.25rem);min-height:100svh;padding:calc(var(--header-height) + 1.25rem) 0 2.5rem;flex-direction:column;justify-content:space-between;margin:0 auto;display:flex}.cover-meta{border-bottom:1px dashed var(--line);font:italic 400 .98rem/1.3 var(--serif);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.85rem;display:flex}.cover-meta span:last-child{background:var(--rose-wash);border:1px solid var(--rose-border);color:var(--rose);border-radius:999px;flex-shrink:0;padding:.2rem .65rem;font-size:.88rem}.cover-hero{grid-template-columns:minmax(0,1fr);align-items:center;gap:2.25rem;padding:1.5rem 0 1rem;display:grid}.title-block{text-align:center;min-width:0}.tulip-mark{width:40px;height:58px;color:var(--rose);filter:drop-shadow(0 4px 8px var(--rose-wash));margin:0 auto .65rem;display:block;rotate:-10deg}.kicker{font:italic 400 1.1rem/1.4 var(--serif);color:var(--rose);margin:0 0 .45rem}.title-block h1{font:500 clamp(3.8rem, 15vw, 6.7rem)/.95 var(--hand);letter-spacing:-.03em;margin:0}.title-block h1 em{color:var(--rose);-webkit-text-decoration:underline wavy;text-decoration:underline wavy;-webkit-text-decoration-color:var(--rose-border);text-decoration-color:var(--rose-border);text-underline-offset:6px;font-style:normal;text-decoration-thickness:1.5px}.cover-dedication{max-width:27rem;font:400 1.28rem/1.68 var(--serif);color:var(--muted);margin:1.35rem auto 1.1rem}.cover-signature{font:500 1.85rem/1.25 var(--hand);color:var(--rose);margin:.75rem 0 1.4rem;rotate:-2.5deg}.cover-sub{border-top:1px dashed var(--line);font:400 1.02rem/1.45 var(--serif);text-align:left;color:var(--muted);justify-content:space-between;align-items:end;gap:.85rem;padding-top:.9rem;display:flex}.cover-sub time{color:var(--ink);white-space:nowrap;font-size:1.45rem;font-style:italic}.cover-keepsake{flex-direction:column;align-items:center;gap:2.25rem;width:min(340px,100%);min-width:0;margin:0 auto;display:flex;position:relative}.envelope{aspect-ratio:1.62;border:1px solid color-mix(in srgb, var(--line) 80%, var(--rose));background:linear-gradient(160deg, var(--envelope), var(--envelope-deep));width:100%;box-shadow:var(--shadow-lg), inset 0 1px 0 #ffffff47;perspective:900px;border-radius:6px;margin:0 0 3.4rem;padding:0;display:block;position:relative;rotate:1.8deg}.envelope:hover{box-shadow:0 28px 56px -18px #5a2b3661, 0 0 0 3px var(--rose-wash)}.envelope-paper{z-index:1;background:repeating-linear-gradient(transparent 0, transparent 23px, color-mix(in srgb, var(--line) 25%, transparent) 24px), var(--card);border:1px solid var(--line);font:500 1.4rem/1.2 var(--hand);color:var(--ink);text-align:left;border-radius:3px;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;display:flex;position:absolute;inset:11px 15px 14px;box-shadow:0 4px 14px -4px #00000026}.envelope-paper small{font:italic 400 .98rem var(--serif);color:var(--muted)}.envelope-front{z-index:2;background:linear-gradient(135deg, transparent 48%, #00000009 50%, transparent 52%), linear-gradient(225deg, transparent 48%, #00000009 50%, transparent 52%), linear-gradient(155deg, var(--flap), var(--envelope));clip-path:polygon(0 0,50% 48%,100% 0,100% 100%,0 100%);border-radius:5px;position:absolute;inset:0}.envelope-flap{z-index:3;background:linear-gradient(180deg, var(--flap), color-mix(in srgb, var(--flap) 85%, var(--envelope-deep)));clip-path:polygon(0 0,100% 0,50% 60%);transform-origin:top;backface-visibility:hidden;filter:drop-shadow(0 3px 5px #37192024);position:absolute;inset:0}.envelope-address{z-index:3;font:500 1.65rem/1.05 var(--hand);color:var(--ink);position:absolute;bottom:.9rem;left:.75rem;right:.75rem}.envelope-address small{font:italic 400 .88rem var(--serif);color:var(--muted);margin-top:.22rem;display:block}.wax-seal{z-index:4;color:#ffe8e0;width:56px;height:56px;font:400 1.95rem var(--serif);background:radial-gradient(circle at 32% 28%,#c96f80,#8a3147 68%,#692133 100%);border-radius:47% 53% 49% 51%;place-items:center;display:grid;position:absolute;top:calc(46% - 28px);left:calc(50% - 28px);rotate:-10deg;box-shadow:0 6px 14px #44121f5c,inset 0 2px 3px #ffe6de59,inset 0 0 0 4px #ffdcd224,inset 0 0 0 7px #41101c38}.envelope-action{white-space:nowrap;background:var(--card);border:1px solid var(--rose-border);box-shadow:var(--shadow-sm);font:500 1.42rem/1.25 var(--hand);color:var(--rose);border-radius:999px;padding:.35rem 1.15rem;transition:background-color .2s,transform .2s,box-shadow .2s;position:absolute;top:calc(100% + .85rem);left:50%;translate:-50%}.envelope:hover .envelope-action{background:var(--rose);color:var(--card);border-color:var(--rose)}.cover-actions{border-top:1px dashed color-mix(in srgb, var(--line) 65%, transparent);text-align:center;justify-items:center;gap:.35rem;margin:.75rem 0 0;padding-top:1rem;display:grid}.cover-actions>p{font:italic 400 1.08rem/1.5 var(--serif);color:var(--muted);margin:0 0 .15rem}.resume-button{border:1px solid var(--rose-border);background:var(--card);max-width:100%;min-height:44px;color:var(--rose);box-shadow:var(--shadow-sm);border-radius:999px;margin-top:.25rem;padding:.55rem 1.2rem;font-size:.82rem;font-weight:500}.resume-button:hover{background:var(--rose);color:var(--card);border-color:var(--rose);transform:translateY(-1px)}.story{background:radial-gradient(ellipse at 50% 0, var(--rose-wash), transparent 50%), var(--card);border:1px solid var(--line);width:min(900px,100% - 1.25rem);box-shadow:var(--shadow-lg);border-radius:8px 8px 0 0;margin:2rem auto 0;padding-top:2rem;position:relative}.story:before{content:"";border:1px solid color-mix(in srgb, var(--line) 45%, transparent);pointer-events:none;border-bottom:0;border-radius:4px 4px 0 0;position:absolute;inset:8px 8px 0}.paper-heart{text-align:center;color:var(--rose);font:400 2.4rem/1 var(--hand);display:block}.section{width:min(700px,100% - 2.4rem);margin:0 auto;padding:4rem 0 2rem;position:relative}.chapter.section+.chapter.section:before{content:"✦  ♡  ✦";text-align:center;letter-spacing:.35em;color:var(--line);margin-bottom:3rem;font-size:.8rem;display:block}.intro{padding-top:1.5rem}.intro>p,.prose p,.letter>p{font:400 clamp(1.22rem, 3.5vw, 1.42rem)/1.88 var(--serif);color:var(--ink);margin:0 0 1.25em}.intro>.intro-lead{font:500 clamp(2.6rem, 7.5vw, 3.5rem)/1.15 var(--hand);color:var(--rose);margin-bottom:1.15rem}.tap-note{background:var(--rose-wash);border:1px solid var(--rose-border);border-left:3.5px solid var(--rose);box-shadow:var(--shadow-sm);border-radius:6px;align-items:center;gap:.9rem;margin-top:1.75rem;padding:1.05rem 1.2rem;display:flex}.tap-note>span{color:var(--rose);font:400 2.4rem/1 var(--hand);flex:none}.tap-note p{font:italic 400 1.08rem/1.62 var(--serif);color:var(--muted);margin:0}.tap-note strong{color:var(--ink);font-style:normal;font-weight:600}.chapter-directory{border:1px dashed var(--line);background:var(--card-soft);border-radius:8px;margin-top:2.25rem;padding:.85rem 1.15rem;transition:border-color .25s,box-shadow .25s}.chapter-directory[open]{border-style:solid;border-color:var(--rose-border);box-shadow:var(--shadow-sm)}.chapter-directory summary{min-height:44px;font:500 1.5rem/1.25 var(--hand);color:var(--rose);cursor:pointer;padding-right:2.2rem;list-style:none;position:relative}.chapter-directory summary::-webkit-details-marker{display:none}.chapter-directory summary:after{content:"+";border:1px solid var(--rose-border);background:var(--card);width:28px;height:28px;font:400 1.1rem/1 var(--sans);color:var(--rose);border-radius:50%;place-items:center;transition:transform .25s,background-color .2s;display:grid;position:absolute;top:50%;right:.25rem;translate:0 -50%}.chapter-directory[open] summary:after{content:"−";background:var(--rose-wash)}.chapter-directory summary span{font:italic 400 .98rem var(--serif);color:var(--muted);margin:.2rem 0 0;display:block}.chapter-links{border-top:1px dashed var(--line);grid-template-columns:minmax(0,1fr);gap:.65rem;margin-top:.85rem;padding-top:1rem;display:grid}.chapter-links a{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;flex-direction:column;gap:.2rem;padding:.85rem 1rem;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.chapter-links a:hover{color:var(--rose);border-color:var(--rose-border);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.chapter-links small,.chapter-kicker{font:600 .65rem/1.4 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--rose)}.chapter-links strong{font:500 1.7rem/1.15 var(--hand)}.chapter-links a>span{font:400 .98rem/1.4 var(--serif);color:var(--muted)}.chapter-heading{border-bottom:1px dashed var(--line);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.15rem;margin-bottom:2rem;padding-bottom:1.15rem;display:grid}.chapter-number{font:500 clamp(3.9rem, 13vw, 6.2rem)/.86 var(--hand);color:var(--rose);border-right:1px solid var(--line);text-shadow:2px 3px 0 var(--rose-wash);padding-right:.85rem}.chapter-heading h2{font:400 clamp(2.1rem, 6vw, 2.95rem)/1.08 var(--serif);margin:.15rem 0}.chapter-heading p{font:italic 400 1.22rem/1.35 var(--serif);color:var(--muted);margin:.3rem 0 0}.handwritten-note{white-space:pre-line;text-align:center;background:var(--card-soft);border:1px dashed var(--rose-border);max-width:34rem;font:500 clamp(1.62rem, 5vw, 2.05rem)/1.38 var(--hand);color:var(--rose);box-shadow:var(--shadow-sm);border-radius:6px;margin:2.4rem auto;padding:1.25rem 1.5rem;position:relative;rotate:-.5deg}.quote{text-align:center;border-block:1px dashed var(--line);background:radial-gradient(circle at 50% 50%, var(--rose-wash), transparent 75%);font:500 clamp(1.85rem, 6vw, 2.55rem)/1.25 var(--hand);color:var(--rose);margin:2.6rem 0;padding:1.85rem 1.25rem 1.6rem;position:relative}.quote cite{font:500 .72rem/1.5 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:.95rem;display:block}.song-note{border:1px solid var(--rose-border);background:var(--rose-wash);max-width:100%;min-height:46px;box-shadow:var(--shadow-sm);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem .65rem;margin-top:1.75rem;padding:.65rem 1.2rem;font-size:.82rem;font-weight:500;display:inline-flex}.song-note:hover{background:var(--card);border-color:var(--rose);box-shadow:var(--shadow);transform:translateY(-1px)}.song-note.is-playing{background:var(--card);border-color:var(--rose);color:var(--rose)}.song-note-credit{color:var(--muted);font:italic 400 1.02rem var(--serif)}.equalizer{align-items:end;gap:2.5px;height:14px;display:inline-flex}.equalizer i{background:var(--rose);border-radius:2px;width:3px;height:5px;transition:height .2s}.is-playing .equalizer i{animation:.95s ease-in-out infinite alternate equalize}.is-playing .equalizer i:nth-child(2){animation-delay:-.35s}.is-playing .equalizer i:nth-child(3){animation-delay:-.65s}@keyframes equalize{0%{height:4px}to{height:14px}}.photo-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(.75rem,2.2vw,1.35rem);margin:2.25rem 0;display:grid}.photo{background:var(--card);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:3px;grid-column:span 3;margin:0;padding:9px 9px 2px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;position:relative;rotate:-.45deg}.photo:nth-child(2n){rotate:.45deg}.photo:hover{z-index:2;box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--line) 50%, var(--rose));transform:translateY(-4px)rotate(0)}.photo--hero:before,.photo--wide:before,.cover-keepsake .photo:before,.finale>.photo:before{content:"";z-index:3;background:var(--tape);pointer-events:none;border-inline:1px dashed #00000014;width:68px;height:18px;position:absolute;top:-8px;left:50%;translate:-50%;rotate:-1.5deg;box-shadow:0 2px 5px #00000014}.photo-image{aspect-ratio:4/5;background:var(--paper-warm);border-radius:1.5px;min-width:0;position:relative;overflow:hidden}.photo-image img{object-fit:cover;filter:grayscale()contrast(1.05);width:100%;height:100%;transition:filter .75s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}.photo:hover .photo-image img{transform:scale(1.018)}.photo.is-colored img{filter:none}.photo-color{background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.photo-color:focus-visible{outline-offset:-4px}.photo-heart{color:#fffaf3;pointer-events:none;-webkit-backdrop-filter:blur(6px);background:#1e16199e;border:1px solid #fffaf338;border-radius:50%;place-items:center;width:30px;height:30px;transition:background-color .3s,transform .3s,border-color .3s;display:grid;position:absolute;top:.5rem;right:.5rem}.is-colored .photo-heart{background:var(--rose);border-color:#fffaf373;box-shadow:0 3px 10px #9e3f5573}.is-colored .photo-heart svg{fill:currentColor}.photo-zoom{color:#fffaf3;-webkit-backdrop-filter:blur(6px);background:#1e161994;border:1px solid #fffaf333;position:absolute;top:.25rem;left:.25rem}.photo-zoom:hover{color:#fffaf3;background:#1e1619db;border-color:#fffaf373}.photo figcaption{white-space:pre-line;font:500 clamp(1.18rem, 3.5vw, 1.42rem)/1.28 var(--hand);color:var(--ink);padding:.7rem .3rem .85rem}.photo--wide{grid-column:1/-1;rotate:0deg}.photo--wide .photo-image{aspect-ratio:16/9}.photo--landscape .photo-image{aspect-ratio:3/2}.photo--landscape .photo-image img{object-fit:contain}.photo--hero{grid-column:2/span 4;rotate:0deg}.photo--hero .photo-image{aspect-ratio:3/4}.photo--tall{flex-direction:column;grid-row:span 2;display:flex}.photo--tall .photo-image{flex:1}.photo--tall figcaption{flex:none}.photo-grid--lock{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid--lock .photo{grid-column:auto}.photo-grid--lock .photo-image{aspect-ratio:9/19}.photo-grid--lock .photo--line{grid-column:1/-1}.photo-grid--lock .photo--line .photo-image{aspect-ratio:1}.cover-keepsake .photo{width:clamp(148px,44vw,178px);margin:0;position:relative;rotate:-5.5deg}.cover-keepsake .photo-image{aspect-ratio:1}.cover-keepsake .photo-image img{object-position:50% 32%}.cover-keepsake .photo figcaption{text-align:center;padding:.5rem .2rem .55rem;font-size:1.08rem;line-height:1.12}.letter-section{width:min(720px,100% - 1.5rem)}.letter{border:1px solid var(--line);background:repeating-linear-gradient(transparent 0, transparent 35px, color-mix(in srgb, var(--line) 24%, transparent) 36px, transparent 37px), var(--card);box-shadow:var(--shadow-lg);border-radius:6px;padding:clamp(1.5rem,5.5vw,3.25rem);position:relative}.letter:before{content:"";border:1px solid color-mix(in srgb, var(--line) 48%, transparent);pointer-events:none;border-radius:3px;position:absolute;inset:8px}.letter-stamp{border:1px dashed var(--rose-border);background:var(--rose-wash);max-width:calc(100% - 2.5rem);font:italic 400 .98rem/1.4 var(--serif);color:var(--rose);border-radius:4px;padding:.25rem .7rem;display:inline-block}.letter-seal{border:1.5px dashed var(--rose);width:52px;height:52px;color:var(--rose);background:var(--card);box-shadow:var(--shadow-sm);font:400 2rem var(--serif);border-radius:50%;place-items:center;display:grid;position:absolute;top:-22px;right:1.5rem;rotate:12deg}.letter h2{font:500 clamp(2.85rem, 9vw, 4.1rem)/1.12 var(--hand);margin:1.35rem 0 1.5rem}.letter h2 em{font:italic 400 1.32rem/1.4 var(--serif);color:var(--rose);margin-top:.35rem;display:block}.signature{border-top:1px dashed var(--line);text-align:right;margin-top:2.25rem;padding-top:1.2rem}.signature span{font:italic 400 1.12rem var(--serif);color:var(--muted)}.signature strong{font:500 2.7rem/1.15 var(--hand);color:var(--rose);margin-top:.35rem;display:block}.letter>.postscript{white-space:pre-line;border-top:1px dashed var(--line);background:var(--rose-wash);font:500 1.62rem/1.38 var(--hand);color:var(--rose);border-radius:6px;margin:2rem 0 0;padding:1.15rem 1.25rem}.dreams{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.dreams li{border:1px solid var(--line);background:var(--card-soft);border-radius:8px;padding:0 1.15rem;transition:transform .2s,border-color .2s,box-shadow .2s}.dreams li:hover{border-color:var(--rose-border);box-shadow:var(--shadow-sm);transform:translate(3px)}.dreams li>div{grid-template-columns:2.5rem minmax(0,1fr);align-items:baseline;gap:.5rem;padding:1.05rem 0;display:grid}.dreams li span{font:600 2.1rem/1 var(--hand);color:var(--rose)}.dreams p{font:400 1.32rem/1.72 var(--serif);margin:0}.finale{padding-bottom:calc(12.5rem + env(safe-area-inset-bottom,0px));text-align:center}.finale>.photo{width:min(320px,100%);margin:0 auto;rotate:1.4deg}.finale h2{font:500 clamp(2.9rem, 9vw, 4.8rem)/1.08 var(--hand);margin:2.2rem 0 .8rem}.finale p{font:italic 400 1.32rem/1.6 var(--serif);color:var(--muted)}.again-button{border:1px solid var(--rose-border);background:var(--rose-wash);min-height:46px;font:500 1.42rem var(--hand);color:var(--rose);box-shadow:var(--shadow-sm);border-radius:999px;margin-top:1.35rem;padding:.65rem 1.45rem}.again-button:hover{background:var(--rose);color:var(--card);border-color:var(--rose);transform:translateY(-2px)}.music-player{z-index:40;width:min(660px,100% - .75rem);padding:.15rem .75rem max(.65rem, env(safe-area-inset-bottom,0px));border:1px solid var(--line);background:var(--bar);border-bottom:0;border-radius:20px 20px 0 0;position:fixed;bottom:0;left:50%;translate:-50%;box-shadow:0 -10px 36px -8px #21191c38}.seek{align-items:center;height:36px;margin:0 .25rem;display:flex}.seek input{appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:36px;margin:0}.seek input:disabled{opacity:.45}.seek input::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--rose) var(--seek-fill,0%), var(--line) var(--seek-fill,0%));border-radius:999px;height:5px}.seek input::-webkit-slider-thumb{appearance:none;background:var(--rose);border:2px solid var(--card);border-radius:50%;width:15px;height:15px;margin-top:-5px;transition:transform .15s;box-shadow:0 2px 6px #00000040}.seek input:hover::-webkit-slider-thumb{transform:scale(1.2)}.seek input::-moz-range-track{background:linear-gradient(90deg, var(--rose) var(--seek-fill,0%), var(--line) var(--seek-fill,0%));border-radius:999px;height:5px}.seek input::-moz-range-thumb{background:var(--rose);border:2px solid var(--card);border-radius:50%;width:15px;height:15px;box-shadow:0 2px 6px #00000040}.player-row{align-items:center;gap:.45rem;padding:0 .2rem;display:flex}.now-playing{flex:1;min-width:0}.now-playing small{letter-spacing:.03em;text-transform:uppercase;color:var(--rose);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.38rem;font-size:.62rem;font-weight:500;line-height:1.4;display:inline-flex;overflow:hidden}.now-playing small .equalizer{height:11px}.now-playing small .equalizer i{width:2.5px}.now-playing strong{font:italic 400 1.42rem/1.15 var(--serif);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.now-playing time{font:400 .64rem/1.35 var(--sans);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;margin-top:.18rem;display:block}.playback-controls{flex:none;align-items:center;gap:.15rem;display:flex}.play-button{background:var(--rose);color:var(--card);box-shadow:0 4px 12px var(--rose-border)}.play-button:hover{background:var(--rose-deep);border-color:var(--rose-deep);color:var(--card);transform:scale(1.04)}.play-button[aria-busy=true]{opacity:.65}.playback-controls .is-active{background:var(--rose-wash);border-color:var(--rose-border);color:var(--rose)}.playlist{overflow:hidden}.playlist-scroll{overscroll-behavior:contain;border-bottom:1px dashed var(--line);max-height:min(52dvh,380px);margin-bottom:.25rem;padding:.85rem .35rem .35rem;overflow-y:auto}.playlist-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.playlist-heading>strong{font:500 1.6rem var(--hand);color:var(--rose)}.follow-button{border:1px solid var(--line);background:var(--card);border-radius:999px;min-height:40px;padding:.4rem .85rem;font-size:.7rem;font-weight:500}.follow-button[aria-pressed=true]{color:var(--rose);border-color:var(--rose-border);background:var(--rose-wash)}.playlist-scroll>p{font:400 .75rem/1.55 var(--sans);color:var(--muted);margin:.55rem 0 .75rem}.playlist ol{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.playlist li button{text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:1.75rem minmax(0,1fr) auto;align-items:center;gap:.5rem;width:100%;min-height:48px;padding:.55rem .65rem;display:grid}.playlist li button:hover{background:var(--card);border-color:var(--line)}.playlist li button[aria-current=true]{background:var(--rose-wash);border-color:var(--rose-border)}.playlist li button>span{font:600 .82rem var(--sans);color:var(--rose)}.playlist li strong{font:italic 400 1.32rem var(--serif)}.playlist li small{font:500 .68rem var(--sans);color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem}.playlist li [aria-current] strong{color:var(--rose)}.audio-error{background:var(--rose-wash);font:400 .76rem/1.45 var(--sans);color:var(--rose);border-radius:6px;margin:.45rem .4rem 0;padding:.4rem .65rem}body.modal-open{overflow:hidden}.photo-viewer{z-index:60;width:100%;max-width:none;height:100dvh;max-height:none;padding:max(.65rem, env(safe-area-inset-top,0px)) max(.85rem, env(safe-area-inset-right,0px)) max(.85rem, env(safe-area-inset-bottom,0px)) max(.85rem, env(safe-area-inset-left,0px));color:#fff2e7;touch-action:pan-y;background:#181114f0;border:0;margin:0;position:fixed;inset:0}@supports ((-webkit-backdrop-filter:blur(18px)) or (backdrop-filter:blur(18px))){.photo-viewer{-webkit-backdrop-filter:blur(18px)}}.photo-viewer[open]{grid-template-rows:auto minmax(0,1fr) auto;gap:.65rem;display:grid}.photo-viewer::backdrop{background:#181114eb}.viewer-top{justify-content:space-between;align-items:center;gap:1rem;width:min(920px,100%);margin:0 auto;display:flex}.viewer-top>span{font:500 1.45rem var(--hand);color:#f3c4ce}.photo-viewer .icon-button{color:#fff2e7;background:#fff2e714;border:1px solid #fff2e73d}.photo-viewer .icon-button:hover{background:#fff2e72e;border-color:#fff2e773}.viewer-stage{place-items:center;min-width:0;min-height:0;display:grid;overflow:hidden}.viewer-stage figure{flex-direction:column;justify-content:center;align-items:center;gap:.85rem;width:min(900px,100%);max-height:100%;margin:0;display:flex}.viewer-stage img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 15.5rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));object-fit:contain;border:7px solid #fffaf3;border-radius:3px;min-height:0;box-shadow:0 24px 60px #0000008c}.viewer-stage figcaption{white-space:pre-line;text-align:center;max-width:38rem;max-height:24dvh;font:500 1.38rem/1.35 var(--hand);color:#ffefe3;padding:.25rem .75rem;overflow-y:auto}.viewer-controls{justify-content:center;align-items:center;gap:1.25rem;padding:.25rem 0;display:flex}.viewer-controls>span{text-align:center;min-width:4.5rem;font:500 .8rem var(--sans);font-variant-numeric:tabular-nums;background:#fff2e714;border:1px solid #fff2e729;border-radius:999px;padding:.3rem .75rem}@media (width>=420px){.chapter-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=359px){.photo-grid:not(.photo-grid--lock) .photo{grid-area:auto/1/auto/-1}.photo--tall .photo-image{flex:none}.cover-meta{gap:.5rem;font-size:.84rem}.song-note-credit{flex-basis:100%}}@media (width<=560px){.photo--hero{grid-column:1/-1}.photo--tall{grid-row:auto}.photo--tall .photo-image{flex:none}}@media (width>=720px){.cover{padding-top:calc(var(--header-height) + 2rem);padding-bottom:3rem}.cover-hero{grid-template-columns:minmax(0,1fr) minmax(290px,360px);gap:2.75rem;padding-top:2rem}.title-block{text-align:left}.tulip-mark{width:48px;height:68px;margin-left:0}.cover-dedication{margin-left:0;font-size:1.42rem}.cover-sub{gap:1rem}.cover-keepsake{width:100%;margin-top:0}.cover-keepsake .photo{width:176px}.cover-keepsake .photo figcaption{font-size:1.15rem}.cover-actions{margin-top:1.5rem}.phone-break{display:none}.section{padding-top:4.8rem}.intro{padding-top:2rem}.story{margin-top:3rem}.photo-grid--lock{grid-template-columns:1fr 1fr 1.4fr;align-items:end}.photo-grid--lock .photo--line{grid-column:auto}.music-player{padding-inline:1.15rem}.player-row{gap:1rem}.now-playing small{font-size:.68rem}.now-playing strong{font-size:1.58rem}.playback-controls{gap:.45rem}}@media (width>=1000px){.topbar{padding-inline:max(1.5rem, env(safe-area-inset-left,0px));grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr)}.chapter-nav{grid-area:1/2;padding-bottom:0}.header-actions{justify-self:end}.cover-hero{gap:4rem}}@media (height<=480px) and (orientation:landscape){.viewer-stage figure{flex-direction:row;gap:1.25rem}.viewer-stage img{max-width:65%;max-height:calc(100dvh - 8rem)}.viewer-stage figcaption{max-width:30%;max-height:45dvh;font-size:1.15rem}.playlist-scroll{max-height:40dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.photo,.photo:nth-child(2n),.cover-keepsake .photo,.finale>.photo,.envelope,.cover-signature,.letter-seal,.tulip-mark,.handwritten-note{rotate:0deg}}
