:root{--navy:#47657f;--navy-deep:#35506a;--navy-soft:#6586a3;--dusty:#abbdd5;--baby:#b3e1f1;--baby-soft:#d9f1f9;--baby-deep:#7fa9c6;--gold:#b08a4a;--gold-soft:#c39c57;--linen:#f4f1ea;--paper:#fcfaf4;--paper-edge:#ece3d2;--ink:#3f5a72;--cursive:"Parisienne", cursive;--serif:"Cormorant Garamond", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--linen);font-family:var(--serif);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--linen);background-image:linear-gradient(135deg,#ffffff80 0%,#f7f2e900 40%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");min-height:100svh;margin:0}h1,h2,h3{margin:0;font-weight:500}p{margin:0}a{color:inherit}.nav{z-index:50;opacity:0;pointer-events:none;justify-content:space-between;align-items:center;padding:14px clamp(20px,5vw,60px);transition:transform .5s,opacity .5s,background .4s,box-shadow .4s,padding .4s;display:flex;position:fixed;inset:0 0 auto;transform:translateY(-115%)}.nav.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.nav.is-solid{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f2eadb;box-shadow:0 1px #47657f1f}.nav-brand{font-family:var(--cursive);color:var(--navy-deep);text-shadow:0 1px 2px #fff9;font-size:30px;line-height:1;text-decoration:none;transition:color .4s}.nav.is-solid .nav-brand{color:var(--navy);text-shadow:none}.nav-brand span{opacity:.6;font-size:20px}.nav ul{gap:clamp(16px,3vw,40px);margin:0;padding:0;list-style:none;display:flex}.nav a{color:var(--navy-deep);letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 2px #fff9;opacity:.92;font-size:15px;text-decoration:none;transition:opacity .25s,color .4s}.nav.is-solid a{color:var(--navy);text-shadow:none}.nav a:hover{opacity:1}.nav ul a{position:relative}.nav ul a:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .3s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav ul a:hover:after{transform:scaleX(1)}@media (width<=640px){.nav-brand{font-size:24px}.nav ul a{font-size:0}.nav ul a:first-letter{font-size:15px}.nav ul{gap:18px}}.stage{height:340vh;position:relative}.sticky{background:radial-gradient(75% 60% at 50% 42%,#e7eef6 0%,#cdd9e6 45%,#aabbcf 78%,#91a6bd 100%);justify-content:center;align-items:center;height:100svh;display:flex;position:sticky;top:0;overflow:hidden}.sticky:after{content:"";pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");position:absolute;inset:0}.env-frame{aspect-ratio:5/7;max-width:94vw;height:min(92svh,880px);margin:auto;position:relative;overflow:visible}.card-behind{border-radius:8px;overflow:hidden;box-shadow:0 50px 90px -20px #1c2c428c,0 12px 30px #1c2c424d}@media (width<=680px){.env-frame{aspect-ratio:auto;width:100%;max-width:none;height:100svh;box-shadow:none;border-radius:0}}.card-behind{z-index:1;will-change:transform;display:flex;position:absolute;inset:0}.env-shade{z-index:2;pointer-events:none;background:radial-gradient(120% 100%,#0000 38%,#18263a73 100%);position:absolute;inset:0}.flap{z-index:3;backface-visibility:visible;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.flap-l{transform-origin:0}.flap-r{transform-origin:100%}.flap-svg{width:100%;height:100%;display:block}.twine{z-index:4;pointer-events:none;will-change:transform, opacity;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.twine-string{background:repeating-linear-gradient(66deg,#9c7c44 0 3px,#c9ad72 3px 6px,#b0925a 6px 9px);border-radius:3px;height:5px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:0 1px 2px #1e180a59;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 7% 93%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 7% 93%,#0000 100%)}.twine-knot{filter:drop-shadow(0 6px 10px #1e1e1447);width:min(44%,200px);height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-18%)}.twine-flower{transform-origin:bottom;filter:drop-shadow(0 8px 12px #1e281e33);width:auto;height:min(58%,350px);position:absolute;top:50%;left:50%;transform:translate(-45%,-55%)rotate(-2deg)}.scroll-hint{z-index:5;color:var(--navy);text-shadow:0 1px 3px #ffffffb3;pointer-events:none;flex-direction:column;align-items:center;gap:6px;transition:opacity .3s;display:flex;position:absolute;bottom:max(5vh,26px);left:0;right:0}.scroll-hint span{letter-spacing:.06em;font-size:18px;font-style:italic}.scroll-arrow{width:20px;height:20px;animation:1.8s ease-in-out infinite bob}@keyframes bob{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}.invitation{background:radial-gradient(120% 80% at 50% 0%, #fffdf8 0%, var(--paper) 55%, var(--paper-edge) 130%);width:100%;height:100%;color:var(--navy);text-align:center;flex-direction:column;justify-content:space-between;align-items:center;padding:clamp(64px,10vh,104px) clamp(24px,7vw,60px) clamp(48px,8vh,84px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #abbdd580}.inv-top,.inv-mid,.inv-bottom{flex-direction:column;align-items:center;width:100%;display:flex}.inv-foliage{width:auto;height:92%;color:var(--dusty);opacity:.55;pointer-events:none;position:absolute;top:4%}.inv-foliage.left{left:-14px}.inv-foliage.right{right:-14px}.inv-emblem{filter:drop-shadow(0 2px 3px #2c476126);width:clamp(96px,20vw,150px);height:auto;margin-bottom:10px}.inv-intro{letter-spacing:.02em;color:var(--ink);max-width:30ch;font-size:clamp(15px,2.4vw,19px);font-style:italic}.inv-names{font-family:var(--cursive);color:var(--navy);flex-direction:column;margin:12px 0 0;font-size:clamp(44px,12vw,78px);font-weight:400;line-height:.98;display:flex}.inv-amp{opacity:.7;margin:-.06em 0;font-size:.5em}.inv-rule{align-items:center;gap:14px;width:min(78%,360px);margin-bottom:12px;display:flex}.inv-rule span{background:linear-gradient(90deg, transparent, var(--baby-deep), transparent);flex:1;height:1px}.inv-rule em{font-family:var(--cursive);color:var(--navy);font-size:clamp(24px,5vw,32px);font-style:normal}.inv-date{letter-spacing:.04em;color:var(--navy);font-size:clamp(20px,4vw,28px);font-weight:500}.inv-time{letter-spacing:.3em;text-transform:uppercase;color:var(--navy);margin-top:4px;font-size:clamp(14px,2.4vw,17px)}.inv-place{color:var(--ink);margin-top:16px;font-size:clamp(15px,2.6vw,18px);line-height:1.5}.inv-verse{color:var(--navy-soft);font-size:clamp(14px,2.6vw,18px);font-style:italic;line-height:1.5}.inv-verse span{letter-spacing:.16em;text-transform:uppercase;opacity:.8;font-size:.82em;font-style:normal}.inv-cross{width:26px;height:auto;color:var(--navy);opacity:.9;margin-top:18px}.section{padding:clamp(70px,12vh,130px) clamp(20px,6vw,80px);position:relative}.section-head{text-align:center;max-width:640px;margin:0 auto clamp(40px,6vh,64px)}.eyebrow{text-transform:uppercase;letter-spacing:.32em;color:var(--baby-deep);margin-bottom:12px;font-size:13px}.section-head h2{font-family:var(--cursive);color:var(--navy);font-size:clamp(44px,8vw,72px);line-height:1}.section-sub{color:var(--navy-soft);margin-top:14px;font-size:clamp(16px,2.4vw,20px);font-style:italic}.gallery{background:linear-gradient(180deg, var(--linen), #fdfbf5)}.polaroids{flex-wrap:wrap;justify-content:center;gap:clamp(18px,3vw,40px);max-width:1000px;margin:0 auto;display:flex}.polaroid{transform:rotate(var(--r));background:#fff;border-radius:2px;width:clamp(180px,26vw,240px);margin:0;padding:12px 12px 46px;transition:transform .35s,box-shadow .35s;box-shadow:0 14px 30px #35506a29}.polaroid:hover{z-index:2;transform:rotate(0)translateY(-8px)scale(1.03);box-shadow:0 26px 46px #35506a3d}.polaroid-img{aspect-ratio:4/5;color:var(--baby-deep);letter-spacing:.24em;text-transform:uppercase;background:repeating-linear-gradient(45deg,#eef6fb,#eef6fb 12px,#dfeef8 12px 24px);place-items:center;font-size:13px;display:grid}.polaroid figcaption{font-family:var(--cursive);color:var(--navy);text-align:center;margin-top:14px;font-size:24px}.palette-grid{flex-wrap:wrap;justify-content:center;gap:clamp(24px,4vw,56px);display:flex}.palette-card{text-align:center;width:clamp(220px,30vw,300px)}.swatch{aspect-ratio:4/3;background-image:repeating-linear-gradient(0deg,#ffffff0d 0 2px,#0000 2px 4px),repeating-linear-gradient(90deg,#0000000d 0 2px,#0000 2px 4px);border-radius:8px;position:relative;overflow:hidden;box-shadow:0 18px 34px #35506a38}.swatch-navy{background-color:#6586a3}.swatch-baby{background-color:#b3e1f1}.swatch-shine{background:linear-gradient(120deg,#ffffff59 0%,#0000 40%);position:absolute;inset:0}.palette-card h3{font-family:var(--cursive);color:var(--navy);margin-top:20px;font-size:34px}.palette-card p{color:var(--navy-soft);margin-top:2px;font-size:17px}.palette-card code{letter-spacing:.1em;color:var(--baby-deep);margin-top:8px;font-family:ui-monospace,monospace;font-size:13px;display:inline-block}.rsvp{background:linear-gradient(180deg, #fdfbf5, var(--linen))}.rsvp-card{text-align:center;background:var(--paper);border:1px solid #abbdd5b3;border-radius:4px;max-width:560px;margin:0 auto;padding:clamp(40px,7vw,70px) clamp(28px,6vw,60px);box-shadow:0 30px 60px #35506a29}.rsvp-cross{width:26px;color:var(--navy);opacity:.8;margin-bottom:10px}.rsvp-card h2{font-family:var(--cursive);color:var(--navy);font-size:clamp(40px,7vw,60px);line-height:1}.rsvp-card>p{max-width:40ch;color:var(--navy-soft);margin:18px auto 30px;font-size:clamp(16px,2.4vw,19px);line-height:1.6}.rsvp-btn{background:var(--navy);color:#fff;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--navy);border-radius:2px;padding:16px 44px;font-size:15px;text-decoration:none;transition:background .3s,transform .3s,box-shadow .3s;display:inline-block;box-shadow:0 10px 24px #35506a47}.rsvp-btn:hover{background:var(--navy-deep);transform:translateY(-2px);box-shadow:0 16px 30px #35506a57}.rsvp-date{color:var(--baby-deep);margin-top:20px;font-size:15px;font-style:italic}.footer{text-align:center;background:var(--navy);color:var(--paper);padding:60px 20px 70px}.footer-names{font-family:var(--cursive);font-size:clamp(30px,6vw,46px)}.footer-date{letter-spacing:.4em;color:var(--baby);margin-top:8px;font-size:14px}.btn-line{letter-spacing:.28em;text-transform:uppercase;color:#3d5c7c;border:1px solid #6586a3;border-radius:2px;padding:15px 34px;font-size:12px;text-decoration:none;transition:background .3s,color .3s;display:inline-block}.btn-line:hover{color:#fff;background:#6586a3}.btn-solid{letter-spacing:.24em;text-transform:uppercase;color:#fff;background:#2b4a66;border:1px solid #2b4a66;border-radius:2px;padding:16px 42px;font-size:13px;text-decoration:none;transition:background .3s,transform .3s,box-shadow .3s;display:inline-block;box-shadow:0 10px 24px #1e344847}.btn-solid:hover{background:#1e3448;transform:translateY(-2px);box-shadow:0 16px 30px #1e344857}@media (prefers-reduced-motion:reduce){.scroll-arrow{animation:none}html{scroll-behavior:auto}}
