:root{--ink:#24212e;--purple:#584179;--lavender:#d8cdeb;--paper:#f8f7fa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,sans-serif;font-size:16px;line-height:1.6}header{height:92px;padding:20px 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #24212e22}.wordmark{font-weight:700;font-size:36px;letter-spacing:-2px;color:var(--ink);text-decoration:none;line-height:1}.wordmark span{display:block;font-size:12px;letter-spacing:1px;font-weight:400;margin-top:6px}.nav{color:var(--ink);font-size:14px;letter-spacing:2px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.hero-copy{padding:70px 8% 70px 12%}.eyebrow{font-size:13px;letter-spacing:3px;font-weight:600;margin:0 0 35px}.intro{font-family:Georgia,serif;font-size:21px;margin:0}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(58px,6.7vw,104px);line-height:1.05;letter-spacing:-4px;margin:16px 0 34px}em{font-weight:400;color:var(--purple)}.date{font-size:14px;letter-spacing:2px;margin-bottom:30px}.button{display:inline-block;border:1px solid var(--ink);background:var(--ink);color:white;text-decoration:none;padding:15px 30px;font:inherit;font-size:15px;cursor:pointer;transition:background .2s}.button:hover{background:var(--purple)}.hero-image{background:#eae9ef;position:relative;display:flex;align-items:center}.hero-image img{width:100%;height:100%;object-fit:contain;max-height:800px}.image-caption{position:absolute;bottom:24px;left:30px;font-size:12px;letter-spacing:2px}.welcome{text-align:center;padding:110px 24px;background:var(--lavender)}h2{font:400 clamp(40px,4.4vw,66px)/1.12 Georgia,serif;letter-spacing:-2px;margin:0 0 28px}.welcome>p:not(.eyebrow){max-width:460px;margin:20px auto}.host{font-family:Georgia,serif;font-style:italic;font-size:23px}.story{display:grid;grid-template-columns:1fr 1fr}.story>img{width:100%;height:760px;object-fit:cover;object-position:50% 25%}.story>div{padding:80px 12%;display:flex;flex-direction:column;align-items:flex-start}.product-name{font-size:22px;margin-bottom:0}.detail-image{width:190px;height:225px;object-fit:cover;margin-top:25px;align-self:flex-end}.details{text-align:center;background:var(--ink);color:var(--paper);padding:90px 7%}.details .eyebrow{color:var(--lavender)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:55px auto;max-width:1100px}.event-grid>div{padding:10px 25px;border-right:1px solid #ffffff33}.event-grid>div:last-child{border:0}.event-grid span{color:var(--lavender);font-size:12px;letter-spacing:3px}h3{font:400 25px Georgia,serif;margin:18px 0}.event-grid a,.details .text-button{color:var(--lavender)}.countdown{display:flex;justify-content:center;gap:45px;margin-top:65px}.countdown strong{display:block;font:400 55px Georgia,serif;color:var(--lavender)}.countdown span{font-size:12px;letter-spacing:2px}.text-button{border:0;background:none;text-decoration:underline;color:var(--purple);font:inherit;cursor:pointer;padding:8px 0}.rsvp{padding:100px 9%;display:grid;grid-template-columns:1fr 1fr;gap:80px;background:#eeebf3}.small{max-width:340px;color:#585062}form label{display:block;font-size:14px;margin:0 0 9px}form label span{color:#645e6d}input,select,textarea{width:100%;padding:14px;border:1px solid #9b92a7;background:transparent;color:var(--ink);font:inherit;border-radius:0;margin-bottom:25px}textarea{resize:vertical}form .button{width:100%}#response{margin-top:25px}pre{white-space:pre-wrap;font:inherit;padding:15px;background:#ffffff7a;font-size:14px}footer{padding:42px 6%;display:flex;justify-content:space-between;align-items:center;gap:20px}footer p{font-size:12px;letter-spacing:2px}footer>span:last-child{font-family:Georgia,serif;font-style:italic}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #9978bd;outline-offset:5px}@media(max-width:760px){header{height:78px}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 8%}h1{font-size:66px;letter-spacing:-3px}.hero-image{min-height:400px}.hero-image img{max-height:530px}.welcome{padding:75px 25px}.story{grid-template-columns:1fr}.story>img{height:580px}.story>div{padding:60px 8%}.detail-image{width:150px;height:180px}.details{padding:70px 7%}.event-grid{grid-template-columns:1fr;gap:28px;margin:40px 0}.event-grid>div{border-right:0;border-bottom:1px solid #ffffff33;padding-bottom:28px}.countdown{gap:22px}.countdown strong{font-size:40px}.countdown span{font-size:12px;letter-spacing:1px}.rsvp{grid-template-columns:1fr;gap:35px;padding:70px 8%}footer{flex-direction:column;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Quiet, editorial motion with a complete reduced-motion alternative. */
header{background:var(--paper);position:relative;z-index:3}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--purple);transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}.hero-image{overflow:hidden}.hero-image>img{animation:product-arrival 1.8s cubic-bezier(.16,1,.3,1) both,product-float 9s ease-in-out 1.8s infinite;will-change:transform}.hero-copy> *{animation:copy-arrival 1.1s cubic-bezier(.16,1,.3,1) both}.hero-copy>.intro{animation-delay:.1s}.hero-copy>h1{animation-delay:.2s}.hero-copy>.date{animation-delay:.35s}.hero-copy>.button{animation-delay:.5s}.motion-toggle{position:absolute;right:22px;top:22px;z-index:2;background:#f8f7fadd;color:var(--ink);border:1px solid #24212e44;border-radius:30px;padding:9px 15px;font:inherit;font-size:13px;cursor:pointer}.reveal{opacity:0;transform:translateY(32px);transition:opacity 1s ease,transform 1.2s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:none}.story>img{clip-path:inset(0);transition:clip-path 1.4s cubic-bezier(.16,1,.3,1),opacity 1s,transform 1.4s}.story>img.reveal:not(.is-visible){clip-path:inset(5% 5% 5% 5%)}.detail-image{transition:transform 1s ease}.detail-image:hover{transform:translateY(-7px) rotate(-2deg)}.button{transition:background .3s,transform .3s,box-shadow .3s}.button:hover{transform:translateY(-3px);box-shadow:0 10px 25px #24212e18}.nav{transition:color .3s}.nav:hover{color:var(--purple)}.event-grid>div{--reveal-delay:100ms}.event-grid>div:nth-child(2){--reveal-delay:220ms}.event-grid>div:nth-child(3){--reveal-delay:340ms}
@keyframes product-arrival{from{opacity:0;transform:translateY(45px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes product-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(.6deg)}}@keyframes copy-arrival{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{opacity:1;transform:none;transition:none;clip-path:none}.motion-paused .hero-copy>*,.motion-paused .hero-image>img{animation:none;opacity:1;transform:none}.motion-paused .detail-image:hover,.motion-paused .button:hover{transform:none}.motion-paused .reading-progress{display:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none;clip-path:none}.motion-toggle,.reading-progress{display:none}.button:hover,.detail-image:hover{transform:none}}

[hidden]{display:none!important}.invitation-closed{overflow:hidden;background:white}.invitation-cover{height:100svh;min-height:560px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px;background:radial-gradient(ellipse at 50% 60%,#e9e2f444,transparent 65%),white}.cover-logo{width:clamp(170px,22vw,260px);height:auto;max-height:155px;object-fit:contain}.invitation-cover .eyebrow{margin:0;font-size:12px;letter-spacing:3px}.invitation-cover h2{font-size:clamp(34px,4vw,54px);margin:0;letter-spacing:-1px}.cover-product{width:clamp(120px,18vh,200px);height:clamp(120px,23vh,220px);object-fit:contain;border-radius:18px;animation:product-arrival 1.6s ease both,product-float 9s ease-in-out 1.6s infinite}.cover-date{font-size:13px;letter-spacing:2px;margin:0}.cover-venue{font:16px Georgia,serif;margin:0 0 10px}.invitation-cover .button{min-width:210px}.invitation-cover.cover-opening{opacity:0;transform:translateY(-15px);transition:opacity .55s ease,transform .7s ease;pointer-events:none}.brand-link img{width:130px;height:65px;object-fit:contain}.footer-logo{width:125px;height:78px;object-fit:contain}header,footer{background:white}#invitation-content.invitation-entering{animation:copy-arrival 1s ease both}@media(max-height:680px){.invitation-cover{gap:9px;min-height:0}.cover-logo{width:155px;max-height:95px}.cover-product{height:145px;width:145px}.invitation-cover h2{font-size:35px}.cover-venue{font-size:14px}.cover-date{font-size:12px}.invitation-cover .button{padding:12px 25px}}@media(max-height:500px){.invitation-closed{overflow:auto}.invitation-cover{height:auto;min-height:100svh}.cover-product{height:100px;width:100px}}

.invitation-cover{background:#d9c7ed;gap:24px}.invitation-closed{background:#d9c7ed}.cover-logo{width:clamp(230px,32vw,340px);max-height:220px;mix-blend-mode:multiply}.invitation-cover h2{font-size:clamp(42px,5vw,68px);margin:12px 0 25px}.cover-date{margin-top:12px}.invitation-cover .button{margin-top:18px}.music-toggle{position:fixed;bottom:20px;right:20px;z-index:30;border:1px solid #8f7fa3;border-radius:30px;background:#f8f7faee;color:var(--ink);padding:12px 19px;font:inherit;font-size:14px;cursor:pointer;box-shadow:0 3px 18px #24212e15}@media(max-height:680px){.invitation-cover{gap:15px}.cover-logo{width:220px;max-height:140px}.invitation-cover h2{font-size:40px;margin:5px 0 12px}.invitation-cover .button{margin-top:10px}}

.event-grid .event-date{white-space:nowrap;font-size:clamp(16px,1.9vw,25px)}@media(max-width:760px){.event-grid .event-date{font-size:clamp(16px,5vw,25px)}}

.rsvp-disclosure{font-size:14px;color:#585062;line-height:1.6;margin:0 0 20px}.rsvp-summary{padding:80px 9%;background:var(--paper)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:35px 0}.summary-grid>div{padding:25px;border-top:1px solid #a999ba}.summary-grid h3{display:flex;justify-content:space-between;font-size:27px;gap:15px}.summary-grid h3 span{font:20px Arial;color:var(--purple)}.summary-grid ul{padding:0;list-style:none;margin:20px 0}.summary-grid li{padding:12px 0;border-bottom:1px solid #24212e15;overflow-wrap:anywhere}.empty-response{color:#645e6d}#summary-status{color:#645e6d}@media(max-width:760px){.summary-grid{grid-template-columns:1fr;gap:15px}.rsvp-summary{padding:60px 8%}}
