:root{--gp:0;--paper:#f7f1e8;--paper-deep:#efe4d5;--ink:#3b3630;--ink-soft:#6f6558;--stem:32%;--zoom:1;--serif:"Cormorant Garamond", "Iowan Old Style", Palatino, Georgia, serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}@media (max-width:900px){:root{--zoom:.76}}@media (max-width:620px){:root{--zoom:.58}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--serif);background-color:var(--paper);background-image:radial-gradient(120vmax 90vmax at calc(18% + var(--gp) * 60%) calc(4% + var(--gp) * 24%), #f8ece2 0%, transparent 62%), radial-gradient(110vmax 80vmax at calc(88% - var(--gp) * 52%) calc(96% - var(--gp) * 30%), #f5e5ea 0%, transparent 60%), linear-gradient(180deg, var(--paper) 0%, var(--paper-deep) 100%);background-attachment:fixed;margin:0;overflow-x:hidden}.grain{z-index:5;pointer-events:none;opacity:.32;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");position:fixed;inset:0}.growline{z-index:1;pointer-events:none;width:40px;height:100vh;position:fixed;top:0;left:clamp(.6rem,3vw,3rem);overflow:visible}.growline__stem{fill:none;stroke:#5483636b;stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.scene{--p:0;--presence:0;--fall:0;height:var(--height,200vh);position:relative}.scene__sticky{place-items:center;height:100svh;display:grid;position:sticky;top:0;overflow:hidden}.stage{z-index:1;position:absolute;inset:0}.verse{z-index:2;isolation:isolate;text-align:center;width:min(64rem,88vw);padding-bottom:clamp(6rem,26vh,16rem);position:relative}.verse:before{content:"";z-index:-1;opacity:var(--presence);pointer-events:none;background:radial-gradient(62% 58% at 50% 34%,#fbf8f4e6 0%,#fbf8f400 74%);position:absolute;inset:-14% -8% 0}.stanza{letter-spacing:-.015em;text-wrap:balance;flex-direction:column;gap:.28em;margin:0;font-size:clamp(1.75rem,5.6vw,4.25rem);font-weight:300;line-height:1.16;display:flex}.line{--lp:clamp(0, calc(var(--presence) * 1.5 - var(--i) * .22), 1);opacity:var(--lp);translate:0 calc((1 - var(--lp)) * 1.1rem);filter:blur(calc((1 - var(--lp)) * 5px));display:block}.ledger{font-family:var(--sans);letter-spacing:.42em;color:var(--ink-soft);opacity:calc((1 - var(--presence)) * .55);margin-top:2.4rem;font-size:clamp(.7rem,1.5vw,.95rem);-webkit-text-decoration:line-through #c2708199;text-decoration:line-through #c2708199;display:block}.verse--title{padding-bottom:clamp(8rem,30vh,18rem)}.eyebrow,.byline,.hint{font-family:var(--sans);color:var(--ink-soft);margin:0;font-weight:300}.eyebrow{letter-spacing:.5em;text-transform:uppercase;opacity:var(--presence);font-size:clamp(.7rem,1.6vw,.9rem)}.title{letter-spacing:-.03em;opacity:var(--presence);translate:0 calc((1 - var(--presence)) * 2rem);margin:.5rem 0 .75rem;font-size:clamp(4rem,17vw,12rem);font-style:italic;font-weight:300;line-height:.9}.byline{letter-spacing:.2em;opacity:calc(var(--presence) * .9);font-size:clamp(.85rem,2vw,1.1rem)}.hint{letter-spacing:.44em;text-transform:uppercase;opacity:calc(clamp(0, calc(1 - var(--gp) * 22), 1) * .75);justify-content:center;align-items:center;gap:.9rem;margin-top:clamp(2.5rem,7vh,5rem);font-size:.72rem;display:flex}.hint__rule{background:currentColor;width:3rem;height:1px;animation:2.6s ease-in-out infinite reach}@keyframes reach{0%,to{opacity:.3;transform:scaleX(.4)}50%{opacity:1;transform:scaleX(1)}}.verse--end{padding-bottom:clamp(9rem,32vh,19rem)}.scene--dedication .bloom{transform-box:fill-box;animation:8s ease-in-out infinite breathe}.dedication{opacity:var(--presence);translate:0 calc((1 - var(--presence)) * 1.4rem);margin:0;font-size:clamp(1.6rem,4.6vw,3.4rem);font-style:italic;font-weight:300;line-height:1.24}.dedication__body{color:var(--ink-soft);opacity:calc(var(--presence) * var(--presence));margin-top:.6em;font-size:clamp(1.15rem,3vw,2.1rem);font-style:normal}.signed{opacity:calc(clamp(0, calc(var(--presence) * 1.6 - .6), 1));margin:clamp(2.5rem,8vh,5rem) 0 0;font-size:clamp(1.5rem,4vw,2.6rem);font-style:italic}.plot{--size:calc(var(--w,160px) * var(--zoom));bottom:var(--b,0%);left:var(--x,50%);width:var(--size);height:calc(var(--size) * 2);margin-left:calc(var(--size) / -2);opacity:calc(.3 + var(--depth,1) * .7);filter:blur(calc((1 - var(--depth,1)) * 2.6px));position:absolute}.flower{--grow:clamp(0, calc((var(--presence) - var(--d,0)) / .42), 1);transform-origin:50% 100%;width:100%;height:100%;scale:calc(.9 + var(--grow) * .1);rotate:calc((var(--p) - .5) * var(--sway,0) * 3deg);animation:9s ease-in-out infinite alternate sway;animation-delay:calc(var(--sway,0) * 3s);overflow:visible}@keyframes sway{0%{translate:calc(var(--sway,0) * -0.35%) 0}to{translate:calc(var(--sway,0) * 0.35%) 0}}.stem{fill:none;stroke:hsl(var(--green,130) 26% var(--stem) / .85);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--grow))}.leaf{--lp:clamp(0, calc(var(--grow) * 1.45 - var(--i) * .16 - .1), 1);fill:hsl(var(--green,130) 30% calc(var(--stem) + 6%) / .8);transform-box:fill-box;transform-origin:50% 100%;transform:scale(var(--lp));opacity:var(--lp)}.petal{--pp:clamp(0, calc(var(--grow) * 1.6 - var(--i) * .055 - .08), 1);fill:hsl(var(--h) var(--s) calc(var(--l) - var(--ring,0) * 1%));transform-box:fill-box;transform-origin:50% 100%;transform:scale(var(--pp)) rotate(calc((1 - var(--pp)) * -18deg));opacity:var(--pp);translate:0 calc(var(--fall) * 34px)}.petal--front{fill:hsl(var(--h) var(--s) calc(var(--l) + 5%))}.core{fill:#e8b968;transform-box:fill-box;transform-origin:50%;transform:scale(clamp(0, calc(var(--grow) * 1.4 - .4), 1))}.core--soft{fill:hsl(var(--h) calc(var(--s) - 14%) calc(var(--l) - 14%))}.mode-ghost .petal,.mode-ghost .leaf{fill:none;stroke:hsl(var(--h) calc(var(--s) - 20%) calc(var(--l) - 26%) / .85);stroke-width:1.4px}.mode-ghost .leaf{stroke:hsl(var(--green,130) 24% 46% / .7)}.mode-ghost .core{fill:none;stroke:#c79e57cc;stroke-width:1.4px}.mode-ghost .stem{stroke-dasharray:.014 .02;stroke-dashoffset:0;opacity:var(--grow)}.mode-echo .plot:not(:last-child){opacity:calc(var(--depth) * .42)}.mode-echo .flower{--grow:clamp(0, calc((var(--presence) - var(--n) * .06) / .4), 1)}.mode-garden .flower{--grow:clamp(0, calc((var(--presence) * 1.25 - var(--d)) / .42), 1)}.mode-garden .verse{padding-bottom:clamp(10rem,34vh,20rem)}.mode-fall{--fall:clamp(0, calc((var(--p) - .46) / .34), 1)}.mode-fall .petal{opacity:calc(var(--pp) * (1 - var(--fall)));translate:calc(var(--fall) * var(--sway,0) * 26px) calc(var(--fall) * 90px);transform:scale(calc(var(--pp) * (1 - var(--fall) * .35))) rotate(calc(var(--fall) * 26deg))}.mode-fall .core{opacity:calc(1 - var(--fall) * .7)}.petals{position:absolute;inset:0}.petals__one{left:var(--x);bottom:var(--y);width:var(--w);--lp:clamp(0, calc(var(--presence) - .15), 1);opacity:calc(var(--lp) * var(--fall) * .9);translate:calc(var(--drift,0) * 3vw * var(--fall)) calc(var(--fall) * 34vh);rotate:calc(var(--fall) * 200deg * var(--drift,.4));transition:none;position:absolute}.loose{width:100%;height:auto;overflow:visible}.loose .petal{--pp:1;fill:hsl(var(--h) calc(var(--s) + 6%) calc(var(--l) - 8%));translate:0}.mode-stayed .plot{opacity:1}.mode-stayed .bloom{transform-box:fill-box;animation:7s ease-in-out infinite breathe}.mode-stayed .core{fill:#ebb25c}.mode-stayed .verse{padding-bottom:clamp(11rem,38vh,22rem)}@keyframes breathe{0%,to{scale:1}50%{scale:1.035}}.mode-cost .verse{padding-bottom:clamp(12rem,40vh,24rem)}@media (prefers-reduced-motion:reduce){.scene{height:auto}.scene__sticky{flex-direction:column;height:auto;padding:9vh 0 0;display:flex;position:relative}.verse,.verse--title,.verse--end,.mode-cost .verse,.mode-garden .verse,.mode-stayed .verse{order:0;width:min(64rem,88vw);margin:0 auto;padding-bottom:2.5rem}.verse:before{display:none}.stage{order:1;height:clamp(16rem,38vh,26rem);position:relative;inset:auto}.flower,.mode-stayed .bloom,.scene--dedication .bloom,.hint__rule{animation:none}.line,.title,.dedication{filter:none;translate:0}.growline{display:none}.mode-fall{--fall:0}.petals{display:none}}
