@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=Jost:wght@300;400;500&display=swap";:root{--olive: #526851;--sage: #A0AC94;--cream: #F3F1E5;--beige: #CFC8B5;--forest-green: var(--olive);--ivory: var(--cream);--antique-gold: var(--beige);--dusty-rose: var(--sage);--olive-rgb: 82, 104, 81;--sage-rgb: 160, 172, 148;--cream-rgb: 243, 241, 229;--beige-rgb: 207, 200, 181;--olive-dark: #455741;--olive-deep: #3A4A39;--sage-light: #B5BEAB;--cream-soft: #EBE8DC;--beige-dark: #BDB5A0;--font-display: "Cormorant Garamond", serif;--font-body: "Jost", sans-serif;--text-hero: clamp(2.75rem, 10.5vw, 5.25rem);--text-section: clamp(2rem, 6vw, 3.25rem);--text-card: clamp(1.35rem, 3.5vw, 1.65rem);--text-quote: clamp(1.1rem, 3.2vw, 1.4rem);--text-body: clamp(.95rem, 2.4vw, 1.05rem);--text-meta: clamp(.8rem, 2.2vw, .9rem);--text-label: .7rem;--text-button: .74rem;--text-nav: .8rem;--lh-tight: 1.05;--lh-snug: 1.15;--lh-body: 1.55;--tracking-label: .22em;--tracking-date: .28em;--tracking-button: .14em;--tracking-nav: .12em;--weight-display: 400;--weight-medium: 500;--weight-body: 400;--section-padding-y: clamp(56px, 10vw, 100px);--container-padding-x: clamp(16px, 5vw, 40px)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--weight-body);line-height:var(--lh-body);background-color:var(--cream);background:radial-gradient(circle at top,rgba(var(--beige-rgb),.18),transparent 34%),linear-gradient(180deg,var(--cream) 0%,var(--cream-soft) 100%);color:var(--olive);position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)"/%3E%3C/svg%3E');opacity:.04;z-index:9999}#rice-container{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40;overflow:hidden}.rice-grain{position:absolute;top:-8vh;border-radius:999px;opacity:.55;transform-origin:center;animation-name:riceFall;animation-timing-function:linear;animation-iteration-count:infinite;box-shadow:0 1px 2px #5268511f}@keyframes riceFall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}8%{opacity:.55}to{transform:translate3d(var(--drift, 20vw),110vh,0) rotate(calc(var(--spin, 1) * 540deg));opacity:.2}}.container{width:min(calc(100% - 2 * var(--container-padding-x)),1080px);margin:0 auto}.text-center{text-align:center}.ivory{color:var(--cream)!important}.gold{color:var(--beige)!important}.green{color:var(--olive)!important}.sage{color:var(--sage)!important}.italic{font-style:italic}.section-light .gold{color:var(--sage)!important}.section-dark .gold{color:var(--beige)!important}.section-dark{background:linear-gradient(165deg,var(--olive) 0%,var(--olive-dark) 100%);color:var(--cream);padding:var(--section-padding-y) 0}.section-light{background-color:var(--cream);color:var(--olive);padding:var(--section-padding-y) 0}.cormorant-title{font-family:var(--font-display);font-size:var(--text-section);font-weight:var(--weight-display);font-style:normal;margin-bottom:clamp(16px,4vw,30px);line-height:var(--lh-tight);letter-spacing:.08em;text-transform:uppercase}.sticky-nav{position:fixed;top:0;width:100%;background:rgba(var(--cream-rgb),.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;padding:12px clamp(16px,4vw,40px);padding-top:max(12px,env(safe-area-inset-top));z-index:1000;box-shadow:0 1px 10px rgba(var(--olive-rgb),.06);transform:translateY(-100%);transition:transform .4s ease}.sticky-nav.visible{transform:translateY(0)}.nav-monogram{font-family:var(--font-display);color:var(--sage);font-size:clamp(1.2rem,4vw,1.5rem);font-weight:600;flex-shrink:0;letter-spacing:.04em}.nav-links{display:flex;align-items:center}.nav-links a{text-decoration:none;color:var(--olive);margin-left:20px;font-family:var(--font-body);font-size:var(--text-nav);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-nav);transition:color .3s;white-space:nowrap}.nav-links a:hover{color:var(--beige-dark)}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;border:1px solid rgba(var(--olive-rgb),.12);border-radius:8px;background:rgba(var(--cream-rgb),.7);cursor:pointer;flex-shrink:0}.nav-toggle span{display:block;width:100%;height:2px;background:var(--olive);border-radius:2px;transition:transform .3s ease,opacity .3s ease}.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.envelope-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background:linear-gradient(160deg,var(--olive) 0%,var(--olive-deep) 100%);display:flex;justify-content:center;align-items:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity 1s ease;padding:clamp(16px,5vw,32px);padding-top:max(clamp(16px,5vw,32px),env(safe-area-inset-top));padding-bottom:max(clamp(16px,5vw,32px),env(safe-area-inset-bottom))}.envelope-screen.active{opacity:1;pointer-events:all}.invitation-screen{opacity:0;pointer-events:none;transition:opacity 1.5s ease}.invitation-screen.active{opacity:1;pointer-events:all}.envelope-wrapper{position:relative;cursor:pointer;transform-style:preserve-3d;perspective:1000px;transform-origin:center center}.envelope-text{position:absolute;top:clamp(-72px,-18vw,-80px);width:100%;text-align:center;font-family:var(--font-display);font-size:var(--text-quote);color:var(--beige);font-style:italic;font-weight:var(--weight-display);letter-spacing:.02em;animation:pulse 2s infinite}.envelope-body{position:relative;width:320px;height:200px;background:var(--cream);border-radius:4px;box-shadow:0 10px 30px rgba(var(--olive-rgb),.35)}.envelope-flap{position:absolute;width:0;height:0;border-style:solid}.envelope-flap.top{top:0;left:0;border-width:100px 160px 0 160px;border-color:var(--cream-soft) transparent transparent transparent;transform-origin:top;z-index:4;transition:transform .9s ease}.envelope-flap.bottom{bottom:0;left:0;border-width:0 160px 100px 160px;border-color:transparent transparent var(--beige) transparent;z-index:3}.envelope-flap.left{top:0;left:0;border-width:100px 0 100px 160px;border-color:transparent transparent transparent var(--cream-soft);z-index:3}.envelope-flap.right{top:0;right:0;border-width:100px 160px 100px 0;border-color:transparent var(--beige-dark) transparent transparent;z-index:3}.wax-seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:clamp(64px,18vw,88px);height:clamp(64px,18vw,88px);object-fit:contain;z-index:5;display:block;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(var(--olive-rgb),.35));transition:opacity .4s ease,transform .4s ease}.letter{position:absolute;inset:10px;background:var(--cream);z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid var(--beige);transition:transform 1.1s ease}.letter-names{font-family:var(--font-display);font-size:var(--text-card);font-weight:var(--weight-medium);color:var(--olive);margin-bottom:5px;line-height:var(--lh-snug)}.letter-invite{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-medium);color:rgba(var(--olive-rgb),.7);letter-spacing:var(--tracking-label);text-transform:uppercase;margin-bottom:16px}.letter-open-text{font-family:var(--font-display);font-style:italic;font-size:var(--text-meta);font-weight:var(--weight-display);color:var(--sage)}.envelope-wrapper.open .envelope-flap.top{transform:rotateX(180deg);z-index:1}.envelope-wrapper.open .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(1.5);pointer-events:none}.envelope-wrapper.open .letter{transform:translateY(-120px);z-index:5;box-shadow:0 15px 30px #0003}.envelope-wrapper.expand .letter{transform:translateY(-120px) scale(20);opacity:0;transition:transform 1.2s cubic-bezier(.25,1,.5,1),opacity .8s ease .4s}.envelope-wrapper.expand .envelope-body{opacity:0;transition:opacity .6s ease}.envelope-wrapper.open .envelope-text{opacity:0}.hero{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;text-align:center;padding:clamp(48px,8vw,80px) clamp(16px,5vw,24px) clamp(32px,6vw,48px)}.hero-bg-botanical{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;max-width:800px;opacity:.6;z-index:0;pointer-events:none}.hero-content{z-index:1;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:760px}.hero-intro{display:flex;flex-direction:column;align-items:center;width:100%;margin-bottom:clamp(24px,5vw,40px)}.hero-subtitle{font-family:var(--font-body);font-style:normal;font-size:var(--text-label);font-weight:var(--weight-medium);color:var(--sage);margin-bottom:clamp(12px,2.5vw,18px);letter-spacing:var(--tracking-date);text-transform:uppercase;opacity:0;animation:fadeInUp 1s ease forwards .2s}.hero-title{font-family:var(--font-display);font-size:var(--text-hero);font-weight:var(--weight-medium);color:var(--olive);line-height:.92;letter-spacing:-.02em;margin-bottom:clamp(12px,2.5vw,18px);max-width:13ch;opacity:0;animation:fadeInUp 1s ease forwards .6s}.hero-date-wrap{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.8vw,12px);opacity:0;animation:fadeInUp 1s ease forwards 1s}.hero-date{font-family:var(--font-body);font-weight:var(--weight-medium);letter-spacing:var(--tracking-date);font-size:var(--text-meta);color:rgba(var(--olive-rgb),.78);margin:0;padding-left:.2em;text-transform:uppercase}.hero-location{font-family:var(--font-body);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);font-size:var(--text-label);color:rgba(var(--olive-rgb),.58);margin:0;text-transform:uppercase}.wedding-divider{color:rgba(var(--beige-rgb),.75);font-size:16px;margin:0;line-height:1}.wedding-divider:before,.wedding-divider:after{content:"";display:inline-block;width:42px;height:1px;background:rgba(var(--beige-rgb),.45);vertical-align:middle;margin:0 12px}.hero-photo-wrapper{width:100%;max-width:380px;margin:0 auto clamp(24px,4vw,32px);aspect-ratio:4 / 5;border-radius:18px;border:1px solid rgba(var(--beige-rgb),.55);box-shadow:0 18px 40px rgba(var(--olive-rgb),.12);overflow:hidden;opacity:0;animation:fadeInUp 1s ease forwards 1.4s}.hero-photo{width:100%;height:100%;object-fit:cover}.hero-countdown{width:100%;max-width:420px;margin:0 auto;opacity:0;animation:fadeInUp 1s ease forwards 1.8s}.hero-countdown__label{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--olive-rgb),.55);margin-bottom:14px;text-align:center}.hero-countdown .countdown-grid{gap:clamp(8px,2vw,12px)}.hero-countdown .cd-box{max-width:92px;border-radius:16px;border:1px solid rgba(var(--beige-rgb),.65);background:linear-gradient(180deg,rgba(var(--cream-rgb),.95),rgba(var(--beige-rgb),.22));box-shadow:inset 0 1px #ffffff80,0 10px 24px rgba(var(--olive-rgb),.08);padding:10px 6px}.hero-countdown .cd-box:after{inset:6px;border-radius:12px;border-color:rgba(var(--beige-rgb),.28)}.hero-countdown .cd-number{font-size:clamp(1.45rem,5.5vw,2rem);color:var(--olive-dark)}.hero-countdown .cd-label{color:rgba(var(--olive-rgb),.58);margin-top:6px}.scroll-indicator{position:absolute;bottom:30px;width:1px;height:50px;background:var(--beige);animation:scrollPulse 2s infinite ease-in-out}@keyframes scrollPulse{0%{transform:scaleY(0);transform-origin:top;opacity:1}50%{transform:scaleY(1);transform-origin:top;opacity:1}50.1%{transform:scaleY(1);transform-origin:bottom;opacity:1}to{transform:scaleY(0);transform-origin:bottom;opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section-header{display:flex;align-items:center;justify-content:center;gap:clamp(12px,3vw,20px);margin-bottom:clamp(36px,8vw,60px)}.gold-rule{height:1px;width:clamp(40px,12vw,80px);background:var(--beige);flex-shrink:0}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(18px,3vw,28px);margin-bottom:clamp(40px,8vw,80px);max-width:960px;margin-left:auto;margin-right:auto}.glass-card{background:linear-gradient(180deg,rgba(var(--cream-rgb),.98),rgba(var(--cream-rgb),.9));border:1px solid rgba(var(--beige-rgb),.65);box-shadow:0 1px rgba(var(--cream-rgb),.9) inset,0 20px 44px rgba(var(--olive-rgb),.16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:24px;text-align:center;width:100%;color:var(--olive);transition:transform .45s ease,box-shadow .45s ease,border-color .45s ease}.detail-card{display:flex;flex-direction:column;align-items:center;min-height:100%;padding:clamp(28px,4vw,36px) clamp(20px,3.5vw,28px) clamp(24px,4vw,32px);position:relative;overflow:hidden}.detail-card:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:56px;height:2px;background:linear-gradient(90deg,transparent,var(--beige),transparent)}.detail-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(var(--beige-rgb),.22);border-radius:18px;pointer-events:none}.detail-card__icon-wrap{width:56px;height:56px;border-radius:50%;border:1px solid rgba(var(--beige-rgb),.75);background:rgba(var(--cream-rgb),.65);display:flex;align-items:center;justify-content:center;margin-bottom:20px;box-shadow:0 0 0 5px rgba(var(--beige-rgb),.12),0 8px 18px rgba(var(--olive-rgb),.08)}.detail-card__icon{width:22px;height:22px;stroke-width:1.5;color:var(--olive)}.detail-card__label{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--olive-rgb),.52);margin-bottom:12px;font-weight:var(--weight-medium)}.detail-card__value{font-family:var(--font-display);font-size:var(--text-card);font-weight:var(--weight-medium);line-height:var(--lh-snug);color:var(--olive-dark);margin-bottom:8px;max-width:18ch}.detail-card__meta{font-family:var(--font-body);font-size:var(--text-meta);font-weight:var(--weight-body);color:rgba(var(--olive-rgb),.68);letter-spacing:.04em;line-height:var(--lh-body)}.detail-card--action .detail-card__value{font-size:clamp(1.2rem,3vw,1.45rem);max-width:20ch}.detail-card:first-child .detail-card__value{font-size:clamp(1.15rem,3vw,1.4rem);max-width:16ch}.detail-card--action .detail-card__meta{margin-bottom:4px}.btn-location{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:210px;padding:11px 18px;border:1px solid rgba(var(--olive-rgb),.22);border-radius:999px;background:rgba(var(--olive-rgb),.06);color:var(--olive-dark);font-family:var(--font-body);font-size:var(--text-button);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-button);text-decoration:none;transition:background .3s ease,border-color .3s ease,color .3s ease,transform .3s ease}.btn-location svg{transition:transform .3s ease}.btn-location:hover{background:var(--olive);border-color:var(--olive);color:var(--cream)}.btn-location:hover svg{transform:translate(3px)}.small-text{font-family:var(--font-body);font-size:var(--text-meta);color:rgba(var(--olive-rgb),.78);opacity:1}.timeline-wrap{max-width:920px;margin:0 auto}.timeline-eyebrow{text-align:center;font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--cream-rgb),.55);margin-bottom:clamp(24px,5vw,36px);font-weight:var(--weight-medium)}.timeline-container{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2.5vw,20px);padding-top:18px;max-width:720px;margin:0 auto}.timeline-line{position:absolute;top:28px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--beige-rgb),.55) 15%,rgba(var(--beige-rgb),.55) 85%,transparent);z-index:1}.timeline-point{display:flex;flex-direction:column;align-items:center;z-index:2;gap:14px}.timeline-node{width:14px;height:14px;border-radius:50%;background:var(--beige);box-shadow:0 0 0 5px var(--olive),0 0 0 6px rgba(var(--beige-rgb),.35);flex-shrink:0}.timeline-card{width:100%;padding:clamp(16px,3vw,20px) clamp(12px,2.5vw,16px);border-radius:18px;background:rgba(var(--cream-rgb),.08);border:1px solid rgba(var(--beige-rgb),.28);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb),.06);text-align:center;transition:transform .35s ease,border-color .35s ease,background .35s ease}.timeline-card .tl-time{display:block;font-family:var(--font-display);font-size:var(--text-card);font-weight:var(--weight-medium);color:var(--cream);line-height:var(--lh-tight);margin-bottom:6px}.timeline-card .tl-label{display:block;font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--beige-rgb),.95);font-weight:var(--weight-medium)}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2.5vw,18px)}.cd-box{position:relative;width:100%;aspect-ratio:1;max-width:140px;margin:0 auto;border-radius:22px;border:1px solid rgba(var(--beige-rgb),.42);background:linear-gradient(180deg,rgba(var(--cream-rgb),.12),rgba(var(--cream-rgb),.05));box-shadow:inset 0 1px rgba(var(--cream-rgb),.12),0 14px 32px #0000001f;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px 8px;overflow:hidden}.cd-box:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:40px;height:2px;background:linear-gradient(90deg,transparent,var(--beige),transparent)}.cd-box:after{content:"";position:absolute;inset:8px;border:1px solid rgba(var(--beige-rgb),.16);border-radius:16px;pointer-events:none}.cd-number{font-family:var(--font-display);font-size:clamp(1.85rem,7vw,2.75rem);font-weight:var(--weight-medium);line-height:1;color:var(--cream);position:relative;z-index:1}.cd-label{font-family:var(--font-body);font-size:var(--text-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--beige);margin-top:8px;font-weight:var(--weight-medium);position:relative;z-index:1}@keyframes cdPulse{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.cd-box.pulse .cd-number{animation:cdPulse 1s infinite}.dresscode-main{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:.16em;text-transform:uppercase;margin-bottom:clamp(28px,6vw,50px);color:rgba(var(--olive-rgb),.7);white-space:nowrap}.dresscode-columns{display:flex;justify-content:center;gap:clamp(32px,8vw,80px);margin-bottom:clamp(24px,5vw,40px);flex-wrap:wrap}.dc-col{display:flex;flex-direction:column;align-items:center;text-align:center}.swatch{width:60px;height:60px;border-radius:50%;margin-bottom:20px}.swatch.rose{background:var(--sage)}.swatch.green{background:var(--olive)}.dc-figure{width:clamp(72px,16vw,96px);height:clamp(100px,22vw,134px);margin-bottom:16px;color:var(--olive);display:flex;align-items:flex-end;justify-content:center}.dc-figure svg{width:100%;height:100%;display:block}.dc-figure--woman{color:var(--olive-dark)}.dc-figure--man{color:var(--olive)}.dc-col h3{font-family:var(--font-display);font-size:var(--text-card);font-weight:var(--weight-medium);line-height:var(--lh-snug);margin-bottom:10px;color:var(--olive-dark);text-transform:uppercase;letter-spacing:.06em}.dc-col p{font-family:var(--font-body);font-weight:var(--weight-body);color:rgba(var(--olive-rgb),.9);line-height:var(--lh-body);font-size:var(--text-body);max-width:28ch}.dc-note{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);color:rgba(var(--olive-rgb),.78);font-size:var(--text-meta);line-height:var(--lh-body);max-width:36ch;margin:0 auto}.floral-divider{display:block;margin:0 auto}.floral-divider.top{margin-bottom:40px}.floral-divider.bottom{margin-top:40px}.gifts-subtitle,.guestbook-subtitle{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--text-body);max-width:600px;margin:0 auto clamp(28px,6vw,50px);line-height:var(--lh-body);padding:0 4px}.gifts-subtitle{color:rgba(var(--cream-rgb),.82)}.gifts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(18px,3vw,28px);max-width:960px;margin:0 auto}.gift-card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(var(--cream-rgb),.98),rgba(var(--cream-rgb),.92));color:var(--olive);border-radius:24px;padding:clamp(28px,4vw,36px) clamp(20px,3.5vw,28px) clamp(24px,4vw,32px);display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid rgba(var(--beige-rgb),.65);box-shadow:0 1px rgba(var(--cream-rgb),.9) inset,0 20px 44px #00000024;transition:transform .45s ease,box-shadow .45s ease,border-color .45s ease}.gift-card:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:56px;height:2px;background:linear-gradient(90deg,transparent,var(--beige),transparent)}.gift-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(var(--beige-rgb),.22);border-radius:18px;pointer-events:none}.gift-card--soft{background:linear-gradient(180deg,rgba(var(--sage-rgb),.18),rgba(var(--sage-rgb),.08));color:var(--cream);border-color:rgba(var(--cream-rgb),.22);box-shadow:inset 0 1px rgba(var(--cream-rgb),.08),0 20px 44px #0000001a}.gift-card--soft .gift-card__type,.gift-card--soft .gift-card__text{color:rgba(var(--cream-rgb),.72)}.gift-card--soft .gift-card__title{color:var(--cream)}.gift-card--soft .gift-card__icon-wrap{border-color:rgba(var(--cream-rgb),.28);background:rgba(var(--cream-rgb),.08);box-shadow:0 0 0 5px rgba(var(--cream-rgb),.06)}.gift-card--soft .gift-card__icon{color:var(--beige)}.gift-card__icon-wrap{width:56px;height:56px;border-radius:50%;border:1px solid rgba(var(--beige-rgb),.75);background:rgba(var(--cream-rgb),.65);display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 0 0 5px rgba(var(--beige-rgb),.12),0 8px 18px rgba(var(--olive-rgb),.08);position:relative;z-index:1}.gift-card__icon{width:22px;height:22px;stroke-width:1.5;color:var(--olive)}.gift-card__type{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--olive-rgb),.52);margin-bottom:10px;font-weight:var(--weight-medium);position:relative;z-index:1}.gift-card__title{font-family:var(--font-display);font-size:var(--text-card);font-weight:var(--weight-medium);margin-bottom:12px;color:var(--olive-dark);line-height:var(--lh-snug);text-transform:uppercase;letter-spacing:.06em;position:relative;z-index:1}.gift-card__text{font-family:var(--font-body);font-weight:var(--weight-body);margin-bottom:16px;line-height:var(--lh-body);font-size:var(--text-body);color:rgba(var(--olive-rgb),.82);position:relative;z-index:1}.gift-card__code{font-family:var(--font-body);font-size:var(--text-meta);letter-spacing:var(--tracking-button);text-transform:uppercase;color:rgba(var(--olive-rgb),.62);margin-bottom:18px;font-weight:var(--weight-medium);position:relative;z-index:1}.btn-gift{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:220px;padding:11px 18px;border:1px solid rgba(var(--olive-rgb),.22);border-radius:999px;background:rgba(var(--olive-rgb),.06);color:var(--olive-dark);font-family:var(--font-body);font-size:var(--text-button);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-button);text-decoration:none;transition:background .3s ease,border-color .3s ease,color .3s ease;position:relative;z-index:1}.btn-gift svg{transition:transform .3s ease}.btn-gift:hover{background:var(--olive);border-color:var(--olive);color:var(--cream)}.btn-gift:hover svg{transform:translate(3px)}.bank-details-block{width:100%;background:rgba(var(--olive-rgb),.05);padding:16px 18px;border-radius:14px;font-family:var(--font-body);font-size:var(--text-meta);text-align:left;border:1px solid rgba(var(--beige-rgb),.28);position:relative;z-index:1;margin-top:auto}.b-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;border-bottom:1px dashed rgba(var(--olive-rgb),.18);padding-bottom:4px;flex-wrap:wrap}.b-row strong{text-align:right;word-break:break-word;font-weight:var(--weight-medium);font-family:var(--font-body)}.b-row:last-child{margin-bottom:0;border:none;padding:0}.b-row span{color:rgba(var(--olive-rgb),.58);font-size:var(--text-label);letter-spacing:var(--tracking-button);text-transform:uppercase;font-weight:var(--weight-medium)}.elegant-form{max-width:600px;margin:0 auto;text-align:left}.form-group{position:relative;margin-bottom:30px}.form-group input,.form-group textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(var(--olive-rgb),.22);padding:10px 0;font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--weight-body);color:var(--olive);transition:border-color .3s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--sage)}.form-group label{position:absolute;top:10px;left:0;font-family:var(--font-body);font-size:var(--text-body);color:rgba(var(--olive-rgb),.48);pointer-events:none;transition:all .3s ease;font-weight:var(--weight-body)}.form-group input:focus~label,.form-group input:not(:placeholder-shown)~label,.form-group textarea:focus~label,.form-group textarea:not(:placeholder-shown)~label{top:-15px;font-size:var(--text-meta);letter-spacing:.04em;color:var(--sage)}.file-group{border-bottom:1px solid rgba(var(--olive-rgb),.22);padding-bottom:10px}.file-label{position:static!important;display:block;margin-bottom:10px;font-size:var(--text-meta)!important}input[type=file]{font-size:var(--text-meta)}.btn-submit{width:100%;background:var(--olive);color:var(--cream);border:none;padding:15px;font-family:var(--font-body);font-size:var(--text-button);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-button);cursor:pointer;border-radius:4px;position:relative;overflow:hidden;transition:background .3s}.btn-submit:hover{background:var(--olive-dark)}.btn-submit:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-submit:hover:after{left:100%}.success-message{margin-top:20px;text-align:center;color:var(--olive);font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--weight-medium)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.rsvp-adults{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);font-size:clamp(1rem,2.8vw,1.2rem);color:rgba(var(--cream-rgb),.82);line-height:var(--lh-body);max-width:34ch;margin:0 auto clamp(20px,4vw,28px)}.btn-large-gold{background:var(--beige);color:var(--olive);border:none;padding:clamp(14px,4vw,18px) clamp(24px,6vw,40px);font-family:var(--font-body);font-weight:var(--weight-medium);font-size:var(--text-button);text-transform:uppercase;letter-spacing:var(--tracking-button);cursor:pointer;border-radius:4px;transition:transform .3s ease,box-shadow .3s ease,background .3s ease;width:min(100% - 32px,360px);max-width:100%}.rsvp-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.rsvp-modal.is-open{opacity:1;visibility:visible;pointer-events:all}.rsvp-modal__backdrop{position:absolute;inset:0;background:#3a4a398c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rsvp-modal__dialog{position:relative;width:min(100%,440px);max-height:min(90vh,720px);overflow-y:auto;background:linear-gradient(180deg,rgba(var(--cream-rgb),.99) 0%,var(--cream-soft) 100%);border:1px solid rgba(var(--beige-rgb),.7);border-radius:22px;box-shadow:0 28px 60px rgba(var(--olive-rgb),.28);padding:clamp(28px,5vw,36px) clamp(22px,5vw,32px);color:var(--olive)}.rsvp-modal__close{position:absolute;top:12px;right:14px;width:36px;height:36px;border:none;background:transparent;color:rgba(var(--olive-rgb),.55);font-size:1.6rem;line-height:1;cursor:pointer}.rsvp-modal__eyebrow{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(var(--olive-rgb),.55);margin-bottom:8px;text-align:center}.rsvp-modal__title{font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2rem);font-weight:var(--weight-medium);text-align:center;margin-bottom:24px;letter-spacing:.04em;text-transform:uppercase;line-height:var(--lh-snug)}.rsvp-form{display:flex;flex-direction:column;gap:18px}.rsvp-fieldset{border:1px solid rgba(var(--beige-rgb),.55);border-radius:14px;padding:14px 16px 16px;margin:0;display:flex;flex-direction:column;gap:12px}.rsvp-fieldset legend{font-family:var(--font-body);font-size:var(--text-meta);font-weight:var(--weight-medium);letter-spacing:.04em;padding:0 6px;color:var(--olive-dark)}.rsvp-field{display:flex;flex-direction:column;gap:6px;text-align:left}.rsvp-field label{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:var(--tracking-button);text-transform:uppercase;color:rgba(var(--olive-rgb),.6)}.rsvp-field input[type=text]{width:100%;border:none;border-bottom:1px solid rgba(var(--olive-rgb),.22);background:transparent;padding:10px 0;font-family:var(--font-body);font-size:var(--text-body);color:var(--olive)}.rsvp-field input[type=text]:focus{outline:none;border-color:var(--sage)}.rsvp-check{display:flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:var(--text-body);color:var(--olive-dark);cursor:pointer}.rsvp-check input{accent-color:var(--olive);width:16px;height:16px}.rsvp-allergy-detail{margin-top:4px;padding-left:26px}.rsvp-form__submit{margin-top:8px;width:100%;border:none;border-radius:999px;padding:14px 20px;background:var(--olive);color:var(--cream);font-family:var(--font-body);font-size:var(--text-button);font-weight:var(--weight-medium);letter-spacing:var(--tracking-button);text-transform:uppercase;cursor:pointer;transition:background .3s ease}.rsvp-form__submit:hover{background:var(--olive-dark)}.rsvp-thanks{text-align:center;padding:12px 0 4px}.rsvp-thanks__mark{color:var(--beige-dark);font-size:1.4rem;margin-bottom:12px}.rsvp-thanks__text{font-family:var(--font-display);font-style:italic;font-size:var(--text-quote);line-height:var(--lh-body);color:rgba(var(--olive-rgb),.82);max-width:28ch;margin:0 auto 28px}body.rsvp-open{overflow:hidden}.fade-up{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.fade-up.visible{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.2s}.delay-2{transition-delay:.4s}.delay-3{transition-delay:.6s}@media(hover:hover)and (pointer:fine){.glass-card:hover{transform:translateY(-8px);border-color:rgba(var(--beige-rgb),.85);box-shadow:0 1px rgba(var(--cream-rgb),.95) inset,0 28px 52px rgba(var(--olive-rgb),.2)}.gift-card:hover{transform:translateY(-8px);border-color:rgba(var(--beige-rgb),.85);box-shadow:0 1px rgba(var(--cream-rgb),.95) inset,0 28px 52px #0000002e}.timeline-card:hover{transform:translateY(-4px);background:rgba(var(--cream-rgb),.12);border-color:rgba(var(--beige-rgb),.45)}.btn-large-gold:hover{transform:scale(1.05);background:var(--sage-light);box-shadow:0 10px 20px rgba(var(--olive-rgb),.18)}}@media(max-width:900px){.timeline-container{grid-template-columns:1fr;gap:0;padding-left:8px;max-width:420px}.timeline-line{inset:0 auto 0 22px;width:1px;height:auto;background:linear-gradient(180deg,transparent,rgba(var(--beige-rgb),.55) 8%,rgba(var(--beige-rgb),.55) 92%,transparent)}.timeline-point{flex-direction:row;align-items:stretch;width:100%;margin-bottom:16px;gap:16px}.timeline-point:last-child{margin-bottom:0}.timeline-node{margin-top:22px;flex-shrink:0}.timeline-card{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;padding:16px 18px}.timeline-card .tl-time{margin-bottom:0;min-width:56px}.timeline-card .tl-label{flex:1;text-align:right}}@media(max-width:768px){.nav-toggle{display:flex}.nav-links{position:absolute;top:calc(100% + 8px);right:clamp(16px,4vw,40px);left:clamp(16px,4vw,40px);flex-direction:column;align-items:stretch;background:rgba(var(--cream-rgb),.98);border:1px solid rgba(var(--beige-rgb),.35);border-radius:12px;box-shadow:0 16px 40px rgba(var(--olive-rgb),.12);padding:12px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease,visibility .25s;pointer-events:none}.nav-links.open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:all}.nav-links a{margin:0;padding:14px 16px;border-radius:8px;text-align:center;font-size:.8rem}.nav-links a+a{margin-top:4px}.nav-links a:active{background:rgba(var(--sage-rgb),.18)}.hero{min-height:auto;justify-content:flex-start;padding-top:clamp(36px,10vw,56px);padding-bottom:32px}.hero-bg-botanical{width:95vw}.hero-photo-wrapper{margin-bottom:28px}.scroll-indicator{display:none}.dresscode-columns{flex-direction:column;gap:32px}.dc-col{width:100%;max-width:320px;margin:0 auto}.cards-grid,.gifts-grid{grid-template-columns:1fr;max-width:360px}.glass-card{max-width:100%}.detail-card{min-height:auto}}@media(max-width:640px){:root{--section-padding-y: clamp(48px, 12vw, 72px)}.glass-card:not(.detail-card){border-radius:18px;padding:22px 18px}.detail-card{padding:24px 18px 22px}.detail-card:after{inset:8px;border-radius:14px}.gift-card{border-radius:14px}.bank-details-block{font-size:.82rem;padding:16px}.wedding-divider:before,.wedding-divider:after{width:28px;margin:0 8px}.floral-divider.top{margin-bottom:24px}.floral-divider.bottom{margin-top:24px}}@media(max-width:480px){.hero{padding-top:44px}.hero-subtitle{margin-bottom:8px}.hero-title{max-width:11.5ch;margin-bottom:12px}.hero-date-wrap{gap:8px}.hero-intro{margin-bottom:20px}.hero-photo-wrapper{max-width:100%;aspect-ratio:4 / 5.25;border-radius:16px;margin-bottom:24px}.hero-countdown{max-width:100%}.hero-countdown .cd-box{max-width:none}.envelope-wrapper{transform:scale(.86)}.envelope-text{top:-58px}.envelope-wrapper.open .letter{transform:translateY(-100px)}.wax-seal{width:clamp(56px,16vw,72px);height:clamp(56px,16vw,72px)}.countdown-grid{gap:8px}.cd-box{max-width:none}.b-row{flex-direction:column;align-items:flex-start;gap:4px}.b-row strong{text-align:left}.btn-large-gold{width:calc(100% - 16px)}}@media(max-width:390px){.envelope-wrapper{transform:scale(.78)}.envelope-text{top:-50px}.hero-title{max-width:10.5ch}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:280px;gap:12px}.cd-box{max-width:none}}@media(max-width:360px){.envelope-wrapper{transform:scale(.72)}.nav-monogram{font-size:1.1rem}.nav-toggle{width:36px;height:36px}}
