:root{--choc:#4a2c20;--choc-deep:#2e1a12;--choc-soft:#7a5040;--peach:#f4b896;--peach-deep:#e0895f;--caramel:#c07a50;--sand:#f6e6d8;--cream:#fffaf5;--ink:#2e1a12;--muted:#8a6a5c;--serif:"Instrument Serif", Georgia, serif;--sans:"Manrope", system-ui, sans-serif;--ease:cubic-bezier(.7, 0, .2, 1);--gutter:clamp(1rem, 4vw, 3rem);font:16px/1.6 var(--sans);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);margin:0;overflow-x:clip}h1,h2,h3,p{margin:0;font-weight:400}a{color:inherit}em{font-family:var(--serif);font-style:italic}button{font:inherit;color:inherit}.label{letter-spacing:.2em;text-transform:uppercase;color:var(--caramel);font-size:.72rem;font-weight:700}.pill{color:var(--choc-deep);background:var(--cream);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:.8rem;padding:.95rem 1.5rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .3s,background .3s,color .3s;display:inline-flex}.pill:hover{transform:translateY(-2px)}.pill .arrow{transition:transform .3s}.pill:hover .arrow{transform:translate(4px)}.pill-dark{background:var(--choc);color:var(--cream)}.pill-dark:hover{background:var(--choc-deep)}.text-btn{cursor:pointer;opacity:.75;background:0 0;border:0;border-bottom:1.5px solid;padding:0 0 2px;font-size:.9rem;font-weight:700;text-decoration:none;transition:opacity .2s}.text-btn:hover{opacity:1}.photo-fill{background:radial-gradient(circle at 30% 25%, #fff0e4bf, transparent 50%), linear-gradient(160deg, var(--peach) 0%, var(--peach-deep) 45%, var(--choc) 100%);width:100%;height:100%}.photo-fill.tone1{background:linear-gradient(200deg, var(--sand), var(--peach) 55%, var(--caramel))}.photo-fill.tone2{background:radial-gradient(circle at 70% 20%, #f4b89666, transparent 55%), linear-gradient(160deg, var(--choc-soft), var(--choc-deep))}.grain{z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.page-progress{z-index:80;background:var(--peach-deep);height:2px;transform:scaleX(var(--page,0));transform-origin:0;position:fixed;inset:0 0 auto}.loader{z-index:100;padding:var(--gutter);color:var(--cream);background:var(--choc-deep);clip-path:inset(0);transition:clip-path 1s var(--ease);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.loader.leaving{clip-path:inset(0 0 100%)}.loader-top{letter-spacing:.18em;text-transform:uppercase;color:var(--peach);font-size:.8rem;font-weight:700}.loader-top em{letter-spacing:0;text-transform:none;color:var(--cream);font-size:1.3em}.loader-names{font:400 clamp(3.2rem, 11vw, 10rem) / .9 var(--serif);letter-spacing:-.02em;animation:rise 1.2s var(--ease) both}.loader-names em{color:var(--peach)}.loader-bottom{justify-content:space-between;align-items:flex-end;font-weight:600;display:flex}.loader-count{font:400 clamp(4rem, 14vw, 12rem) / .8 var(--serif);color:var(--peach);font-variant-numeric:tabular-nums}.loader-bar{background:var(--peach-deep);transform-origin:0;width:100%;height:3px;position:absolute;bottom:0;left:0}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}.nav{z-index:70;-webkit-backdrop-filter:blur(16px)saturate(1.4);background:#fffaf5b8;border:1px solid #4a2c201a;border-radius:999px;align-items:center;gap:clamp(1rem,3vw,2.4rem);padding:.4rem .4rem .4rem 1.2rem;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px -20px #2e1a1280}.nav-mark{font:400 1.5rem/1 var(--serif);color:var(--choc);text-decoration:none}.nav-mark em{color:var(--peach-deep)}.nav-links{gap:1.6rem;display:flex}.nav-links a{color:var(--choc-soft);font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--choc)}.nav-rsvp{color:var(--cream);background:var(--choc);border-radius:999px;padding:.6rem 1.2rem;font-size:.82rem;font-weight:700;text-decoration:none}@media (width<=560px){.nav-links{display:none}}.hero{height:260vh}.hero-stage{--e:min(1, calc(var(--p,0) / .75));background:var(--cream);height:100svh;position:sticky;top:0;overflow:hidden}.hero-frame{z-index:1;width:calc(26vw + 74vw * var(--e));height:calc(60svh + 40svh * var(--e));border-radius:calc(26px * (1 - var(--e)));position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.hero-frame img,.hero-frame .photo-fill{object-fit:cover;width:100%;height:100%;scale:calc(1.2 - .2 * var(--e))}.hero-frame:after{content:"";opacity:var(--e);background:linear-gradient(#0000 30%,#2e1a12a6);position:absolute;inset:0}.hero-reveal{z-index:1;text-align:center;color:var(--cream);opacity:calc((var(--p,0) - .62) * 3);transform:translateY(calc((1 - var(--e)) * 40px));justify-items:center;padding:0 1rem 9svh;display:grid;position:absolute;inset:auto 0 0}.hero-amp{color:var(--peach);font-size:clamp(6rem,16vw,14rem);line-height:.7}.hero-date{letter-spacing:.3em;text-transform:uppercase;margin-top:1.6rem;font-size:.85rem;font-weight:700}.hero-names{z-index:2;pointer-events:none;position:absolute;inset:0}.hero-name{font:400 clamp(4rem, 15vw, 15rem) / .85 var(--serif);letter-spacing:-.03em;color:var(--choc);white-space:nowrap;position:absolute}.hero-name.left{top:16svh;left:var(--gutter);transform:translateX(calc(-55vw * var(--e)))}.hero-name.right{right:var(--gutter);color:var(--caramel);transform:translateX(calc(55vw * var(--e)));font-style:italic;bottom:12svh}.ready .hero-name.left{animation:slide-in-l 1.2s var(--ease) both .15s}.ready .hero-name.right{animation:slide-in-r 1.2s var(--ease) both .25s}.ready .hero-frame{animation:frame-in 1.4s var(--ease) both}@keyframes slide-in-l{0%{opacity:0;translate:-8vw}}@keyframes slide-in-r{0%{opacity:0;translate:8vw}}@keyframes frame-in{0%{clip-path:inset(50% 0)}to{clip-path:inset(0)}}.hero-corner{z-index:2;letter-spacing:.16em;text-transform:uppercase;color:var(--choc-soft);opacity:calc(1 - var(--p,0) * 4);font-size:.72rem;font-weight:700;position:absolute}.hero-corner.tl{top:5.5rem;left:var(--gutter)}.hero-corner.tr{top:5.5rem;right:var(--gutter)}.hero-corner.bl{bottom:1.6rem;left:var(--gutter);max-width:16ch}.hero-corner.br{bottom:1.6rem;right:var(--gutter)}@media (width<=760px){.hero-frame{width:calc(62vw + 38vw * var(--e));height:calc(48svh + 52svh * var(--e))}.hero-name{font-size:19vw}.hero-name.left{top:15svh}.hero-name.right{bottom:13svh}.hero-corner.tl,.hero-corner.tr{top:5rem}}.statement{background:var(--cream);height:240vh}.statement-stage{height:100svh;padding:0 var(--gutter);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2.4rem;display:flex;position:sticky;top:0}.statement-text{max-width:1100px;font:400 clamp(2.6rem, 7vw, 6.6rem) / 1 var(--serif);letter-spacing:-.02em;color:var(--choc)}.statement-line{display:block}.statement-line:nth-child(2){color:var(--choc-soft);margin:.25em 0 .45em;font-size:.5em;font-style:italic}.statement-line:nth-child(n+3){font-size:.62em}.w{opacity:clamp(.12, calc(var(--p,0) * (var(--n) + 3) - var(--i)), 1);transition:opacity .15s linear}.w.accent{color:var(--caramel);font-style:italic}.w.amp{color:var(--peach-deep);font-style:italic}.day{--w:min(62vw, 820px);--g:2vw;--pad:6vw;height:calc(var(--n) * 80vh + 60vh);background:var(--cream)}.day-stage{flex-direction:column;justify-content:center;gap:2rem;height:100svh;display:flex;position:sticky;top:0;overflow:hidden}.day-head{padding:0 var(--pad);justify-content:space-between;align-items:baseline;display:flex}.day-hint{font:italic 1.4rem var(--serif);color:var(--choc-soft)}.day-track{gap:var(--g);width:max-content;padding:0 var(--pad);transform:translateX(calc(var(--p,0) * -1 * (var(--n) * (var(--w) + var(--g)) - var(--g) + 2 * var(--pad) - 100vw)));will-change:transform;display:flex}.panel{width:var(--w);border-radius:28px;flex-direction:column;height:min(66svh,600px);padding:clamp(1.6rem,3.5vw,3rem);display:flex}.panel-choc{color:var(--cream);background:var(--choc)}.panel-peach{color:var(--choc-deep);background:var(--peach)}.panel-colour{color:var(--choc-deep);background:var(--sand)}.panel-cream{color:var(--choc-deep);background:#fff;border:1px solid #4a2c201f}.panel-top{justify-content:space-between;align-items:center;display:flex}.panel-num{font:italic 1.4rem var(--serif);opacity:.7}.panel-chip{border:1px solid;border-radius:999px;padding:.4rem 1rem;font-size:.78rem;font-weight:700}.panel-title{font:400 clamp(3rem, 7vw, 6.4rem) / .95 var(--serif);letter-spacing:-.02em;margin-top:auto}.panel-title em{color:var(--peach-deep)}.panel-choc .panel-title em{color:var(--peach)}.panel-body{border-top:1px solid;border-color:color-mix(in srgb, currentColor 25%, transparent);justify-items:start;gap:.3rem;margin-top:1.6rem;padding-top:1.4rem;display:grid}.panel-venue{font:400 clamp(1.6rem, 2.6vw, 2.2rem) / 1.1 var(--serif)}.panel-address{opacity:.8;max-width:40ch;margin-bottom:1.2rem}.panel-peach .pill{background:var(--choc);color:var(--cream)}.colour-split{border-radius:18px;height:34%;margin-top:1.6rem;display:flex;overflow:hidden}.colour-split span{flex:1;align-items:flex-end;padding:1rem;display:flex}.colour-split small{letter-spacing:.14em;text-transform:uppercase;color:var(--cream);font-size:.75rem;font-weight:700}.colour-split span+span small{color:var(--choc-deep)}.panel-cream{justify-content:space-between}.big-date{margin-top:auto;font-size:clamp(4rem,11vw,9rem)}.countdown{gap:clamp(1rem,3vw,2.4rem);margin:1.4rem 0 1.8rem;display:flex}.countdown>div{display:grid}.countdown-value{font:400 clamp(2rem, 4vw, 3.2rem) / 1 var(--serif);font-variant-numeric:tabular-nums}.countdown-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700}.panel-cream .pill{align-self:flex-start}.day-progress{height:2px;margin:0 var(--pad);background:#4a2c201f}.day-progress span{background:var(--choc);height:100%;transform:scaleX(var(--p,0));transform-origin:0;display:block}@media (width<=760px){.day{--w:84vw;--g:3vw;--pad:8vw}.panel{height:min(68svh,560px)}.day-head{flex-direction:column;gap:.3rem}}.marquee{color:var(--cream);background:var(--choc);padding:1.6rem 0;overflow:hidden}.mq-track{width:max-content;animation:30s linear infinite mq;display:flex}.mq-item{font:400 clamp(2.4rem, 6vw, 5rem) / 1 var(--serif);white-space:nowrap;padding-right:2rem}.mq-item em{color:var(--peach)}.mq-item i{vertical-align:middle;color:var(--peach);padding:0 1.4rem;font-size:.4em;font-style:normal}@keyframes mq{to{transform:translate(-50%)}}.gallery{padding:clamp(5rem, 12vw, 9rem) var(--gutter);background:var(--cream);overflow:hidden}.gallery-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;max-width:1280px;margin:0 auto clamp(3rem,6vw,5rem);display:flex}.gallery-title{font:400 clamp(4rem, 12vw, 10rem) / .85 var(--serif);letter-spacing:-.03em;color:var(--choc)}.gallery-title em{color:var(--caramel)}.gallery-cols{grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,2vw,1.5rem);max-width:1280px;margin:0 auto;display:grid}.g-col{align-content:start;gap:clamp(.6rem,2vw,1.5rem);display:grid}.g-col-0{transform:translateY(calc((var(--p,.5) - .5) * -140px))}.g-col-1{transform:translateY(calc((var(--p,.5) - .5) * 140px));margin-top:6rem}.g-col-2{transform:translateY(calc((var(--p,.5) - .5) * -220px));margin-top:2rem}.g-photo{aspect-ratio:3/4;border-radius:clamp(10px,2vw,22px);margin:0;overflow:hidden}.g-photo img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease)}.g-photo:hover img{transform:scale(1.06)}.rsvp{padding:clamp(5rem, 12vw, 9rem) var(--gutter);color:var(--cream);background:var(--choc-deep);gap:clamp(3rem,6vw,5rem);display:grid}.rsvp>*{width:100%;max-width:1100px;margin:0 auto}.rsvp .label{color:var(--peach)}.rsvp-head{justify-content:space-between;align-items:center;display:flex}.steps{gap:6px;display:flex}.steps span{background:#fffaf52e;border-radius:2px;width:34px;height:3px;transition:background .4s}.steps span.on{background:var(--peach)}.rsvp-body{animation:rise .8s var(--ease) both}.rsvp-q{max-width:16ch;font:400 clamp(3rem, 8vw, 7rem) / .95 var(--serif);letter-spacing:-.02em;margin-bottom:clamp(2rem,5vw,3.5rem)}.rsvp-q em{color:var(--peach)}.choices{border-top:1px solid #fffaf533;display:grid}.choice{font:400 clamp(1.8rem, 4vw, 3rem) var(--serif);text-align:left;cursor:pointer;transition:padding .4s var(--ease), color .3s, background .3s;background:0 0;border:0;border-bottom:1px solid #fffaf533;justify-content:space-between;align-items:center;padding:clamp(1.2rem,3vw,2rem) .4rem;display:flex}.choice .arrow{width:28px;height:28px}.choice:hover{color:var(--choc-deep);background:var(--peach);padding-inline:1.4rem}.choice.ghost:hover{color:var(--cream);background:#fffaf514}.fields{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem 2.5rem;display:grid}.line-field{gap:.5rem;display:grid}.line-field>span{letter-spacing:.14em;text-transform:uppercase;color:var(--peach);font-size:.75rem;font-weight:700}.line-field input,.line-field textarea{width:100%;font:400 clamp(1.5rem, 3vw, 2.2rem) var(--serif);color:var(--cream);resize:none;background:0 0;border:0;border-bottom:1px solid #fffaf54d;outline:none;padding:.6rem 0;transition:border-color .3s}.line-field input::placeholder,.line-field textarea::placeholder{color:#fffaf540}.line-field input:focus,.line-field textarea:focus{border-color:var(--peach)}.seg{gap:.5rem;padding-top:.4rem;display:flex}.seg button{cursor:pointer;background:0 0;border:1px solid #fffaf54d;border-radius:999px;padding:.65rem 1.2rem;font-size:.9rem;font-weight:700}.seg button.on{color:var(--choc-deep);background:var(--peach);border-color:var(--peach)}.rsvp-nav{justify-content:space-between;align-items:center;margin-top:2.6rem;display:flex}.rsvp .pill-dark{color:var(--choc-deep);background:var(--peach)}.rsvp .pill-dark:hover{background:var(--cream)}.rsvp-note{color:#fffaf5bf;max-width:46ch;margin-bottom:1.6rem;font-size:1.05rem}.rsvp-contacts ul{border-top:1px solid #fffaf526;margin:1.2rem 0 0;padding:0;list-style:none}.rsvp-contacts li{border-bottom:1px solid #fffaf526;grid-template-columns:1fr auto auto;align-items:center;gap:1.5rem;padding:1.1rem 0;display:grid}.rsvp-contacts a{font-variant-numeric:tabular-nums;font-weight:600;text-decoration:none}.c-name{font:400 1.8rem var(--serif)}.c-wa{color:var(--peach);align-items:center;gap:.5rem;display:inline-flex}@media (width<=560px){.rsvp-contacts li{grid-template-columns:1fr auto;gap:.2rem 1rem}.c-name{grid-row:span 2}}.footer{padding:clamp(3rem, 6vw, 4.5rem) var(--gutter) 1.6rem;color:var(--choc-deep);background:var(--peach);overflow:hidden}.footer .label{color:var(--choc)}.footer-top{justify-content:space-between;align-items:center;display:flex}.footer-names{font:400 clamp(4.5rem, 21vw, 22rem) / .8 var(--serif);letter-spacing:-.04em;white-space:nowrap;justify-content:center;align-items:baseline;gap:.15em;margin:clamp(2rem,6vw,4rem) 0;display:flex}.footer-names em{color:var(--cream);font-size:.7em}.footer-base{border-top:1px solid #2e1a1240;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding-top:1.2rem;font-size:.85rem;font-weight:600;display:flex}.footer-credit{text-align:center;opacity:.8;margin-top:1rem;font-size:.8rem}.footer-credit a{text-underline-offset:3px;font-weight:700;text-decoration:underline}.footer-credit a:hover{opacity:.7}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}.mq-track{transform:none}}
