@import"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600;700&display=swap";:root{--ivory: #fffdf9;--cream: #fbf5eb;--beige: #f0e2d0;--soft-beige: #dfcbb4;--pale-gold: #cdb789;--mist: #f4f1ec;--blush: #ead7cf;--line: rgba(79, 71, 63, .14);--ink: #4f473f;--muted: #81786f;--white: #ffffff;--shadow: 0 28px 90px rgba(104, 89, 73, .12);--display: "Instrument Serif", Georgia, serif;--sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:0;width:100%;max-width:100%;min-height:100%;min-height:100dvh;overflow-x:clip}body{margin:0;width:100%;max-width:100%;min-height:100%;min-height:100dvh;color:var(--ink);background:var(--ivory);font-family:var(--sans);overflow-x:clip}#root{width:100%;max-width:100%;min-height:100%;min-height:100dvh}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.wedding-opening{position:relative;inset:auto;z-index:8;display:block;max-width:100vw;height:320dvh;overflow:visible;opacity:1;background:#f6ecdf;perspective:1500px}.wedding-opening:before{content:none}.wedding-opening.is-open{visibility:visible;pointer-events:none}.wedding-hero-stage{position:sticky;top:0;display:grid;width:100%;max-width:100vw;height:100svh;height:100dvh;place-items:center;overflow:hidden;perspective:1600px;transform-style:preserve-3d;will-change:opacity}.wedding-opening img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.wedding-opening-video{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;background:var(--ink)}.wedding-opening-video video,.wedding-opening-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.wedding-opening-video video{z-index:1;width:100%;height:100%;object-fit:cover;object-position:center}.wedding-opening-video-overlay{z-index:2;background:radial-gradient(circle at center,#4f473f0f,#1916147a),linear-gradient(180deg,#1916142e,#1916149e)}.wedding-opening-video-copy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-items:center;width:min(920px,calc(100% - 36px));margin-inline:auto;color:var(--ivory);text-align:center}.wedding-opening-video-copy p{grid-area:1 / 1;width:min(820px,100%);margin:0;font-family:var(--display);font-size:clamp(3rem,7vw,7rem);font-weight:400;line-height:.98;letter-spacing:0;text-shadow:0 18px 60px rgba(0,0,0,.32);transform:translateY(10px);transition:opacity .18s linear}.wedding-lower-flap{position:absolute;left:50%;top:0;z-index:3;width:100vw;max-width:none;aspect-ratio:1465 / 758;transform:translate3d(-50%,0,0);transform-origin:50% 0%;pointer-events:none;will-change:transform}.wedding-lower-flap img{width:100%;height:100%;object-fit:fill;object-position:center top;filter:saturate(.96) drop-shadow(0 -10px 18px rgba(94,70,49,.1))}.wedding-lower-flap picture,.wedding-flap-layer picture,.wedding-wax-seal picture{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.wedding-wax-seal img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.wedding-flap-layer{position:absolute;left:50%;top:0;bottom:auto;z-index:4;width:100vw;max-width:none;aspect-ratio:2106 / 636;transform:translate3d(-50%,0,0);transform-origin:50% 0%;pointer-events:none;will-change:transform}.wedding-flap-layer img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;object-position:center top;pointer-events:none;filter:drop-shadow(0 11px 11px rgba(94,70,49,.13)) drop-shadow(0 2px 2px rgba(255,255,255,.32))}.wedding-wax-seal{position:absolute;left:50%;top:100%;z-index:7;--wax-seal-image: url(/wedding-hero/layers/wax-seal-trimmed.webp);width:clamp(104px,7.8vw,148px);aspect-ratio:186 / 191;margin:0;border:0;background:transparent;cursor:pointer;padding:0;pointer-events:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;transform:translate(-50%,-50%);transform-origin:50% 50%;filter:drop-shadow(0 15px 15px rgba(64,18,20,.28)) drop-shadow(0 4px 4px rgba(255,236,204,.2));transition:filter .2s ease;will-change:transform,filter;overflow:visible;border-radius:50%;isolation:isolate;backface-visibility:hidden}.wedding-wax-seal:focus{outline:none}.wedding-wax-seal:active{background:transparent}.wedding-wax-seal:after{content:none;pointer-events:none}.wedding-wax-seal:hover{filter:drop-shadow(0 17px 18px rgba(64,18,20,.32)) drop-shadow(0 4px 5px rgba(255,236,204,.28)) saturate(1.05)}.wedding-wax-seal:focus-visible{outline:1px solid rgba(132,31,34,.48);outline-offset:12px;border-radius:50%}.wedding-scroll-indicator{position:absolute;left:50%;bottom:max(28px,5vh);z-index:8;width:1px;height:44px;opacity:.76;transform:translate(-50%);pointer-events:none}.wedding-scroll-indicator span{position:absolute;left:50%;top:0;width:8px;height:8px;border-right:1px solid rgba(150,108,44,.82);border-bottom:1px solid rgba(150,108,44,.82);transform:translate(-50%) rotate(45deg);animation:wedding-scroll-cue 1.9s ease-in-out infinite}.opening-content p,.hero-content p,.section-heading p,.copy-block p,.dresscode-panel p,.closing-section p{margin:0;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.opening-content h1{margin:18px 0 12px;font-family:var(--display);font-size:clamp(4.3rem,13vw,10rem);font-weight:400;line-height:.9;letter-spacing:0}.opening-content span{display:block;color:var(--ink);font-size:clamp(1rem,2vw,1.2rem);font-weight:500}.opening-content strong{display:block;margin-top:18px;font-family:var(--display);font-size:clamp(1.8rem,4vw,3rem);font-weight:400;line-height:1.05}.opening-content button,.hero-content a,.roadmap-copy a,.quick-actions a,.contact-actions a{display:inline-flex;min-height:52px;align-items:center;justify-content:center;margin-top:34px;border:1px solid var(--soft-beige);border-radius:999px;background:var(--soft-beige);color:var(--ink);cursor:pointer;padding:0 30px;font-size:.9rem;font-weight:700;transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease}.opening-content button:hover,.hero-content a:hover,.roadmap-copy a:hover,.quick-actions a:hover,.contact-actions a:hover{transform:translateY(-2px);background:var(--ivory);color:var(--ink)}.page{width:100%;max-width:100%;opacity:1;pointer-events:auto}.hero{position:relative;min-height:100svh;display:grid;align-items:end;padding:128px max(22px,calc((100vw - 1120px)/2)) 74px;isolation:isolate;overflow:hidden;background:var(--beige)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(180deg,#fffdf81f,#4f473f6b),linear-gradient(90deg,#4f473f2e,#4f473f05 50%,#4f473f42),var(--hero-image) center / cover no-repeat,linear-gradient(135deg,var(--beige),var(--mist));transform:scale(1.04);transition:transform 1.5s cubic-bezier(.2,.8,.2,1)}.hero.is-ready:before{transform:scale(1)}.hero.has-video:before{z-index:-1;background:linear-gradient(180deg,#fffdf81f,#4f473f6b),linear-gradient(90deg,#4f473f2e,#4f473f05 50%,#4f473f42)}.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.5s cubic-bezier(.2,.8,.2,1)}.hero.is-ready .hero-video{transform:scale(1)}.hero-content{width:min(720px,100%);color:var(--ivory);opacity:0;transform:translateY(18px);transition:opacity .9s ease .65s,transform .9s ease .65s}.hero.is-ready .hero-content{opacity:1;transform:translateY(0)}.hero-content p{color:#fffdf8c2}.hero-content h2,.section-heading h2,.copy-block h2,.dresscode-panel h2,.closing-section h2{margin:12px 0 0;font-family:var(--display);font-size:clamp(3.2rem,8vw,7.2rem);font-weight:400;line-height:.95;letter-spacing:0}.hero-content span{display:block;width:min(520px,100%);margin-top:20px;color:#fffdf8e0;font-size:clamp(1.02rem,2vw,1.18rem);line-height:1.8}.hero-content a{border-color:var(--ivory);background:var(--ivory);color:var(--ink)}.hero-content a:hover{border-color:var(--ivory);background:transparent;color:var(--ivory)}.video-story-section{position:relative;max-width:100vw;height:280dvh;background:var(--ink);overflow:visible}.video-story-section:before,.video-story-section:after{content:"";position:absolute;left:0;right:0;z-index:4;height:clamp(120px,18vw,260px);pointer-events:none}.video-story-section:before{top:0;background:linear-gradient(180deg,var(--cream),rgba(25,22,20,0))}.video-story-section:after{bottom:0;background:linear-gradient(180deg,rgba(25,22,20,0),var(--cream))}.video-story-sticky{position:sticky;top:0;height:100svh;height:100dvh;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:var(--ink)}.video-story-media,.video-story-media video,.video-story-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.video-story-media{z-index:-1;background:var(--ink)}.video-story-media video{z-index:1;width:100%;height:100%;object-fit:cover;object-position:center}.video-story-overlay{z-index:2;background:radial-gradient(circle at center,#4f473f0f,#1916147a),linear-gradient(180deg,#1916142e,#1916149e)}.video-story-copy{position:relative;z-index:3;width:min(920px,calc(100% - 36px));min-height:12rem;display:grid;place-items:center;text-align:center;color:var(--ivory)}.video-story-copy p{grid-area:1 / 1;width:min(820px,100%);margin:0;font-family:var(--display);font-size:clamp(3rem,7vw,7rem);font-weight:400;line-height:.98;letter-spacing:0;text-shadow:0 18px 60px rgba(0,0,0,.32);transform:translateY(calc((1 - var(--video-progress, 0)) * 10px));transition:opacity .18s linear}.scroll-line{position:absolute;right:max(22px,calc((100vw - 1120px)/2));bottom:72px;width:28px;height:48px;pointer-events:none}.scroll-line span{position:absolute;left:50%;top:0;display:block;width:10px;height:10px;border-right:1px solid rgba(255,235,190,.9);border-bottom:1px solid rgba(255,235,190,.9);transform:translate(-50%) rotate(45deg);animation:scroll-down-hint 1.9s ease-in-out infinite}.section{min-height:100svh;display:grid;align-content:center;padding:clamp(78px,11vw,144px) max(22px,calc((100vw - 1120px)/2))}.quick-info-section{padding-top:clamp(96px,12vw,150px);background:linear-gradient(180deg,var(--ivory),var(--cream))}.quick-info-shell{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1fr);gap:clamp(28px,6vw,70px);align-items:start;padding:clamp(24px,5vw,54px);border:1px solid var(--line);background:#fffdf9c2;box-shadow:var(--shadow)}.quick-info-intro p,.quick-info-list span{margin:0;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.quick-info-intro h2{margin:12px 0 0;font-family:var(--display);font-size:clamp(3rem,6vw,5.5rem);font-weight:400;line-height:.95}.quick-info-intro span{display:block;margin-top:22px;color:var(--muted);line-height:1.8}.quick-info-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.quick-info-list article{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;padding:18px;background:var(--ivory)}.quick-info-list strong{font-weight:600;line-height:1.55}.quick-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:12px}.quick-actions a,.contact-actions a{margin-top:0}.section-heading{width:min(820px,100%);margin-bottom:clamp(36px,6vw,64px)}.section-heading.compact{width:min(620px,100%);margin-inline:auto;text-align:center}.section-heading h2{color:var(--ink)}.editorial-split{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:clamp(38px,7vw,90px);align-items:center}.invitation-section{position:relative;overflow:hidden;background:radial-gradient(circle at 16% 18%,rgba(234,215,207,.42),transparent 28%),radial-gradient(circle at 84% 82%,rgba(205,183,137,.2),transparent 28%),linear-gradient(180deg,var(--ivory),var(--cream))}.invitation-section:before,.invitation-section:after{content:"";position:absolute;width:clamp(180px,24vw,340px);aspect-ratio:1;border:1px solid rgba(205,183,137,.22);border-radius:50%;pointer-events:none}.invitation-section:before{left:max(-120px,-7vw);top:10%}.invitation-section:after{right:max(-120px,-7vw);bottom:8%}.invitation-letter{position:relative;width:min(820px,100%);margin-inline:auto;padding:clamp(18px,3vw,34px)}.invitation-letter[data-reveal]{transform:translateY(30px) scale(.985)}.invitation-letter[data-reveal].is-visible{transform:translateY(0) scale(1)}.invitation-letter:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(205,183,137,.32);background:linear-gradient(90deg,transparent,rgba(205,183,137,.54),transparent) top / 100% 1px no-repeat,linear-gradient(90deg,transparent,rgba(205,183,137,.34),transparent) bottom / 100% 1px no-repeat;opacity:0;transform:scaleX(.72);transition:opacity .9s ease .18s,transform 1s cubic-bezier(.2,.8,.2,1) .18s;pointer-events:none}.invitation-letter.is-visible:before{opacity:1;transform:scaleX(1)}.invitation-letter-inner{position:relative;padding:clamp(38px,7vw,86px) clamp(24px,6vw,78px);border:1px solid rgba(205,183,137,.28);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.82),transparent 28%),linear-gradient(135deg,#fffdf9f0,#fbf5ebd1);box-shadow:0 30px 90px #6859491a;text-align:center}.invitation-letter-inner:before,.invitation-letter-inner:after{content:"";position:absolute;inset:clamp(12px,2vw,20px);pointer-events:none}.invitation-letter-inner:before{border:1px solid rgba(205,183,137,.32)}.invitation-letter-inner:after{background:radial-gradient(circle at 0 0,rgba(209,139,141,.18) 0 2px,transparent 3px) 0 0 / 18px 18px,radial-gradient(circle at 100% 100%,rgba(205,183,137,.18) 0 2px,transparent 3px) 0 0 / 22px 22px;-webkit-mask-image:linear-gradient(135deg,#000 0 18%,transparent 30% 70%,#000 82% 100%);mask-image:linear-gradient(135deg,#000 0 18%,transparent 30% 70%,#000 82% 100%);opacity:.58}.invitation-ornament{display:block;width:min(170px,42vw);height:1px;margin:0 auto clamp(26px,5vw,42px);background:linear-gradient(90deg,transparent,rgba(205,183,137,.78),transparent)}.invitation-ornament:before{content:"";display:block;width:8px;height:8px;margin:-4px auto 0;border:1px solid rgba(205,183,137,.82);background:var(--ivory);transform:rotate(45deg)}.invitation-copy{position:relative;z-index:1}.invitation-copy h2{width:min(620px,100%);margin-inline:auto}.invitation-copy span{width:min(600px,100%);margin-inline:auto;color:#6f6258}.image-frame,.story-thumb,.gallery-item{overflow:hidden;background:linear-gradient(135deg,var(--beige),var(--mist))}.image-frame{min-height:520px;box-shadow:var(--shadow)}.image-frame img,.story-thumb img,.gallery-item img{width:100%;height:100%;object-fit:cover}.copy-block span,.dresscode-panel span,.closing-section span{display:block;margin-top:24px;color:var(--muted);font-size:clamp(1.02rem,2vw,1.2rem);line-height:1.9}.copy-block span{white-space:pre-line}.countdown-section,.story-section,.places-section,.faq-section{background:var(--cream)}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.countdown-item{min-height:178px;display:grid;place-items:center;padding:26px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffdf88a;text-align:center}.countdown-item strong{font-family:var(--display);font-size:clamp(3.4rem,7vw,5.8rem);font-weight:400;line-height:.9;animation:number-rise .5s ease}.countdown-item span{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.story-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.story-card{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:34px;align-items:center;padding:clamp(22px,4vw,38px);background:var(--ivory)}.story-card time,.schedule-row time{display:block;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.story-card h3,.schedule-row h3,.roadmap-copy h3{margin:10px 0 0;font-family:var(--display);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1}.story-card p,.schedule-row p,.roadmap-copy span{margin:14px 0 0;color:var(--muted);line-height:1.8}.place-time{display:block;margin-top:12px;color:var(--ink);font-size:.86rem;font-weight:800;letter-spacing:.16em}.story-thumb{height:170px}.schedule-list{width:min(860px,100%);margin:0 auto;border-top:1px solid var(--line)}.schedule-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:38px;padding:28px 0;border-bottom:1px solid var(--line)}.schedule-row time{color:var(--ink)}.places-roadmap{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,8vw,120px);align-items:start;width:min(1040px,100%);margin:0 auto;padding:clamp(36px,6vw,72px) clamp(18px,4vw,46px);border:1px solid rgba(205,183,137,.24);background:radial-gradient(circle at 18% 14%,rgba(234,215,207,.36),transparent 30%),linear-gradient(135deg,#fffdf9b8,#fbf5ebe6);box-shadow:0 28px 80px #6859491a;overflow:hidden}.places-roadmap-line{position:absolute;inset:clamp(26px,5vw,54px) clamp(18px,4vw,48px) auto;z-index:0;width:calc(100% - clamp(36px,8vw,96px));height:min(32vw,280px);pointer-events:none}.places-roadmap-line path{fill:none;stroke:#cdb78994;stroke-width:2;stroke-linecap:round;stroke-dasharray:10 12}.roadmap-stop{position:relative;z-index:1;display:grid;justify-items:center;gap:20px;text-align:center}.roadmap-stop:nth-of-type(2){margin-top:clamp(52px,8vw,92px)}.roadmap-time{display:grid;place-items:center;width:clamp(94px,12vw,132px);aspect-ratio:1;border:1px solid rgba(205,183,137,.62);border-radius:50%;background:radial-gradient(circle at 38% 28%,rgba(255,255,255,.84),transparent 35%),var(--ivory);box-shadow:inset 0 0 0 8px #cdb78914,0 20px 50px #6859491f}.roadmap-time span{color:var(--ink);font-family:var(--display);font-size:clamp(2rem,4vw,3rem);line-height:1}.roadmap-copy{width:min(420px,100%);padding:clamp(24px,4vw,38px);border:1px solid rgba(79,71,63,.1);background:#fffdf8b8}.roadmap-copy p{margin:0;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.roadmap-copy h3{margin:10px 0 0;font-family:var(--display);font-size:clamp(2.2rem,4.2vw,3.4rem);font-weight:400;line-height:1}.roadmap-copy strong,.roadmap-copy span,.roadmap-copy em{display:block}.roadmap-copy strong{margin-top:18px;color:var(--ink);font-weight:700}.roadmap-copy span,.roadmap-copy em{margin-top:12px;color:var(--muted);line-height:1.7}.roadmap-copy em{font-style:normal}.roadmap-copy a{width:fit-content;margin-inline:auto}.dresscode-panel{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(460px,1.12fr);gap:clamp(44px,6vw,88px);align-items:center;width:min(1120px,100%);margin:0 auto;padding:clamp(26px,5vw,54px);border:1px solid var(--line);background:linear-gradient(135deg,#fffdf8d1,#fbf5ebf0),radial-gradient(circle at 88% 12%,rgba(234,215,207,.36),transparent 34%);box-shadow:0 28px 80px #6859491a}.dresscode-panel>div:first-child{max-width:520px}.palette{display:grid;gap:16px;width:100%;padding:clamp(18px,2.4vw,28px);border:1px solid rgba(79,71,63,.1);background:#fffdf880}.palette-row{display:grid;grid-template-columns:minmax(168px,.68fr) minmax(260px,1fr);gap:18px;align-items:center}.palette-row strong{color:var(--ink);font-size:.76rem;font-weight:700;letter-spacing:.12em;line-height:1.35;text-transform:uppercase}.palette-row div{display:grid;grid-template-columns:repeat(5,minmax(38px,1fr));gap:8px}.palette-row span{width:100%;aspect-ratio:1;border:1px solid rgba(31,31,29,.08);border-radius:999px;box-shadow:inset 0 1px #ffffff9e,0 10px 22px #68594917}.rsvp-contact{display:grid;gap:26px;width:min(820px,100%);margin:0 auto;padding:clamp(24px,5vw,52px);border:1px solid var(--line);background:var(--ivory);box-shadow:var(--shadow)}.rsvp-contact p{width:min(620px,100%);margin:0 auto;color:var(--muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.85;text-align:center}.contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.faq-list{display:grid;width:min(900px,100%);margin:0 auto;border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:22px;border:0;background:transparent;color:var(--ink);cursor:pointer;padding:24px 0;text-align:left;font-weight:700}.faq-item b{font-size:1.4rem;font-weight:400}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s ease}.faq-answer p{min-height:0;overflow:hidden;margin:0;color:var(--muted);line-height:1.8}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-item.is-open .faq-answer p{padding-bottom:24px}.gallery-section{--gallery-video-darkness: .3;position:relative;min-height:100svh;overflow:hidden;isolation:isolate;color:var(--ivory);background:var(--ink);align-content:start;padding-top:clamp(64px,10vw,112px)}.gallery-background-video,.gallery-background-video video,.gallery-section:before{position:absolute;top:0;right:0;bottom:0;left:0}.gallery-background-video{z-index:0;pointer-events:none}.gallery-background-video video{width:100%;height:100%;object-fit:cover;object-position:center}.gallery-section:before{content:"";z-index:1;height:auto;background:linear-gradient(180deg,var(--cream),rgba(25,22,20,0) clamp(100px,16vw,220px)),rgba(25,22,20,var(--gallery-video-darkness))}.gallery-section:after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:1;height:clamp(120px,18vw,260px);pointer-events:none;background:linear-gradient(180deg,rgba(25,22,20,0),var(--cream))}.gallery-section .section-heading{position:relative;z-index:2}.gallery-section .section-heading{position:relative;z-index:1}.gallery-section .section-heading p{color:#fffdf8c2}.gallery-section .section-heading h2{color:var(--ivory);text-shadow:0 18px 60px rgba(0,0,0,.32)}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-auto-rows:280px;gap:18px;overflow:hidden}.gallery-item{--image-insert-progress: 0;--gallery-offset-x: 72px;--gallery-offset-y: 34px;--gallery-delay: calc(var(--gallery-index, 0) * .08);min-height:260px;opacity:calc(.08 + (var(--image-insert-progress) * .92));clip-path:inset(calc((1 - var(--image-insert-progress)) * 12%) calc((1 - var(--image-insert-progress)) * 12%));transform:translate3d(calc((1 - var(--image-insert-progress)) * var(--gallery-offset-x)),calc((1 - var(--image-insert-progress)) * var(--gallery-offset-y)),0) scale(calc(.965 + (var(--image-insert-progress) * .035)));transition:box-shadow .24s ease;will-change:opacity,clip-path,transform}.gallery-item:first-child{grid-row:span 2;--gallery-offset-x: -88px;--gallery-offset-y: 18px}.gallery-item:nth-child(2){--gallery-offset-x: 88px;--gallery-offset-y: -24px}.gallery-item:nth-child(3){--gallery-offset-x: 88px;--gallery-offset-y: 42px}.gallery-item img{transform:scale(calc(1.08 - (var(--image-insert-progress) * .08)));transition:transform .65s ease;will-change:transform}.gallery-item:hover img{transform:scale(1.045)}.closing-section{min-height:100svh;display:grid;place-items:center;align-content:center;gap:14px;padding:clamp(86px,12vw,150px) 22px;background:var(--cream);text-align:center}.closing-section h2{margin-top:0}.closing-section span{width:min(620px,100%);margin-top:8px}.closing-section strong{font-family:var(--display);font-size:clamp(1.8rem,4vw,3.2rem);font-weight:400;line-height:1.05}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes scroll-down-hint{0%,to{opacity:.58;transform:translate(-50%) translateY(-8px) rotate(45deg)}50%{opacity:1;transform:translate(-50%) translateY(8px) rotate(45deg)}}@keyframes wedding-scroll-cue{0%,to{opacity:.28;transform:translate(-50%,-4px) rotate(45deg)}50%{opacity:1;transform:translate(-50%,18px) rotate(45deg)}}@keyframes number-rise{0%{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:920px){.wedding-opening{height:400dvh}.wedding-lower-flap img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.wedding-lower-flap{top:auto;bottom:0;left:50%;width:100vw;max-width:none;aspect-ratio:768 / 1399;transform:translate3d(-50%,0,0)}.wedding-lower-flap picture{inset:auto 0 0;width:100vw;height:auto;aspect-ratio:768 / 1399}.wedding-flap-layer{top:0;bottom:auto;left:50%;width:100vw;max-width:none;aspect-ratio:998 / 1238;transform:translate3d(-50%,0,0)}.wedding-flap-layer img{object-fit:contain;object-position:center top}.wedding-wax-seal{left:50%;top:99.9%;--wax-seal-image: url(/wedding-hero/mobile/siegel_beige_trimmed.webp);width:clamp(124px,32%,186px);aspect-ratio:850 / 888;transform:translate(-50%,-50%)}.wedding-scroll-indicator{bottom:max(20px,3vh)}.editorial-split,.dresscode-panel,.quick-info-shell{grid-template-columns:1fr}.dresscode-panel{gap:30px}.dresscode-panel>div:first-child{max-width:none}.palette{padding:0;border:0;background:transparent}.palette-row{grid-template-columns:1fr;gap:9px}.palette-row div{grid-template-columns:repeat(5,minmax(0,1fr))}.countdown-grid{grid-template-columns:repeat(2,1fr)}.story-card{grid-template-columns:1fr}.story-thumb{height:260px}}@media(max-width:640px){.hero{padding:112px 18px 54px}.video-story-section{height:210dvh}.video-story-sticky{min-height:100svh;min-height:100dvh}.video-story-copy{width:calc(100% - 28px);min-height:9rem}.video-story-copy p{font-size:clamp(2.35rem,13vw,4.6rem);line-height:1.02}.hero-content h2,.section-heading h2,.copy-block h2,.dresscode-panel h2,.closing-section h2{font-size:clamp(3rem,15vw,4.6rem)}.invitation-letter{padding:10px}.invitation-letter-inner{padding:38px 22px}.invitation-copy h2{font-size:clamp(2.65rem,13vw,4rem)}.invitation-copy span{font-size:1rem;line-height:1.78}.scroll-line{right:18px;bottom:28px}.section{padding-inline:18px}.places-roadmap{grid-template-columns:1fr;gap:46px;padding:30px 16px}.places-roadmap-line{top:86px;left:50%;width:min(180px,46vw);height:calc(100% - 160px);transform:translate(-50%) rotate(90deg);transform-origin:center;opacity:.75}.roadmap-stop:nth-of-type(2){margin-top:0}.roadmap-copy{width:100%;padding:24px 18px}.image-frame{min-height:390px}.countdown-grid,.schedule-row,.gallery-grid{grid-template-columns:1fr}.quick-info-list article{grid-template-columns:1fr;gap:8px}.quick-actions,.contact-actions{display:grid}.quick-actions a,.roadmap-copy a,.contact-actions a{width:100%}.countdown-item{min-height:136px}.schedule-row{gap:10px}.gallery-grid{grid-auto-rows:320px}.gallery-item:first-child{grid-row:span 1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.video-story-section{height:auto;min-height:auto}.video-story-sticky{position:relative;min-height:100svh;padding:88px 18px}.video-story-copy{gap:22px}.video-story-copy p{position:static;grid-area:auto;opacity:1!important;transform:none;font-size:clamp(2.1rem,8vw,4.5rem)}.wedding-opening{height:100svh;min-height:620px}.wedding-opening-video,.wedding-lower-flap,.wedding-flap-layer,.wedding-wax-seal,.wedding-wax-seal:after,.wedding-scroll-indicator span{animation:none;transition:none}.wedding-flap-layer,.wedding-lower-flap{transform:translate3d(-50%,0,0)}.wedding-wax-seal,.wedding-wax-seal:hover{transform:translate(-50%,-50%)}.gallery-item,.gallery-item img{opacity:1;clip-path:none;transform:none}}
