:root{
  --green:#244b34;
  --green-deep:#143624;
  --green-soft:#355d43;
  --ivory:#f3eee3;
  --ivory-2:#e8e0d2;
  --ink:#1b201d;
  --muted:#6f726b;
  --line:rgba(27,32,29,.18);
  --white-line:rgba(255,255,255,.18);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Manrope",Arial,sans-serif;
  --script:"Marck Script","Segoe Script",cursive;
  --content:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--green-deep);-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px;background:var(--ivory);color:var(--ink);font-family:var(--sans);overflow-x:clip}
body.invite-locked{height:100svh;overflow:hidden}
body.site-revealed{height:auto;overflow-x:clip}
main,section,div,article,figure,form{min-width:0}
button,input,textarea{font:inherit}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
::selection{background:#8fa58d;color:#fff}
.noise{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.055;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}
.site{width:100%;background:var(--ivory);overflow:clip}
.paper-section{position:relative;background:var(--ivory)}
.torn-top::before{content:"";position:absolute;z-index:5;left:-1%;right:-1%;top:-21px;height:42px;background:var(--ivory);clip-path:polygon(0 48%,3% 18%,7% 36%,11% 12%,16% 35%,21% 16%,27% 42%,32% 18%,37% 38%,43% 12%,49% 34%,55% 10%,61% 38%,67% 15%,73% 35%,79% 12%,85% 41%,91% 18%,96% 35%,100% 11%,100% 100%,0 100%)}
.section-kicker{margin:0 0 18px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.28em;color:#70736b}
.section-kicker.light{color:rgba(255,255,255,.62)}
.script-note{margin:0;font-family:var(--script);font-size:30px;line-height:1.04;font-weight:400}
.script-note.light{color:rgba(255,255,255,.88)}
.outline-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:52px;min-width:238px;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:0 17px 0 21px;color:#fff;font-size:9px;letter-spacing:.15em;text-transform:uppercase;transition:.28s ease}
.outline-button b{font-size:18px;font-weight:400}.outline-button:hover{background:#fff;color:var(--green);transform:translateY(-2px)}

/* motion */
.reveal,.reveal-left,.reveal-right,.fade-reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .75s ease,transform .85s cubic-bezier(.2,.75,.18,1)}
.reveal-left{transform:translate3d(-28px,0,0)}.reveal-right{transform:translate3d(28px,0,0)}
.reveal.is-visible,.reveal-left.is-visible,.reveal-right.is-visible,.fade-reveal.is-visible{opacity:1;transform:none}
.clip-reveal{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(18px);transition:opacity .5s ease,clip-path .95s cubic-bezier(.2,.78,.18,1),transform .95s cubic-bezier(.2,.78,.18,1)}
.clip-reveal.is-visible{opacity:1;clip-path:inset(0);transform:none}
.motion-mask{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.2,.75,.18,1)}.motion-mask.is-visible{clip-path:inset(0)}

/* opening gate */
.invite-gate{position:fixed;inset:0;z-index:150;display:grid;grid-template-rows:auto 1fr;overflow:hidden;padding:max(18px,env(safe-area-inset-top)) clamp(18px,4vw,64px) max(22px,env(safe-area-inset-bottom));color:#fff;background:radial-gradient(circle at 50% 38%,rgba(103,139,103,.38),transparent 29%),linear-gradient(145deg,#102f21,#214a34 55%,#153a29)}
.invite-gate.is-hidden{visibility:hidden;pointer-events:none}
.gate-topline{position:relative;z-index:25;display:flex;justify-content:space-between;gap:20px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.16);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.gate-stage{position:relative;z-index:25;display:flex;min-height:0;flex-direction:column;align-items:center;justify-content:center;transition:opacity .55s ease,transform .8s cubic-bezier(.2,.75,.18,1)}
.gate-eyebrow{margin:0 0 20px;font-size:8px;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.gate-envelope{position:relative;width:min(680px,64vw);aspect-ratio:1.5;border:0;padding:0;background:transparent;cursor:pointer;perspective:1500px;filter:drop-shadow(0 36px 42px rgba(0,0,0,.23));transition:transform .45s cubic-bezier(.2,.75,.18,1)}
.gate-envelope:hover{transform:translateY(-6px) rotate(-.25deg)}
.gate-envelope-back,.gate-envelope-liner,.gate-envelope-left,.gate-envelope-right,.gate-envelope-bottom,.gate-envelope-flap,.gate-card{position:absolute;display:block}
.gate-envelope-back{inset:16% 2% 2%;background:#315e43;border:1px solid rgba(255,255,255,.06)}
.gate-envelope-liner{inset:17% 3% 30%;background:linear-gradient(145deg,#789071,#466c51 55%,#315b43);clip-path:polygon(0 0,100% 0,50% 100%)}
.gate-envelope-left,.gate-envelope-right,.gate-envelope-bottom{inset:16% 2% 2%;z-index:5;background:#315e43}.gate-envelope-left{clip-path:polygon(0 0,53% 53%,0 100%)}.gate-envelope-right{clip-path:polygon(100% 0,47% 53%,100% 100%);background:#294f3a}.gate-envelope-bottom{clip-path:polygon(0 100%,50% 46%,100% 100%);background:linear-gradient(#3a6a4d,#28503a)}
.gate-envelope-flap{inset:16% 2% 2%;z-index:8;background:linear-gradient(155deg,#3e6c4f,#264f39);clip-path:polygon(0 0,100% 0,50% 61%);transform-origin:50% 0;backface-visibility:hidden;transition:transform 1s cubic-bezier(.22,.74,.18,1),z-index .01s .45s}
.gate-card{z-index:4;left:10%;right:10%;top:24%;height:67%;background:#f5efe4;color:var(--green-deep);box-shadow:0 20px 60px rgba(0,0,0,.2);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateY(15%) rotate(.5deg);transition:transform 1.15s cubic-bezier(.18,.82,.18,1) .16s}
.gate-card::before{content:"";position:absolute;inset:0;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.55' numOctaves='4' type='fractalNoise'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E")}
.gate-card>*{position:relative}.gate-card small{font-size:8px;letter-spacing:.3em;text-transform:uppercase}.gate-card strong{margin:9px 0 2px;font-family:var(--serif);font-size:clamp(54px,6vw,90px);line-height:.9;font-weight:400;letter-spacing:-.07em}.gate-card em{font-family:var(--serif);font-size:19px;font-weight:400}
.gate-seal{position:absolute;z-index:10;left:50%;top:51%;width:84px;height:84px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 25%,#f5f0e7,#dcd3c5 57%,#baae9c);box-shadow:0 8px 20px rgba(0,0,0,.28),inset 0 0 0 4px rgba(255,255,255,.35),inset 0 0 0 9px rgba(90,80,65,.1);display:flex;align-items:center;justify-content:center;gap:1px;color:#4c4d47;font-family:var(--serif);font-size:25px;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .45s}.gate-seal::after{content:"";position:absolute;inset:8px;border:1px solid rgba(70,67,61,.24);border-radius:48% 52% 46% 54%;transform:rotate(-11deg)}.gate-seal i{font-style:italic;font-size:14px}.gate-seal b{font-weight:400}
.gate-names{display:flex;align-items:center;gap:14px;margin-top:8px;font-family:var(--serif);font-size:clamp(30px,3vw,44px);font-style:italic;color:rgba(255,255,255,.86)}.gate-names i{font-size:.65em;font-weight:400}.gate-hint{display:flex;align-items:center;gap:12px;margin:14px 0 0;font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.45)}.gate-hint i{font-style:normal;font-size:14px;animation:gateHint 1.8s ease-in-out infinite}@keyframes gateHint{50%{transform:translate(4px,4px)}}
.gate-orbit{position:absolute;border:1px solid rgba(255,255,255,.07);border-radius:50%}.gate-orbit-a{width:58vw;height:58vw;right:-27vw;top:-31vw}.gate-orbit-b{width:44vw;height:44vw;left:-19vw;bottom:-29vw}
.gate-reveal{position:absolute;z-index:18;top:0;bottom:0;width:51%;background:#153a29;transition:transform 1.05s cubic-bezier(.74,0,.18,1) 1.05s}.gate-reveal-left{left:0}.gate-reveal-right{right:0}
.invite-gate.is-opening .gate-envelope-flap{transform:rotateX(178deg);z-index:2}.invite-gate.is-opening .gate-card{transform:translateY(-48%) rotate(-.7deg) scale(1.035)}.invite-gate.is-opening .gate-seal{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(55deg)}.invite-gate.is-opening .gate-envelope{transform:translateY(22px) scale(1.025)}.invite-gate.is-revealing{background:transparent}.invite-gate.is-revealing .gate-stage,.invite-gate.is-revealing .gate-topline{opacity:0;transform:scale(1.055)}.invite-gate.is-revealing .gate-reveal-left{transform:translateX(-102%)}.invite-gate.is-revealing .gate-reveal-right{transform:translateX(102%)}

/* hero */
.hero-v22{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:100svh;padding:22px clamp(24px,5vw,80px) 28px;overflow:hidden;color:#fff;background:linear-gradient(135deg,#183e2c,#244f37 56%,#153827)}
.hero-v22-orbit{position:absolute;width:62vw;height:62vw;right:-33vw;top:-34vw;border:1px solid rgba(255,255,255,.06);border-radius:50%}
.hero-topline{position:relative;z-index:5;display:flex;justify-content:space-between;gap:24px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.16);font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.61)}
.hero-v22-grid{position:relative;z-index:4;display:grid;grid-template-columns:minmax(350px,.82fr) minmax(520px,1.18fr);gap:clamp(40px,6vw,92px);width:min(100%,var(--content));margin:0 auto;align-items:center;padding:34px 0 24px}
.hero-v22-copy{position:relative;z-index:8}.hero-v22-title{margin:0!important;color:#f7f2e8;font-family:var(--serif);font-size:clamp(78px,9.2vw,148px)!important;line-height:.58!important;font-weight:400;letter-spacing:-.075em!important;text-transform:uppercase}.hero-v22-title span{display:block}.hero-v22-title span:last-child{margin-left:12%}.hero-v22-title i{display:block;margin:12px 0 7px 28%;font-size:.4em;font-family:var(--serif);font-style:italic;font-weight:400;line-height:.8;color:#cad6c4}.hero-v22-line{width:min(300px,70%);height:1px;margin:30px 0 20px;background:rgba(255,255,255,.26)}.hero-v22-lead{max-width:450px;margin:0 0 26px;font-family:var(--serif);font-size:clamp(18px,1.5vw,24px);line-height:1.38;color:rgba(255,255,255,.72)}.hero-v22-date{display:flex;align-items:center;gap:13px}.hero-v22-date strong{font-family:var(--serif);font-size:clamp(66px,6vw,88px);line-height:.75;font-weight:400;letter-spacing:-.07em}.hero-v22-date span{font-size:8px;line-height:1.65;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.hero-v22-gallery{position:relative;height:min(72svh,720px);min-height:520px}.hero-main-photo,.hero-small-photo{position:absolute;margin:0;background:#f5efe4;box-shadow:0 28px 62px rgba(0,0,0,.26)}.hero-main-photo{top:2%;right:8%;width:70%;height:92%;padding:10px 10px 52px;transform:rotate(1.2deg)}.hero-main-photo img,.hero-small-photo img{height:100%;object-fit:cover}.hero-small-photo{padding:7px 7px 32px}.hero-small-a{left:0;bottom:2%;width:30%;height:38%;transform:rotate(-5deg)}.hero-small-b{right:0;top:0;width:26%;height:31%;transform:rotate(5deg)}.hero-small-photo figcaption{position:absolute;left:12px;bottom:10px;color:#596058;font-family:var(--serif);font-size:11px;font-style:italic}.hero-v22-script{position:absolute;z-index:8;left:2%;top:9%;margin:0;font-family:var(--script);font-size:clamp(24px,2.3vw,38px);line-height:.95;transform:rotate(-7deg);color:rgba(255,255,255,.9)}.hero-v22-index{position:absolute;right:1%;bottom:1%;font-size:7px;letter-spacing:.22em;color:rgba(255,255,255,.55)}.hero-v22-bottom{position:relative;z-index:4;display:flex;justify-content:space-between;align-items:center;width:min(100%,var(--content));margin:0 auto;font-size:7px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.48)}.hero-v22-bottom i{font-style:normal;font-size:15px;animation:heroDown 1.7s ease-in-out infinite}@keyframes heroDown{50%{transform:translateY(5px)}}
.hero-enter{opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .9s cubic-bezier(.2,.75,.18,1)}body.site-revealed .hero-enter{opacity:1;transform:none}.hero-enter-1{transition-delay:.08s}.hero-enter-2{transition-delay:.18s}.hero-enter-3{transition-delay:.3s}.hero-enter-4{transition-delay:.42s}.hero-enter-5{transition-delay:.55s}

/* story */
.intro-v22{position:relative;display:grid;grid-template-columns:minmax(320px,.8fr) minmax(520px,1.2fr);gap:clamp(52px,8vw,128px);min-height:1080px;padding:132px max(28px,calc((100vw - var(--content))/2 + 28px)) 150px;background:var(--ivory);overflow:hidden}.intro-watermark{position:absolute;right:-2vw;top:2%;font-family:var(--serif);font-size:15vw;line-height:1;color:rgba(36,75,52,.035);white-space:nowrap}.chapter-label{position:absolute;right:max(28px,calc((100vw - var(--content))/2 + 28px));top:70px;display:flex;align-items:center;gap:12px;color:#8a8d85;font-size:8px;letter-spacing:.2em;text-transform:uppercase}.chapter-label i{font-family:var(--serif);font-size:14px;text-transform:none;letter-spacing:0}.intro-sticky{position:sticky;top:12vh;align-self:start;padding-top:4vh;max-width:500px}.intro-title{margin:0 0 34px;font-family:var(--serif);font-size:clamp(72px,8vw,118px);line-height:.69;font-weight:400;letter-spacing:-.065em}.intro-title span{display:inline-block;margin-left:12%;font-family:var(--serif);font-style:italic;font-size:.74em}.intro-rule{width:120px;height:1px;margin:0 0 26px;background:#8c9188}.intro-text{max-width:455px;margin:0;font-family:var(--serif);font-size:clamp(19px,1.85vw,25px);line-height:1.42;color:#444942}.intro-sign{margin:25px 0 0;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--green)}.intro-quote{max-width:310px;margin:50px 0 0 16%;padding:0;border:0;font-family:var(--serif);font-size:18px;line-height:1.35;font-style:italic;color:#777b73}
.story-collage-v22{position:relative;height:900px;max-height:92vh;min-height:760px}.story-photo{position:absolute;margin:0;background:#faf5ea;padding:9px 9px 36px;box-shadow:0 24px 52px rgba(30,35,30,.14)}.story-photo img{width:100%;height:100%;object-fit:cover}.story-photo figcaption{position:absolute;left:13px;bottom:10px;font-family:var(--serif);font-size:12px;font-style:italic;color:#5e625c}.story-photo-1{left:2%;top:0;width:61%;height:48%;transform:rotate(-2.5deg)}.story-photo-2{right:0;top:25%;width:53%;height:40%;transform:rotate(3.4deg)}.story-photo-3{left:7%;bottom:0;width:51%;height:37%;transform:rotate(2deg)}.story-photo-4{right:5%;bottom:3%;width:31%;height:27%;transform:rotate(-4deg)}.story-side-label{position:absolute;right:-9px;top:4%;font-size:7px;letter-spacing:.26em;writing-mode:vertical-rl;color:#969a91}.story-stamp{position:absolute;z-index:10;right:7%;bottom:25%;width:92px;height:92px;border:1px solid rgba(36,75,52,.45);border-radius:50%;display:grid;place-items:center;text-align:center;font-family:var(--serif);font-size:27px;line-height:.75;color:var(--green);transform:rotate(9deg);background:rgba(243,238,227,.76);backdrop-filter:blur(4px)}.story-stamp span{font-size:9px;letter-spacing:.2em}.story-script{position:absolute;right:5%;top:10%;z-index:5;margin:0;font-family:var(--script);font-size:35px;color:var(--green);transform:rotate(8deg)}

/* date */
.date-scene{position:relative;overflow:hidden;background:var(--green);color:#fff;padding-bottom:115px}.date-photo-band{position:relative;height:240px;overflow:hidden}.date-photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,75,52,0) 20%,var(--green) 100%)}.date-photo-band img{height:100%;object-fit:cover;filter:saturate(.58) contrast(.92) brightness(.9)}.date-ghost{position:absolute;left:-4vw;bottom:-12vw;font-family:var(--serif);font-size:46vw;line-height:.75;color:rgba(255,255,255,.027);letter-spacing:-.1em;pointer-events:none}.date-stage{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);grid-template-areas:"head cal" "meta cal" "count count";gap:34px 74px;width:min(calc(100% - 56px),1220px);margin:-26px auto 0}.date-head{grid-area:head;align-self:end}.date-title{margin:0;font-family:var(--serif);font-size:clamp(96px,12vw,176px);line-height:.58;font-weight:400;letter-spacing:-.075em}.date-title span{display:block}.date-title span:last-child{margin-left:9%}.date-head .script-note{margin:20px 0 0 42%;font-size:29px}.calendar-wrap{grid-area:cal;position:relative;align-self:end;padding:26px 0 2px;border-top:1px solid rgba(255,255,255,.25)}.calendar-month{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;font-family:var(--serif);font-size:28px}.calendar-month span{font-size:11px;letter-spacing:.18em}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-week{margin-bottom:11px;font-size:7px;letter-spacing:.14em;color:rgba(255,255,255,.48)}.calendar-grid{row-gap:12px;font-family:var(--serif);font-size:18px}.calendar-grid span{display:grid;place-items:center;min-height:26px}.wedding-day{position:relative;z-index:2;color:#fff}.heart-draw{position:absolute;width:58px;height:54px;pointer-events:none;fill:none;stroke:#d7e0d2;stroke-width:1.5;stroke-dasharray:240;stroke-dashoffset:240;transition:stroke-dashoffset 1.3s cubic-bezier(.2,.72,.18,1)}.heart-draw.draw{stroke-dashoffset:0}.date-meta{grid-area:meta;display:flex;align-items:flex-end;gap:20px}.date-meta strong{font-family:var(--serif);font-size:98px;line-height:.72;font-weight:400;letter-spacing:-.08em}.date-meta span{font-size:9px;letter-spacing:.2em;text-transform:uppercase}.date-meta p{margin:0 0 4px auto;font-family:var(--serif);font-size:18px;line-height:1.35;color:rgba(255,255,255,.66)}.countdown{grid-area:count;display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px;border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22)}.countdown>div{padding:18px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.17)}.countdown>div:last-child{border-right:0}.countdown strong{display:block;font-family:var(--serif);font-size:42px;font-weight:400;line-height:1}.countdown span{display:block;margin-top:5px;font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.52)}

/* program */
.program{position:relative;padding:132px max(28px,calc((100vw - var(--content))/2 + 28px)) 150px;overflow:hidden}.program-ghost{position:absolute;right:-3vw;top:5%;font-family:var(--serif);font-size:16vw;line-height:1;color:rgba(36,75,52,.035);pointer-events:none}.program-heading{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr .55fr;gap:54px;align-items:end;max-width:1180px;margin:0 auto 70px}.program-heading .section-kicker{grid-column:1/-1}.program-title{margin:0;font-family:var(--serif);font-size:clamp(68px,8.8vw,126px);line-height:.7;font-weight:400;letter-spacing:-.06em}.program-title span{display:inline-block;margin-left:16%;font-family:var(--serif);font-style:italic;font-size:.67em}.program-note{margin:0 0 8px;font-family:var(--serif);font-size:21px;line-height:1.36;color:#646861}.timeline-stage{position:relative;width:min(100%,1120px);height:1050px;margin:0 auto}.timeline-path{position:absolute;left:50%;top:0;width:280px;height:100%;transform:translateX(-50%);overflow:visible}.timeline-path path{fill:none;stroke:#6e806f;stroke-width:1.3;stroke-dasharray:1800;stroke-dashoffset:1800}.timeline-event{position:absolute;top:var(--y);width:43%;display:grid;grid-template-columns:56px 74px minmax(0,1fr);gap:13px;align-items:start;padding:13px 0;border-top:1px solid var(--line)}.event-left{left:0}.event-right{right:0}.event-icon{width:48px;height:48px;border:1px solid #8b9288;border-radius:50%;display:grid;place-items:center}.event-icon svg{width:25px;height:25px;fill:none;stroke:#536256;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.timeline-event time{padding-top:7px;font-family:var(--serif);font-size:23px}.timeline-event h3{margin:3px 0 5px;font-family:var(--serif);font-size:30px;font-weight:400;line-height:1}.timeline-event p{margin:0;font-family:var(--serif);font-size:15px;line-height:1.4;color:#6b6f68}

/* location */
.location-v22{position:relative;overflow:hidden;background:var(--green-deep);color:#fff;padding:118px max(28px,calc((100vw - var(--content))/2 + 28px)) 120px}.location-header-v22{display:grid;grid-template-columns:1.2fr .55fr;gap:60px;align-items:end;width:min(100%,var(--content));margin:0 auto 54px}.location-title-v22{margin:0;font-family:var(--serif);font-size:clamp(96px,13.5vw,200px);line-height:.53;font-weight:400;letter-spacing:-.085em}.location-title-v22 span{display:block}.location-title-v22 span:last-child{margin-left:13%}.location-header-note{max-width:410px;margin:0 0 7px;font-family:var(--serif);font-size:21px;line-height:1.4;color:rgba(255,255,255,.65)}.location-layout-v22{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:22px;width:min(100%,var(--content));margin:0 auto;align-items:stretch}.location-photo-v22{position:relative;min-height:620px;margin:0;overflow:hidden}.location-photo-v22 img{width:100%;height:100%;object-fit:cover;filter:saturate(.62) contrast(.98) brightness(.87)}.location-photo-v22::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(5,23,14,.45))}.location-photo-v22 figcaption{position:absolute;z-index:2;left:22px;bottom:18px;font-size:7px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.66)}.location-card-v22{display:flex;flex-direction:column;min-height:620px;padding:38px 34px 32px;background:#f3eee3;color:var(--ink)}.location-card-index{font-size:7px;letter-spacing:.22em;color:#85877e}.location-card-script{margin:62px 0 0;font-family:var(--serif);font-size:23px;font-style:italic;color:var(--green)}.location-card-v22 h3{margin:7px 0 22px;font-family:var(--serif);font-size:clamp(52px,5vw,76px);line-height:.8;font-weight:400;letter-spacing:-.055em}.location-address{margin:0;font-family:var(--serif);font-size:20px;line-height:1.36;color:#555b55}.location-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.location-facts div{display:flex;flex-direction:column;gap:4px}.location-facts small{font-size:7px;letter-spacing:.17em;text-transform:uppercase;color:#898b83}.location-facts strong{font-family:var(--serif);font-size:24px;font-weight:400}.location-map-button{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:0 15px 0 18px;border:1px solid #53645a;font-size:8px;letter-spacing:.17em;text-transform:uppercase;transition:.28s}.location-map-button:hover{background:var(--green);color:#fff}.location-map-button i{font-style:normal;font-size:17px}.location-card-note{margin:auto 0 0;padding-top:22px;font-size:9px;line-height:1.5;color:#8b8d85}.location-signature{width:min(100%,var(--content));margin:28px auto 0;text-align:right;font-family:var(--serif);font-size:27px;font-style:italic;color:rgba(255,255,255,.68)}

/* dress */
.dress-v22{padding:126px 0 135px;overflow:hidden}.dress-intro{display:grid;grid-template-columns:1.1fr .72fr;gap:64px;align-items:end;width:min(calc(100% - 56px),var(--content));margin:0 auto 65px}.dress-title{margin:0;font-family:var(--serif);font-size:clamp(96px,14vw,205px);line-height:.5;font-weight:400;letter-spacing:-.085em}.dress-title span{display:inline-block;margin-left:23%;font-size:.7em}.dress-copy{max-width:520px;padding-bottom:5px}.dress-copy p{margin:0;font-family:var(--serif);font-size:23px;line-height:1.4;color:#575b54}.palette{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px}.palette span{width:38px;height:38px;border:1px solid rgba(0,0,0,.08);border-radius:50%;background:var(--c);transition:transform .25s}.palette span:hover{transform:translateY(-4px) scale(1.06)}.lookbook-head{display:flex;justify-content:space-between;align-items:center;gap:24px;width:min(calc(100% - 56px),var(--content));margin:0 auto 15px;font-family:var(--serif);font-size:19px}.lookbook-head>div:first-child{display:flex;align-items:baseline;gap:15px}.lookbook-head small{font-family:var(--sans);font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:#898b83}.lookbook-controls{display:flex;align-items:center;gap:9px}.lookbook-controls button{width:40px;height:40px;border:1px solid #9b9c93;border-radius:50%;background:transparent;color:var(--ink);font-family:var(--serif);font-size:19px;cursor:pointer;transition:.25s}.lookbook-controls button:hover{background:var(--green);border-color:var(--green);color:#fff}.lookbook-counter{min-width:54px;text-align:center;font-family:var(--serif);font-size:14px;color:#77786f}.lookbook-counter b{font-weight:500;color:var(--ink)}.lookbook-wrap{position:relative}.lookbook{position:relative;display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;padding:0 max(28px,calc((100vw - var(--content))/2 + 28px)) 26px;cursor:grab;scrollbar-width:none;user-select:none;scroll-snap-type:x mandatory;scroll-padding-left:max(28px,calc((100vw - var(--content))/2 + 28px));overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:auto}.lookbook::-webkit-scrollbar{display:none}.lookbook.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.look{position:relative;flex:0 0 clamp(280px,24vw,390px);margin:0;scroll-snap-align:start;transition:opacity .35s,transform .45s cubic-bezier(.2,.75,.18,1)}.look:nth-child(even){margin-top:52px}.look img{aspect-ratio:.72;object-fit:cover;pointer-events:none;-webkit-user-drag:none;filter:saturate(.68) contrast(.96);transition:transform .7s ease,filter .4s}.look.is-active{transform:translateY(-4px)}.look:not(.is-active){opacity:.73}.look:hover img{transform:scale(1.014);filter:saturate(.84)}.look::before{content:attr(data-index);position:absolute;z-index:3;left:13px;top:10px;font-family:var(--serif);font-size:26px;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.3)}.look figcaption{margin-top:9px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--serif);font-size:13px;letter-spacing:.07em;color:#65685f}.lookbook-progress{height:1px;margin:14px max(28px,calc((100vw - var(--content))/2 + 28px)) 0;overflow:hidden;background:#d4d0c5}.lookbook-progress span{display:block;width:100%;height:100%;background:var(--green);transform:scaleX(.2);transform-origin:left;transition:transform .18s linear}

/* details */
.details-scene{position:relative;overflow:hidden;background:var(--green);color:#fff;padding:126px max(28px,calc((100vw - var(--content))/2 + 28px)) 135px}.details-scene::before{content:"";position:absolute;width:520px;height:520px;right:-190px;top:-200px;border:1px solid rgba(255,255,255,.07);border-radius:50%}.details-title-wrap{width:min(100%,var(--content));margin:0 auto}.details-title{margin:0;font-family:var(--serif);font-size:clamp(90px,15vw,220px);line-height:.66;font-weight:400;letter-spacing:-.075em}.details-sub{max-width:420px;margin:24px 0 0;font-family:var(--serif);font-size:19px;line-height:1.4;color:rgba(255,255,255,.64)}.details-cards{display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:18px;width:min(100%,1200px);margin:76px auto 0}.detail-card{position:relative;display:flex;min-height:410px;flex-direction:column;justify-content:flex-end;padding:30px;border:1px solid rgba(255,255,255,.19);overflow:hidden}.detail-card svg{position:absolute;right:30px;top:32px;width:70px;height:70px;fill:none;stroke:rgba(255,255,255,.48);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.detail-number{position:absolute;left:30px;top:29px;font-size:8px;letter-spacing:.2em;color:rgba(255,255,255,.45)}.detail-card h3{margin:0 0 13px;font-family:var(--serif);font-size:40px;font-weight:400}.detail-card p{margin:0;font-family:var(--serif);font-size:17px;line-height:1.42;color:rgba(255,255,255,.72)}.detail-card-photo{padding:0}.detail-card-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(11,35,22,.94))}.detail-card-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.55)}.detail-card-photo>div{position:relative;z-index:2;padding:30px}.detail-card-photo .detail-number{position:static;display:block;margin:0 0 145px}

/* RSVP */
.rsvp{padding:126px max(28px,calc((100vw - var(--content))/2 + 28px)) 135px}.rsvp-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(56px,8vw,115px);width:min(100%,1260px);margin:0 auto;padding:60px 0 66px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rsvp-heading{position:sticky;top:14vh;align-self:start}.rsvp-title{margin:0;font-family:var(--serif);font-size:clamp(90px,11vw,155px);line-height:.72;font-weight:400;letter-spacing:-.08em}.rsvp-heading .script-note{margin:18px 0 0 12%;font-family:var(--serif);font-size:34px;font-style:italic;color:var(--green)}.rsvp-form{display:grid;grid-template-columns:1fr 1fr;gap:33px 40px}.rsvp-form>.line-field:first-child,.rsvp-form>.line-field:last-of-type,.submit-button{grid-column:1/-1}.line-field{display:block}.line-field>span,.rsvp-form legend{display:block;margin-bottom:12px;font-size:8px;letter-spacing:.21em;text-transform:uppercase;color:#74766f}.line-field input,.line-field textarea{width:100%;border:0;border-bottom:1px solid #8d8f87;border-radius:0;outline:0;background:transparent;padding:8px 0 12px;color:var(--ink);font-family:var(--serif);font-size:24px;resize:none}.line-field input::placeholder,.line-field textarea::placeholder{color:#a0a29a}.rsvp-form fieldset{display:grid;gap:10px;margin:0;padding:0;border:0;align-content:start}.radio-line{position:relative;display:flex;align-items:center;gap:12px;cursor:pointer}.radio-line input,.drink-chips input{position:absolute;opacity:0;pointer-events:none}.radio-line>span{width:18px;height:18px;border:1px solid #85877f;border-radius:50%;display:grid;place-items:center}.radio-line>span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);transform:scale(0);transition:.18s}.radio-line input:checked+span::after{transform:scale(1)}.radio-line b{font-family:var(--serif);font-size:19px;font-weight:400}.drink-chips{display:flex;flex-wrap:wrap;gap:8px}.drink-chips label{cursor:pointer}.drink-chips span{display:inline-flex;padding:9px 14px;border:1px solid #a3a49d;border-radius:999px;font-family:var(--serif);font-size:15px;transition:.18s}.drink-chips input:checked+span{background:var(--green);border-color:var(--green);color:#fff}.submit-button{display:flex;align-items:center;justify-content:space-between;min-height:60px;border:0;background:var(--green);color:#fff;padding:0 18px 0 22px;cursor:pointer;font-size:8px;letter-spacing:.19em;text-transform:uppercase;transition:.25s}.submit-button:hover{background:#193d29}.submit-button i{font-style:normal;font-size:18px}.rsvp-success{display:none;min-height:420px;align-items:center;justify-content:center;flex-direction:column;text-align:center;border:1px solid var(--line)}.rsvp-success.show{display:flex}.rsvp-success>span{font-size:34px;color:var(--green)}.rsvp-success h3{margin:10px 0 2px;font-family:var(--serif);font-size:58px;font-style:italic;font-weight:400;color:var(--green)}.rsvp-success p{font-family:var(--serif);font-size:23px}.rsvp-layout.sent .rsvp-form{display:none}

/* chat */
.chat-v22{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(520px,1.22fr);gap:clamp(52px,8vw,120px);align-items:center;min-height:780px;padding:105px max(28px,calc((100vw - var(--content))/2 + 28px));background:var(--green-deep);color:#fff;overflow:hidden}.chat-copy{max-width:500px}.chat-title{margin:0 0 26px;font-family:var(--serif);font-size:clamp(82px,9vw,138px);line-height:.62;font-weight:400;letter-spacing:-.075em}.chat-copy>p:not(.section-kicker){max-width:430px;margin:0 0 30px;font-family:var(--serif);font-size:20px;line-height:1.42;color:rgba(255,255,255,.68)}.chat-editorial{position:relative;min-height:590px}.chat-photo-v22{position:absolute;inset:0 14% 0 0;margin:0;overflow:hidden}.chat-photo-v22::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,25,15,.08),rgba(7,25,15,.35))}.chat-photo-v22 img{width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(.78)}.guest-pass{position:absolute;z-index:3;right:0;top:50%;width:min(390px,52%);min-height:450px;padding:28px 28px 26px;background:#f1eadc;color:var(--ink);box-shadow:0 34px 78px rgba(0,0,0,.35);transform:translateY(-50%) rotate(2deg)}.guest-pass-top{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:7px;letter-spacing:.18em}.guest-pass-top i{font-style:normal}.guest-pass-avatar{display:flex;align-items:center;justify-content:center;width:76px;height:76px;margin:34px 0 24px;border:1px solid #829084;border-radius:50%;font-family:var(--serif);font-size:27px;color:var(--green)}.guest-pass-avatar span{margin:0 2px;font-size:.6em;font-style:italic}.guest-pass-label{margin:0 0 7px!important;font-family:var(--sans)!important;font-size:7px!important;letter-spacing:.2em;text-transform:uppercase;color:#83867e!important}.guest-pass h3{margin:0 0 13px;font-family:var(--serif);font-size:42px;font-weight:400}.guest-pass>p:not(.guest-pass-label){margin:0;font-family:var(--serif);font-size:16px;line-height:1.42;color:#5f635d}.guest-pass-meta{display:flex;justify-content:space-between;gap:12px;margin:28px 0 22px;padding-top:15px;border-top:1px solid var(--line);font-family:var(--serif);font-size:13px;color:#70746d}.guest-pass>a{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 14px;border:1px solid #526457;font-size:8px;letter-spacing:.17em;text-transform:uppercase}.guest-pass>a i{font-style:normal;font-size:16px}.chat-ticket{position:absolute;left:2%;bottom:4%;z-index:4;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#eee6d7;color:#29382e;transform:rotate(-6deg);box-shadow:0 12px 24px rgba(0,0,0,.18);font-size:7px;letter-spacing:.18em}.chat-ticket b{font-family:var(--serif);font-size:15px;font-weight:400}

/* contacts */
.contacts{padding:118px max(28px,calc((100vw - var(--content))/2 + 28px)) 128px}.contacts-heading{width:min(100%,1260px);margin:0 auto 50px}.contacts-title{margin:0;font-family:var(--serif);font-size:clamp(90px,13vw,178px);line-height:.66;font-weight:400;letter-spacing:-.075em}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;width:min(100%,1260px);margin:0 auto}.contact-person{display:grid;grid-template-columns:.82fr 1fr;gap:26px;align-items:center;padding-top:18px;border-top:1px solid var(--line)}.contact-person figure{margin:0;aspect-ratio:.82;overflow:hidden;box-shadow:0 18px 44px rgba(31,37,33,.12)}.contact-person img{width:100%;height:100%;object-fit:cover}.contact-person span{font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:#85877f}.contact-person h3{margin:6px 0 8px;font-family:var(--serif);font-size:42px;font-weight:400}.contact-person p{margin:0 0 19px;font-family:var(--serif);font-size:16px;line-height:1.38;color:#646862}.contact-person a{font-size:9px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #829084;padding-bottom:5px}

/* finale */
.finale{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);grid-template-rows:auto auto;gap:38px 66px;align-items:center;min-height:860px;padding:100px max(28px,calc((100vw - var(--content))/2 + 28px)) 64px;background:radial-gradient(circle at 72% 45%,#315d41,transparent 36%),var(--green);color:#fff;overflow:hidden}.finale-watermark{position:absolute;z-index:-1;right:-3vw;top:4%;font-family:var(--serif);font-size:24vw;line-height:.7;color:rgba(255,255,255,.028);letter-spacing:-.09em}.finale-count{max-width:760px}.finale-title{margin:0;font-family:var(--serif);font-size:clamp(82px,10vw,152px);line-height:.6;font-weight:400;letter-spacing:-.075em}.finale .countdown{margin-top:44px}.countdown-light{border-color:rgba(255,255,255,.22)}.final-polaroid{width:min(430px,33vw);margin:10px auto;background:#f5efe3;padding:11px 11px 55px;box-shadow:0 36px 86px rgba(0,0,0,.34)}.final-polaroid img{aspect-ratio:.78;object-fit:cover}.final-polaroid figcaption{margin-top:12px;color:#314239;font-family:var(--serif);font-size:25px;font-style:italic}.final-signature{grid-column:1/-1;margin-top:0;padding-top:34px;border-top:1px solid rgba(255,255,255,.14)}.final-signature span{display:block;margin-bottom:5px;font-family:var(--serif);font-size:17px;color:rgba(255,255,255,.58)}.final-signature strong{font-family:var(--serif);font-size:45px;font-style:italic;font-weight:400}.final-signature i{font-size:.65em;font-weight:400}
img.image-failed{min-height:220px;background:linear-gradient(135deg,#d9d3c5,#a7b09f)}

/* tablet */
@media (max-width:1100px) and (min-width:769px){
  .hero-v22-grid{grid-template-columns:.82fr 1.18fr;gap:34px}.hero-v22-title{font-size:78px!important}.hero-v22-gallery{height:620px;min-height:0}.hero-main-photo{width:74%;right:7%}.hero-small-a{width:31%}.hero-small-b{width:27%}
  .intro-v22{grid-template-columns:.82fr 1.18fr;padding-inline:54px;gap:42px}.story-collage-v22{height:790px;min-height:0}
  .date-stage{grid-template-columns:1fr .95fr;gap:30px 44px}.date-title{font-size:100px}.date-meta strong{font-size:82px}
  .program{padding-inline:54px}.timeline-event{width:45%;grid-template-columns:48px 62px 1fr}.timeline-event h3{font-size:26px}.timeline-event time{font-size:20px}
  .location-v22{padding-inline:54px}.location-layout-v22{grid-template-columns:1.12fr .88fr}.location-card-v22{padding:34px 28px}.location-header-v22{grid-template-columns:1fr .65fr}.location-title-v22{font-size:120px}
  .dress-intro,.lookbook-head{width:calc(100% - 108px)}.dress-title{font-size:125px}.dress-copy p{font-size:20px}
  .details-scene,.rsvp,.chat-v22,.contacts,.finale{padding-left:54px;padding-right:54px}.details-cards{gap:14px}.detail-card{padding:24px}.detail-card p{font-size:15px}.rsvp-layout{gap:52px}.chat-v22{grid-template-columns:.72fr 1.28fr;gap:42px}.guest-pass{width:57%}.contact-person{grid-template-columns:.72fr 1fr}.finale{grid-template-columns:1fr .8fr}.final-polaroid{width:360px}
}

/* mobile */
@media (max-width:768px){
  .section-kicker{font-size:8px;letter-spacing:.24em;margin-bottom:15px}.torn-top::before{top:-17px;height:34px}
  .invite-gate{padding:14px 14px max(20px,env(safe-area-inset-bottom))}.gate-topline{font-size:6px;letter-spacing:.2em;padding-bottom:10px}.gate-topline span:last-child{white-space:nowrap}.gate-stage{justify-content:center}.gate-eyebrow{margin-bottom:10px;font-size:6px}.gate-envelope{width:min(96vw,520px);aspect-ratio:1.34}.gate-envelope-back,.gate-envelope-left,.gate-envelope-right,.gate-envelope-bottom,.gate-envelope-flap{inset:19% 3% 4%}.gate-envelope-liner{inset:20% 4% 32%}.gate-card{left:10%;right:10%;top:28%;height:63%}.gate-card strong{font-size:48px}.gate-card small{font-size:6px}.gate-card em{font-size:14px}.gate-seal{width:64px;height:64px;font-size:19px}.gate-names{font-size:29px;margin-top:0}.gate-hint{font-size:6px;margin-top:8px}.gate-orbit-a{width:112vw;height:112vw;right:-73vw;top:-55vw}.gate-orbit-b{width:105vw;height:105vw;left:-68vw;bottom:-69vw}

  .hero-v22{min-height:auto;padding:14px 18px 20px}.hero-topline{font-size:6px;letter-spacing:.18em;padding-bottom:10px}.hero-topline span:last-child{text-align:right}.hero-v22-grid{display:flex;flex-direction:column;gap:0;padding:27px 0 10px}.hero-v22-copy{width:100%}.hero-v22-title{font-size:18.5vw!important;line-height:.59!important}.hero-v22-title span:last-child{margin-left:9%}.hero-v22-title i{margin:7px 0 4px 28%;font-size:.38em}.hero-v22-line{width:52%;margin:17px 0 13px}.hero-v22-lead{max-width:320px;margin-bottom:15px;font-size:16px;line-height:1.36}.hero-v22-date{position:static;gap:8px}.hero-v22-date strong{font-size:55px}.hero-v22-date span{font-size:6px}.hero-v22-gallery{width:100%;height:clamp(365px,105vw,455px);min-height:0;margin-top:15px}.hero-main-photo{top:2%;right:7%;width:74%;height:91%;padding:7px 7px 34px}.hero-small-a{left:0;bottom:2%;width:32%;height:36%;padding:5px 5px 24px}.hero-small-b{right:0;top:0;width:27%;height:29%;padding:5px 5px 22px}.hero-v22-script{left:0;top:9%;font-size:22px}.hero-small-photo figcaption{left:8px;bottom:7px;font-size:8px}.hero-v22-index{font-size:5px}.hero-v22-bottom{font-size:5px;margin-top:4px}.hero-v22-bottom i{font-size:12px}

  .intro-v22{display:block;min-height:auto;padding:82px 20px 92px}.intro-watermark,.chapter-label{display:none}.intro-sticky{position:relative;top:auto;max-width:none;padding:0}.intro-title{font-size:19vw;line-height:.66;margin-bottom:22px}.intro-title span{margin-left:7%;font-size:.75em}.intro-rule{margin-bottom:20px}.intro-text{max-width:340px;font-size:18px;line-height:1.42}.intro-sign{font-size:18px}.intro-quote{max-width:250px;margin:32px 0 0 16%;font-size:15px}.story-collage-v22{height:clamp(600px,165vw,680px);min-height:0;max-height:none;margin-top:40px}.story-photo{padding:6px 6px 27px}.story-photo-1{left:0;width:69%;height:48%}.story-photo-2{right:0;top:30%;width:58%;height:40%}.story-photo-3{left:3%;bottom:0;width:57%;height:36%}.story-photo-4{right:2%;bottom:1%;width:34%;height:27%}.story-stamp{right:4%;bottom:24%;width:76px;height:76px;font-size:22px}.story-script{right:2%;top:10%;font-size:27px}.story-side-label{display:none}

  .date-scene{padding-bottom:78px}.date-photo-band{height:170px}.date-stage{display:block;width:auto;margin:-12px 20px 0}.date-title{font-size:27vw;line-height:.59}.date-title span:last-child{margin-left:7%}.date-head .script-note{margin:12px 0 0 52%;font-size:21px}.calendar-wrap{margin-top:31px;padding-top:19px}.calendar-month{font-size:22px;margin-bottom:14px}.calendar-grid{font-size:16px;row-gap:9px}.calendar-grid span{min-height:24px}.heart-draw{width:52px;height:47px}.date-meta{margin-top:27px;gap:14px}.date-meta strong{font-size:76px}.date-meta p{margin:0 0 3px auto;font-size:14px}.date-meta span{font-size:7px}.countdown{margin-top:25px}.countdown>div{padding:13px 3px}.countdown strong{font-size:27px}.countdown span{font-size:6px;letter-spacing:.1em}.date-ghost{font-size:82vw;left:-12vw;bottom:-9vw}

  .program{padding:82px 20px 92px}.program-ghost{display:none}.program-heading{display:block;margin-bottom:36px}.program-title{font-size:17.8vw;line-height:.72}.program-title span{margin-left:8%;font-size:.7em}.program-note{max-width:310px;margin-top:24px;font-size:16px}.timeline-stage{height:auto;margin:0}.timeline-path{display:none}.timeline-stage::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:1px;background:#a7aca2}.timeline-event{position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:100%;min-height:0;display:grid;grid-template-columns:44px 58px minmax(0,1fr);gap:10px;padding:18px 0 22px;border-top:1px solid var(--line)}.event-icon{position:relative;z-index:2;width:42px;height:42px;background:var(--ivory)}.event-icon svg{width:22px;height:22px}.timeline-event time{font-size:19px;padding-top:6px}.timeline-event h3{margin-top:4px;font-size:24px}.timeline-event p{font-size:13px}

  .location-v22{padding:82px 18px 88px}.location-header-v22{display:block;margin-bottom:32px}.location-title-v22{font-size:25.5vw;line-height:.56}.location-title-v22 span:last-child{margin-left:10%}.location-header-note{max-width:320px;margin:24px 0 0;font-size:17px}.location-layout-v22{display:flex;flex-direction:column;gap:12px}.location-photo-v22{min-height:0;height:clamp(365px,112vw,520px)}.location-card-v22{min-height:0;padding:30px 23px 25px}.location-card-script{margin-top:36px;font-size:19px}.location-card-v22 h3{font-size:50px}.location-address{font-size:17px}.location-facts{margin:24px 0}.location-facts strong{font-size:21px}.location-card-note{margin-top:24px}.location-signature{margin-top:25px;text-align:left;font-size:21px}

  .dress-v22{padding:82px 0 92px}.dress-intro{display:block;width:auto;margin:0 20px 37px}.dress-title{font-size:28vw;line-height:.52}.dress-title span{margin-left:16%}.dress-copy{max-width:350px;margin-top:28px}.dress-copy p{font-size:17px}.palette{gap:7px;margin-top:20px}.palette span{width:30px;height:30px}.lookbook-head{width:auto;margin:0 20px 12px;align-items:flex-end}.lookbook-head>div:first-child{display:block}.lookbook-head small{display:block;margin-top:3px;font-size:6px}.lookbook-controls{gap:5px}.lookbook-controls button{width:34px;height:34px}.lookbook-counter{min-width:48px;font-size:12px}.lookbook{gap:12px;padding:0 20px 22px;scroll-padding-left:20px}.look{flex:0 0 min(79vw,318px)}.look:nth-child(even){margin-top:26px}.look figcaption{font-size:10px}.look::before{font-size:22px}.lookbook-progress{margin:12px 20px 0}

  .details-scene{padding:82px 20px 90px}.details-title{font-size:27vw}.details-sub{max-width:310px;margin-top:18px;font-size:16px}.details-cards{display:grid;grid-template-columns:1fr;gap:12px;width:100%;margin-top:42px}.detail-card{min-height:330px;padding:24px}.detail-card svg{right:24px;top:25px;width:60px;height:60px}.detail-number{left:24px;top:24px}.detail-card h3{font-size:38px}.detail-card p{font-size:15px}.detail-card-photo{min-height:390px}.detail-card-photo>div{padding:24px}.detail-card-photo .detail-number{margin-bottom:130px}

  .rsvp{padding:82px 20px 90px}.rsvp-layout{display:block;width:100%;padding:42px 0 0;border-bottom:0}.rsvp-heading{position:relative;top:auto;margin-bottom:38px}.rsvp-title{font-size:27vw}.rsvp-heading .script-note{margin:12px 0 0 15%;font-size:28px}.rsvp-form{grid-template-columns:1fr;gap:27px}.rsvp-form>.line-field:first-child,.rsvp-form>.line-field:last-of-type,.submit-button{grid-column:auto}.line-field input,.line-field textarea{font-size:20px}.radio-line b{font-size:17px}.drink-chips span{font-size:13px;padding:8px 12px}.rsvp-success{min-height:340px}.rsvp-success h3{font-size:50px}

  .chat-v22{display:block;min-height:0;padding:82px 20px 92px}.chat-copy{max-width:340px}.chat-title{font-size:23vw;line-height:.66;margin-bottom:21px}.chat-copy>p:not(.section-kicker){font-size:17px;margin-bottom:26px}.chat-editorial{min-height:0;margin-top:44px;padding-bottom:8px}.chat-photo-v22{position:relative;inset:auto;width:100%;height:clamp(360px,110vw,500px)}.guest-pass{position:relative;right:auto;top:auto;width:calc(100% - 26px);min-height:0;margin:-52px 13px 0;padding:23px 22px 22px;transform:rotate(1.3deg)!important}.guest-pass-avatar{width:66px;height:66px;margin:27px 0 20px}.guest-pass h3{font-size:37px}.guest-pass>p:not(.guest-pass-label){font-size:14px}.guest-pass-meta{margin:23px 0 18px}.chat-ticket{left:6px;bottom:12px;font-size:6px}

  .contacts{padding:82px 20px 90px}.contacts-heading{margin-bottom:38px}.contacts-title{font-size:25vw}.contact-grid{grid-template-columns:1fr;gap:38px}.contact-person{grid-template-columns:minmax(118px,.72fr) 1fr;gap:19px}.contact-person h3{font-size:34px}.contact-person p{font-size:14px}.contact-person a{font-size:8px}

  .finale{display:block;min-height:0;padding:82px 20px max(52px,env(safe-area-inset-bottom))}.finale-watermark{right:-25vw;top:5%;font-size:68vw}.finale-title{font-size:21.5vw;line-height:.64}.finale .countdown{margin-top:32px}.final-polaroid{width:min(84vw,390px);margin:52px auto 31px;padding:8px 8px 42px}.final-polaroid figcaption{font-size:20px}.final-signature{margin-top:22px;padding-top:27px}.final-signature strong{font-size:37px}.final-signature span{font-size:14px}
}

@media (max-width:420px){
  .hero-v22-title{font-size:18vw!important}.hero-v22-gallery{height:390px}.hero-v22-lead{font-size:15px}.hero-v22-date strong{font-size:51px}
  .story-collage-v22{height:610px}.intro-title{font-size:18.5vw}
  .date-title{font-size:26.5vw}.calendar-grid{font-size:15px}.date-meta strong{font-size:70px}.countdown strong{font-size:24px}
  .program-title{font-size:17vw}.timeline-event{grid-template-columns:42px 54px 1fr}.timeline-event h3{font-size:22px}
  .location-title-v22{font-size:25vw}.location-card-v22 h3{font-size:46px}
  .dress-title{font-size:27vw}.look{flex-basis:80vw}
  .details-title{font-size:26vw}.rsvp-title{font-size:26vw}.contacts-title{font-size:24vw}.finale-title{font-size:20.5vw}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal,.reveal-left,.reveal-right,.fade-reveal,.clip-reveal,.motion-mask,.hero-enter,.gate-envelope,.gate-card,.gate-envelope-flap,.gate-seal,.gate-reveal,.gate-stage{transition:none!important;animation:none!important}.reveal,.reveal-left,.reveal-right,.fade-reveal,.clip-reveal,.motion-mask,.hero-enter{opacity:1!important;transform:none!important;clip-path:none!important}.gate-hint i,.hero-v22-bottom i{animation:none!important}
}

/* V2.3.1 — local venue artwork: no external CDN dependency */
.location-photo-v22{background:#263d30}
.location-photo-v22 img{display:block;object-position:center 52%;background:#263d30}
@media(max-width:760px){.location-photo-v22 img{object-position:center 50%}}


/* =========================================================
   V2.4 — cinematic hero + reliable location + real lookbook
   ========================================================= */
.hero-v24{position:relative;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;padding:22px clamp(22px,4vw,64px) 26px;background:#102d20;color:#fff;isolation:isolate}
.hero-v24-bg{position:absolute;inset:0;z-index:-3;overflow:hidden}.hero-v24-bg img{width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(.65) contrast(1.04) brightness(.72);transform:scale(1.12);transition:transform 2.4s cubic-bezier(.2,.75,.15,1)}body.site-revealed .hero-v24-bg img{transform:scale(1.025)}
.hero-v24-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(6,28,18,.85) 0%,rgba(8,34,22,.44) 47%,rgba(8,28,19,.23) 70%,rgba(4,20,13,.5) 100%),linear-gradient(180deg,rgba(6,25,17,.25),transparent 40%,rgba(5,20,14,.58))}
.hero-v24::after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.15);pointer-events:none;z-index:8}
.hero-v24-top{position:relative;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px 16px;border-bottom:1px solid rgba(255,255,255,.2);font-size:7px;letter-spacing:.27em;text-transform:uppercase;color:rgba(255,255,255,.72)}.hero-v24-top span:nth-child(2){justify-self:center}.hero-v24-top span:last-child{justify-self:end}
.hero-v24-stage{position:relative;width:min(100%,1380px);margin:auto;min-height:72svh;display:flex;align-items:center;padding:4vh 2vw}
.hero-v24-copy{position:relative;z-index:3;width:100%;padding-left:2vw}.hero-v24-kicker{margin:0 0 24px;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.76)}
.hero-v24-title{position:relative;margin:0;width:min(980px,78vw);font-family:var(--serif);font-weight:400;line-height:.57;letter-spacing:-.077em;text-transform:uppercase}.hero-word{display:block;overflow:hidden;font-size:clamp(100px,12.5vw,196px);text-shadow:0 12px 42px rgba(0,0,0,.19);transform:translateY(115%);opacity:0;transition:transform 1.15s cubic-bezier(.16,.75,.18,1),opacity .7s ease}.hero-word-b{margin-left:15%;transition-delay:.15s}.hero-amp{display:block;margin:-.03em 0 -.04em 37%;font-size:clamp(58px,6vw,96px);font-weight:400;font-style:italic;color:#d3ddcf;opacity:0;transform:scale(.4) rotate(-18deg);transition:1s .25s cubic-bezier(.16,.75,.18,1)}body.site-revealed .hero-word{transform:translateY(0);opacity:1}body.site-revealed .hero-amp{opacity:1;transform:scale(1) rotate(-7deg)}
.hero-v24-script{margin:24px 0 0 34%;font-family:var(--script);font-size:clamp(24px,2.2vw,36px);transform:rotate(-4deg);color:rgba(255,255,255,.92)}
.hero-v24-date-card{position:absolute;z-index:5;right:4%;top:10%;width:176px;padding:18px 18px 20px;background:rgba(239,233,220,.93);color:#193326;box-shadow:0 24px 55px rgba(0,0,0,.22);transform:rotate(2.5deg)}.hero-v24-date-card small{display:block;margin-bottom:7px;font-size:6px;letter-spacing:.24em;text-transform:uppercase}.hero-v24-date-card strong{display:block;font-family:var(--serif);font-size:76px;line-height:.75;font-weight:400;letter-spacing:-.07em}.hero-v24-date-card span{display:block;margin-top:9px;font-family:var(--serif);font-size:15px;line-height:1.1}
.hero-v24-polaroid{position:absolute;z-index:4;right:8%;bottom:7%;width:clamp(170px,16vw,248px);margin:0;padding:8px 8px 36px;background:#f3eee3;box-shadow:0 24px 60px rgba(0,0,0,.29);transform:rotate(-5deg)}.hero-v24-polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.67) contrast(.98)}.hero-v24-polaroid figcaption{position:absolute;bottom:11px;left:14px;color:#56645a;font-family:var(--serif);font-size:11px;font-style:italic}
.hero-v24-ring{position:absolute;z-index:2;right:24%;bottom:10%;width:114px;height:114px;border:1px solid rgba(255,255,255,.32);border-radius:50%;display:grid;place-items:center;animation:heroRingFloat 5s ease-in-out infinite}.hero-v24-ring::before,.hero-v24-ring::after{content:"";position:absolute;inset:9px;border:1px solid rgba(255,255,255,.09);border-radius:50%}.hero-v24-ring span{font-family:var(--serif);font-size:41px;line-height:1}.hero-v24-ring i{position:absolute;bottom:24px;font-size:6px;letter-spacing:.2em;font-style:normal}@keyframes heroRingFloat{50%{transform:translateY(-9px) rotate(5deg)}}
.hero-v24-bottom{position:relative;z-index:5;display:flex;align-items:center;gap:16px;padding:0 16px;font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.6)}.hero-scroll-line{height:1px;flex:1;max-width:120px;background:rgba(255,255,255,.3);transform-origin:left;animation:scrollLine 2.2s ease-in-out infinite}.hero-v24-bottom i{font-style:normal;font-size:15px;animation:heroDown 1.7s ease-in-out infinite}@keyframes scrollLine{0%,100%{transform:scaleX(.25)}50%{transform:scaleX(1)}}

/* Venue image is now embedded in index.html, so the section works as a single file. */
.location-photo-v22{background:#263d30;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.location-photo-v22 img{display:block!important;width:100%!important;height:100%!important;opacity:1!important;object-fit:cover;object-position:center 52%;background:#263d30;transform:scale(1.04);transition:transform 1.35s cubic-bezier(.18,.72,.16,1),filter 1s ease}.location-photo-v22.is-visible img{transform:scale(1)}.location-photo-v22:hover img{transform:scale(1.025);filter:saturate(.72) contrast(1.02) brightness(.9)}

/* Custom Dress Code slider: one transform state for mouse, touch and arrows. */
.lookbook-v24{position:relative}.lookbook-viewport{overflow:hidden;width:100%;touch-action:pan-y;cursor:grab}.lookbook-viewport.is-dragging{cursor:grabbing}.lookbook-v24 .lookbook{display:flex;gap:18px;width:max-content;overflow:visible;padding:0 max(28px,calc((100vw - var(--content))/2 + 28px)) 28px;transform:translate3d(var(--look-x,0px),0,0);transition:transform .72s cubic-bezier(.2,.76,.18,1);will-change:transform;user-select:none}.lookbook-viewport.is-dragging .lookbook{transition:none}.lookbook-v24 .look{position:relative;flex:0 0 clamp(310px,25vw,400px);height:clamp(470px,52vw,650px);margin:0!important;overflow:hidden;background:#d8d4ca;scroll-snap-align:none;transform:scale(.92);opacity:.56;transition:transform .7s cubic-bezier(.2,.72,.18,1),opacity .55s ease,filter .55s ease}.lookbook-v24 .look.is-active{transform:scale(1);opacity:1}.lookbook-v24 .look img{width:100%;height:100%;object-fit:cover;pointer-events:none;filter:saturate(.56) contrast(.96);transition:transform 1s cubic-bezier(.2,.75,.18,1),filter .5s}.lookbook-v24 .look.is-active img{transform:scale(1.03);filter:saturate(.72) contrast(.99)}.lookbook-v24 .look::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(9,28,18,.7));pointer-events:none}.look-overlay{position:absolute;z-index:3;left:22px;right:22px;bottom:20px;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:3px 13px;color:#fff}.look-overlay b{grid-row:1/3;font-family:var(--serif);font-size:54px;font-weight:400;line-height:.78}.look-overlay span{font-family:var(--serif);font-size:25px;line-height:1}.look-overlay small{font-size:6px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.68)}.lookbook-v24 .look::before{content:attr(data-index);position:absolute;z-index:4;right:12px;top:12px;font-family:var(--serif);font-size:15px;color:#fff}.lookbook-v24 .look figcaption{display:none}.lookbook-progress{height:1px;background:#d4d0c7;overflow:visible}.lookbook-progress span{display:block;height:2px;background:var(--green);transform-origin:left center;transition:transform .55s cubic-bezier(.2,.75,.18,1)}.lookbook-drag-hint{margin:13px 0 0;text-align:center;font-size:6px;letter-spacing:.18em;text-transform:uppercase;color:#96988f}.lookbook-drag-hint span{font-size:12px;color:#516254}

/* More motion depth across the page */
.reveal.is-visible{transition-duration:.9s}.clip-reveal{clip-path:inset(0 0 100% 0);transform:translateY(24px);transition:clip-path 1.05s cubic-bezier(.16,.75,.18,1),transform 1.05s cubic-bezier(.16,.75,.18,1),opacity .6s}.clip-reveal.is-visible{clip-path:inset(0);transform:none}.motion-mask{clip-path:inset(12% 12% 12% 12%);transition:clip-path 1.15s cubic-bezier(.16,.75,.18,1)}.motion-mask.is-visible{clip-path:inset(0)}
.section-kicker.reveal.is-visible{animation:kickerTracking 1.2s both}@keyframes kickerTracking{0%{letter-spacing:.48em;opacity:0}100%{letter-spacing:.22em;opacity:1}}
.detail-card{transition:transform .45s cubic-bezier(.2,.72,.18,1),box-shadow .45s}.detail-card:hover{transform:translateY(-7px);box-shadow:0 24px 55px rgba(8,30,19,.11)}

@media(max-width:760px){
 .hero-v24{padding:16px 16px 22px}.hero-v24::after{inset:10px}.hero-v24-top{grid-template-columns:1fr auto;padding:0 8px 11px}.hero-v24-top span:last-child{display:none}.hero-v24-stage{min-height:76svh;padding:5vh 0 4vh;align-items:flex-start}.hero-v24-copy{padding:7vh 2px 0}.hero-v24-kicker{max-width:240px;margin-bottom:20px;font-size:6px;line-height:1.6}.hero-v24-title{width:100%}.hero-word{font-size:20.3vw;line-height:.62}.hero-word-b{margin-left:7%}.hero-amp{margin:0 0 -1vw 47%;font-size:13vw}.hero-v24-script{margin:20px 0 0 13%;font-size:25px}.hero-v24-date-card{right:1%;top:auto;bottom:19%;width:132px;padding:14px}.hero-v24-date-card strong{font-size:55px}.hero-v24-polaroid{right:auto;left:4%;bottom:3%;width:128px;padding:6px 6px 29px}.hero-v24-polaroid figcaption{font-size:8px;left:10px;bottom:9px}.hero-v24-ring{right:35%;bottom:7%;width:72px;height:72px}.hero-v24-ring span{font-size:28px}.hero-v24-ring i{bottom:13px;font-size:5px}.hero-v24-bottom{padding:0 8px;font-size:5px}.hero-scroll-line{max-width:55px}
 .location-photo-v22 img{object-position:center 50%}
 .lookbook-v24 .lookbook{gap:12px;padding:0 20px 24px}.lookbook-v24 .look{flex-basis:min(78vw,320px);height:min(118vw,485px)}.look-overlay{left:17px;right:17px;bottom:16px}.look-overlay b{font-size:43px}.look-overlay span{font-size:21px}
}
@media(max-width:420px){.hero-v24-date-card{bottom:20%}.hero-v24-polaroid{bottom:2%}.hero-v24-script{font-size:22px}.lookbook-v24 .look{flex-basis:78vw;height:116vw}}
@media(prefers-reduced-motion:reduce){.hero-v24-bg img,.hero-word,.hero-amp,.lookbook-v24 .lookbook,.lookbook-v24 .look,.lookbook-v24 .look img{transition:none!important;animation:none!important}.hero-word{transform:none!important;opacity:1!important}.hero-amp{opacity:1!important;transform:none!important}}

/* =========================================================
   V2.5 — Hero composition rebuild
   One coherent editorial composition: copy + anchored visual stack.
   ========================================================= */
.hero-v25{
  position:relative; min-height:100svh; display:grid; grid-template-rows:auto 1fr auto;
  overflow:hidden; isolation:isolate; color:#fff; background:#0f2d20;
  padding:22px clamp(24px,4vw,68px) 28px;
}
.hero-v25::after{
  content:""; position:absolute; inset:18px; z-index:9; pointer-events:none;
  border:1px solid rgba(255,255,255,.15);
}
.hero-v25-bg{position:absolute;inset:0;z-index:-4;overflow:hidden}
.hero-v25-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 46%;
  filter:saturate(.56) contrast(1.03) brightness(.68);
  transform:scale(1.085); transition:transform 2.6s cubic-bezier(.18,.72,.16,1),filter 1.8s ease;
}
body.site-revealed .hero-v25-bg img{transform:scale(1.02)}
.hero-v25-shade{
  position:absolute;inset:0;z-index:-3;
  background:
    linear-gradient(90deg,rgba(5,27,18,.92) 0%,rgba(8,35,23,.72) 42%,rgba(7,29,20,.36) 67%,rgba(5,21,15,.54) 100%),
    linear-gradient(180deg,rgba(4,21,14,.20),transparent 42%,rgba(4,18,12,.68));
}
.hero-v25-glow{
  position:absolute;z-index:-2;right:7%;top:12%;width:34vw;height:72vh;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(230,226,205,.14),transparent 66%);
  filter:blur(22px); opacity:.68;
}
.hero-v25-top{
  position:relative;z-index:6;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 16px 16px;border-bottom:1px solid rgba(255,255,255,.20);
  font-size:7px;letter-spacing:.27em;text-transform:uppercase;color:rgba(255,255,255,.68);
}
.hero-v25-top span:nth-child(2){justify-self:center}.hero-v25-top span:last-child{justify-self:end}
.hero-v25-stage{
  position:relative;z-index:3;width:min(100%,1440px);margin:auto;
  display:grid;grid-template-columns:minmax(0,1.34fr) minmax(320px,.66fr);align-items:center;
  gap:clamp(38px,5vw,88px);padding:4.5vh 2vw 3vh;min-height:73svh;
}
.hero-v25-copy{position:relative;z-index:4;min-width:0;padding-left:1vw}
.hero-v25-kicker{
  margin:0 0 clamp(18px,2.4vh,30px);font-size:9px;letter-spacing:.29em;text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.hero-v25-title{
  margin:0;max-width:920px;font-family:var(--serif);font-weight:400;text-transform:uppercase;
  line-height:.72;letter-spacing:-.058em;text-wrap:balance;
}
.hero-v25-name{
  display:block;width:max-content;max-width:100%;font-size:clamp(88px,9.5vw,168px);
  text-shadow:0 16px 48px rgba(0,0,0,.18);
  clip-path:inset(0 100% 0 0);transform:translateY(20px);opacity:0;
  transition:clip-path 1.15s cubic-bezier(.16,.75,.18,1),transform 1.1s cubic-bezier(.16,.75,.18,1),opacity .6s ease;
}
.hero-v25-name-b{margin-left:8%;transition-delay:.16s}
.hero-v25-name-b i{
  display:inline-block;margin-right:.08em;font-size:.54em;font-weight:400;font-style:italic;
  color:#d7dfd1;transform:translateY(-.18em) rotate(-8deg);
}
body.site-revealed .hero-v25-name{clip-path:inset(0 0 0 0);transform:translateY(0);opacity:1}
.hero-v25-copy-footer{
  display:grid;grid-template-columns:auto minmax(48px,150px) auto;align-items:center;gap:18px;
  width:min(720px,88%);margin:clamp(24px,3.2vh,38px) 0 0 9%;
}
.hero-v25-script{margin:0;font-family:var(--script);font-size:clamp(22px,1.9vw,34px);line-height:1;transform:rotate(-3deg);white-space:nowrap;color:rgba(255,255,255,.90)}
.hero-v25-rule{height:1px;background:rgba(255,255,255,.25)}
.hero-v25-place{margin:0;font-size:7px;line-height:1.75;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.58);white-space:nowrap}

.hero-v25-visual{
  position:relative;justify-self:end;width:min(100%,430px);height:min(68svh,650px);min-height:520px;
  transform:translateX(44px) scale(.96);opacity:0;
  transition:transform 1.15s .28s cubic-bezier(.16,.75,.18,1),opacity .7s .28s ease;
}
body.site-revealed .hero-v25-visual{transform:translateX(0) scale(1);opacity:1}
.hero-v25-visual::before{
  content:"";position:absolute;left:13%;top:5%;right:-4%;bottom:7%;border:1px solid rgba(255,255,255,.15);transform:rotate(1.3deg);
}
.hero-v25-visual-index{
  position:absolute;z-index:6;right:0;top:0;font-size:6px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.50)
}
.hero-v25-photo{
  position:absolute;z-index:3;right:0;top:7%;width:78%;height:78%;margin:0;padding:9px 9px 44px;
  background:#f3eee3;box-shadow:0 34px 75px rgba(0,0,0,.30);transform:rotate(2.1deg);
}
.hero-v25-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.58) sepia(.05) contrast(.96)}
.hero-v25-photo figcaption{position:absolute;left:16px;bottom:13px;font-family:var(--serif);font-style:italic;font-size:11px;color:#536157}
.hero-v25-date-card{
  position:absolute;z-index:5;left:1%;top:16%;width:158px;padding:18px 18px 20px;
  background:rgba(241,235,221,.98);color:#173526;box-shadow:0 22px 52px rgba(0,0,0,.22);transform:rotate(-4.5deg);
}
.hero-v25-date-card small{display:block;margin-bottom:8px;font-size:6px;letter-spacing:.24em;text-transform:uppercase}
.hero-v25-date-card strong{display:block;font-family:var(--serif);font-size:68px;font-weight:400;line-height:.72;letter-spacing:-.07em}
.hero-v25-date-card span{display:block;margin-top:9px;font-family:var(--serif);font-size:14px;line-height:1.1}
.hero-v25-stamp{
  position:absolute;z-index:6;left:11%;bottom:4%;width:106px;height:106px;border:1px solid rgba(255,255,255,.38);border-radius:50%;
  display:grid;place-items:center;background:rgba(12,45,30,.18);backdrop-filter:blur(3px);transform:rotate(-8deg);
  animation:heroV25Stamp 5.8s ease-in-out infinite;
}
.hero-v25-stamp::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.hero-v25-stamp span{font-family:var(--serif);font-size:37px;line-height:1}.hero-v25-stamp i{position:absolute;bottom:24px;font-size:5px;letter-spacing:.2em;font-style:normal}.hero-v25-stamp b{position:absolute;top:22px;font-size:5px;letter-spacing:.18em;font-weight:400}
@keyframes heroV25Stamp{50%{transform:translateY(-8px) rotate(-3deg)}}
.hero-v25-note{
  position:absolute;z-index:6;right:-1%;bottom:1%;margin:0;font-family:var(--script);font-size:34px;line-height:.82;color:rgba(255,255,255,.72);transform:rotate(-8deg)
}
.hero-v25-bottom{
  position:relative;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 16px;
  font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.54)
}
.hero-v25-scroll{display:flex;align-items:center;gap:16px}.hero-v25-scroll i{font-style:normal;font-size:14px;animation:heroDown 1.7s ease-in-out infinite}.hero-v25-bottom-note{color:rgba(255,255,255,.40)}

@media(max-width:1100px){
  .hero-v25-stage{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:30px;padding-inline:0}
  .hero-v25-name{font-size:clamp(78px,10.2vw,124px)}
  .hero-v25-visual{height:600px;min-height:500px}
  .hero-v25-photo{width:79%}.hero-v25-date-card{width:145px}.hero-v25-copy-footer{width:96%;margin-left:4%}
}

@media(max-width:760px){
  .hero-v25{min-height:100svh;padding:14px 16px 20px}
  .hero-v25::after{inset:10px}
  .hero-v25-top{grid-template-columns:1fr auto;padding:0 8px 11px;font-size:6px;letter-spacing:.18em}.hero-v25-top span:last-child{display:none}
  .hero-v25-stage{display:block;min-height:80svh;padding:5vh 1px 1vh}
  .hero-v25-copy{padding:0}
  .hero-v25-kicker{max-width:250px;margin:0 0 18px 2px;font-size:6px;line-height:1.6;letter-spacing:.23em}
  .hero-v25-title{max-width:none;line-height:.74;letter-spacing:-.054em}
  .hero-v25-name{font-size:19.2vw}
  .hero-v25-name-b{margin-left:4%}.hero-v25-name-b i{font-size:.48em;margin-right:.04em}
  .hero-v25-copy-footer{grid-template-columns:auto 1fr;margin:16px 0 0 5%;width:90%;gap:12px}.hero-v25-rule{display:none}.hero-v25-place{font-size:5px;line-height:1.6}.hero-v25-script{font-size:20px;white-space:normal}
  .hero-v25-visual{position:absolute;right:0;left:0;bottom:1.5vh;width:100%;height:43vh;min-height:330px;max-height:420px;transform:none!important;opacity:1!important}
  .hero-v25-visual::before{left:29%;top:7%;right:4%;bottom:3%}
  .hero-v25-visual-index{top:1%;right:5%;font-size:5px}
  .hero-v25-photo{right:4%;top:7%;width:57%;height:82%;padding:6px 6px 30px;transform:rotate(2deg)}
  .hero-v25-photo figcaption{left:10px;bottom:9px;font-size:8px}
  .hero-v25-date-card{left:5%;top:18%;width:124px;padding:13px 13px 15px;transform:rotate(-5deg)}
  .hero-v25-date-card small{font-size:5px}.hero-v25-date-card strong{font-size:52px}.hero-v25-date-card span{font-size:11px}
  .hero-v25-stamp{left:15%;bottom:4%;width:72px;height:72px}.hero-v25-stamp span{font-size:27px}.hero-v25-stamp i{bottom:14px;font-size:4px}.hero-v25-stamp b{top:13px;font-size:4px}
  .hero-v25-note{right:2%;bottom:0;font-size:25px}
  .hero-v25-bottom{padding:0 8px;font-size:5px}.hero-v25-bottom-note{display:none}.hero-v25-scroll{gap:10px}.hero-v25-scroll .hero-scroll-line{max-width:48px}
  .hero-v25-glow{right:-20%;top:40%;width:90vw;height:45vh}
}

@media(max-width:420px){
  .hero-v25-stage{min-height:79svh;padding-top:4.5vh}.hero-v25-name{font-size:18.6vw}.hero-v25-visual{height:41vh;min-height:310px}.hero-v25-photo{width:59%}.hero-v25-date-card{left:4%;width:118px}.hero-v25-script{font-size:18px}
}

@media(prefers-reduced-motion:reduce){
  .hero-v25-bg img,.hero-v25-name,.hero-v25-visual,.hero-v25-stamp{transition:none!important;animation:none!important}
  .hero-v25-name{clip-path:none!important;transform:none!important;opacity:1!important}.hero-v25-visual{transform:none!important;opacity:1!important}
}

/* =========================================================
   V2.6 — generated content + typography art direction
   Display: Prata / editorial: Cormorant Garamond / UI: Manrope
   ========================================================= */
:root{
  --display:"Prata",Georgia,"Times New Roman",serif;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --script:"Cormorant Garamond",Georgia,"Times New Roman",serif;
}

/* Global text rhythm */
body{font-weight:400;font-feature-settings:"kern" 1,"liga" 1,"clig" 1;text-rendering:optimizeLegibility}
.section-kicker{font-family:var(--sans);font-weight:500;font-size:9px;letter-spacing:.24em;line-height:1.25}
.script-note,.hero-v25-script,.story-script{font-family:var(--script);font-style:italic;font-weight:400;letter-spacing:-.018em}

/* Display hierarchy — fewer exaggerated condensed line-heights, cleaner rhythm */
.hero-v25-title,.intro-title,.date-title,.program-title,.location-title-v22,.dress-title,.details-title,.rsvp-title,.chat-title,.contacts-title,.finale-title{
  font-family:var(--display);
  font-weight:400;
  text-wrap:balance;
}
.hero-v25-title{letter-spacing:-.042em;text-transform:none;line-height:.79}
.hero-v25-name{font-size:clamp(74px,8.2vw,132px);letter-spacing:-.045em}
.hero-v25-name-b{margin-left:10%}
.hero-v25-name-b i{font-family:var(--serif);font-style:italic;font-size:.52em;margin-right:.06em;color:#dfe6d7}
.hero-v25-kicker{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.25em;line-height:1.55}
.hero-v25-script{font-size:clamp(22px,1.75vw,31px);line-height:1.05;color:rgba(255,255,255,.88);transform:rotate(-2deg)}
.hero-v25-place{font-family:var(--sans);font-size:7px;line-height:1.85;letter-spacing:.18em}
.hero-v25-photo figcaption{font-family:var(--serif);font-size:13px;font-style:italic;letter-spacing:.01em}
.hero-v25-date-card small,.hero-v25-visual-index,.hero-v25-top,.hero-v25-bottom{font-family:var(--sans)}
.hero-v25-date-card strong{font-family:var(--display);font-size:64px;letter-spacing:-.045em}
.hero-v25-date-card span{font-family:var(--serif);font-size:15px;line-height:1.15}

.intro-title{font-size:clamp(64px,6.6vw,104px);line-height:.83;letter-spacing:-.035em}
.intro-title span{margin-left:11%;font-family:var(--serif);font-size:.84em;font-style:italic;letter-spacing:-.035em}
.intro-text{font-size:clamp(20px,1.55vw,25px);line-height:1.5;letter-spacing:.002em}
.intro-sign{font-size:23px;line-height:1.25}
.intro-quote{font-size:19px;line-height:1.45}
.story-photo figcaption{font-size:13px;letter-spacing:.01em}

.date-title{font-size:clamp(88px,10.2vw,150px);line-height:.72;letter-spacing:-.045em}
.date-title span:last-child{margin-left:7%}
.date-head .script-note{font-size:27px}
.calendar-month{font-family:var(--display);font-size:26px;letter-spacing:-.025em}
.calendar-grid{font-size:19px}
.date-meta strong{font-family:var(--display);font-size:88px;letter-spacing:-.045em}
.date-meta p{font-size:19px;line-height:1.45}

.program-title{font-size:clamp(62px,7.2vw,106px);line-height:.84;letter-spacing:-.04em}
.program-title span{margin-left:12%;font-family:var(--serif);font-style:italic;font-size:.72em;letter-spacing:-.035em}
.program-note{font-size:21px;line-height:1.5}
.timeline-event time{font-family:var(--display);font-size:21px;letter-spacing:-.02em}
.timeline-event h3{font-family:var(--display);font-size:28px;line-height:1.14;letter-spacing:-.025em}
.timeline-event p{font-size:16px;line-height:1.45}

.location-title-v22{font-size:clamp(86px,11vw,164px);line-height:.67;letter-spacing:-.05em}
.location-title-v22 span:last-child{margin-left:9%}
.location-header-note{font-size:22px;line-height:1.48}
.location-card-script{font-family:var(--serif);font-size:22px;font-style:italic}
.location-card-v22 h3{font-family:var(--display);font-size:clamp(50px,4.6vw,70px);line-height:1.02;letter-spacing:-.04em}
.location-address{font-size:20px;line-height:1.5}
.location-facts strong{font-family:var(--display);font-size:22px}
.location-signature{font-size:26px;line-height:1.2}

.dress-title{font-size:clamp(84px,11.5vw,168px);line-height:.64;letter-spacing:-.055em}
.dress-title span{margin-left:18%;font-family:var(--serif);font-style:italic;font-size:.72em;letter-spacing:-.035em}
.dress-copy p{font-size:22px;line-height:1.52}
.lookbook-head{font-size:20px}
.look-overlay b{font-family:var(--display);font-size:48px}
.look-overlay span{font-family:var(--display);font-size:21px;line-height:1.12;letter-spacing:-.018em}
.look-overlay small{font-family:var(--sans);font-size:6px;letter-spacing:.18em}

.details-title{font-size:clamp(82px,12.5vw,180px);line-height:.76;letter-spacing:-.045em}
.details-sub{font-size:20px;line-height:1.5}
.detail-card h3{font-family:var(--display);font-size:38px;line-height:1.08;letter-spacing:-.025em}
.detail-card p{font-size:17px;line-height:1.5}

.rsvp-title{font-size:clamp(76px,10vw,142px);line-height:.75;letter-spacing:-.045em}
.rsvp-heading .script-note{font-size:30px;line-height:1.1}
.line-field span,fieldset legend{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.18em}
.line-field input,.line-field textarea{font-family:var(--serif);font-size:22px;line-height:1.35}
.radio-line b,.drink-chips span{font-family:var(--serif)}

.chat-title{font-size:clamp(70px,8.5vw,126px);line-height:.75;letter-spacing:-.045em}
.chat-copy>p:not(.section-kicker){font-size:20px;line-height:1.5}
.guest-pass h3{font-family:var(--display);font-size:38px;line-height:1.05;letter-spacing:-.025em}
.guest-pass>p:not(.guest-pass-label){font-size:16px;line-height:1.5}

.contacts-title{font-size:clamp(78px,10.5vw,150px);line-height:.74;letter-spacing:-.045em}
.contact-person h3{font-family:var(--display);font-size:38px;line-height:1.05;letter-spacing:-.025em}
.contact-person p{font-size:17px;line-height:1.48}

.finale-title{font-size:clamp(72px,8.6vw,126px);line-height:.72;letter-spacing:-.045em}
.final-polaroid figcaption{font-size:22px;line-height:1.2}
.final-signature strong{font-family:var(--display);font-size:41px;font-style:normal;letter-spacing:-.03em}
.final-signature strong i{font-family:var(--serif);font-style:italic}

/* Generated imagery already has the intended olive/ivory grade — don't crush it */
.hero-v25-bg img{filter:saturate(.78) contrast(.98) brightness(.82)}
.hero-v25-photo img{filter:saturate(.9) contrast(.98) brightness(.98);object-position:center 45%}
.story-photo img{filter:saturate(.9) contrast(.99)}
.date-photo-band img{filter:saturate(.82) contrast(.98) brightness(.82);object-position:center 58%}
.location-photo-v22 img{filter:saturate(.86) contrast(.99) brightness(.91);object-position:center 52%}
.lookbook-v24 .look img{filter:saturate(.88) contrast(.98) brightness(.98)}
.lookbook-v24 .look.is-active img{filter:saturate(1) contrast(1)}
.detail-card-photo img{filter:saturate(.82) contrast(.98) brightness(.88)}
.chat-photo-v22 img{filter:saturate(.82) contrast(.98) brightness(.88)}
.contact-person img{filter:saturate(.9) contrast(.99)}
.final-polaroid img{filter:saturate(.88) contrast(.98)}

/* Slightly calmer microcopy tracking so Cyrillic does not look mechanically spaced */
.location-map-button,.submit-button,.outline-button,.contact-person a,.guest-pass>a,.lookbook-drag-hint{
  letter-spacing:.135em;
}

@media(max-width:760px){
  .section-kicker{font-size:7px;letter-spacing:.21em}
  .hero-v25-title{line-height:.82;letter-spacing:-.04em}
  .hero-v25-name{font-size:17.4vw}
  .hero-v25-name-b{margin-left:3%}
  .hero-v25-kicker{font-size:6px;letter-spacing:.2em}
  .hero-v25-script{font-size:19px;line-height:1.1}
  .hero-v25-place{font-size:5px;letter-spacing:.14em}
  .hero-v25-date-card strong{font-size:49px}
  .hero-v25-photo figcaption{font-size:9px}

  .intro-title{font-size:17.2vw;line-height:.82}
  .intro-title span{margin-left:6%;font-size:.86em}
  .intro-text{font-size:18px;line-height:1.5}
  .intro-sign{font-size:19px}.intro-quote{font-size:16px}

  .date-title{font-size:23vw;line-height:.72}.date-title span:last-child{margin-left:5%}
  .date-head .script-note{font-size:20px}.calendar-month{font-size:21px}.calendar-grid{font-size:16px}.date-meta strong{font-size:68px}.date-meta p{font-size:14px}

  .program-title{font-size:15.8vw;line-height:.86}.program-title span{margin-left:7%;font-size:.74em}
  .program-note{font-size:17px}.timeline-event time{font-size:18px}.timeline-event h3{font-size:22px}.timeline-event p{font-size:13px}

  .location-title-v22{font-size:22vw;line-height:.72}.location-title-v22 span:last-child{margin-left:7%}
  .location-header-note{font-size:17px}.location-card-v22 h3{font-size:44px;line-height:1.04}.location-address{font-size:17px}

  .dress-title{font-size:23vw;line-height:.69}.dress-title span{margin-left:13%;font-size:.72em}
  .dress-copy p{font-size:17px;line-height:1.52}.look-overlay span{font-size:19px}.look-overlay b{font-size:42px}

  .details-title{font-size:23vw;line-height:.8}.details-sub{font-size:16px}.detail-card h3{font-size:34px}.detail-card p{font-size:15px}
  .rsvp-title{font-size:22vw;line-height:.8}.rsvp-heading .script-note{font-size:25px}.line-field input,.line-field textarea{font-size:19px}
  .chat-title{font-size:19vw;line-height:.8}.chat-copy>p:not(.section-kicker){font-size:17px}.guest-pass h3{font-size:33px}
  .contacts-title{font-size:21vw;line-height:.8}.contact-person h3{font-size:31px}.contact-person p{font-size:14px}
  .finale-title{font-size:18.5vw;line-height:.78}.final-signature strong{font-size:33px}
}

/* =========================================================
   V2.7 — editorial date scene + reliable native lookbook
   ========================================================= */
.date-v27{
  position:relative;
  overflow:hidden;
  padding:118px 0 108px;
  background:
    radial-gradient(circle at 74% 22%,rgba(180,198,171,.12),transparent 28%),
    radial-gradient(circle at 18% 76%,rgba(255,255,255,.055),transparent 32%),
    var(--green-deep);
  color:#f7f2e8;
}
.date-v27::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.025),transparent 35%,rgba(255,255,255,.018) 72%,transparent)}
.date-v27-orbit{position:absolute;border:1px solid rgba(255,255,255,.075);border-radius:50%;pointer-events:none}
.date-v27-orbit-a{width:520px;height:520px;right:-230px;top:-265px}.date-v27-orbit-b{width:390px;height:390px;left:-245px;bottom:-185px}
.date-v27-shell{position:relative;z-index:2;width:min(calc(100% - 72px),var(--content));margin:0 auto}
.date-v27-topline{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;margin-bottom:64px;font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.date-v27-topline i{height:1px;background:rgba(255,255,255,.2)}
.date-v27-grid{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(300px,.72fr) minmax(390px,.92fr);gap:clamp(26px,4vw,66px);align-items:end}
.date-v27-anchor{position:relative;padding-bottom:22px}
.date-v27-kicker{margin:0 0 2px;font-family:var(--sans);font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.48)}
.date-v27-number{margin-left:-.055em;font-family:"Prata",var(--serif);font-size:clamp(138px,15.6vw,238px);line-height:.76;font-weight:400;letter-spacing:-.08em;color:#f8f2e8;text-shadow:0 12px 36px rgba(0,0,0,.12)}
.date-v27-month-lockup{display:flex;align-items:baseline;gap:14px;margin-top:12px;border-top:1px solid rgba(255,255,255,.18);padding-top:14px}
.date-v27-month-lockup span{font-family:"Prata",var(--serif);font-size:29px;letter-spacing:-.035em}.date-v27-month-lockup em{font-family:var(--serif);font-size:24px;font-style:italic;color:rgba(255,255,255,.68)}
.date-v27-place{display:grid;gap:5px;margin:38px 0 0}.date-v27-place small{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}.date-v27-place strong{font-family:"Prata",var(--serif);font-size:28px;font-weight:400;letter-spacing:-.025em}.date-v27-place span{font-family:var(--serif);font-size:17px;color:rgba(255,255,255,.62)}
.date-v27-photo{position:relative;align-self:center;margin:0;aspect-ratio:.79;overflow:hidden;background:#d7d1c5;box-shadow:0 34px 70px rgba(0,0,0,.23);transform:rotate(-1.6deg)}
.date-v27-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(10,30,20,.6))}
.date-v27-photo img{width:100%;height:100%;object-fit:cover;object-position:61% center;transform:scale(1.04);filter:saturate(.92) contrast(.98) brightness(.93)}
.date-v27-photo figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:17px;display:flex;justify-content:space-between;gap:18px;align-items:flex-end;color:#fff}.date-v27-photo figcaption span{font-size:7px;letter-spacing:.2em;text-transform:uppercase}.date-v27-photo figcaption em{font-family:var(--serif);font-size:14px;font-style:italic;color:rgba(255,255,255,.82)}
.date-v27-calendar-card{position:relative;align-self:center;padding:32px 34px 27px;background:#f2ecdf;color:var(--ink);box-shadow:0 28px 70px rgba(0,0,0,.16);transform:translateY(10px) rotate(.45deg)}
.date-v27-calendar-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(28,44,34,.1);pointer-events:none}
.date-v27-calendar-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid rgba(27,32,29,.18)}
.date-v27-calendar-head div{display:grid;gap:2px}.date-v27-calendar-head small{font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:#898b83}.date-v27-calendar-head strong{font-family:"Prata",var(--serif);font-size:38px;font-weight:400;line-height:1;letter-spacing:-.04em}.date-v27-calendar-head>span{font-family:"Prata",var(--serif);font-size:16px;color:var(--green)}
.date-v27-calendar-week,.date-v27-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.date-v27-calendar-week{margin-bottom:11px;font-size:6px;letter-spacing:.15em;color:#8f9188}.date-v27-calendar-grid{row-gap:12px;font-family:var(--serif);font-size:17px}.date-v27-calendar-grid span{display:grid;place-items:center;min-height:27px}.date-v27-calendar-grid .wedding-day{position:relative;z-index:2;color:var(--green);font-weight:600}
.date-v27-heart{position:absolute;width:58px;height:52px;pointer-events:none;fill:none;stroke:var(--green);stroke-width:1.35;stroke-dasharray:240;stroke-dashoffset:240;transition:stroke-dashoffset 1.35s cubic-bezier(.2,.72,.18,1)}.date-v27-heart.draw{stroke-dashoffset:0}
.date-v27-calendar-note{margin:26px 0 0;text-align:right;font-family:var(--serif);font-size:19px;font-style:italic;color:#697168}.date-v27-calendar-note span{font-size:18px;color:var(--green)}
.date-v27-countdown-panel{display:grid;grid-template-columns:minmax(235px,.52fr) 1.48fr;gap:42px;align-items:stretch;margin-top:74px;padding-top:23px;border-top:1px solid rgba(255,255,255,.19)}
.date-v27-countdown-copy{display:flex;flex-direction:column;justify-content:center;gap:4px}.date-v27-countdown-copy span{font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.56)}.date-v27-countdown-copy em{font-family:var(--serif);font-size:28px;font-style:italic;color:rgba(255,255,255,.82)}
.countdown-v27{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid rgba(255,255,255,.16)}.countdown-v27>div{display:grid;place-items:center;padding:7px 12px 5px;border-right:1px solid rgba(255,255,255,.16);text-align:center}.countdown-v27 strong{display:block;font-family:"Prata",var(--serif);font-size:clamp(34px,3.5vw,52px);font-weight:400;line-height:1;letter-spacing:-.04em}.countdown-v27 span{display:block;margin-top:7px;font-size:6px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.48)}

.dress-v27{padding:128px 0 138px;overflow:hidden;background:var(--ivory)}
.dress-v27-shell{width:min(calc(100% - 72px),var(--content));margin:0 auto}
.dress-v27-head{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,.72fr);gap:clamp(50px,7vw,110px);align-items:end;margin-bottom:78px}
.dress-v27-title-wrap{position:relative}.dress-v27-title{margin:0;font-family:"Prata",var(--serif);font-weight:400;line-height:.7;letter-spacing:-.07em;color:var(--ink)}.dress-v27-title span{display:block;font-size:clamp(88px,10.7vw,162px)}.dress-v27-title em{display:block;margin-left:18%;font-family:var(--serif);font-size:clamp(72px,8vw,122px);font-style:italic;font-weight:400;letter-spacing:-.05em;color:var(--green)}
.dress-v27-script{position:absolute;right:1%;bottom:-22px;margin:0;font-family:var(--serif);font-size:23px;font-style:italic;color:#7d8178;transform:rotate(-3deg)}
.dress-v27-copy{max-width:530px;padding-bottom:9px}.dress-v27-copy>p{margin:0;font-family:var(--serif);font-size:22px;line-height:1.52;color:#555b54}.dress-v27-palette-wrap{display:grid;gap:12px;margin-top:30px}.dress-v27-palette-wrap small{font-size:7px;letter-spacing:.2em;text-transform:uppercase;color:#8b8e85}.dress-v27-palette{display:flex;gap:9px;flex-wrap:wrap}.dress-v27-palette span{width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:var(--c);box-shadow:inset 0 0 0 3px rgba(255,255,255,.18);transition:transform .3s ease}.dress-v27-palette span:hover{transform:translateY(-3px) scale(1.06)}
.dress-v27-lookbook{display:grid;grid-template-columns:290px minmax(0,1fr);gap:42px;align-items:start}
.dress-v27-meta{position:sticky;top:90px;padding:28px 26px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dress-v27-look-index{display:flex;align-items:baseline;gap:8px;margin-bottom:35px}.dress-v27-look-index span{font-size:7px;letter-spacing:.2em;color:#8c8f86}.dress-v27-look-index b{font-family:"Prata",var(--serif);font-size:42px;font-weight:400;color:var(--green)}.dress-v27-look-index i{font-style:normal;color:#aaa99f}.dress-v27-look-index small{font-family:var(--serif);font-size:17px;color:#777b73}
.dress-v27-meta h3{margin:0 0 13px;font-family:"Prata",var(--serif);font-size:34px;line-height:1.07;font-weight:400;letter-spacing:-.035em}.dress-v27-meta>p{min-height:70px;margin:0;font-family:var(--serif);font-size:16px;line-height:1.5;color:#676b63}
.dress-v27-progress{height:1px;margin:28px 0 20px;background:#d1ccbf;overflow:hidden}.dress-v27-progress span{display:block;width:100%;height:2px;background:var(--green);transform:scaleX(.25);transform-origin:left center;transition:transform .45s cubic-bezier(.2,.75,.18,1)}
.dress-v27-controls{display:flex;gap:8px}.dress-v27-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #8f948b;background:transparent;color:var(--green);font-size:17px;cursor:pointer;transition:background .25s,color .25s,opacity .25s}.dress-v27-controls button:hover:not(:disabled){background:var(--green);color:#fff}.dress-v27-controls button:disabled{opacity:.26;cursor:default}
.dress-v27-carousel{min-width:0}.dress-v27-viewport{width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:auto;cursor:grab}.dress-v27-viewport::-webkit-scrollbar{display:none}.dress-v27-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none}
.dress-v27-track{display:flex;gap:18px;width:max-content;padding:0 22vw 24px 0;outline:none}
.look-card-v27{position:relative;flex:0 0 clamp(310px,31vw,455px);height:auto;aspect-ratio:4/5;margin:0;overflow:hidden;background:#d8d3c8;scroll-snap-align:center;scroll-snap-stop:always;opacity:.58;transform:scale(.94);transform-origin:center bottom;transition:opacity .45s ease,transform .65s cubic-bezier(.2,.75,.18,1),filter .45s ease}.look-card-v27.is-active{opacity:1;transform:scale(1)}
.look-card-v27 img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:saturate(.82) contrast(.98);transition:filter .5s}.look-card-v27.is-active img{filter:saturate(1) contrast(1)}
.look-card-v27::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(12,27,18,.72));pointer-events:none}.look-card-v27 figcaption{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px;color:#fff}.look-card-v27 figcaption span{font-family:"Prata",var(--serif);font-size:32px}.look-card-v27 figcaption strong{font-family:var(--serif);font-size:22px;font-style:italic;font-weight:400;color:rgba(255,255,255,.88)}
.dress-v27-hint{margin:13px 0 0;text-align:center;font-size:6px;letter-spacing:.2em;text-transform:uppercase;color:#92958d}.dress-v27-hint span{font-size:13px;color:var(--green)}

@media(max-width:1050px){
  .date-v27{padding:92px 0 88px}.date-v27-shell,.dress-v27-shell{width:calc(100% - 48px)}.date-v27-grid{grid-template-columns:.75fr .68fr 1fr;gap:25px}.date-v27-number{font-size:15vw}.date-v27-month-lockup{display:grid;gap:2px}.date-v27-month-lockup em{font-size:20px}.date-v27-calendar-card{padding:27px 24px 24px}.date-v27-calendar-head strong{font-size:32px}.date-v27-calendar-grid{font-size:15px;row-gap:9px}.date-v27-countdown-panel{grid-template-columns:210px 1fr;gap:24px}
  .dress-v27-head{grid-template-columns:1fr .78fr;gap:44px}.dress-v27-lookbook{grid-template-columns:240px minmax(0,1fr);gap:28px}.dress-v27-meta{padding:24px 16px}.dress-v27-meta h3{font-size:29px}.dress-v27-meta>p{font-size:15px}.look-card-v27{flex-basis:clamp(300px,38vw,410px)}
}
@media(max-width:760px){
  .date-v27{padding:74px 0 72px}.date-v27-shell,.dress-v27-shell{width:calc(100% - 40px)}.date-v27-topline{gap:12px;margin-bottom:42px;font-size:6px;letter-spacing:.18em}.date-v27-grid{display:grid;grid-template-columns:1fr;gap:28px}.date-v27-anchor{padding:0}.date-v27-number{font-size:43vw;line-height:.74}.date-v27-month-lockup{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px}.date-v27-month-lockup span{font-size:24px}.date-v27-month-lockup em{font-size:20px}.date-v27-place{margin-top:28px}.date-v27-place strong{font-size:25px}.date-v27-photo{width:82%;justify-self:end;aspect-ratio:.86;transform:rotate(1.4deg)}.date-v27-photo figcaption{left:14px;right:14px;bottom:13px}.date-v27-photo figcaption em{font-size:12px}.date-v27-calendar-card{width:92%;justify-self:start;margin-top:-30px;padding:28px 22px 22px;transform:rotate(-.6deg);z-index:3}.date-v27-calendar-head{margin-bottom:22px}.date-v27-calendar-head strong{font-size:34px}.date-v27-calendar-grid{font-size:16px;row-gap:10px}.date-v27-countdown-panel{display:block;margin-top:53px;padding-top:21px}.date-v27-countdown-copy{margin-bottom:21px}.date-v27-countdown-copy em{font-size:24px}.countdown-v27{border-left:0;border-top:1px solid rgba(255,255,255,.16)}.countdown-v27>div{padding:15px 4px 10px}.countdown-v27 strong{font-size:28px}.date-v27-orbit-a{width:350px;height:350px;right:-220px;top:-160px}
  .dress-v27{padding:86px 0 94px}.dress-v27-head{display:block;margin-bottom:50px}.dress-v27-title span{font-size:26vw}.dress-v27-title em{margin-left:12%;font-size:20vw}.dress-v27-script{position:static;margin:15px 0 0 34%;font-size:19px}.dress-v27-copy{margin-top:36px}.dress-v27-copy>p{font-size:17px}.dress-v27-palette-wrap{margin-top:22px}.dress-v27-palette span{width:30px;height:30px}.dress-v27-lookbook{display:block}.dress-v27-meta{position:relative;top:auto;display:grid;grid-template-columns:1fr auto;gap:7px 22px;margin-bottom:24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dress-v27-look-index{grid-column:1;margin:0}.dress-v27-meta h3{grid-column:1;margin:0;font-size:26px}.dress-v27-meta>p{grid-column:1/-1;min-height:0;margin-top:4px;font-size:14px}.dress-v27-progress{grid-column:1/-1;margin:15px 0 3px}.dress-v27-controls{grid-column:2;grid-row:1/3;align-self:center}.dress-v27-controls button{width:40px;height:40px}.dress-v27-track{gap:12px;padding-right:17vw;padding-bottom:18px}.look-card-v27{flex-basis:min(78vw,340px);height:auto;opacity:.48;transform:scale(.95)}.look-card-v27.is-active{opacity:1;transform:scale(1)}.look-card-v27 figcaption{left:15px;right:15px;bottom:14px}.look-card-v27 figcaption span{font-size:27px}.look-card-v27 figcaption strong{font-size:19px}.dress-v27-hint{margin-top:9px}
}
@media(max-width:420px){
  .date-v27-shell,.dress-v27-shell{width:calc(100% - 32px)}.date-v27-number{font-size:45vw}.date-v27-photo{width:86%}.date-v27-calendar-card{width:96%;margin-top:-22px}.date-v27-calendar-week{font-size:5px}.date-v27-calendar-grid{font-size:15px}.countdown-v27 strong{font-size:24px}.countdown-v27 span{font-size:5px;letter-spacing:.14em}
  .dress-v27-title span{font-size:28vw}.dress-v27-title em{font-size:21vw}.dress-v27-copy>p{font-size:16px}.dress-v27-meta h3{font-size:23px}.look-card-v27{flex-basis:80vw;height:auto}
}
@media(prefers-reduced-motion:reduce){.look-card-v27,.look-card-v27 img,.date-v27-heart{transition:none!important}.date-v27-heart{stroke-dashoffset:0!important}}

/* =========================================================
   CMS contract — repeated content and generated RSVP fields
   ========================================================= */
.timeline-stage>[data-repeat="program.items"]{display:contents}
.detail-card>div{z-index:2}
.detail-card-plain>img{display:none}
.detail-card-plain>div{display:contents}
.detail-card-photo .detail-icon{display:none}
.detail-icon svg{position:absolute;right:30px;top:32px;width:70px;height:70px;fill:none;stroke:rgba(255,255,255,.48);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}

.rsvp-form>[data-form-fields]{display:contents}
.rsvp-form>[data-form-fields]>label,
.rsvp-form>[data-form-fields]>fieldset{min-width:0}
.rsvp-form>[data-form-fields]>label{display:grid;align-content:start}
.rsvp-form>[data-form-fields]>label:has(textarea),
.rsvp-form>[data-form-fields]>.rsvp-form__choices,
.rsvp-form>.rsvp-consent{grid-column:1/-1}
.rsvp-form [data-form-field]>span,
.rsvp-form__choices legend{display:block;margin-bottom:12px;font-size:8px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#74766f}
.rsvp-form [data-form-field]>span b,
.rsvp-form__choices legend b{color:var(--green)}
.rsvp-form [data-form-field]>input:not([type="radio"]):not([type="checkbox"]),
.rsvp-form [data-form-field]>select,
.rsvp-form [data-form-field]>textarea{width:100%;min-height:48px;border:0;border-bottom:1px solid #8d8f87;border-radius:0;outline:0;background:transparent;padding:8px 0 12px;color:var(--ink);font-family:var(--serif);font-size:22px;line-height:1.35;resize:none}
.rsvp-form [data-form-field]>input:focus,
.rsvp-form [data-form-field]>select:focus,
.rsvp-form [data-form-field]>textarea:focus{border-color:var(--green)}
.rsvp-form [data-form-field]>input::placeholder,
.rsvp-form [data-form-field]>textarea::placeholder{color:#a0a29a}
.rsvp-form__choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0}
.rsvp-form__choices legend{grid-column:1/-1;width:100%}
.rsvp-form__choices>label{position:relative;cursor:pointer}
.rsvp-form__choices input{position:absolute;opacity:0;pointer-events:none}
.rsvp-form__choices label>span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 12px;border:1px solid #a3a49d;font-family:var(--serif);font-size:15px;text-align:center;transition:background .2s,border-color .2s,color .2s}
.rsvp-form__choices input:checked+span{border-color:var(--green);background:var(--green);color:#fff}
.rsvp-form__choices label:hover>span{border-color:var(--green)}
.field-error{display:none;margin-top:7px;color:#8d2d43;font-size:11px;line-height:1.4}
.rsvp-form [data-form-field]:has(:invalid:not(:placeholder-shown))>.field-error,
.rsvp-form__choices:has(:invalid:focus)>.field-error{display:block}
.rsvp-consent{margin-top:-10px;color:#74766f;font:400 12px/1.55 var(--sans)}
.rsvp-success.is-visible{display:flex!important}

@media(max-width:760px){
  .detail-icon svg{right:24px;top:25px;width:60px;height:60px}
  .rsvp-form>[data-form-fields]>label,
  .rsvp-form>[data-form-fields]>.rsvp-form__choices,
  .rsvp-form>.rsvp-consent{grid-column:auto}
  .rsvp-form__choices{grid-template-columns:1fr 1fr}
  .rsvp-form [data-form-field]>input:not([type="radio"]):not([type="checkbox"]),
  .rsvp-form [data-form-field]>select,
  .rsvp-form [data-form-field]>textarea{font-size:19px}
}

@media(max-width:420px){.rsvp-form__choices{grid-template-columns:1fr}}
