@font-face{font-family:Display;src:url(assets/display.ttf)}@font-face{font-family:Hand;src:url(assets/script.ttf)}
:root{--ink:#171717;--gold:#c3a469;--gold-ink:#85632e;--paper:#fafafa;--muted:#666}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif;font-size:16px;line-height:1.7}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:6px}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(42px,5.8vw,76px);letter-spacing:-.035em}h3{font-size:clamp(30px,3.2vw,42px)}.eyebrow{font-size:11px;letter-spacing:.3em;line-height:1.8}.signature,.script-label{display:block;font-family:Hand,cursive;font-size:44px;font-weight:400;line-height:1.2;color:var(--gold-ink)}.script-label{margin-bottom:18px}.dark{color:#f5f5f5;--gold-ink:#d1b57b}.surface{position:relative}.paper{background:radial-gradient(ellipse at 10% 35%,#e6e6e6aa,transparent 65%),linear-gradient(145deg,#fafafa,#fff 50%,#ececec);background-color:#fafafa}.sage{background:radial-gradient(ellipse at 90% 20%,#fafafa,transparent 70%),linear-gradient(120deg,#e6e6e6,#f1f1f1 55%,#d6d6d6);background-color:#e6e6e6}.dark{background:radial-gradient(ellipse at 10% 40%,#303030,transparent 70%),linear-gradient(125deg,#111,#1e1e1e 55%,#111);background-color:#111}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:54px;border:1px solid var(--ink);border-radius:2px;padding:13px 28px;background:var(--ink);color:white;text-decoration:none;font-size:13px;letter-spacing:.035em;transition:background .3s,color .3s}.button:hover{background:#333}.button-light{background:#f4f3ef;color:#171717;border-color:#f4f3ef}.button-light:hover{background:var(--gold);color:#111}.button-outline{background:transparent;color:inherit;border-color:#8a8a8a}.button-outline:hover{color:white}.text-button{border:0;border-bottom:1px solid #b6a17e;background:none;color:inherit;font-size:12px;padding:12px 0;cursor:pointer;text-decoration:none}.text-button span{margin-left:15px}.text-button.light{color:#ddd;border-color:#777}.fine-rule{display:block;width:60px;height:1px;background:var(--gold);margin:26px auto}.entry{position:fixed;inset:0;z-index:100;display:grid;place-items:center;text-align:center;overflow:hidden;transition:opacity 1s,visibility 1s}.entry.leaving{opacity:0;visibility:hidden}.entry-content{position:relative;z-index:1;padding:35px 20px;width:100%;max-width:620px}.entry h1{font-family:Hand,cursive;font-size:clamp(70px,10vw,110px);line-height:1.05;margin:30px 0 20px}.entry h1 em{display:block;font-family:Display,serif;font-size:34px;font-weight:400;color:var(--gold);margin:4px 0}.entry-date{font-size:13px;letter-spacing:.35em}.entry-message{font-size:14px;color:#c7c7c7}.entry-actions{display:flex;align-items:center;flex-direction:column;gap:14px;margin-top:30px}.entry-orbit{position:absolute;width:min(520px,87vw);height:83%;max-height:730px;border:1px solid #c3a46966;border-radius:50% 50% 45% 45%;transform:rotate(-13deg)}.entry-orbit:after{content:'';position:absolute;inset:16px -16px;border:1px solid #c3a46922;border-radius:50%;transform:rotate(22deg)}.music-button{position:fixed;bottom:24px;right:24px;width:51px;height:51px;border-radius:50%;z-index:40;background:#171717;color:var(--gold);border:1px solid #c3a46977;font-size:24px;box-shadow:0 4px 24px #0002}.music-button[aria-pressed=true]{background:#c3a469;color:#111}.hero{height:100svh;min-height:760px;max-height:1200px;position:relative;overflow:hidden;background:#222;color:white}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}.hero-photo{filter:grayscale(1)}.entered .hero-photo{animation:heroZoom 20s ease-in-out infinite alternate}.hero-shade{background:linear-gradient(180deg,#0006,#0001 45%,#0005 90%)}.hero-copy{position:absolute;top:16%;left:0;width:100%;text-align:center;padding:0 20px;z-index:2}.hero h1{font-size:clamp(65px,8vw,114px);margin:22px 0;letter-spacing:-.035em}.hero h1 em{font-family:Hand,cursive;font-weight:400;color:#d8bd82;margin:0 14px}.hero-date{display:flex;align-items:center;justify-content:center;gap:22px;letter-spacing:.28em;font-size:13px}.hero-date span{height:1px;width:35px;background:#c3a46999}.hero-message{font-family:Hand,cursive;font-size:31px;margin-top:15px}.scroll-cue{position:absolute;bottom:85px;left:0;width:100%;z-index:3;text-align:center;text-decoration:none;font-size:9px;letter-spacing:.23em}.scroll-cue i{display:block;font-size:25px;margin-top:10px;font-style:normal;color:#d1b57b}.foliage{position:absolute;width:370px;height:370px;pointer-events:none;z-index:2}.hero-leaves{top:-30px;left:-50px;transform:rotate(-8deg)}.hero-leaves.secondary{top:auto;left:auto;right:-42px;bottom:150px;width:270px;height:270px;transform:rotate(182deg)}.leaf-piece{position:absolute;inset:0;background:#d1b57b;mask:none;opacity:0;clip-path:inset(0 66% 0 0)}.leaf-piece:nth-child(2){clip-path:inset(0 33% 0 34%)}.leaf-piece:nth-child(3){clip-path:inset(0 0 0 67%)}.entered .leaf-piece{animation:leafEnter 1.6s cubic-bezier(.19,1,.22,1) forwards}.entered .leaf-piece:nth-child(2){animation-delay:.5s}.entered .leaf-piece:nth-child(3){animation-delay:1s}.divider{height:150px;position:absolute;left:0;right:0;pointer-events:none;z-index:2}.divider svg{width:100%;height:100%;display:block}.hero-divider,.closing-bottom{bottom:-1px}.section-top{top:-149px}.story,.event,.album,.agenda,.details,.rsvp{padding:100px max(28px,calc((100vw - 1120px)/2)) 230px}.story{text-align:center;padding-top:45px}.countdown{padding-bottom:100px}.count-grid{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:30px}.count-grid div{min-width:70px}.count-grid strong{font-family:Display,serif;font-size:60px;font-weight:400;line-height:1.2}.count-grid span{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#666;margin-top:8px}.count-grid i{font-size:20px;font-style:normal;color:#a38a5e;align-self:flex-start;margin-top:20px}.tiny-heart{display:block;margin-top:35px;font-size:24px;color:#a38a5e}.story-copy{max-width:610px;margin:auto}.story h2{color:var(--gold-ink);margin-bottom:30px}.story-copy>p{max-width:530px;margin:24px auto;color:#595959;line-height:1.9}.story .signature{margin-top:32px}.divider-foliage{position:absolute;width:260px;height:260px;background:var(--gold);mask:none;pointer-events:none;z-index:3;opacity:.75}.divider-foliage.reveal{transition:opacity 1.4s;transform:none}.divider-foliage.reveal:not(.visible){opacity:0}.story-leaf{bottom:35px;left:-40px;rotate:-15deg}.event-leaf{bottom:30px;right:-20px;rotate:165deg}.album-leaf{bottom:25px;left:-40px;rotate:5deg}.details-leaf{bottom:25px;right:-25px;rotate:180deg}.rsvp-leaf{bottom:5px;left:-35px;rotate:0deg}.event-intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;max-width:980px;margin:auto}.event-intro h2{margin:22px 0;color:#85632e}.event-intro .text-button{margin-top:16px}.date-seal{border:1px solid #b29c7780;border-radius:50% 50% 45% 45%;width:310px;height:370px;display:flex;flex-direction:column;align-items:center;justify-content:center;justify-self:center;gap:7px}.date-seal>span{letter-spacing:.25em;font-size:12px}.date-seal strong{font-family:Display,serif;font-size:155px;font-weight:400;line-height:1}.date-seal .month{font-size:15px}.event-details{display:grid;grid-template-columns:1fr 1fr;text-align:center;margin-top:100px;gap:70px}.event-details article+article{border-left:1px solid #a8a8a8;padding-left:70px}.event-details h3{margin:20px 0}.event-time{font-family:Display,serif;font-size:36px;margin:20px 0 10px;color:#85632e}.event-time small{font-size:20px}.event-details p:not(.eyebrow):not(.event-time){font-size:14px;color:#555}.event-details .button{margin-top:25px}.album-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:90px;align-items:center}.album-copy h2{color:#d1b57b}.album-copy>p{font-size:14px;line-height:1.9;margin-top:28px;color:#c4c4c4}.album-copy .fine-rule{margin-left:0}.album-stage{position:relative;aspect-ratio:4/5;background:#080808;overflow:hidden;border-radius:48% 48% 3px 3px}.slide{position:absolute;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:35px;margin-top:20px}.album-controls button{width:38px;height:38px;color:#c3a469;background:transparent;border:0;font-size:20px}.section-heading{text-align:center;margin-bottom:70px}.section-heading h2{margin-top:22px}.agenda h2{color:#85632e}.timeline{padding:0;margin:0 auto;max-width:650px;list-style:none}.timeline li{display:grid;grid-template-columns:100px 1fr;gap:40px;position:relative;padding-bottom:45px}.timeline li:last-child{padding-bottom:0}.timeline time{color:#85632e;font-size:14px;padding-top:8px}.timeline li>div{border-left:1px solid #bdb6a9;padding-left:40px;position:relative}.timeline li>div:before{content:'';position:absolute;width:7px;height:7px;background:#b29a70;left:-4px;top:12px;border-radius:50%}.timeline h3{font-size:34px}.timeline p{font-size:14px;color:#626262;margin-top:13px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;text-align:center}.detail-index{font-size:11px;letter-spacing:.2em;color:#85632e}.detail-grid h3{font-size:31px;margin:18px 0}.detail-grid p{font-size:14px;color:#555;margin-bottom:20px}.notes-row{display:flex;justify-content:center;gap:40px;align-items:center;border-top:1px solid #bfbfbf;margin-top:70px;padding-top:35px;font-size:14px}.rsvp{text-align:center;padding-top:110px;padding-bottom:220px}.rsvp h2{font-size:clamp(48px,7vw,88px);color:#d1b57b;margin:25px 0}.rsvp-content>p:not(.eyebrow){color:#c4c4c4;font-size:14px}.rsvp .button{margin:35px 0}.rsvp .signature{margin-top:15px}.closing{position:relative;height:760px;overflow:hidden;background:#222;color:white;text-align:center}.closing>img,.closing-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%}.closing>img{filter:grayscale(1)}.closing-shade{background:#0007}.closing-top{top:-1px;rotate:180deg}.closing-copy{position:relative;top:35%;z-index:3}.closing-copy h2{margin:20px 0}.closing-copy .signature{color:#d1b57b}.closing-copy>span{display:block;font-size:11px;letter-spacing:.3em;margin-top:18px}footer{text-align:center;padding:45px 20px 60px}footer>a{font-family:Display,serif;font-size:36px;text-decoration:none}footer em{color:#85632e;font-family:Hand,cursive}footer p{font-size:11px;color:#777;margin:15px 0 8px}footer>span{font-size:12px;letter-spacing:.12em}dialog{width:min(520px,calc(100% - 30px));max-height:90svh;border:1px solid #c5b28e;border-radius:6px;padding:48px 35px;background:#fafafa;color:#171717}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}dialog h2{font-size:43px;margin:18px 0 25px;color:#85632e}dialog p{margin:16px 0;font-size:14px}dialog .button{margin-top:25px}.modal-close{position:absolute;right:18px;top:12px;font-size:26px;background:none;border:0;color:#555}label{display:block;font-size:13px;margin-top:20px}input,select{display:block;width:100%;padding:12px 4px;border:0;border-bottom:1px solid #aaa;background:transparent;color:#171717;border-radius:0}.form-note{font-size:11px!important;color:#777}.form-result{padding:15px;background:#eee;border-left:2px solid #b29a70}#notice{position:fixed;bottom:85px;left:20px;right:20px;z-index:150;background:#fff;padding:18px;box-shadow:0 8px 40px #0003}.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s,transform 1.2s}.reveal.visible{opacity:1;transform:none}main{overflow:hidden}@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.1)}}@keyframes leafEnter{from{opacity:0;translate:-10px -8px}to{opacity:.9;translate:0 0}}
@media(max-width:700px){.hero{min-height:770px;max-height:none}.hero-photo{object-position:center 58%}.hero-copy{top:18%}.hero h1{font-size:68px;max-width:320px;margin:22px auto;line-height:.98}.hero h1 em{display:block;font-size:46px;margin:5px 0}.hero-message{font-size:28px;margin-top:12px}.hero-leaves{width:205px;height:205px;top:-25px;left:-40px}.hero-leaves.secondary{width:170px;height:170px;bottom:135px;right:-42px}.hero .eyebrow{font-size:10px}.hero-date{font-size:11px;gap:13px}.hero-date span{width:24px}.hero-divider{height:95px}.scroll-cue{bottom:75px;font-size:8px}.story,.event,.album,.agenda,.details,.rsvp{padding:75px 27px 210px}.story{padding-top:45px}.countdown{padding-bottom:85px}.count-grid{gap:17px}.count-grid div{min-width:60px}.count-grid strong{font-size:46px}.count-grid i{margin-top:13px}.story-copy>p{font-size:14px}.signature,.script-label{font-size:39px}.divider{height:120px}.section-top{top:-119px}.divider-foliage{width:205px;height:205px}.story-leaf,.album-leaf{bottom:30px;left:-45px}.event-leaf,.details-leaf{bottom:35px;right:-45px}.event-intro{display:flex;flex-direction:column;gap:55px;text-align:center}.date-seal{width:260px;height:320px}.date-seal strong{font-size:140px}.event-details{display:block;margin-top:70px}.event-details article+article{border-left:0;border-top:1px solid #b7b7b7;padding:50px 0 0;margin-top:50px}.event-details h3{font-size:34px}.album-layout{display:block}.album-copy{text-align:center;margin-bottom:45px}.album-copy .fine-rule{margin-left:auto}.album-stage{aspect-ratio:4/5;border-radius:46% 46% 3px 3px}.album-controls{margin-top:18px}.section-heading{margin-bottom:55px}.timeline li{grid-template-columns:55px 1fr;gap:15px;padding-bottom:38px}.timeline li>div{padding-left:25px}.timeline h3{font-size:32px}.timeline time{font-size:12px}.detail-grid{display:block}.detail-grid article+article{border-top:1px solid #c8c8c8;margin-top:40px;padding-top:40px}.detail-grid h3{font-size:33px}.notes-row{flex-direction:column;gap:10px;margin-top:45px;text-align:center}.rsvp h2{font-size:51px}.rsvp .button{padding:13px 21px;gap:25px}.closing{height:660px}.closing-copy{top:33%;padding:0 24px}.closing-copy h2{font-size:46px}.music-button{right:17px;bottom:18px;width:46px;height:46px}.entry h1{font-size:82px}.entry-content{padding:24px}.entry .eyebrow{font-size:9px}.entry-orbit{height:85%;width:82vw}.entry-message{font-size:13px}.entry .fine-rule{margin:22px auto}.entry-date{font-size:11px}.entry-actions{margin-top:25px}dialog{padding:40px 25px}}
.album-stage{border-radius:18% 18% 3px 3px}.paper{background:linear-gradient(180deg,#fafafa 0%,#fafafa 6%,#eeeeee 42%,#fff 75%,#fafafa 100%)}.sage{background:linear-gradient(180deg,#e6e6e6 0%,#e6e6e6 6%,#f8f8f8 43%,#dedede 75%,#e6e6e6 100%)}.dark{background:linear-gradient(180deg,#111 0%,#111 5%,#2a2a2a 48%,#181818 75%,#111 100%)}
.hero-message{display:none}@media(min-width:701px){.hero-copy{top:10%}.hero-photo{object-position:center 43%}.hero h1{font-size:clamp(65px,7vw,100px)}}
@media(max-width:700px){.hero-copy{top:13%}.hero h1{font-size:62px;margin:18px auto}.hero-message{display:none}.hero-leaves{width:185px;height:185px}}
/* Give each practical detail its own breathing room and a fine gold separator. */
.details .section-heading{margin-bottom:100px}.detail-grid{gap:60px}.detail-grid article{position:relative;padding:35px 12px 15px}.detail-grid article+article:before{content:'';position:absolute;left:-30px;top:15px;bottom:0;width:1px;background:linear-gradient(transparent,#b59a6380 25%,#b59a6380 75%,transparent)}.detail-grid h3{margin:24px 0}.detail-grid p{margin-bottom:28px}.notes-row{position:relative;margin-top:115px;padding-top:65px;border-top:0}.notes-row:before{content:'';position:absolute;left:10%;right:10%;top:0;height:1px;background:linear-gradient(90deg,transparent,#b59a6380 12%,#b59a6380 41%,transparent 41%,transparent 59%,#b59a6380 59%,#b59a6380 88%,transparent)}.notes-row:after{content:'';position:absolute;top:-29px;left:calc(50% - 32px);width:64px;height:58px;background:#a88b53;mask:none;transform:rotate(-35deg);pointer-events:none}.event-details{gap:100px}.event-details article+article{border-color:#b59a6380;padding-left:100px}
@media(max-width:700px){.details .section-heading{margin-bottom:80px}.detail-grid article{padding:0 8px 10px}.detail-grid article+article{margin-top:95px;padding-top:80px;border-top:0}.detail-grid article+article:before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px;background:linear-gradient(90deg,transparent,#b59a6399 10%,#b59a6399 36%,transparent 36%,transparent 64%,#b59a6399 64%,#b59a6399 90%,transparent)}.detail-grid article+article:after{content:'';position:absolute;top:-30px;left:calc(50% - 34px);width:68px;height:60px;background:#a88b53;mask:none;transform:rotate(-35deg);pointer-events:none}.notes-row{margin-top:105px;padding-top:70px;gap:16px}.notes-row:before{left:0;right:0}.event-details article+article{margin-top:75px;padding:70px 0 0;border-color:#b59a6380}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.entered .leaf-piece{opacity:.9}.reveal{opacity:1;transform:none}}
