:root{--ivory:#f8f3ee;--porcelain:#efe7e2;--plate:#e4dad5;--ink:#241c25;--ink-soft:#5a4f5b;--heather:#7a6180;--gilt:#a5884f;--copper:#b0522e;--f-display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--f-body:"EB Garamond", "Garamond", "Iowan Old Style", Georgia, serif;--f-label:"Jost", "Futura", "Avenir Next", system-ui, sans-serif;--col:36rem;--wide:72rem;--gutter-l:max(20px, env(safe-area-inset-left,0px));--gutter-r:max(20px, env(safe-area-inset-right,0px));color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{background:var(--ivory);color:var(--ink);font:400 clamp(1.15rem, .5vw + 1rem, 1.32rem) / 1.65 var(--f-body);font-variant-ligatures:common-ligatures;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:clip}img{max-width:100%;display:block}a{color:inherit;text-decoration-color:var(--gilt);text-underline-offset:.18em}:focus-visible{outline:2px solid var(--heather);outline-offset:3px}p{margin:0}h1,h3{text-wrap:balance;margin:0;font-weight:400}.col{max-width:calc(var(--col) + var(--gutter-l) + var(--gutter-r));padding-left:var(--gutter-l);padding-right:var(--gutter-r);margin-inline:auto}.prose{flex-direction:column;gap:1.1em;padding-block:clamp(40px,6vw,72px);display:flex}.prose p{text-wrap:pretty}.prose .first{font:italic 400 clamp(1.45rem, 2.6vw, 1.85rem)/1.35 var(--f-body)}.dropcap:first-letter{float:left;font:400 4.4em/.8 var(--f-display);color:var(--heather);padding:.07em .1em 0 0}.hush{color:var(--ink-soft);padding-block:clamp(80px,14vw,180px)}.cover-media{height:min(88svh,62vw + 200px);overflow:hidden}.cover-media .photo-plate{height:100%}.cover-title{text-align:center;flex-direction:column;align-items:center;gap:14px;padding-block:clamp(36px,6vw,64px) 0;display:flex}.cover-title .lady{font:italic 400 clamp(1.3rem, 2.4vw, 1.8rem)/1 var(--f-display);color:var(--heather)}.cover-title h1{font:400 clamp(4rem, 12vw, 9rem)/.9 var(--f-display);letter-spacing:-.02em;white-space:nowrap}.cover-title .fullname{font:500 .74rem/1.6 var(--f-label);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}.photo-plate{background:var(--plate);width:100%;height:100%;position:relative;overflow:hidden}.photo-plate img{object-fit:cover;width:100%;height:100%}.photo{flex-direction:column;gap:10px;margin:clamp(16px,3vw,32px) auto;display:flex}.photo .photo-plate{aspect-ratio:var(--ratio,3 / 2);height:auto}.photo-full{width:100%}.photo-wide{max-width:calc(var(--wide) + var(--gutter-l) + var(--gutter-r));padding-left:var(--gutter-l);padding-right:var(--gutter-r)}.photo-inset{max-width:calc(var(--col) + var(--gutter-l) + var(--gutter-r));padding-left:var(--gutter-l);padding-right:var(--gutter-r)}.photo figcaption{font:400 .82rem/1.45 var(--f-label);color:var(--ink-soft);max-width:var(--col)}.photo-full figcaption{padding-left:var(--gutter-l);padding-right:var(--gutter-r);width:100%;max-width:calc(var(--col) + var(--gutter-l) + var(--gutter-r));margin-inline:auto}.pair-row{max-width:calc(var(--wide) * .75 + var(--gutter-l) + var(--gutter-r));padding-left:var(--gutter-l);padding-right:var(--gutter-r);grid-template-columns:1fr 1fr;gap:14px;margin:0 auto;display:grid}.pair-row .photo{margin:0;padding:0}.sticky-scene{margin-block:clamp(24px,4vw,48px);position:relative}.sticky-media{height:100svh;position:sticky;top:0}.sticky-steps{flex-direction:column;gap:70svh;margin-top:-100svh;padding-block:60svh 40svh;display:flex;position:relative}.sticky-steps .step{max-width:calc(var(--col) * .9);width:calc(100% - var(--gutter-l) - var(--gutter-r));background:color-mix(in srgb, var(--ivory) 94%, transparent);margin-inline:auto;padding:clamp(20px,3vw,30px)}.sequence{max-width:calc(var(--wide) + var(--gutter-l) + var(--gutter-r));padding-left:var(--gutter-l);padding-right:var(--gutter-r);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);margin:clamp(24px,4vw,48px) auto;display:grid;position:relative}.sequence-media{height:84svh;position:sticky;top:8svh}.seq-frame{opacity:0;transition:opacity .9s;position:absolute;inset:0}.seq-frame.is-active{opacity:1}.seq-frame .photo-plate{height:100%}.sequence-steps{align-self:start;gap:55svh;padding-block:30svh}@media (width<=760px){.sequence{grid-template-columns:1fr}.sequence-media{z-index:0;height:60svh;top:0}.sequence-steps{z-index:1;gap:50svh;padding-block:40svh 20svh;position:relative}.sequence-steps p{background:color-mix(in srgb, var(--ivory) 94%, transparent);padding:20px}}.closing{padding:clamp(48px, 9vw, 120px) var(--gutter-r) clamp(64px, 11vw, 140px) var(--gutter-l);text-align:center;flex-direction:column;align-items:center;gap:22px;display:flex}.closing blockquote{max-width:16ch;font:italic 400 clamp(2.2rem, 6.4vw, 5rem)/1.06 var(--f-display);text-wrap:balance;margin:0}.closing p{color:var(--ink-soft)}.memories{flex-direction:column;gap:48px;padding-block:clamp(32px,6vw,64px);display:flex}.memory-list:empty{display:none}.memory-list{flex-direction:column;gap:40px;display:flex}.memory{flex-direction:column;gap:10px;display:flex}.memory .who{font:400 .82rem/1.4 var(--f-label);color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.memory .who b{font:500 .95rem/1.3 var(--f-label);color:var(--ink)}.memory .body{white-space:pre-line}.memory .pics{flex-wrap:wrap;gap:10px;display:flex}.memory .pics img{width:auto;height:160px}.memory-form{flex-direction:column;gap:18px;display:flex}.memory-form h3{font:italic 400 clamp(1.5rem, 2.6vw, 1.9rem)/1.2 var(--f-body)}.hint{color:var(--ink-soft);font-size:1rem}.field{flex-direction:column;gap:6px;display:flex}.field label{font:500 .7rem/1.3 var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.row2{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=480px){.row2{grid-template-columns:1fr}}input[type=text],textarea{font:inherit;color:var(--ink);border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:#fffdfb;border-radius:2px;width:100%;padding:10px 12px}textarea{resize:vertical;min-height:9em;line-height:1.5}input:focus,textarea:focus{outline:2px solid var(--heather);outline-offset:0;border-color:#0000}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.file-pick{gap:10px}.thumbs{flex-wrap:wrap;gap:8px;display:flex}.thumbs img{object-fit:cover;width:64px;height:64px}.btn{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);font:500 .76rem/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;align-self:flex-start;padding:16px 22px;text-decoration:none;transition:background .3s,color .3s;display:inline-flex}.btn:hover,.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--ink);color:var(--ivory)}.btn[disabled]{opacity:.5;cursor:wait}.status{min-height:1.5em;font-size:1rem}.status.ok{color:var(--heather);font-style:italic}.status.err{color:var(--copper)}.empty{color:var(--ink-soft);font-style:italic}.label{font:500 .72rem/1.3 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--heather)}.shell{padding-left:var(--gutter-l);padding-right:var(--gutter-r)}footer{padding-block:40px calc(48px + env(safe-area-inset-bottom,0px));text-align:center}footer p{font:500 .66rem/1.6 var(--f-label);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.site-nav{z-index:20;padding:calc(env(safe-area-inset-top,0px) + 12px) var(--gutter-r) 12px var(--gutter-l);background:color-mix(in srgb, var(--ivory) 86%, transparent);backdrop-filter:blur(8px);justify-content:center;gap:clamp(20px,4vw,36px);transition:transform .4s;display:flex;position:fixed;inset:0 0 auto}.site-nav.is-hidden{transform:translateY(-100%)}.site-nav a{font:500 .7rem/1.4 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid #0000;padding-block:4px;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--gilt)}.cover{padding-top:calc(env(safe-area-inset-top,0px) + 45px)}.book-head{text-align:center;padding-block:calc(env(safe-area-inset-top,0px) + clamp(96px, 14vw, 160px)) clamp(24px, 4vw, 40px);flex-direction:column;align-items:center;gap:14px;display:flex}.book-head .lady{font:italic 400 clamp(1.3rem, 2.4vw, 1.8rem)/1 var(--f-display);color:var(--heather)}.book-head h1{font:400 clamp(3.4rem, 10vw, 7rem)/.9 var(--f-display);letter-spacing:-.02em}.book-head p{color:var(--ink-soft);max-width:30em}.to-book a{font-style:italic}.cover.plain{padding-top:calc(env(safe-area-inset-top,0px) + clamp(72px, 12vw, 140px))}.cover.plain .cover-title{padding-block:0 clamp(8px,2vw,24px)}.hush{padding-block:clamp(40px,7vw,88px)}.tune{z-index:15;left:var(--gutter-l);bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:color-mix(in srgb, var(--ivory) 86%, transparent);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:12px;padding:10px 18px 12px 10px;animation:1.2s 1.6s both tune-in;display:inline-flex;position:fixed}@keyframes tune-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.tune{animation:none}}.tune-btn{appearance:none;cursor:pointer;border:1px solid color-mix(in srgb, var(--gilt) 70%, transparent);width:38px;height:38px;color:var(--ink);background:0 0;border-radius:50%;flex:none;place-items:center;transition:background .3s,color .3s,border-color .3s;display:grid}.tune-btn:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}.tune-btn svg{fill:currentColor;width:12px;height:12px}.tune-btn .i-play{transform:translate(1px)}.tune .i-pause,.tune.is-playing .i-play{display:none}.tune.is-playing .i-pause{display:block}.tune-text{text-align:left;flex-direction:column;align-items:flex-start;gap:6px;display:flex}.tune-name{font:italic 400 1.05rem/1.1 var(--f-body);color:var(--ink)}.tune-meta{font:500 .62rem/1.3 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-variant-numeric:tabular-nums}.tune-bar{background:color-mix(in srgb, var(--ink) 10%, transparent);opacity:0;height:1px;transition:opacity .4s;position:absolute;bottom:6px;left:60px;right:18px}.tune.is-playing .tune-bar,.tune.has-progress .tune-bar{opacity:1}.tune-bar span{background:var(--gilt);transform-origin:0;height:100%;transition:transform .25s linear;display:block;transform:scaleX(0)}
