:root{color-scheme:light;--ink: #241915;--plum: #3b1f2d;--wine: #7a263f;--rose: #c99492;--champagne: #f3e2c8;--ivory: #fff8ee;--pearl: #f9efe2;--gold: #b98d55;--shadow: 0 28px 80px rgba(44, 23, 21, .24)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 10% 0%,rgba(201,148,146,.22),transparent 30rem),linear-gradient(140deg,#fff8ee,#f4e5d4 45%,#f8f0e7);color:var(--ink);font-family:Jost,Avenir Next,sans-serif;letter-spacing:0}button,input,textarea{font:inherit}main{overflow:hidden}.invitation-reveal{position:fixed;inset:0;z-index:100;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 44%,#fff8eef5,#f3e2c899 27rem,#2a1719f5 78%),#2a1719;animation:revealExit .9s 4.85s ease forwards}.reveal-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2;filter:sepia(.24) saturate(.85) blur(1px);transform:scale(1.08);animation:revealFilm 5.4s ease forwards}.reveal-glow{position:absolute;width:min(56rem,112vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,248,238,.95),rgba(243,226,200,.52) 38%,rgba(185,141,85,.08) 64%,transparent 72%);mix-blend-mode:screen;animation:glowPulse 5.1s ease forwards}.reveal-card{position:relative;z-index:4;width:min(44rem,88vw);display:grid;justify-items:center;text-align:center;color:var(--ivory);transform-origin:50% 52%;animation:revealCard 5.1s cubic-bezier(.18,.84,.2,1) forwards}.reveal-card:before,.reveal-card:after{content:"";position:absolute;top:50%;width:min(14rem,26vw);height:1px;background:linear-gradient(90deg,transparent,rgba(243,226,200,.9),transparent);box-shadow:0 0 18px #f3e2c88c;opacity:0;animation:flourishLine 2.2s 1.45s ease forwards}.reveal-card:before{right:calc(50% + min(12rem,28vw))}.reveal-card:after{left:calc(50% + min(12rem,28vw))}.reveal-script{margin-bottom:.75rem;color:#fff8eeeb;font-family:Brush Script MT,Segoe Script,cursive;font-size:clamp(2rem,7vw,4.9rem);line-height:.95;text-shadow:0 0 34px rgba(185,141,85,.58);opacity:0;transform:translateY(1.2rem) rotate(-3deg);animation:scriptUnfurl 1.5s .55s ease forwards}.reveal-logo{width:min(33rem,84vw);aspect-ratio:16 / 10;object-fit:cover;object-position:center;border:1px solid rgba(255,248,238,.68);box-shadow:0 34px 110px #10080875,0 0 0 1rem #fff8ee14,0 0 80px #b98d5561;opacity:0;transform:scale(.72) rotate(-1.5deg);clip-path:inset(50% 50% 50% 50% round 50%);animation:logoBloom 2.2s .55s cubic-bezier(.16,.86,.24,1) forwards}.reveal-names{width:min(42rem,92vw);max-width:none;margin-top:1.25rem;color:#fff8ee;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.8rem,11vw,7.4rem);line-height:.8;text-shadow:0 16px 42px rgba(30,12,12,.46)}.reveal-names span,.reveal-names em,.reveal-card p{display:inline-block;opacity:0}.reveal-names span:first-child{transform:translate(-4rem) rotate(-7deg);animation:nameSweep 1.2s 2.05s ease forwards}.reveal-names em{margin-inline:.22em;color:var(--champagne);font-family:Brush Script MT,Segoe Script,cursive;font-size:.82em;font-style:normal;transform:scale(.3) rotate(-160deg);animation:ampersandSpin 1.1s 2.35s cubic-bezier(.16,.86,.24,1) forwards}.reveal-names span:last-child{transform:translate(4rem) rotate(7deg);animation:nameSweep 1.2s 2.55s ease forwards}.reveal-card p{margin:.2rem 0 0;color:#fff8eee6;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,5vw,3.2rem);letter-spacing:.08em;transform:translateY(1rem);animation:surnameFade 1.15s 3.05s ease forwards}.reveal-vines{position:absolute;z-index:3;width:min(22rem,48vw);aspect-ratio:1 / 1.25;border:1px solid rgba(185,141,85,.56);border-left:0;border-bottom:0;border-radius:0 100% 0 0;opacity:0;filter:drop-shadow(0 0 14px rgba(243,226,200,.34))}.reveal-vines:before,.reveal-vines:after{content:"";position:absolute;width:.7rem;height:1.25rem;border-radius:100% 0;background:linear-gradient(135deg,#f5ddaa,#a97835);box-shadow:1.5rem 2.4rem 0 -.1rem #dcb975e6,3.2rem 5.1rem 0 -.12rem #fff8eed1,5.1rem 7.5rem 0 -.1rem #c99492e0}.reveal-vines-left{left:clamp(.8rem,6vw,7rem);top:15%;transform:rotate(180deg) scale(.82);animation:vineGrowLeft 2.3s 1.15s ease forwards}.reveal-vines-right{right:clamp(.8rem,6vw,7rem);bottom:13%;transform:scale(.82);animation:vineGrowRight 2.3s 1.15s ease forwards}.petal-field{position:absolute;inset:0;z-index:5;pointer-events:none}.petal{position:absolute;top:-3rem;width:var(--petal-size);height:calc(var(--petal-size) * 1.65);border-radius:100% 0;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.96),transparent 28%),linear-gradient(150deg,#fff8eef2,#e7b2a8db 58%,#b98d559e);opacity:0;transform:translateY(-3rem) rotate(0);animation:petalFall 4.8s ease-in forwards}.reveal-curtain{position:absolute;left:0;right:0;z-index:2;height:50%;background:linear-gradient(90deg,#2a1719f0,#7a263fb8,#2a1719f0);box-shadow:0 0 80px #2a1719c2;animation-duration:2.05s;animation-delay:.3s;animation-timing-function:cubic-bezier(.58,.02,.18,1);animation-fill-mode:forwards}.reveal-curtain-top{top:0;transform-origin:top;animation-name:curtainTop}.reveal-curtain-bottom{bottom:0;transform-origin:bottom;animation-name:curtainBottom}.hero{position:relative;min-height:100svh;display:grid;align-items:center;padding:clamp(1.1rem,3vw,2.8rem);isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#241915e0,#3b1f2d7a,#fff8ee29),url(/media/invitation-still-2.jpg) center/cover;z-index:-3;transform:scale(1.03);animation:cinematic 18s ease-in-out infinite alternate}.hero-veil{position:absolute;inset:1.2rem;border:1px solid rgba(243,226,200,.42);z-index:-1;pointer-events:none}.hero-content{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:center}.intro-copy{color:var(--ivory);animation:riseIn 1s ease both}.brand-logo{width:min(18rem,58vw);aspect-ratio:16 / 10;object-fit:cover;object-position:center;display:block;margin:0 0 1.5rem;border:1px solid rgba(243,226,200,.56);box-shadow:0 22px 70px #130a0857;filter:saturate(.95) contrast(1.02)}.kicker{margin:0 0 1rem;color:var(--champagne);text-transform:uppercase;font-size:.75rem;letter-spacing:.24em;font-weight:500}h1,h2{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:500;letter-spacing:0}h1{font-size:clamp(4.6rem,13vw,10.8rem);line-height:.72;max-width:10ch}h1 span,h1 em{display:block}h1 em{margin-top:1.35rem;color:var(--champagne);font-family:Imperial Script,cursive;font-size:clamp(2.7rem,6.5vw,6rem);font-style:normal;line-height:.95;transform:rotate(-2deg)}.invitation{max-width:36rem;margin:2rem 0 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.35;color:#fff8eee6}.hero-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:2rem}.primary-button,.submit-button,.ghost-button,.text-link{border:0;cursor:pointer;text-decoration:none}.primary-button,.submit-button{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.45rem;background:linear-gradient(135deg,var(--champagne),#d3a96d);color:#2d1717;border-radius:999px;text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:600;box-shadow:0 18px 50px #b98d5542;transition:transform .18s ease,box-shadow .18s ease}.primary-button:hover,.submit-button:hover{transform:translateY(-2px);box-shadow:0 22px 60px #b98d5561}.text-link{color:var(--champagne);border-bottom:1px solid rgba(243,226,200,.55)}.video-frame{position:relative;padding:clamp(.65rem,1.5vw,1rem);border:1px solid rgba(255,248,238,.52);background:#fff8ee1f;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:floatIn 1.2s .18s ease both}.video-frame:after{content:"";position:absolute;inset:-.8rem;border:1px solid rgba(185,141,85,.32);z-index:-1}.video-frame video{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;background:#120b0b}.video-ribbon{position:absolute;top:1.5rem;right:1.5rem;z-index:2;padding:.5rem .75rem;background:#241915b3;color:var(--champagne);font-size:.72rem;text-transform:uppercase;letter-spacing:.2em}.carousel-section{padding:clamp(2rem,5vw,4.5rem) 0;background:#211411;border-block:1px solid rgba(185,141,85,.28)}.carousel-track{display:flex;width:max-content;gap:clamp(.8rem,1.5vw,1.25rem);animation:glide 44s linear infinite}.carousel-card{margin:0;width:clamp(13rem,24vw,24rem);height:clamp(18rem,35vw,32rem);overflow:hidden}.carousel-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.04);transform:scale(1.03);transition:transform .7s ease}.carousel-card:hover img{transform:scale(1.1)}.details-band{padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,5rem);background:linear-gradient(#fff8eee0,#fff8eef0),url(/media/invitation-still-3.jpg) center/cover}.script-line{margin:0 auto 2.5rem;color:var(--wine);font-family:Imperial Script,cursive;font-size:clamp(3.5rem,8vw,7rem);line-height:1;text-align:center}.details-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid rgba(122,38,63,.22)}.details-grid article{min-height:11rem;padding:1.45rem;border-right:1px solid rgba(122,38,63,.16);display:flex;flex-direction:column;justify-content:space-between}.details-grid article:last-child{border-right:0}.details-grid span{color:var(--wine);font-size:.72rem;text-transform:uppercase;letter-spacing:.2em}.details-grid strong{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.45rem,2vw,2rem);font-weight:500;line-height:1.08}.rsvp-section{padding:clamp(4rem,9vw,8rem) clamp(1rem,4vw,4rem);background:radial-gradient(circle at 80% 20%,rgba(122,38,63,.16),transparent 20rem),linear-gradient(160deg,#fff8ee,#f2dcca)}.rsvp-heading{width:min(760px,100%);margin:0 auto 2.2rem;text-align:center}.rsvp-heading .kicker{color:var(--wine)}.rsvp-heading h2,.confirmation h2{color:var(--plum);font-size:clamp(2.6rem,7vw,5.5rem);line-height:.92}.rsvp-heading p:not(.kicker),.confirmation-copy{font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;line-height:1.4}.rsvp-form{width:min(880px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:clamp(1rem,3vw,2rem);background:#fff8eead;border:1px solid rgba(122,38,63,.17);box-shadow:0 20px 70px #5a30291f}.rsvp-form label,.rsvp-form fieldset{display:grid;gap:.55rem;margin:0;color:#4d342c;font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;border:0;padding:0}.rsvp-form input,.rsvp-form textarea{width:100%;border:1px solid rgba(59,31,45,.18);background:#ffffff9e;color:var(--ink);padding:.95rem 1rem;border-radius:0;outline:none;text-transform:none;letter-spacing:0;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.rsvp-form textarea{min-height:7rem;resize:vertical}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--wine);background:#fff;box-shadow:0 0 0 4px #7a263f1a}.segmented{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid rgba(59,31,45,.18);background:#ffffff6b}.segmented label{position:relative}.segmented input{position:absolute;opacity:0;inset:0}.segmented span{min-height:3.15rem;display:grid;place-items:center;color:var(--plum);transition:background .16s ease,color .16s ease}.segmented input:checked+span{background:var(--plum);color:var(--ivory)}.span-2{grid-column:1 / -1}.form-error{grid-column:1 / -1;margin:0;color:#8b1f2f;font-weight:600}.submit-button{width:100%}.submit-button:disabled{cursor:wait;opacity:.72}.confirmation{padding:clamp(4rem,9vw,8rem) clamp(1rem,4vw,4rem);background:#271719;color:var(--ivory);text-align:center}.confirmation-mark{width:5.5rem;height:5.5rem;margin:0 auto 1rem;display:grid;place-items:center;border:1px solid rgba(243,226,200,.55);border-radius:50%;font-family:Cormorant Garamond,Georgia,serif;color:var(--champagne);font-size:1.5rem}.confirmation h2{color:var(--champagne)}.confirmation-copy{width:min(700px,100%);margin:1.4rem auto 2rem;color:#fff8eedb}.detail-list{width:min(920px,100%);margin:2rem auto;border-top:1px solid rgba(243,226,200,.18)}.detail-row{display:grid;grid-template-columns:minmax(10rem,.38fr) 1fr;gap:1.25rem;padding:1.1rem 0;text-align:left;border-bottom:1px solid rgba(243,226,200,.18)}.detail-row span{color:var(--champagne);text-transform:uppercase;letter-spacing:.16em;font-size:.75rem}.detail-row p{margin:0;color:#fff8eed1}.ghost-button{padding:.9rem 1.2rem;border:1px solid rgba(243,226,200,.46);background:transparent;color:var(--champagne)}@keyframes cinematic{0%{transform:scale(1.03) translateZ(0)}to{transform:scale(1.09) translate3d(-1.5rem,.8rem,0)}}@keyframes revealExit{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes revealFilm{0%{opacity:0;transform:scale(1.18)}32%,82%{opacity:.24}to{opacity:0;transform:scale(1.04)}}@keyframes glowPulse{0%{opacity:0;transform:scale(.68)}44%,78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.16)}}@keyframes revealCard{0%{opacity:0;filter:blur(10px);transform:translateY(1.8rem) scale(.94)}16%,82%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(10px);transform:translateY(-1.2rem) scale(1.02)}}@keyframes scriptUnfurl{to{opacity:1;transform:translateY(0) rotate(-3deg)}}@keyframes logoBloom{0%{opacity:0;clip-path:inset(50% 50% 50% 50% round 50%);transform:scale(.72) rotate(-1.5deg)}55%{opacity:1;clip-path:inset(0 0 0 0 round 0);transform:scale(1.02) rotate(.4deg)}to{opacity:1;clip-path:inset(0 0 0 0 round 0);transform:scale(1) rotate(0)}}@keyframes flourishLine{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes nameSweep{to{opacity:1;transform:translate(0) rotate(0)}}@keyframes ampersandSpin{80%{opacity:1;transform:scale(1.14) rotate(8deg)}to{opacity:1;transform:scale(1) rotate(-4deg)}}@keyframes surnameFade{to{opacity:1;transform:translateY(0)}}@keyframes vineGrowLeft{0%{opacity:0;clip-path:inset(100% 0 0 100%);transform:rotate(180deg) scale(.68)}to{opacity:1;clip-path:inset(0 0 0 0);transform:rotate(180deg) scale(1)}}@keyframes vineGrowRight{0%{opacity:0;clip-path:inset(100% 100% 0 0);transform:scale(.68)}to{opacity:1;clip-path:inset(0 0 0 0);transform:scale(1)}}@keyframes petalFall{0%{opacity:0;transform:translate3d(0,-3rem,0) rotate(0)}10%{opacity:.95}86%{opacity:.9}to{opacity:0;transform:translate3d(var(--drift),108svh,0) rotate(520deg)}}@keyframes curtainTop{to{transform:translateY(-102%) scaleY(.82)}}@keyframes curtainBottom{to{transform:translateY(102%) scaleY(.82)}}@keyframes riseIn{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes floatIn{0%{opacity:0;transform:translateY(2rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glide{0%{transform:translate(0)}to{transform:translate(calc(-50% - .625rem))}}@media(max-width:880px){.reveal-card{width:min(32rem,92vw)}.reveal-logo{width:min(26rem,90vw)}.reveal-names{font-size:clamp(2.4rem,12vw,4.7rem)}.reveal-vines{width:min(14rem,38vw);opacity:.72}.hero{min-height:auto;padding:1rem}.hero-content{min-height:calc(100svh - 2rem);grid-template-columns:1fr;align-content:center;gap:2rem;padding-block:4rem 2rem}h1{font-size:clamp(4.4rem,23vw,7rem)}.brand-logo{width:min(20rem,72vw);margin-inline:auto}.video-frame{order:-1}.details-grid,.rsvp-form,.detail-row{grid-template-columns:1fr}.details-grid article{min-height:8.5rem;border-right:0;border-bottom:1px solid rgba(122,38,63,.16)}.details-grid article:last-child{border-bottom:0}.span-2{grid-column:auto}}@media(max-width:560px){.hero-veil{inset:.65rem}.hero-actions{align-items:stretch}.primary-button,.text-link{width:100%;justify-content:center;text-align:center}.carousel-card{width:12rem;height:17rem}.script-line{text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
