@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--warm-white:#faf8f4;--sky:#d9ecf8;--lemon:#f4d35e;--terracotta:#c97956;--olive:#7e8c63;--sage:#a8b59b;--sand:#e9dfc8;--dark-olive:#4d5b45;--charcoal:#2f2f2f;--paper:#fffdf9;--muted:#746f67;--line:#4d5b452e;--shadow:0 24px 80px #44483224;--serif:"Italiana", Georgia, serif;--sans:"DM Sans", sans-serif;--script:"La Belle Aurore", cursive}:root[data-theme=dark]{--warm-white:#20251e;--sky:#394c55;--lemon:#e6c654;--terracotta:#bd7557;--olive:#92a076;--sage:#71806a;--sand:#433f33;--dark-olive:#e4e7d9;--charcoal:#f3f0e8;--paper:#292e26;--muted:#b9b8ae;--line:#f4f1e724;--shadow:0 24px 80px #00000047}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--warm-white)}body{background:var(--warm-white);color:var(--charcoal);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-weight:400}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--lemon);color:#2f2f2f}.skip-link{z-index:1000;background:var(--paper);color:var(--charcoal);border-radius:99px;padding:.8rem 1rem;transition:top .2s;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.site-shell{overflow:hidden}.topbar{z-index:100;color:#fff;background:linear-gradient(#141b1359,#0000);grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 clamp(1rem,3vw,3.5rem);transition:background .3s,color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:grid;position:fixed;inset:0 0 auto}.topbar:hover{color:var(--charcoal);background:var(--warm-white)}@supports (color:color-mix(in lab,red,red)){.topbar:hover{background:color-mix(in srgb,var(--warm-white) 92%,transparent)}}.topbar:hover{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.monogram{font-family:var(--serif);letter-spacing:.12em;width:max-content;font-size:1.25rem}.monogram span{color:var(--lemon);font-family:var(--script);padding:0 .12rem}.nav-links{align-items:center;gap:clamp(1.2rem,2.5vw,2.5rem);display:flex}.nav-links a{text-transform:uppercase;letter-spacing:.13em;font-size:.73rem;font-weight:600;position:relative}.nav-links a:after{content:"";background:currentColor;height:1px;transition:right .25s;position:absolute;bottom:-.45rem;left:0;right:100%}.nav-links a:hover:after{right:0}.nav-actions{justify-self:end;align-items:center;gap:.55rem;display:flex}.icon-button{width:38px;height:38px;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.language-button{border-radius:99px;gap:.35rem;width:auto;padding:0 .7rem}.language-button span{letter-spacing:.12em;font-size:.66rem;font-weight:600}.nav-rsvp{background:var(--sky);color:#394b52;text-transform:uppercase;letter-spacing:.13em;border-radius:99px;padding:.72rem 1.1rem;font-size:.7rem;font-weight:600}.mobile-menu{display:none}.hero{color:#fff;isolation:isolate;place-items:center;min-height:100svh;display:grid;position:relative}.hero-media{z-index:-3;background:url(/images/val-dorcia-hero.jpg) 50% 52%/cover;animation:1.6s cubic-bezier(.2,.7,.2,1) both hero-in;position:absolute;inset:0}.hero-shade{z-index:-2;background:linear-gradient(#19221666,#1922162e 40%,#192216ad),linear-gradient(90deg,#19221652,#0000 40%,#1922163d);position:absolute;inset:0}.hero:after{content:"";pointer-events:none;z-index:2;border:1px solid #ffffff59;position:absolute;inset:12px}.hero-content{text-align:center;width:min(920px,100%);padding:7rem 1.2rem 5rem;animation:1s .35s both rise-in}.hero-kicker,.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.68rem;font-weight:600;display:block}.hero-kicker{margin-bottom:1.4rem}.hero h1{font-family:var(--serif);letter-spacing:-.035em;text-shadow:0 2px 20px #0000001f;justify-content:center;align-items:center;gap:clamp(.5rem,2vw,1.8rem);margin:0;font-size:clamp(4rem,10.5vw,9.7rem);font-weight:400;line-height:.82;display:flex}.hero h1 i{color:var(--lemon);font-family:var(--script);font-size:.54em;font-weight:400;transform:rotate(-8deg)}.hero-date{font-family:var(--serif);text-transform:uppercase;letter-spacing:.18em;justify-content:center;align-items:center;gap:.9rem;margin:2rem auto 1.2rem;display:flex}.hero-date span:nth-child(2){font-family:var(--sans);border-left:1px solid #fff9;border-right:1px solid #fff9;padding:.5rem 1rem;font-size:.68rem}.hero-script{font-family:var(--script);color:var(--lemon);margin:0 0 .7rem;font-size:clamp(1.6rem,3vw,2.5rem);transform:rotate(-2deg)}.hero-subheading{max-width:540px;margin:0 auto 1.7rem;font-size:clamp(.95rem,1.6vw,1.15rem);font-weight:300;line-height:1.6}.button{text-transform:uppercase;letter-spacing:.12em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;padding:.92rem 1.25rem;font-size:.72rem;font-weight:600;transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex}.button:hover{transform:translateY(-3px);box-shadow:0 12px 28px #2c362526}.button:disabled{opacity:.6;cursor:wait}.button-sky{color:#34454d;background:var(--sky)}.button-olive{color:#fff;background:var(--dark-olive)}.button-terracotta{color:#fff;background:var(--terracotta)}.button-outline{border:1px solid var(--line);color:var(--dark-olive);background:0 0}.hero-side-note{text-transform:uppercase;letter-spacing:.18em;writing-mode:vertical-rl;margin:0;font-size:.62rem;position:absolute;bottom:6rem;left:2.4rem;transform:rotate(180deg)}.countdown-section{background:var(--sky);grid-template-columns:.9fr 1.3fr;align-items:center;gap:4rem;min-height:470px;padding:7rem clamp(1.5rem,7vw,8rem);display:grid;position:relative;overflow:hidden}.tile-strip{opacity:.7;background:repeating-linear-gradient(90deg,#fff 0 18px,#789caf 18px 20px,#fff 20px 38px,#789caf 38px 40px);width:100%;height:22px;position:absolute;bottom:0;left:0}.countdown-copy h2,.section-heading h2,.week-intro h2,.travel-hero h2,.explore-title h2,.dress-copy h2,.rsvp-card h2,.gift-card h2,.guestbook h2,.faq-title h2,.share-copy h2,.contact-copy h2{font-family:var(--serif);letter-spacing:-.025em;margin:.85rem 0 0;font-size:clamp(2.8rem,5.6vw,5.6rem);font-weight:400;line-height:1.02}.countdown-copy h2 em,.dress-copy h2 em{color:var(--terracotta);font-weight:400}.countdown-grid{background:var(--paper);border:1px solid #4d5b453d;grid-template-columns:repeat(4,1fr);display:grid}@supports (color:color-mix(in lab,red,red)){.countdown-grid{background:color-mix(in srgb,var(--paper) 50%,transparent)}}.countdown-grid{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.countdown-item{text-align:center;border-right:1px solid #4d5b4533;padding:clamp(1.2rem,3vw,2.3rem) .7rem}.countdown-item:last-child{border-right:0}.countdown-item strong{font-family:var(--serif);font-size:clamp(2rem,5vw,4.6rem);font-weight:400;display:block}.countdown-item span{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem}.section-pad{padding:clamp(5rem,10vw,9rem) clamp(1.4rem,6vw,7.5rem)}.section-heading{text-align:center;max-width:820px;margin:0 auto clamp(3.5rem,7vw,7rem)}.section-heading.compact{margin-bottom:3.5rem}.section-heading.wide{max-width:980px}.section-heading p,.week-intro p,.travel-hero p,.dress-copy>p,.faq-title>p{color:var(--muted);max-width:620px;line-height:1.75}[data-reveal]{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(28px)}[data-reveal].is-visible{opacity:1;transform:none}.story{background:var(--warm-white)}.story-layout{grid-template-columns:1.05fr .9fr .48fr;align-items:center;gap:clamp(1.5rem,4vw,5rem);max-width:1280px;margin:auto;display:grid}.story-photo{position:relative}.story-photo img{object-fit:cover;width:100%;height:100%}.story-photo-main{height:700px}.story-photo-main:before{content:"";border:1px solid var(--terracotta);z-index:-1;position:absolute;inset:-12px 12px 12px -12px}.story-photo-small{align-self:end;height:360px;margin-bottom:-5rem}.photo-caption{background:var(--lemon);color:#364033;font-family:var(--script);padding:.7rem 1rem;font-size:1.25rem;position:absolute;bottom:3rem;right:-4rem;transform:rotate(-4deg)}.story-copy{position:relative}.story-number{font-family:var(--serif);color:var(--sand);z-index:-1;font-size:6rem;line-height:1;position:absolute;top:-5.5rem;left:-1rem}.story-copy p{color:var(--muted);font-size:.95rem;line-height:1.85}.story-copy .lead{color:var(--charcoal);font-family:var(--serif);font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.45}.signature{color:var(--terracotta);font-family:var(--script);margin-top:1.5rem;font-size:2.3rem;display:block;transform:rotate(-5deg)}.love-timeline{border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);max-width:1050px;margin:9rem auto 0;display:grid}.love-timeline div{padding-top:1.6rem;position:relative}.love-timeline div:before{content:"";background:var(--lemon);border:2px solid var(--dark-olive);border-radius:50%;width:11px;height:11px;position:absolute;top:-6px;left:0}.love-timeline span{color:var(--terracotta);font-family:var(--serif);font-size:1.2rem;display:block}.love-timeline strong{text-transform:uppercase;letter-spacing:.11em;margin-top:.3rem;font-size:.72rem;display:block}.week{color:#f8f4e9;background:var(--dark-olive);position:relative}.week:before{content:"Italiaanse zomer";font-family:var(--script);color:#ffffff0b;font-size:clamp(4rem,10vw,10rem);position:absolute;top:2rem;right:-1rem;transform:rotate(-7deg)}.week-intro{max-width:900px}.week-intro p{color:#ffffffad}.event-tabs{border-bottom:1px solid #fff3;margin:4rem 0 0;display:flex}.event-tabs button{color:#ffffff80;cursor:pointer;text-transform:uppercase;letter-spacing:.14em;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:1.5rem;font-size:.7rem}.event-tabs button span{font-family:var(--serif);margin-bottom:.5rem;font-size:1.8rem;display:block}.event-tabs button.active{color:var(--lemon);border-bottom-color:var(--lemon)}.event-stage{max-width:1150px;margin:0 auto}.event-panel{background:var(--paper);color:var(--charcoal);box-shadow:var(--shadow);grid-template-columns:1.2fr .8fr;gap:3rem;padding:clamp(1.8rem,5vw,4.5rem);display:grid}.event-heading{gap:1.5rem;display:flex}.event-flag{color:var(--terracotta);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:600}.event-heading>div>span{color:var(--terracotta);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem}.event-heading h3{font-family:var(--serif);margin:.8rem 0 1rem;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:400;line-height:1}.event-heading p{color:var(--muted);max-width:580px;line-height:1.75}.event-details{gap:1.2rem;display:grid}.event-details>div{border-bottom:1px solid var(--line);color:var(--olive);align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.event-details span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.event-details strong{color:var(--charcoal);text-transform:none;letter-spacing:0;margin-top:.3rem;font-size:.9rem;display:block}.day-timeline{flex-wrap:wrap;grid-column:1/-1;gap:.7rem;display:flex}.day-timeline span{background:var(--sky);color:#40545d;border-radius:18px;padding:.65rem .8rem;font-size:.7rem;line-height:1.55}.day-timeline .timeline-note{flex-basis:100%}.event-panel .button{justify-self:start}.locations{background:var(--sand)}.map-layout{max-width:1250px;box-shadow:var(--shadow);grid-template-columns:.7fr 1.3fr;margin:auto;display:grid}.location-list{background:var(--paper);padding:clamp(1.3rem,4vw,3rem)}.location-list>a{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.25rem 0;display:grid}.location-list>a>span{font-family:var(--serif);color:var(--terracotta);font-size:1.1rem}.location-list strong,.location-list small{display:block}.location-list strong{font-family:var(--serif);font-size:1.2rem;font-weight:400}.location-list small{color:var(--muted);margin-top:.25rem}.location-list .button{margin-top:2rem}.map-frame{min-height:560px;position:relative;overflow:hidden}.map-frame iframe{filter:sepia(.16)saturate(.75)contrast(.9);border:0;width:100%;height:100%}.map-note{background:var(--paper);align-items:center;gap:.8rem;display:flex;position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem}@supports (color:color-mix(in lab,red,red)){.map-note{background:color-mix(in srgb,var(--paper) 94%,transparent)}}.map-note{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:1rem;font-size:.75rem;box-shadow:0 10px 25px #32321e1a}.travel{background:var(--sky)}.travel-hero{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:4rem;display:flex}.travel-hero>div{max-width:750px}.travel-hero>p{max-width:420px}.travel-grid{border:1px solid #4d5b4533;grid-template-columns:repeat(3,1fr);display:grid}.travel-card{border-bottom:1px solid #4d5b4533;border-right:1px solid #4d5b4533;min-height:280px;padding:clamp(1.5rem,3vw,2.7rem);transition:background .3s,transform .3s}.travel-card:hover{background:var(--paper);transform:translateY(-6px)}.travel-card:nth-child(3n){border-right:0}.travel-card:nth-child(n+4){border-bottom:0}.travel-card>svg:first-child{color:var(--terracotta)}.travel-card h3{font-family:var(--serif);margin:2.2rem 0 .7rem;font-size:2rem;font-weight:400}.travel-card p{color:var(--muted);min-height:90px;font-size:.88rem;line-height:1.7}.weather-card{background:var(--lemon);color:#3b4436;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:2rem;max-width:860px;margin:4rem auto 0;padding:2rem 2.5rem;display:grid;transform:rotate(-1deg);box-shadow:8px 8px #4d5b452e}.weather-card>div{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.live-dot{background:#d65b46;border-radius:50%;width:7px;height:7px;margin-right:.5rem;display:inline-block;box-shadow:0 0 0 4px #d65b462e}.weather-card strong{font-family:var(--serif);font-size:4.6rem;font-weight:400}.weather-card>span{font-size:.86rem}.stay{background:var(--warm-white)}.stay-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1250px;margin:auto;display:grid}.stay-card{background:var(--paper);transition:transform .3s,box-shadow .3s;box-shadow:0 14px 50px #44483214}.stay-card:hover{box-shadow:var(--shadow);transform:translateY(-8px)}.stay-image{height:320px;position:relative;overflow:hidden}.stay-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.stay-card:hover img{transform:scale(1.045)}.stay-image>span{background:var(--sky);color:#3d5057;text-transform:uppercase;letter-spacing:.12em;padding:.5rem .7rem;font-size:.62rem;position:absolute;top:1rem;left:1rem}.stay-copy{padding:1.5rem}.stay-copy>div{justify-content:space-between;gap:1rem;display:flex}.stay-copy h3{font-family:var(--serif);margin:0;font-size:1.6rem;font-weight:400}.stay-copy>div>span{color:var(--terracotta)}.stay-copy p{color:var(--muted);font-size:.84rem;line-height:1.65}.stay-copy ul{color:var(--muted);margin:1.1rem 0 1.4rem;padding-left:1.1rem;font-size:.84rem;line-height:1.8}.stay-copy a,.place-card a{text-transform:uppercase;letter-spacing:.13em;color:var(--dark-olive);align-items:center;gap:.5rem;font-size:.68rem;font-weight:600;display:inline-flex}.booking-note{border:1px dashed var(--terracotta);max-width:750px;color:var(--muted);align-items:center;gap:1rem;margin:3rem auto 0;padding:1rem 1.3rem;display:flex;transform:rotate(.5deg)}.booking-note p{margin:0;font-size:.82rem;line-height:1.6}.booking-note svg,.booking-note strong{color:var(--terracotta)}.explore{background:var(--terracotta);color:#fff8ee}.explore-title{max-width:900px;margin-bottom:4rem}.script-label{font-family:var(--script);color:var(--lemon);font-size:1.8rem}.places-grid{grid-template-columns:1.2fr .8fr .8fr 1.2fr;gap:1rem;max-width:1350px;margin:auto;display:grid}.place-card{background:var(--paper);min-height:570px;color:var(--charcoal)}.place-card:nth-child(2n){margin-top:4rem}.place-card img{object-fit:cover;width:100%;height:56%}.place-card>div{padding:1.4rem}.place-card>div>span{color:var(--terracotta);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem}.place-card h3{font-family:var(--serif);margin:.5rem 0;font-size:2rem;font-weight:400}.place-card p{color:var(--muted);font-size:.8rem;line-height:1.65}.local-list{border-top:1px solid #ffffff59;grid-template-columns:auto 1fr;gap:2rem;max-width:1050px;margin:5rem auto 0;padding-top:1.5rem;display:grid}.local-list span{color:var(--lemon);text-transform:uppercase;letter-spacing:.13em;font-size:.65rem}.local-list p{font-family:var(--serif);margin:0;font-size:clamp(1.3rem,2.2vw,2rem);line-height:1.5}.dress{background:var(--sand);grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(3rem,8vw,8rem);display:grid}.dress-rules{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.dress-rules span{background:var(--paper);border-radius:99px;align-items:center;gap:.4rem;padding:.55rem .7rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.dress-rules span{background:color-mix(in srgb,var(--paper) 70%,transparent)}}.dress-rules span{font-size:.68rem}.dress-rules span:nth-child(-n+2) svg{color:var(--olive)}.dress-rules span:nth-child(n+3) svg{color:var(--terracotta)}.moodboard{min-height:650px;position:relative}.moodboard img{object-fit:cover;box-shadow:var(--shadow);position:absolute}.mood-one{width:54%;height:70%;top:4%;left:0;transform:rotate(-3deg)}.mood-two{width:48%;height:60%;bottom:0;right:0;transform:rotate(3deg)}.palette{background:var(--paper);align-items:center;padding:.7rem;display:flex;position:absolute;bottom:3%;left:32%;transform:rotate(-2deg);box-shadow:0 12px 30px #46463226}.palette span{width:30px;height:30px;display:block}.palette small{font-family:var(--script);color:var(--terracotta);margin-left:.8rem;font-size:1.1rem}.gallery{background:var(--warm-white)}.masonry{columns:3;column-gap:1rem;max-width:1250px;margin:auto}.masonry button{break-inside:avoid;cursor:zoom-in;background:0 0;border:0;width:100%;margin:0 0 1rem;padding:0;display:block;position:relative;overflow:hidden}.masonry button:nth-child(3n+1) img{aspect-ratio:4/5}.masonry button:nth-child(3n+2) img{aspect-ratio:1}.masonry button:nth-child(3n) img{aspect-ratio:4/3}.masonry img{object-fit:cover;width:100%;transition:transform .5s,filter .5s}.masonry button:hover img{filter:brightness(.85);transform:scale(1.04)}.masonry button span{color:#fff;opacity:0;place-items:center;transition:opacity .3s;display:grid;position:absolute;inset:0}.masonry button:hover span{opacity:1}.rsvp-section{background:var(--sky);grid-template-columns:.9fr 1.1fr;padding:0;display:grid}.rsvp-visual{min-height:900px;position:relative}.rsvp-visual img{object-fit:cover;width:100%;height:100%}.rsvp-visual:after{content:"";background:linear-gradient(#0000 40%,#222a1da6);position:absolute;inset:0}.rsvp-visual>div{z-index:1;color:#fff;position:absolute;bottom:3rem;left:3rem}.rsvp-visual>div span{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem}.rsvp-visual>div p{font-family:var(--serif);margin:.7rem 0 0;font-size:clamp(2.5rem,4.5vw,5rem);line-height:1}.rsvp-card{align-self:center;padding:clamp(4rem,8vw,8rem)}.rsvp-card>p{color:var(--muted);line-height:1.7}.wedding-form,.contact-form{gap:1.15rem;margin-top:2.3rem;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.wedding-form label,.contact-form label{text-transform:uppercase;letter-spacing:.12em;color:var(--dark-olive);gap:.5rem;font-size:.65rem;font-weight:600;display:grid}.wedding-form input,.wedding-form textarea,.wedding-form select,.guestbook-form input,.guestbook-form textarea,.contact-form input,.contact-form textarea{width:100%;color:var(--charcoal);text-transform:none;letter-spacing:0;background:0 0;border:0;border-bottom:1px solid #4d5b4559;outline:none;padding:.75rem 0;transition:border-color .2s}.wedding-form input:focus,.wedding-form textarea:focus,.wedding-form select:focus,.guestbook-form input:focus,.guestbook-form textarea:focus,.contact-form input:focus,.contact-form textarea:focus{border-color:var(--terracotta)}.wedding-form textarea,.guestbook-form textarea,.contact-form textarea{resize:vertical}.wedding-form fieldset{border:0;margin:.5rem 0;padding:0}.wedding-form legend{text-transform:uppercase;letter-spacing:.12em;margin-bottom:.75rem;font-size:.65rem;font-weight:600}.choice-row{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.choice-row label input{opacity:0;width:0;position:absolute}.choice-row label span{text-align:center;cursor:pointer;text-transform:none;letter-spacing:0;border:1px solid #4d5b454d;padding:.8rem 1rem;font-weight:400}.choice-row label input:checked+span{background:var(--lemon);color:#384133;border-color:var(--lemon)}.wedding-form .button{justify-self:start;margin-top:.6rem}.form-error{color:#9b4937;font-size:.78rem}.form-success{color:var(--olive);font-size:.78rem}.success-message{text-align:center;padding:3rem 1rem}.success-message>span{font-size:4rem}.success-message>svg{color:var(--terracotta)}.success-message h3{font-family:var(--serif);font-size:2.7rem;font-weight:400}.text-button{color:var(--dark-olive);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:.3rem 0}.gift-guestbook{background:var(--warm-white);grid-template-columns:1fr 1fr;gap:2rem;display:grid}.gift-card,.guestbook{padding:clamp(2rem,5vw,5rem)}.gift-card{text-align:center;background:var(--sand);position:relative;overflow:hidden}.gift-card:after{content:"♥";font-family:var(--serif);color:#c979561f;font-size:13rem;position:absolute;bottom:-3rem;right:-1rem;transform:rotate(-12deg)}.gift-card>svg{color:var(--terracotta);margin-bottom:1.5rem}.gift-card h2,.guestbook h2{font-size:clamp(2.4rem,4vw,4rem)}.gift-card p{max-width:550px;color:var(--muted);margin:1.5rem auto;line-height:1.8}.account-number{z-index:1;font-family:var(--serif);letter-spacing:.08em;font-size:clamp(1.15rem,2vw,1.6rem);display:block;position:relative}.guestbook{border:1px solid var(--line)}.guestbook-form{gap:1rem;margin:2rem 0;display:grid}.guestbook-form .button{justify-self:start}.guestbook-messages{gap:.8rem;display:grid}.guestbook blockquote,.empty-note{background:var(--sky);margin:0;padding:1rem 1.2rem}@supports (color:color-mix(in lab,red,red)){.guestbook blockquote,.empty-note{background:color-mix(in srgb,var(--sky) 55%,transparent)}}.guestbook blockquote p{font-family:var(--serif);margin:0 0 .5rem;font-size:1.15rem;line-height:1.5}.guestbook cite{color:var(--muted);font-size:.72rem;font-style:normal}.empty-note{color:var(--muted);align-items:center;gap:.8rem;font-size:.8rem;display:flex}.faq{background:var(--paper);grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);display:grid}.faq-title{align-self:start;position:sticky;top:130px}.accordion{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item button{width:100%;color:var(--charcoal);text-align:left;cursor:pointer;font-family:var(--serif);background:0 0;border:0;justify-content:space-between;align-items:center;padding:1.5rem 0;font-size:1.25rem;display:flex}.faq-item button svg{transition:transform .3s}.faq-item.open button svg{transform:rotate(180deg)}.faq-item>div{grid-template-rows:0fr;transition:grid-template-rows .35s;display:grid}.faq-item>div p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.75;overflow:hidden}.faq-item.open>div{grid-template-rows:1fr}.faq-item.open>div p{padding-bottom:1.5rem}.share{background:var(--sky);justify-content:center;align-items:center;gap:clamp(4rem,11vw,11rem);display:flex}.share-copy{max-width:520px}.share-copy>svg{color:var(--terracotta);margin-bottom:1rem}.share-copy p{color:var(--muted);line-height:1.7}.qr-card{background:var(--paper);border:1px solid var(--line);box-shadow:12px 12px 0 var(--lemon);text-align:center;padding:2.2rem;transform:rotate(2deg)}.qr-card svg{display:block}.qr-card span{font-family:var(--script);color:var(--terracotta);margin-top:.8rem;font-size:1.3rem;display:block}.contact{background:var(--dark-olive);color:#f7f4ea;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,9rem);display:grid}.contact-copy>p{color:#ffffffa8;max-width:550px;line-height:1.75}.contact-copy small{color:#ffffff80;margin-top:1.5rem;display:block}.contact-links{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.contact-links a{border-bottom:1px solid #fff6;align-items:center;gap:.6rem;padding:.6rem 0;font-size:.75rem;display:inline-flex}.contact-form label{color:#f7f4ea}.contact-form input,.contact-form textarea{color:#fff;border-color:#ffffff4d}.contact-form .button{justify-self:start}footer{color:#f7f4ea;text-align:center;background:#273023;padding:5rem clamp(1.5rem,6vw,7rem) 2.5rem}.footer-mark{font-family:var(--serif);font-size:3rem}.footer-mark span{color:var(--lemon);font-family:var(--script)}footer>p{font-family:var(--serif);max-width:700px;margin:1.2rem auto 4rem;font-size:clamp(1.7rem,3vw,2.8rem)}footer>div:last-child{text-transform:uppercase;letter-spacing:.14em;color:#ffffff8c;border-top:1px solid #ffffff26;justify-content:space-between;padding-top:1.5rem;font-size:.65rem;display:flex}.lightbox{z-index:500;background:#161a13f0;place-items:center;padding:4rem 1rem;display:grid;position:fixed;inset:0}.lightbox>button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:1.5rem;right:1.5rem}.lightbox img{object-fit:contain;max-width:min(1000px,92vw);max-height:76vh}.lightbox>div{color:#fff;align-items:center;gap:1.5rem;margin-top:1.2rem;display:flex}.lightbox>div button{color:#fff;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #fff9;padding:.4rem}.lightbox>div span{letter-spacing:.12em;font-size:.72rem}@keyframes hero-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media(max-width:1100px){.topbar{grid-template-columns:1fr auto}.nav-links{background:var(--paper);color:var(--charcoal);box-shadow:var(--shadow);opacity:0;gap:0;padding:1.5rem;transition:transform .3s,opacity .3s;display:grid;position:fixed;inset:76px 0 auto;transform:translateY(-130%)}.nav-links.is-open{opacity:1;transform:none}.nav-links a{border-bottom:1px solid var(--line);padding:1rem}.mobile-menu{display:inline-flex}.story-layout{grid-template-columns:1fr 1fr}.story-photo-small{display:none}.event-panel{grid-template-columns:1fr}.places-grid{grid-template-columns:repeat(2,1fr)}.place-card:nth-child(2n){margin-top:0}.dress{gap:3rem}}@media(max-width:780px){.topbar{height:66px;padding:0 1rem}.nav-links{inset:66px 0 auto}.nav-rsvp{display:none}.hero h1{flex-direction:column;gap:.1rem;font-size:clamp(4.1rem,21vw,7rem)}.hero h1 i{margin:-.4rem 0}.hero-side-note{display:none}.hero-date{margin-top:1.3rem}.countdown-section{grid-template-columns:1fr;gap:2.2rem;padding:5rem 1.4rem 6rem}.countdown-grid{grid-template-columns:repeat(2,1fr)}.countdown-item:nth-child(2){border-right:0}.countdown-item:nth-child(-n+2){border-bottom:1px solid #4d5b4533}.section-pad{padding:5rem 1.3rem}.story-layout{grid-template-columns:1fr}.story-photo-main{height:540px}.story-copy{padding-top:3rem}.photo-caption{bottom:1rem;right:.8rem}.love-timeline{grid-template-columns:repeat(2,1fr);row-gap:2rem;margin-top:5rem}.event-tabs button{letter-spacing:.08em;padding:1rem .4rem;font-size:.57rem}.event-panel{gap:1.5rem;padding:1.4rem}.event-heading{display:block}.event-flag{margin-bottom:.8rem;display:block}.map-layout,.travel-hero,.dress,.rsvp-section,.gift-guestbook,.faq,.contact{grid-template-columns:1fr}.map-frame{min-height:430px}.travel-hero{display:grid}.travel-grid{grid-template-columns:1fr}.travel-card,.travel-card:nth-child(3n),.travel-card:nth-child(n+4){border-bottom:1px solid #4d5b4533;border-right:0;min-height:230px}.travel-card:last-child{border-bottom:0}.weather-card{grid-template-columns:1fr auto;gap:1rem;padding:1.3rem}.weather-card>span{grid-column:1/-1}.weather-card>svg{display:none}.stay-grid,.places-grid{grid-template-columns:1fr}.place-card{min-height:auto}.place-card img{height:340px}.local-list{grid-template-columns:1fr;gap:.8rem}.moodboard{min-height:520px}.masonry{columns:2}.rsvp-visual{min-height:540px}.rsvp-card{padding:4rem 1.3rem}.field-row,.choice-row{grid-template-columns:1fr}.faq-title{position:static}.share{flex-direction:column;align-items:flex-start}.qr-card{align-self:center}footer>div:last-child{flex-direction:column;gap:.8rem}}@media(max-width:480px){.hero-content{padding-top:6rem}.hero-subheading{font-size:.88rem}.story-photo-main{height:450px}.love-timeline{grid-template-columns:1fr}.love-timeline div{padding-left:1.2rem}.event-tabs button span{font-size:1.4rem}.moodboard{min-height:430px}.palette{left:8%}.palette span{width:24px;height:24px}.masonry{columns:1}.rsvp-visual{min-height:440px}.rsvp-visual>div{bottom:1.5rem;left:1.3rem}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}

/* ---------------------------------------------------------------
   Dark-theme contrast fix.
   .week, .contact and .button-olive set a hardcoded near-white text
   colour but take their background from --dark-olive, which the dark
   theme inverts to a pale cream (#e4e7d9). Result: cream on cream.
   These bands are meant to invert (dark on a light page, light on a
   dark page), so the correct fix is to darken the text, not to pin
   the background.
   --------------------------------------------------------------- */
:root[data-theme=dark] .week,
:root[data-theme=dark] .contact{color:#242c21}
:root[data-theme=dark] .week:before{color:#0000000d}
:root[data-theme=dark] .week-intro p,
:root[data-theme=dark] .contact-copy>p{color:#242c21c7}
:root[data-theme=dark] .contact-copy small{color:#242c2199}
:root[data-theme=dark] .event-tabs{border-bottom-color:#242c2133}
:root[data-theme=dark] .event-tabs button{color:#242c2199}
:root[data-theme=dark] .event-tabs button.active{color:#8a5133;border-bottom-color:#8a5133}
:root[data-theme=dark] .contact-links a{border-bottom-color:#242c2159}
:root[data-theme=dark] .contact-form label{color:#242c21}
:root[data-theme=dark] .contact-form input,
:root[data-theme=dark] .contact-form textarea{color:#242c21;border-color:#242c214d}
:root[data-theme=dark] .contact-form input:focus,
:root[data-theme=dark] .contact-form textarea:focus{border-color:#8a5133}
:root[data-theme=dark] .button-olive{color:#242c21}

/* Same class of bug against --sky, which inverts from pale blue
   (#d9ecf8) to dark slate (#394c55) while these four rules keep a
   hardcoded dark text colour. Lighten the text in dark mode only. */
:root[data-theme=dark] .button-sky,
:root[data-theme=dark] .nav-rsvp,
:root[data-theme=dark] .day-timeline span,
:root[data-theme=dark] .stay-image>span{color:#e6eef2}
