@font-face{font-family:Display;src:url(assets/display.ttf);font-display:swap}@font-face{font-family:Hand;src:url(assets/script.ttf);font-display:swap}
:root{--ink:#34223b;--paper:#f5d2af;--copper:#ce986b;--accent:#a82264;--muted:#69505b;--ease:cubic-bezier(.2,.65,.25,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 Arial,sans-serif}body.locked{overflow:hidden}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Display,Georgia,serif;font-weight:400;line-height:1.08}h2{font-size:clamp(46px,5.8vw,78px);letter-spacing:-.035em}h3{font-size:36px}.eyebrow{font-size:12px;letter-spacing:.22em;line-height:1.7}.signature,.script-label{display:block;font:44px/1.25 Hand,cursive;color:var(--accent)}.script-label{margin-bottom:18px}.button{display:inline-flex;justify-content:center;align-items:center;gap:25px;min-height:54px;padding:13px 28px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:14px;text-decoration:none;border-radius:28px;transition:background .25s,transform .25s}.button:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.button-outline{background:transparent;color:var(--ink)}.button-outline:hover{color:var(--paper)}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button-light:hover{background:var(--copper);color:var(--ink)}.text-button{border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;padding:10px 0;font-size:14px}.text-button span{margin-left:14px}.fine-rule{display:block;width:60px;height:1px;background:currentColor;opacity:.45;margin:28px auto}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}main{overflow:hidden}.surface{position:relative;isolation:isolate}.surface:before{content:'';position:absolute;inset:0;z-index:-1;background:url(assets/mineral.webp) center/850px auto;mix-blend-mode:soft-light;opacity:.48;pointer-events:none}.paper{background:#f5d2af}.sage{background:#ce986b}.dark{background:#34223b;color:#f5d2af}.dark:before{opacity:.3;mix-blend-mode:screen}.dark .signature,.dark .script-label{color:#efa8c9}
.entry{position:fixed;inset:0;z-index:100;display:grid;place-items:center;text-align:center;background:radial-gradient(ellipse at 75% 5%,#774368,#34223b 65%);overflow-y:auto;overflow-x:hidden;transition:opacity .45s,visibility .45s}.entry.leaving{opacity:0;visibility:hidden}.entry-content{position:relative;z-index:2;width:100%;max-width:600px;padding:60px 28px}.entry-orbit{position:absolute;top:7%;bottom:7%;left:calc(50% - 250px);width:500px;border-top:1px solid #ce986b77;border-bottom:1px solid #ce986b77;transform:skewY(-7deg);border-radius:45px 0 45px 0;pointer-events:none}.entry-orbit:after{content:'';position:absolute;inset:13px 15px;border-top:1px solid #ce986b33;border-bottom:1px solid #ce986b33;border-radius:30px 0 30px 0}.entry-roses{position:absolute;right:0;top:0;width:250px;height:280px;object-fit:contain;pointer-events:none;opacity:.82;animation:welcome 2.5s var(--ease) both}.entry-roses.second{top:auto;right:auto;left:0;bottom:0;transform:rotate(180deg);width:180px;height:210px;opacity:.55;animation-delay:.3s}.entry h1{font:100px/1.1 Hand,cursive;margin:26px 0;color:#f5d2af}.entry h1 em{display:block;font:30px/1.2 Display,serif;color:#e5a6b7;margin:0}.entry-date{font-size:14px;letter-spacing:.27em}.entry-message{font-size:16px;color:#e9c9c4}.entry-actions{display:flex;flex-direction:column;align-items:center;gap:17px;margin-top:30px}.entry-actions .button{min-width:260px}.entry .text-button{color:#f5d2af;border-color:#ce986b66}.music-button{position:fixed;bottom:22px;right:22px;width:50px;height:50px;z-index:40;border-radius:50%;background:var(--ink);color:var(--paper);border:1px solid #ce986b88;font-size:24px}.music-button[aria-pressed=true]{background:var(--paper);color:var(--ink)}
.hero{height:100svh;min-height:850px;max-height:1200px;position:relative;overflow:hidden;background:var(--ink);color:#fff5ec}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 50%}.entered .hero-photo{animation:heroZoom 22s ease-in-out infinite alternate}.hero-shade{background:linear-gradient(180deg,#34223b85,#34223b22 60%,#34223b66)}.hero-copy{position:absolute;top:15%;left:8%;z-index:2;width:84%;text-align:center}.hero h1{font-size:clamp(80px,8vw,115px);margin:22px 0;line-height:1.06}.hero h1 em{font-family:Hand,cursive;color:#f5d2af;font-weight:400;font-size:.8em}.hero h1>span{display:block}.hero-date{display:flex;justify-content:center;align-items:center;gap:20px;font-size:16px;letter-spacing:.24em}.hero-date span{height:1px;width:30px;background:#f5d2af99}.hero-message{display:none}.scroll-cue{position:absolute;bottom:160px;left:0;width:100%;z-index:3;text-align:center;text-decoration:none;font-size:12px;letter-spacing:.16em}.scroll-cue i{display:block;font-size:25px;font-style:normal;margin-top:10px}.foliage{position:absolute;pointer-events:none;z-index:3}.hero-leaves{right:-3px;top:0;width:min(36vw,390px);height:450px}.leaf-piece{position:absolute;inset:0;background:url(assets/botanical.png) right top/contain no-repeat;opacity:0;clip-path:inset(0 0 66.666% 0)}.leaf-piece:nth-child(2){clip-path:inset(33.333% 0 33.333% 0)}.leaf-piece:nth-child(3){clip-path:inset(66.666% 0 0 0)}.flowers-visible .hero-leaves{animation:botanicalDescent 2.1s cubic-bezier(.25,.1,.35,1) both}.flowers-visible .leaf-piece{animation:leafArrival .5s ease-out both}.flowers-visible .leaf-piece:nth-child(2){animation-delay:.12s}.flowers-visible .leaf-piece:nth-child(3){animation-delay:.24s}
.divider{position:absolute;height:190px;left:0;right:0;z-index:3;pointer-events:none}.divider svg{display:block;width:100%;height:100%}.hero-divider,.closing-bottom{bottom:-1px}.section-top{top:-189px}.closing-top{top:-1px;transform:rotate(180deg)}.story,.event,.album,.agenda,.details,.rsvp{padding:100px max(28px,calc((100vw - 1100px)/2)) 270px}.story{padding-top:35px}.countdown{text-align:center;padding-bottom:115px}.count-grid{display:flex;justify-content:center;align-items:start;gap:32px;margin-top:24px}.count-grid strong{display:block;font:65px/1.2 Display,serif}.count-grid div{min-width:75px}.count-grid span{display:block;font-size:12px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}.count-grid i{font-style:normal;font-size:22px;margin-top:16px;color:var(--accent)}.tiny-heart{display:block;color:var(--accent);font-size:25px;margin-top:22px}.story-copy{max-width:750px;margin:auto;text-align:center}.story-copy h2{margin-bottom:32px}.story-copy p{max-width:560px;margin:18px auto;color:var(--muted)}.story-copy .signature{margin-top:38px}.divider-foliage{position:absolute;width:190px;height:190px;background:url(assets/botanical.png) right top/contain no-repeat;pointer-events:none;z-index:4}.story-leaf,.album-leaf{right:-5px;bottom:120px;transform:rotate(25deg)}.event-leaf,.details-leaf{left:-15px;bottom:125px;transform:rotate(205deg)}.rsvp-leaf{right:0;bottom:125px;transform:rotate(25deg)}.divider-foliage.reveal{transition:opacity 2s}.divider-foliage.reveal:not(.visible){opacity:0}.event-intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px}.event-intro h2{margin:20px 0}.date-seal{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0 20px;border-top:1px solid #34223b66;border-bottom:1px solid #34223b66;padding:35px 10px;transform:rotate(-5deg);text-align:center;width:100%}.date-seal strong{grid-row:1/4;grid-column:1;font:155px/1 Display,serif}.date-seal span{font-size:13px;letter-spacing:.17em;grid-column:2}.date-seal .month{font-size:15px}.event-details{display:grid;grid-template-columns:1fr 1fr;gap:95px;margin:110px 0 0;text-align:center}.event-details article{padding-top:35px;border-top:1px solid #34223b44}.event-details h3{margin:18px 0}.event-time{font:44px/1.1 Display,serif;margin:26px 0 18px}.event-time small{font-size:20px}.event-details .button{margin-top:30px}.album-layout{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}.album-copy p{color:#e3c6d4;margin-top:25px}.album-copy .fine-rule{margin-left:0;color:#ce986b}.album-stage{position:relative;aspect-ratio:4/5;background:#000;overflow:hidden;border-radius:3px 65px 3px 65px;outline:1px solid #ce986b77;outline-offset:12px}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .85s ease}.slide.active{opacity:1}.album-controls{display:flex;justify-content:center;gap:28px;margin-top:27px}.album-controls button{width:40px;height:40px;border:0;background:transparent;color:var(--paper);font-size:21px}.section-heading{text-align:center;margin-bottom:75px}.section-heading h2{margin-top:20px}.timeline{list-style:none;margin:0 auto;padding:0;max-width:710px}.timeline li{display:grid;grid-template-columns:90px 1fr;gap:45px;padding-bottom:40px}.timeline time{font-size:16px;color:var(--accent);padding-top:5px}.timeline li>div{position:relative;padding-left:35px;border-left:1px solid #a8226444}.timeline li>div:before{content:'';position:absolute;left:-4px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.timeline p{color:var(--muted);margin-top:12px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;text-align:center}.detail-grid article{padding:30px 10px;position:relative}.detail-index{font-size:13px;letter-spacing:.14em;color:#6c344d}.detail-grid h3{margin:22px 0}.detail-grid p{margin-bottom:24px}.detail-grid article+article{border-left:1px solid #34223b33}.notes-row{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:90px;padding-top:65px;border-top:1px solid #34223b33}.rsvp{text-align:center}.rsvp h2{margin:25px 0}.rsvp-content>p:not(.eyebrow){color:#e3c6d4}.rsvp .button{margin:35px 0}.closing{position:relative;height:780px;overflow:hidden;text-align:center;color:#fff5ec}.closing>img,.closing-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}.closing-shade{background:#34223b80}.closing-copy{position:relative;z-index:4;top:25%;padding:0 24px}.closing h2{font-family:Hand,cursive;font-size:86px;margin:23px 0}.closing .signature{color:#f5d2af;margin:25px 0}.closing-copy>span{font-size:14px;letter-spacing:.2em}footer{text-align:center;padding:35px 24px 55px}footer>a{font:38px Display,serif;text-decoration:none}footer em{font-family:Hand,cursive;color:var(--accent)}footer p{font-size:13px;color:var(--muted);margin:13px 0}footer>span{font-size:14px;letter-spacing:.08em}
dialog{width:min(520px,calc(100% - 30px));max-height:90svh;padding:50px 35px;border:1px solid var(--copper);border-radius:3px 30px 3px 30px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#231727bb;backdrop-filter:blur(7px)}dialog h2{font-size:46px;margin:17px 0 26px}dialog p{margin:17px 0}dialog .button{margin-top:23px}.modal-close{position:absolute;right:16px;top:10px;border:0;background:none;color:var(--ink);font-size:28px}label{display:block;margin-top:18px;font-size:14px}input,select{width:100%;padding:13px 6px;border:0;border-bottom:1px solid #34223b66;background:transparent;color:var(--ink);font-size:16px}.form-note{font-size:13px;color:var(--muted)}.form-result{padding:13px;background:#ce986b55}#notice{position:fixed;bottom:85px;left:20px;right:20px;background:var(--paper);z-index:150;padding:16px;box-shadow:0 5px 25px #0003}.reveal{opacity:0;translate:0 20px;transition:opacity 1.2s,translate 1.3s var(--ease)}.reveal.visible{opacity:1;translate:0 0}@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.1)}}@keyframes botanicalDescent{from{translate:0 -140px}to{translate:0 0}}@keyframes leafArrival{from{opacity:.65}to{opacity:1}}@keyframes welcome{from{opacity:0;translate:0 -10px}to{opacity:.8;translate:0 0}}
@media(max-width:700px){.entry-content{padding:55px 25px}.entry h1{font-size:87px}.entry .eyebrow{font-size:11px;letter-spacing:.14em}.entry-orbit{left:8%;width:84%;top:9%;bottom:9%}.entry-roses{width:150px;height:180px}.entry-roses.second{width:130px;height:150px}.hero{min-height:820px}.hero-copy{top:19%;left:5%;width:90%}.hero h1{font-size:66px;margin:18px 0}.hero h1 em{font-size:43px}.hero-date{font-size:14px;gap:15px;letter-spacing:.17em}.hero-leaves{width:220px;height:300px;right:-5px}.hero .eyebrow{font-size:12px}.scroll-cue{bottom:135px;font-size:10px;letter-spacing:.12em}.divider{height:145px}.section-top{top:-144px}.story,.event,.album,.agenda,.details,.rsvp{padding:70px 27px 220px}.story{padding-top:35px}.countdown{padding-bottom:90px}.count-grid{gap:17px}.count-grid strong{font-size:53px}.count-grid div{min-width:60px}.count-grid span{font-size:11px}.count-grid i{margin-top:10px}.story h2{font-size:51px}.signature,.script-label{font-size:40px}.divider-foliage{width:130px;height:145px}.story-leaf,.album-leaf,.rsvp-leaf{bottom:90px}.event-leaf,.details-leaf{bottom:95px}.event-intro{display:flex;flex-direction:column;gap:60px;text-align:center}.event-intro h2{font-size:53px}.date-seal{max-width:315px;padding:28px 10px;gap:0 10px}.date-seal strong{font-size:125px}.date-seal span{font-size:12px}.date-seal .month{font-size:13px}.event-details{display:block;margin-top:100px}.event-details article+article{margin-top:85px;padding-top:60px}.event-details h3{font-size:37px}.album-layout{display:block}.album-copy{text-align:center;margin-bottom:55px}.album-copy h2{font-size:49px}.album-copy .fine-rule{margin-left:auto}.album-stage{border-radius:3px 45px 3px 45px;outline-offset:8px}.timeline li{grid-template-columns:58px 1fr;gap:16px}.timeline li>div{padding-left:24px}.timeline h3{font-size:33px}.timeline time{font-size:14px}.section-heading{margin-bottom:65px}.detail-grid{display:block}.detail-grid article{padding:5px 0 15px}.detail-grid article+article{border-left:0;border-top:1px solid #34223b44;margin-top:75px;padding-top:65px}.detail-grid h3{font-size:37px}.notes-row{display:block;text-align:center;margin-top:85px;padding-top:50px}.notes-row .text-button{margin-top:20px}.rsvp h2{font-size:53px}.closing{height:700px}.closing h2{font-size:68px}.closing-copy{top:27%}.music-button{width:47px;height:47px;right:17px;bottom:18px}}
@media(max-height:700px){.entry-content{padding:30px 25px}.entry h1{font-size:68px;margin:17px 0}.entry .fine-rule{margin:18px auto}.entry-actions{margin-top:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.flowers-visible .leaf-piece{opacity:1}.reveal{opacity:1;translate:none}}
.surface:before{background-size:cover;background-repeat:no-repeat}.dark:before{opacity:.12}
.surface:before{mask-image:linear-gradient(transparent,#000 150px,#000 calc(100% - 150px),transparent)}.entry:before{mask-image:none}
@media(max-width:700px){.hero-copy{top:16%}}
@media(min-width:701px){.hero-photo{object-position:center 15%}.hero-copy{top:11%}}
@media(min-width:701px){.hero{background:#bfa7a4}.hero-photo{width:60%;left:40%;object-position:center 65%;mask-image:linear-gradient(90deg,transparent,#000 18%)}.hero-shade{background:linear-gradient(90deg,#34223b66,#34223b33 50%,#34223b22)}.hero-copy{top:20%;left:3%;width:42%}.hero h1{font-size:clamp(75px,7vw,105px)}.hero .scroll-cue{width:42%;left:3%;bottom:200px}.hero-leaves{width:290px;height:340px}}
.album-layout{display:block;max-width:950px}.album-copy{text-align:center;max-width:720px;margin:0 auto 65px}.album-copy .fine-rule{margin-left:auto}.album-stage{aspect-ratio:3/2}.slide{object-fit:contain}.album-copy h2{font-size:clamp(46px,5.8vw,72px)}
@media(max-width:700px){.album-stage{border-radius:3px 28px 3px 28px}.album-copy{margin-bottom:45px}}
