@font-face{font-family:Bricolage;src:url('assets/bricolage.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:DM;src:url('./assets/dm-sans.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('./assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-display:swap}
:root{--paper:#fff5df;--blue:#22379b;--red:#df5037;--yellow:#f7b631;--ink:var(--blue);--display:Bricolage,Arial,sans-serif;--sans:DM,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--blue) var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:7px}button{font:inherit;color:inherit}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:var(--paper);padding:12px 18px}.skip:focus{top:15px}[hidden]{display:none!important}
.paper-world{position:fixed;inset:0;pointer-events:none;background:var(--paper);transition:background .5s}.paper-world canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s}.world-ready .paper-world canvas{opacity:1}.paper-grain{position:absolute;inset:0;opacity:.19;background-image:url('assets/paper-motifs.webp');background-size:2000% 2000%;background-position:49% 49%;mix-blend-mode:multiply;display:none}.static-art{position:absolute;inset:0}.cutout{position:absolute;background-image:url('assets/paper-motifs.webp');background-size:300% 200%;background-repeat:no-repeat}.fallback-leaf{width:45vw;height:45vw;right:-8%;top:16%;background-position:50% 0;transform:rotate(-18deg)}.fallback-flower{width:16vw;height:16vw;left:50%;top:16%;background-position:100% 0;transform:rotate(8deg)}.world-ready .static-art{opacity:0}
header{position:fixed;z-index:10;top:0;left:0;width:100%;padding:28px 4.5%;display:flex;align-items:center;justify-content:space-between;gap:22px;transition:color .35s}.monogram{font-family:var(--display);font-size:25px;letter-spacing:-.08em}.monogram span{font-family:Cormorant,Georgia,serif;font-style:italic;font-size:32px;font-weight:400;margin:0 3px}.header-note{font-size:11px;letter-spacing:.18em;margin-left:70px}header nav{display:flex;gap:30px;font-size:13px}header nav a{padding:7px 0;border-bottom:1px solid transparent}header nav a:hover{border-color:currentColor}
main{position:relative}.chapter{position:relative;min-height:150svh}.date{min-height:130svh}.chapter-frame{position:sticky;top:0;height:100svh;min-height:720px;padding:14vh 8% 10vh;display:flex;align-items:center}.copy{position:relative;z-index:3}.eyebrow{font-size:12px;letter-spacing:.19em;margin:0 0 25px}.hello-copy{width:65%;margin-top:-2vh}h1{font:700 clamp(88px,11.9vw,184px)/.82 var(--display);letter-spacing:-.065em;margin:0 0 35px}h1>span{display:block}h1 .second-line{white-space:nowrap;margin-top:13px}h1 i{font:italic 1.09em/.6 Cormorant,Georgia,serif;letter-spacing:-.08em;margin-right:.08em;color:var(--red)}.hero-date{font:700 clamp(24px,2.5vw,36px) var(--display);margin:25px 0 9px;letter-spacing:-.035em}.hero-place{font-size:14px;margin:0}.scroll-link{display:inline-flex;gap:40px;align-items:center;font-size:12px;padding:12px 0;border-bottom:1px solid currentColor;margin-top:32px}.scroll-link span{font-size:22px}.handwritten{font:italic 31px/1 Cormorant,Georgia,serif;letter-spacing:-.035em}.hero-note{position:absolute;right:8%;bottom:13%;transform:rotate(-9deg);text-align:center}.place-copy{width:38%;margin-left:auto}.chapter h2{font:700 clamp(60px,7vw,108px)/.89 var(--display);letter-spacing:-.065em;margin:30px 0}.chapter h2 i{font-family:Cormorant,Georgia,serif;font-style:italic;font-weight:400;font-size:1.19em}.venue-name{font:700 24px var(--display);letter-spacing:-.04em;margin:25px 0 17px}.body-copy{font-size:16px;line-height:1.65;margin:0}.place-note{position:absolute;left:20%;bottom:15%;font-size:38px;transform:rotate(-7deg);color:var(--red)}.venue-fallback{position:absolute;left:2%;width:55%;top:25%;height:auto;pointer-events:none}.world-ready .venue-fallback{visibility:hidden}
.date-copy{width:100%;text-align:center}.date h2{font-size:clamp(130px,17vw,260px);line-height:.77;margin:36px 0;letter-spacing:-.075em}.date-dash{font-size:.67em;vertical-align:10%;margin:0 .02em}.date .month{display:block;font-size:.45em;letter-spacing:-.05em;margin-top:.24em}.date .month i{font-size:1em;letter-spacing:-.01em;margin-left:.06em}.date-place{font-size:14px;letter-spacing:.13em;line-height:1.65;margin:0}.date-place span{font-size:11px;letter-spacing:.2em}.signoff{font-size:32px;margin:22px 0 0}.date .scroll-link{font-size:11px;margin-top:12px}.is-finale{--ink:var(--paper)}.is-finale .paper-world{background:var(--blue)}.is-finale .static-art{filter:brightness(1.2)}
footer{position:fixed;z-index:8;bottom:24px;left:4.5%;right:4.5%;display:flex;align-items:center;gap:18px;font-size:10px;letter-spacing:.16em;pointer-events:none;transition:color .35s}footer>span:last-child{margin-left:auto}.progress{width:80px;height:1px;background:currentColor;opacity:.55}.progress span{display:block;height:3px;background:currentColor;width:0;transform:translateY(-1px)}.motion{position:fixed;bottom:58px;right:4.5%;z-index:10;border:0;background:transparent;padding:9px 0;display:flex;align-items:center;gap:7px;font-size:11px;cursor:pointer}.motion>span:first-child{font-size:16px}
@media(min-width:1600px){.chapter-frame{padding-left:11%;padding-right:11%}.hero-note{right:12%}}
@media(max-width:700px){header{padding:20px 6%;gap:15px}.monogram{font-size:23px}.header-note{display:none}header nav{gap:21px;font-size:12px}.chapter{min-height:145svh}.date{min-height:125svh}.chapter-frame{padding:110px 7% 100px;min-height:720px}.hello-copy{width:100%;margin-top:-4vh}h1{font-size:clamp(65px,17vw,118px);line-height:.88;margin-bottom:28px}h1 .second-line{margin-top:10px}.eyebrow{font-size:10px;margin-bottom:25px}.hero-date{font-size:26px}.hero-place{font-size:12px;max-width:240px;line-height:1.5}.scroll-link{font-size:11px;gap:25px;margin-top:26px}.hero-note{font-size:26px;right:11%;bottom:13%}.place-copy{width:100%;max-width:300px;margin:31vh 0 0 auto}.chapter h2{font-size:55px;margin:20px 0}.venue-name{font-size:21px;margin:22px 0 12px}.body-copy{font-size:15px;line-height:1.55}.place-note{left:9%;top:19%;bottom:auto;font-size:30px}.venue-fallback{left:3%;width:91%;top:13%}.date-copy{margin-top:-2vh}.date h2{font-size:clamp(100px,28vw,180px);margin:30px 0}.date-place{font-size:12px}.date-place span{font-size:10px}.signoff{font-size:27px}.date .scroll-link{font-size:10px}.motion{right:6%;bottom:47px;font-size:10px}footer{left:6%;right:6%;bottom:20px;font-size:8px;gap:12px}.progress{width:40px}.fallback-leaf{width:90vw;height:90vw;right:-37%;top:9%}.fallback-flower{width:23vw;height:23vw;left:60%;top:12%}}
@media(max-height:650px){.chapter-frame{position:relative;height:auto;min-height:740px;padding-top:120px;padding-bottom:100px}.hello-copy{margin-top:0}.place-copy{margin-top:200px}.hero-note{bottom:12%}.date-copy{margin-top:0}}
header{background:linear-gradient(to bottom,#fff5df 0%,#fff5df 60%,#fff5df00 100%)}.is-finale header{background:linear-gradient(to bottom,#22379b 0%,#22379b 60%,#22379b00 100%)}
@media(max-width:700px){.place-note{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.chapter{min-height:115svh}.date{min-height:115svh}}
