/* Viktoria & Marcus Wedding */
:root{--cream:#f5f0e7;--paper:#fbf8f2;--ink:#302c28;--muted:#756e66;--rust:#c06a3d;--sage:#68715e;--line:#d8cdbd;--dark:#292621}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.65;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.045;background-image:radial-gradient(#4b4037 1px,transparent 1px);background-size:9px 9px;z-index:50}h1,h2,h3,.serif{font-family:"Lora",serif;font-weight:500}.hidden{display:none}
.hero{min-height:94svh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;color:#fff;background:linear-gradient(rgba(42,36,31,.28),rgba(42,36,31,.52)),url("../images/banner.jpg") center/cover no-repeat}.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.45);inset:28px}.hero:after{inset:42px;border-color:rgba(255,255,255,.18)}.hero-inner{position:relative;top:-20px;z-index:1;padding:30px}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.72rem}.hero h1{font-size:clamp(3.8rem,12vw,8.8rem);line-height:.85;margin:28px 0 30px;letter-spacing:-.04em}.amp{font-style:italic;font-size:.52em}.date{font-size:.88rem;letter-spacing:.24em;text-transform:uppercase}.scroll-cue{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85}.scroll-cue:after{content:"";display:block;width:1px;height:34px;background:#fff;margin:8px auto 0;animation:pulse 2s infinite}
nav{position:sticky;top:0;z-index:40;background:rgba(245,240,231,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;justify-content:center;gap:30px;padding:14px;overflow:auto}nav a{color:var(--ink);text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;white-space:nowrap}
section{max-width:1080px;margin:auto;padding:105px 26px}.intro{text-align:center;max-width:820px}.kicker{color:var(--rust);text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;font-weight:600}.intro h2,.schedule h2,.gallery h2,.rsvp h2{font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.05;margin:14px 0 23px}.lead{font:400 1.18rem/1.85 "Lora",serif;color:#504a44}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:55px}.detail{background:var(--paper);padding:34px 20px}.detail strong{display:block;font:500 1.55rem "Lora",serif;margin:7px 0}.detail small{text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;color:var(--muted)}
.schedule{display:grid;grid-template-columns:1fr 1.5fr;gap:70px;align-items:start}.schedule h2{margin-top:10px}.timeline{border-left:1px solid var(--line);padding-left:34px}.timeline-loading{margin:0;color:var(--muted)}.event{position:relative;padding:0 0 34px}.event:last-child{padding-bottom:0}.event:before{content:"";position:absolute;width:9px;height:9px;background:var(--rust);border-radius:50%;left:-39px;top:9px;box-shadow:0 0 0 5px var(--cream)}.event-number{display:none}.event time{color:var(--rust);font-weight:600;font-size:.74rem;letter-spacing:.13em}.event h3{font-size:1.6rem;margin:3px 0}.event p{margin:0;color:var(--muted)}
.story{max-width:1080px}.story-head{max-width:690px;margin-bottom:38px}.story-head h2{font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.05;margin:14px 0 23px}.story-carousel{overflow:hidden;background:var(--paper);border:1px solid var(--line);outline:none}.story-carousel:focus-visible{outline:2px solid var(--rust);outline-offset:4px}.story-track{display:flex;transition:transform .65s cubic-bezier(.22,.75,.2,1);will-change:transform}.story-slide{min-width:100%;display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;padding:48px}.story-loading{padding:48px;margin:0;text-align:center;color:var(--muted)}.story-copy{max-width:390px}.story-number{color:var(--rust);font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.story-copy h3{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;margin:14px 0}.story-copy p{color:var(--muted);margin:0}.story-images{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:end}.story-image{width:100%;min-height:250px;object-fit:cover;display:block}.story-image:nth-child(2){min-height:180px}.story-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}.story-progress{min-width:58px;text-align:center;color:var(--muted);font-size:.72rem;letter-spacing:.12em}
.gallery-wrap{max-width:none;padding-left:0;padding-right:0;overflow:hidden}.gallery-head{max-width:1080px;padding:0 26px;margin:0 auto 30px;text-align:center}.gallery-head h2{margin-bottom:12px}.gallery-subtitle{margin:0;color:var(--ink);font:400 1.18rem/1.85 "Lora",serif}.gallery{position:relative}.gallery-track{display:flex;gap:14px;will-change:transform;padding:0 8vw}.gallery-loading{padding:48px;margin:0 auto;text-align:center;color:var(--muted)}.slide{flex:0 0 auto;width:min(62vw,720px);height:min(43vw,470px);min-height:260px;overflow:hidden;position:relative;background:#c9baa7;border-radius:8px}.slide img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .8s}.slide:hover img{transform:scale(1.025)}.slide.placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#d7c8b6,#a49a8b);color:#fff;text-transform:uppercase;letter-spacing:.15em;font-size:.68rem}.gallery-controls{display:flex;justify-content:center;gap:12px;margin-top:22px}.gallery-btn{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--paper);cursor:pointer;font-size:1.25rem;color:var(--ink);transition:.25s}.gallery-btn:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.location{max-width:none;background:var(--sage);color:#fff;padding:0}.location-photo{height:min(60vw,590px);min-height:340px;background-image:linear-gradient(rgba(40,35,30,.05),rgba(40,35,30,.2)),url("https://media.hochzeit.click/image/upload/w_1800%2Cc_fill%2Cdpr_auto%2Cf_auto/v1735825999/hochzeitclick01/hnliqcvaso8xwspjpotq.jpg");background-size:cover;background-position:center}.location-inner{max-width:1080px;margin:auto;padding:80px 26px 105px;display:grid;grid-template-columns:.9fr 1.1fr;gap:65px}.location h2{font-size:clamp(2.8rem,6vw,5rem);line-height:.98;margin:14px 0}.location p{color:rgba(255,255,255,.85)}.location-detail-image{display:block;width:100%;height:auto;max-height:420px;object-fit:cover;margin-top:32px;border-radius:8px}.map{margin-top:28px;min-height:340px;border:0;width:100%;filter:saturate(.75) sepia(.08)}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:35px}.info-card{border-top:1px solid rgba(255,255,255,.3);padding-top:18px}.info-card h3{font-size:1.35rem;margin:0 0 5px}.info-card p{margin:0;font-size:.92rem}.button{display:inline-block;border:1px solid rgba(255,255,255,.65);padding:12px 18px;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;margin-top:20px;transition:.25s}.button:hover{background:#fff;color:var(--sage)}
.rsvp{max-width:850px;text-align:center}.rsvp-box{background:var(--paper);border:1px solid var(--line);padding:45px 35px;margin-top:35px;text-align:left}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}input,select,textarea{font:inherit;border:1px solid var(--line);background:#fffdf9;padding:12px 13px;border-radius:0;color:var(--ink)}textarea{min-height:100px;resize:vertical}.radio-row{display:flex;gap:10px;flex-wrap:wrap}.radio{flex:1;min-width:130px}.radio input{display:none}.radio label{display:block;border:1px solid var(--line);padding:12px;text-align:center;cursor:pointer}.radio input:checked+label{background:var(--sage);color:#fff;border-color:var(--sage)}.submit{border:0;background:var(--rust);color:#fff;padding:14px 24px;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;cursor:pointer;margin-top:22px}.form-note{font-size:.75rem;color:var(--muted);margin-top:14px}.success{display:none;padding:15px;background:#e4eadf;margin-top:18px;color:#40503a}.countdown{display:flex;justify-content:center;gap:30px;margin-top:35px}.countdown-top{margin:0 auto;padding:48px 26px 0}.countdown b{display:block;font:500 2.4rem "Lora",serif}.countdown span{text-transform:uppercase;font-size:.58rem;letter-spacing:.12em;color:var(--muted)}
footer{text-align:center;padding:48px 20px;background:var(--dark);color:#ddd;font:1.4rem "Lora",serif}.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{0%,100%{opacity:.25;transform:scaleY(.75)}50%{opacity:1;transform:scaleY(1)}}
@media(max-width:760px){nav{justify-content:flex-start;gap:22px}.hero:before{inset:16px}.hero:after{inset:27px}.details,.schedule,.location-inner,.form-grid{grid-template-columns:1fr}.details{gap:1px}.schedule{gap:35px}.story-slide{grid-template-columns:1fr;gap:6px;padding:30px 22px;align-items:start}.story-copy{max-width:none}.story-images{grid-template-columns:1.1fr .9fr}.story-image{min-height:210px}.story-image:nth-child(2){min-height:155px}.slide{flex-basis:auto;width:82vw;height:58vw}.gallery-track{padding:0 9vw}.location-photo{min-height:300px}.location-inner{padding:65px 20px 80px}.info-grid{grid-template-columns:1fr}.rsvp-box{padding:30px 20px}.countdown{gap:18px}.countdown b{font-size:2rem}}
.radio input{position:absolute;opacity:0;width:1px;height:1px}.gallery-btn:hover:not(:disabled),.gallery-btn:focus-visible:not(:disabled){background:var(--ink);color:#fff;transform:translateY(-2px)}.gallery-btn:disabled{opacity:.4;cursor:not-allowed}.gallery-btn:focus-visible,.radio input:focus-visible+label,input:focus-visible,select:focus-visible,textarea:focus-visible,.button:focus-visible,.submit:focus-visible,nav a:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.countdown-top{display:grid;grid-template-columns:repeat(4,auto);justify-content:center;column-gap:30px;row-gap:4px;text-align:center}.countdown-top .countdown-heading,.countdown-top .countdown-subtitle{grid-column:1/-1}.countdown-heading{margin:0;color:var(--ink);font:500 clamp(1.8rem,4vw,3.2rem)/1.1 "Lora",serif;text-transform:uppercase}.countdown-subtitle{margin:0 0 18px;color:var(--muted);font:400 1rem/1.5 "Lora",serif}.countdown-top b{font-size:clamp(2.8rem,6vw,4.2rem)}
@media(max-width:760px){.countdown-top{column-gap:16px;padding-left:20px;padding-right:20px}.countdown-subtitle{font-size:.95rem;margin-bottom:12px}.countdown-top b{font-size:clamp(2.2rem,11vw,3rem)}}
.gallery-wrap{padding-bottom:72px}
@media(max-width:760px){.gallery-wrap{padding-bottom:56px}}
.story-number{font-size:.82rem}
.countdown-top>div{width:clamp(72px,10vw,110px);text-align:center}.countdown-top b{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
@media(max-width:760px){.countdown-top>div{width:clamp(56px,18vw,72px)}}
body{background:#fff}section{position:relative;isolation:isolate;background:transparent}section:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:#fff}section:nth-of-type(odd):before{background:var(--cream)}.location:before{display:none}.location{background:var(--cream);color:var(--ink)}section h2,section h3,.countdown-heading,.detail strong{color:var(--rust)}.lead{color:var(--rust)}.location h2,.location h3{color:var(--rust)}.location p{color:var(--ink)}.location .lead{color:var(--ink)}.location .button{border-color:var(--rust);color:var(--rust)}.location .button:hover{background:var(--rust);color:#fff}.location .info-card{border-color:var(--line)}
.intro .lead{color:var(--ink)}.countdown-top{padding-top:64px;padding-bottom:52px}.countdown-top b{font-size:clamp(3rem,6.5vw,4.5rem)}
@media(max-width:760px){.countdown-top{padding-top:52px;padding-bottom:40px}.countdown-top b{font-size:clamp(2.35rem,11vw,3.2rem)}}
.story-head .lead{color:var(--ink)}
.story-images.single-image{grid-template-columns:1fr}.story-images.single-image .story-image{width:100%;height:auto;min-height:0;object-fit:contain;background:transparent}
.gallery-wrap{padding-bottom:0}
.location-photo{display:block;width:100%;height:auto;max-height:590px;min-height:0;object-fit:contain;background:var(--cream);margin:0 auto}
@media(max-width:760px){.location-photo{max-height:300px}}
.location{padding-top:48px}
@media(max-width:760px){.location{padding-top:32px}}
.location-heading{max-width:1080px;margin:0 auto;padding:0 26px 42px}.location-heading h2{font-size:clamp(2.8rem,6vw,5rem);line-height:.98;margin:14px 0 0}.location-inner{max-width:1080px;margin:auto;padding:0 26px 105px;display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.location-media{min-width:0}.location-photo{width:100%;height:auto;max-height:none;min-height:0;object-fit:contain;background:transparent}.location-info{min-width:0}.location-info .info-card{border-top:1px solid var(--line);padding-top:18px;margin-bottom:34px}.location-info .info-card h3{margin:0 0 8px}.location-info .info-card p{margin:0;color:var(--ink)}.location-info .button{margin-top:18px}.location-info .map{margin-top:24px;min-height:340px}
@media(max-width:760px){.location-heading{padding:0 20px 28px}.location-inner{grid-template-columns:1fr;gap:36px;padding:0 20px 80px}.location-info .map{min-height:300px}}
.story-final{display:none}
@media(max-width:760px){.story-final{display:block;margin-top:24px}.story-final .story-slide{min-width:0;display:grid;grid-template-columns:1fr;gap:6px;align-items:start;padding:30px 22px;background:var(--paper);border:1px solid var(--line)}.story-final .story-images{grid-template-columns:1fr}.story-final .story-image{width:100%;height:auto;min-height:0;object-fit:contain;background:transparent}}
.story-final[hidden]{display:none}
.dresscode{text-align:center}.dresscode h2{font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.05;margin:0 0 32px}.dresscode img{display:block;width:100%;height:auto;max-height:760px;object-fit:contain;margin:0 auto;border-radius:8px}
@media(max-width:760px){.dresscode{padding-left:20px;padding-right:20px}.dresscode h2{margin-bottom:24px}.dresscode img{max-height:none;border-radius:6px}}
@media(max-width:760px){nav{padding:11px 14px;gap:18px;justify-content:flex-start;scrollbar-width:none;box-shadow:0 3px 12px rgba(48,44,40,.08)}nav::-webkit-scrollbar{display:none}nav a{font-size:.64rem;letter-spacing:.1em;padding:5px 0}.gallery-wrap{padding-top:72px;padding-bottom:72px}.gallery-head{padding:0 20px;margin-bottom:24px}.gallery-head h2{font-size:clamp(2.3rem,10vw,3.2rem);margin-bottom:10px}.gallery-subtitle{font-size:1rem;line-height:1.6}.gallery{margin:0 -20px}.gallery-track{padding:0 20vw;gap:10px}.slide{height:clamp(220px,62vw,330px);min-height:0;border-radius:7px}.gallery-controls{margin-top:18px;gap:10px}.gallery-btn{width:44px;height:44px;font-size:1.1rem}}
.nav-links{display:flex;justify-content:center;gap:30px}.mobile-menu-toggle{display:none}.back-to-top{position:fixed;right:22px;bottom:65px;z-index:60;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--rust);color:#fff;font-size:1.35rem;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,visibility .25s,transform .25s}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:focus-visible,.mobile-menu-toggle:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
@media(max-width:760px){body.mobile-menu-open{overflow:hidden}.mobile-menu-toggle{display:flex;position:fixed;top:14px;left:14px;z-index:110;width:46px;height:46px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(255,255,255,.45);border-radius:7px;background:rgba(48,44,40,.48);backdrop-filter:blur(8px);cursor:pointer}.mobile-menu-toggle span{display:block;width:21px;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s}.mobile-menu-toggle[aria-expanded="true"]{background:var(--rust);border-color:rgba(255,255,255,.7)}.mobile-menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.mobile-menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}nav{display:none;position:fixed;inset:0;z-index:100;padding:86px 24px 30px;background:rgba(251,248,242,.98);overflow-y:auto}nav.menu-open{display:block}.nav-links{display:flex;flex-direction:column;justify-content:flex-start;gap:0;min-height:100%;padding-top:8px}.nav-links a{padding:16px 4px;border-bottom:1px solid var(--line);font-size:1rem;letter-spacing:.1em}.nav-links a:last-child{border-bottom:0}.back-to-top{right:14px;bottom:14px;width:44px;height:44px}}
.intro,.schedule,.story,.rsvp,.dresscode{padding-top:56px;padding-bottom:56px}
.gallery-wrap{padding-top:48px;padding-bottom:48px}
.location-inner{padding-bottom:56px}
.mobile-menu-toggle{background:rgba(192,106,61,.65)}.mobile-menu-toggle[aria-expanded="true"]{background:rgba(192,106,61,.82)}
.gallery-wrap{padding-bottom:72px}
@media(max-width:760px){.gallery-wrap{padding-bottom:56px}}
.story-images.single-image .story-image{object-fit:contain}
.flower-mark{display:inline-flex;width:.62em;height:.76em;vertical-align:-.04em;color:#fff}.flower-mark svg{display:block;width:100%;height:100%;fill:none;stroke:#fff}
.gallery-track{transition:none}.slide img{cursor:zoom-in}
.gallery-lightbox{display:flex;position:fixed;inset:0;z-index:200;align-items:center;justify-content:center;padding:clamp(20px,5vw,70px);background:rgba(42,36,31,.82);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s}.gallery-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}.gallery-lightbox img{display:block;max-width:92vw;max-height:88vh;width:auto;height:auto;object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.35);border-radius:6px}.lightbox-close{position:absolute;top:20px;right:24px;width:46px;height:46px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(192,106,61,.85);color:#fff;font-size:2rem;line-height:1;cursor:pointer}.lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:3px}body.lightbox-open{overflow:hidden}
@media(max-width:760px){.story-carousel{height:auto}.story-track{align-items:flex-start}.story-slide{flex:0 0 100%;height:auto;min-height:0;overflow:hidden}.story-final .story-slide{height:auto}.gallery-lightbox{padding:18px}.gallery-lightbox img{max-width:96vw;max-height:82vh}.lightbox-close{top:14px;right:14px;width:42px;height:42px}}
@media(max-width:760px){.story-images .story-image:nth-child(2){display:none}.story-images{grid-template-columns:1fr}.story-images .story-image:first-child{width:100%;height:auto}}
