:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f0e8;--surface:#fbf8f2;--border:#3e372d2e;--text:#282a24;--muted:#777267;--accent:#815e4a;--sage:#8c9380;--ink:#252820}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.wedding-page{min-height:100vh;padding:0;display:block;overflow:hidden}.wedding-nav{z-index:10;color:#fff;border-bottom:1px solid #ffffff47;justify-content:space-between;align-items:center;width:min(100% - 64px,1280px);height:94px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.brand{align-items:center;gap:12px;font-family:Cormorant Garamond,serif;font-size:22px;display:flex}.brand-mark{border:1px solid;border-radius:50%;place-items:center;width:36px;height:36px;font-family:Cormorant Garamond,serif;font-size:23px;font-style:italic;display:grid}.nav-links{letter-spacing:.04em;gap:34px;font-size:12px;display:flex}.nav-links a{opacity:.82;transition:opacity .2s}.nav-links a:hover{opacity:1}.nav-cta{border:1px solid #ffffff9e;border-radius:999px;padding:13px 20px;font-size:12px}.wedding-hero{color:#fff;background:linear-gradient(#18161261 0%,#19181338 38%,#161712b3 100%),linear-gradient(90deg,#16171340,#0000 30% 70%,#16171347),url(/images/wedding-hero.jpg) 50% 40%/cover no-repeat;place-items:center;min-height:820px;display:grid;position:relative;overflow:hidden}.wedding-hero:after{content:"";opacity:.28;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='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");position:absolute;inset:0}.hero-art{position:absolute;inset:0}.arch{border:1px solid #ffffff38;border-radius:50% 50% 0 0;width:520px;height:820px;position:absolute;bottom:-250px}.arch-one{left:-210px;transform:rotate(10deg)}.arch-two{right:-210px;transform:rotate(-10deg)}.sun-disc{background:#e0bf9b2e;border-radius:50%;width:360px;height:360px;position:absolute;top:19%;left:50%;transform:translate(-50%);box-shadow:0 0 100px #eccaa433}.botanical{color:#fff3;font-size:190px;font-weight:400;position:absolute;top:43%}.botanical-left{left:6%;transform:rotate(-22deg)}.botanical-right{right:6%;transform:rotate(22deg)}.hero-copy{z-index:2;text-align:center;max-width:860px;padding:135px 24px 150px;position:relative}.wedding-kicker{letter-spacing:.28em;text-transform:uppercase;margin:0 0 22px;font-size:11px;font-weight:600}.script-word{color:#e9d3bd;margin:0 0 -18px;font-family:Cormorant Garamond,serif;font-size:36px;font-style:italic}.hero-copy h1,.section-heading h2,.share-copy h2,.details-card h2{letter-spacing:-.045em;margin:0;font-family:Cormorant Garamond,serif;font-weight:400}.hero-copy h1{font-size:clamp(70px,10vw,138px);line-height:.84}.hero-copy h1 span{color:#ead8c6;font-style:italic}.hero-intro{color:#fffc;max-width:530px;margin:34px auto 30px;font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.5}.primary-button{color:#292b25;background:#f7f3ec;border-radius:999px;align-items:center;gap:25px;padding:16px 22px 16px 25px;font-size:13px;font-weight:600;display:inline-flex}.hero-date{z-index:2;align-items:center;gap:18px;display:flex;position:absolute;bottom:38px;left:32px}.hero-date div{flex-direction:column;display:flex}.hero-date strong{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:400;line-height:1}.hero-date span{color:#ffffffa6;letter-spacing:.15em;text-transform:uppercase;font-size:9px}.hero-date i{background:#ffffff59;width:1px;height:25px}.scroll-note{z-index:2;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;position:absolute;bottom:38px;right:32px}.scroll-note span{margin-left:12px}.story-section,.share-section{grid-template-columns:1.05fr .95fr;gap:clamp(50px,8vw,130px);max-width:1200px;margin:0 auto;padding:130px 40px;display:grid}.section-heading h2,.share-copy h2{font-size:clamp(48px,6vw,82px);line-height:.98}.section-heading em,.share-copy em{color:var(--accent);font-weight:400}.story-copy{align-self:end;max-width:480px;padding-bottom:5px}.story-copy>p,.share-copy>p:last-child{color:var(--muted);font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.65}.signature{color:var(--accent);margin-top:30px;font-family:Cormorant Garamond,serif;font-size:32px;font-style:italic}.moments-section{background:var(--ink);color:#f8f2e9;padding:110px 40px 130px}.centered{text-align:center}.centered .wedding-kicker{color:#cbb8a5}.moment-grid{grid-template-columns:repeat(3,1fr);gap:18px;max-width:1200px;margin:70px auto 0;display:grid}.moment-card{isolation:isolate;background:#5c5a53;border-radius:180px 180px 6px 6px;flex-direction:column;justify-content:space-between;min-height:480px;padding:24px;display:flex;position:relative;overflow:hidden}.moment-card:before{z-index:1;content:"";pointer-events:none;background:linear-gradient(#11120f14 25%,#11120fc7 100%);position:absolute;inset:0}.moment-card:after{z-index:1;content:"";pointer-events:none;border:1px solid #ffffff2e;border-radius:170px 170px 2px 2px;position:absolute;inset:10px}.moment-two{margin-top:55px}.moment-image{z-index:0;object-fit:cover;transition:transform .7s}.moment-one .moment-image{object-position:50% 48%}.moment-two .moment-image{object-position:50% 42%}.moment-three .moment-image{object-position:50% 40%}.moment-card:hover .moment-image{transform:scale(1.035)}.moment-number{z-index:2;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1819151f;border:1px solid #ffffff8c;border-radius:50%;align-self:flex-end;width:38px;height:38px;padding-top:10px;font-size:10px;position:relative}.moment-card h3{z-index:2;text-align:center;text-shadow:0 2px 20px #00000059;margin:0 0 25px;font-family:Cormorant Garamond,serif;font-size:34px;font-weight:400;position:relative}.details-section{background:#d9d1c4;padding:110px 40px}.details-card{text-align:center;border:1px solid #2a2c2540;max-width:980px;margin:auto;padding:80px 40px}.date-lockup{justify-content:center;align-items:center;gap:24px;margin:28px 0 22px;font-family:Cormorant Garamond,serif;font-size:clamp(48px,8vw,95px);display:flex}.date-lockup i{background:currentColor;width:34px;height:1px}.details-card h2{font-size:38px}.details-card>p:not(.wedding-kicker){color:#716b61}.details-card a{text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid;margin-top:18px;padding-bottom:4px;font-size:12px;font-weight:600;display:inline-block}.share-section{align-items:start}.share-copy{position:sticky;top:50px}.style-picker{gap:12px;display:grid}.style-option{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#ffffff61;border-radius:10px;grid-template-columns:84px 1fr 28px;align-items:center;gap:18px;padding:10px;transition:border-color .2s,background .2s,transform .2s;display:grid}.style-option:hover{transform:translateY(-2px)}.style-option.is-selected{border-color:var(--accent);background:#fffaf3}.style-preview{background:radial-gradient(circle at 52% 30%,#ead9ca 0 12%,#0000 13%),linear-gradient(145deg,#8e9b85,#526151);border-radius:6px;width:84px;height:92px;display:block}.style-film{filter:sepia(.4)saturate(.78)}.style-mono{filter:grayscale()contrast(1.12)}.style-label{flex-direction:column;gap:5px;display:flex}.style-label strong{font-family:Cormorant Garamond,serif;font-size:23px;font-weight:500}.style-label small{color:var(--muted);font-size:11px}.style-check{border:1px solid #aaa398;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.is-selected .style-check{border-color:var(--accent);background:var(--accent);color:#fff}.upload-button{background:var(--ink);color:#fff;text-align:left;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:18px;width:100%;margin-top:12px;padding:18px 20px;display:flex}.upload-button .upload-icon{border:1px solid #ffffff59;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.upload-button span:nth-child(2){flex-direction:column;flex:1;gap:3px;display:flex}.upload-button small{color:#ffffff8c;font-size:10px}footer{background:var(--ink);color:#f2ece3;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:32px 5vw;font-size:11px;display:flex}.mobile-upload{display:none}main.album-main{max-width:76rem;min-height:100vh;margin:0 auto;padding:clamp(1.25rem,4vw,3.5rem);display:block}.album-header{border:1px solid var(--border);text-align:center;background:linear-gradient(145deg,#e7ddd0,#f8f3eb 60%);border-radius:12rem 12rem 1rem 1rem;margin-bottom:clamp(3rem,7vw,6rem);padding:clamp(2rem,6vw,4.5rem);position:relative;overflow:hidden}.album-header:after{color:#815e4a14;content:"✽";font-size:220px;line-height:1;position:absolute;bottom:-65px;right:-30px}.album-kicker{color:var(--accent);letter-spacing:.28em;text-transform:uppercase;font-size:.68rem;font-weight:600}.album-header h1{z-index:1;letter-spacing:-.04em;max-width:none;margin:.8rem 0 .6rem;font-family:Cormorant Garamond,serif;font-size:clamp(3rem,7vw,5.5rem);font-weight:400;position:relative}.album-intro{color:var(--muted);margin:0 auto 2rem;font-family:Cormorant Garamond,serif;font-size:1.15rem}.upload-form{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.upload-label{width:100%;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.upload-form{z-index:1;justify-content:center;position:relative}.upload-styles{border:0;grid-template-columns:repeat(3,1fr);gap:.65rem;width:100%;margin:0 0 1.5rem;padding:0;display:grid}.upload-styles legend{width:100%;color:var(--muted);letter-spacing:.18em;text-align:center;text-transform:uppercase;margin-bottom:.75rem;font-size:.68rem}.upload-styles label{border:1px solid var(--border);min-width:0;color:var(--text);text-align:left;cursor:pointer;background:#ffffff7a;border-radius:.65rem;grid-template-columns:3.25rem 1fr 1.5rem;align-items:center;gap:.7rem;padding:.55rem;transition:border-color .2s,background .2s,transform .2s;display:grid}.upload-styles label:hover{transform:translateY(-2px)}.upload-styles label.is-selected{border-color:var(--accent);background:#fffaf3}.upload-styles input{opacity:0;width:1px;height:1px;position:absolute}.upload-style-preview{background:radial-gradient(circle at 50% 28%,#ead8c8 0 12%,#0000 13%),linear-gradient(145deg,#929e88,#596655);border-radius:.35rem;width:3.25rem;height:4rem;display:block}.upload-style-preview.style-film{filter:sepia(.4)saturate(.78)}.upload-style-preview.style-mono{filter:grayscale()contrast(1.12)}.upload-styles label>span:nth-of-type(2){flex-direction:column;gap:.2rem;min-width:0;display:flex}.upload-styles strong{font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:500}.upload-styles small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.upload-styles i{border:1px solid #aaa398;border-radius:50%;place-items:center;width:1.35rem;height:1.35rem;font-size:.65rem;font-style:normal;display:grid}.upload-styles .is-selected i{border-color:var(--accent);background:var(--accent);color:#fff}.upload-form input[type=file]{max-width:16rem;color:var(--muted);font-size:.78rem}.upload-form button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.75rem 1.4rem;font-weight:600}.upload-form button:disabled{opacity:.6;cursor:not-allowed}.upload-message{width:100%;margin:0;font-size:.85rem}.upload-message.success{color:#496b4d}.upload-message.error{color:#a13d3d}.gallery-empty{border:1px solid var(--border);text-align:center;place-items:center;min-height:24rem;padding:4rem 2rem;display:grid}.gallery-empty span{color:var(--accent);opacity:.35;font-size:4rem}.gallery-empty h2{max-width:15ch;margin:-1rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:400;line-height:1}.gallery-empty p{max-width:30rem;color:var(--muted);margin:-1rem 0 0}.wedding-gallery{padding-bottom:5rem}.gallery-heading{justify-content:space-between;align-items:end;margin-bottom:2rem;display:flex}.gallery-heading h2{letter-spacing:-.045em;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.8rem,6vw,5.4rem);font-weight:400;line-height:.9}.gallery-heading h2 em{color:var(--accent);font-weight:400}.gallery-heading>p{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.68rem}.carousel-stage{isolation:isolate;touch-action:pan-y;background:#d8d0c5;border-radius:12rem 12rem 1rem 1rem;height:min(72vh,46rem);min-height:31rem;position:relative;overflow:hidden}.carousel-image{object-fit:cover;width:100%;height:100%;animation:.45s ease-out carousel-reveal}.carousel-shade{pointer-events:none;background:linear-gradient(#0000 50%,#151712a6);position:absolute;inset:0}.carousel-ornament{z-index:2;color:#ffffffb3;font-size:2rem;position:absolute;top:2rem;right:2.25rem}.carousel-caption{z-index:2;color:#fff;flex-direction:column;display:flex;position:absolute;bottom:2rem;left:2.25rem}.carousel-caption span{letter-spacing:.25em;text-transform:uppercase;font-size:.6rem}.carousel-caption strong{font-family:Cormorant Garamond,serif;font-size:3.5rem;font-weight:400;line-height:1}.carousel-controls{z-index:3;align-items:center;gap:1rem;display:flex;position:absolute;bottom:2rem;right:2rem}.carousel-controls button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c1e1933;border:1px solid #ffffff8c;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;transition:background .2s,transform .2s;display:grid}.carousel-controls button:hover{background:#ffffff38;transform:scale(1.04)}.carousel-controls p{color:#ffffffa6;align-items:center;gap:.6rem;min-width:5rem;margin:0;font-family:Cormorant Garamond,serif;display:flex}.carousel-controls p strong{color:#fff;font-size:1.45rem;font-weight:400}.carousel-controls p span{background:#ffffff80;width:1.8rem;height:1px}.carousel-thumbnails{scrollbar-width:thin;scroll-snap-type:x proximity;gap:.75rem;padding:1rem 0 .5rem;display:flex;overflow-x:auto}.carousel-thumbnails button{cursor:pointer;opacity:.58;scroll-snap-align:start;background:#ddd4c8;border:1px solid #0000;border-radius:.4rem;flex:0 0 6rem;height:7.5rem;padding:0;transition:opacity .2s,border-color .2s,transform .2s;position:relative;overflow:hidden}.carousel-thumbnails button:hover,.carousel-thumbnails button.is-active{border-color:var(--accent);opacity:1;transform:translateY(-2px)}.carousel-thumbnails img{object-fit:cover;width:100%;height:100%}.carousel-thumbnails span{color:#fff;text-shadow:0 1px 5px #000;font-size:.58rem;position:absolute;bottom:.3rem;right:.35rem}.carousel-hint{color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;margin:1rem 0 0;font-size:.65rem}.carousel-hint span{color:var(--accent);margin-right:.5rem;font-size:1rem}@keyframes carousel-reveal{0%{opacity:.35;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@media (max-width:760px){.wedding-nav{width:calc(100% - 36px);height:76px}.nav-links,.nav-cta{display:none}.wedding-hero{background-position:50%,50%,52%;min-height:100svh}.hero-copy{padding:130px 20px 170px}.hero-copy h1{font-size:clamp(60px,20vw,88px);line-height:.78}.hero-copy h1 span{font-size:.7em;line-height:.85;display:block}.script-word{margin-bottom:-8px;font-size:29px}.hero-intro{font-size:18px}.hero-date{bottom:78px;left:20px}.scroll-note{display:none}.botanical{font-size:100px}.story-section,.share-section{grid-template-columns:1fr;gap:38px;padding:85px 22px}.section-heading h2,.share-copy h2{font-size:50px}.story-copy{border-left:1px solid var(--accent);padding-left:28px}.moments-section{padding:80px 18px 95px}.moment-grid{scroll-snap-type:x mandatory;gap:12px;margin-top:50px;padding:0 18px 15px;display:flex;overflow-x:auto}.moment-card{scroll-snap-align:center;min-width:76vw;min-height:430px}.moment-two{margin-top:0}.details-section{padding:70px 18px}.details-card{padding:58px 18px}.date-lockup{gap:12px}.date-lockup i{width:18px}.share-copy{position:static}footer{text-align:center;flex-direction:column;gap:18px;padding-bottom:95px}.mobile-upload{z-index:20;color:var(--ink);background:#fbf8f2;border-radius:999px;justify-content:space-between;align-items:center;padding:17px 22px;font-size:13px;font-weight:600;display:flex;position:fixed;bottom:14px;left:14px;right:14px;box-shadow:0 8px 32px #16171340}main.album-main{padding:1rem}.album-header{border-radius:8rem 8rem .75rem .75rem;margin-bottom:4rem;padding:3rem 1.25rem 2.5rem}.album-header h1{font-size:3.25rem}.upload-form{flex-direction:column}.upload-styles{grid-template-columns:1fr}.upload-styles label{grid-template-columns:3rem 1fr 1.5rem;width:100%}.upload-style-preview{width:3rem;height:3.5rem}.upload-form input[type=file]{max-width:100%}.gallery-heading{align-items:start}.gallery-heading h2{font-size:3.25rem}.gallery-heading>p{writing-mode:vertical-rl;margin-top:.35rem}.carousel-stage{border-radius:7rem 7rem .75rem .75rem;height:66vh;min-height:31rem}.carousel-caption{bottom:1.5rem;left:1.25rem}.carousel-controls{gap:.55rem;bottom:1.25rem;right:1rem}.carousel-controls button{width:2.75rem;height:2.75rem}.carousel-controls p{display:none}.carousel-thumbnails button{flex-basis:4.75rem;height:6rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.carousel-image{animation:none}.moment-image{transition:none}}
