:root{--ivory:#f8f7f1;--paper:#fffefb;--ink:#1f2c27;--muted:#6f756d;--green:#2c6652;--green-soft:#eef5ef;--wine:#813347;--terracotta:#b76555;--champagne:#d7ad55;--coral:#b9525a;--rose:#f5dfd8;--mint:#e3f0e7;--graphite:#293831;--line:#1f2c271f;--shadow:0 18px 42px #1f2c271a;--radius:8px;--serif:"Fraunces", Georgia, "Times New Roman", serif;--display:"Cormorant Garamond", Garamond, Georgia, "Times New Roman", serif;--monogram:"Bodoni Moda", Didot, "Bodoni 72", Georgia, "Times New Roman", serif;--sans:"Nunito Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);font-family:var(--sans);background:linear-gradient(#fbfbf7 0%,#f7faf4 54%,#fbfbf7 100%);margin:0;line-height:1.55}body.nav-open{overflow:hidden}a{color:inherit}button,input,select,textarea{font:inherit}.site-header{z-index:20;min-height:76px;color:var(--paper);justify-content:space-between;align-items:center;padding:0 clamp(1rem,3vw,3rem);transition:background .18s,color .18s,box-shadow .18s;display:flex;position:fixed;inset:0 0 auto}.site-header.is-scrolled,.site-header.is-open{color:var(--ink);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffefbf0}.brand{letter-spacing:0;align-items:center;gap:.75rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{width:42px;height:42px;font-family:var(--monogram);border:1px solid;border-radius:50%;place-items:center;font-weight:400;line-height:1;display:grid;position:relative}.brand-mark:before{content:"";opacity:.28;border:1px solid;border-radius:50%;position:absolute;inset:5px}.brand-monogram{z-index:1;font-size:.82rem;font-style:italic;font-weight:400;position:relative;transform:translateY(-.5px)}.site-nav{align-items:center;gap:clamp(1rem,2vw,2rem);font-size:.9rem;font-weight:700;display:flex}.site-nav a{text-decoration:none;position:relative}.site-nav a:after{content:"";opacity:0;background:currentColor;height:1px;transition:transform .16s,opacity .16s;position:absolute;bottom:-.35rem;left:0;right:0;transform:scaleX(.25)}.site-nav a:hover:after,.site-nav a:focus-visible:after{opacity:1;transform:scaleX(1)}.nav-toggle{width:44px;height:44px;color:inherit;background:0 0;border:1px solid;border-radius:50%;place-items:center;display:none}.nav-toggle span{background:currentColor;width:18px;height:1px;display:block}.nav-toggle span+span{margin-top:6px}.hero{min-height:min(760px,82svh);color:var(--paper);display:grid;position:relative;overflow:hidden}.hero-media,.hero:after{position:absolute;inset:0}.hero-media{background-image:linear-gradient(90deg,#1f1c1875,#1f1c1833 52%,#1f1c180a),radial-gradient(circle at 50% 42%,#1f1c182e,#0000 44%),linear-gradient(#d7ad551a,#2c66521a),url(/hero-wedding-vineyard-tandem.png);background-position:50%;background-size:cover;transform:scale(1.01)}.hero:after{content:"";background:linear-gradient(#1f1c1814,#0000 35%,#1f1c181f)}.hero-inner{z-index:1;text-align:center;align-self:center;width:min(1120px,100% - 2rem);margin:0 auto;padding:6rem 0 3rem;position:relative}.eyebrow,.section-kicker,.fact-label,.place-meta{color:var(--champagne);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.77rem;font-weight:800}.eyebrow.dark,.section-kicker,.fact-label,.place-meta{color:var(--coral)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);letter-spacing:0;font-weight:600;line-height:.9}h1{max-width:960px;font-family:var(--display);letter-spacing:0;text-shadow:0 3px 26px #2d1f183d;margin:0 auto 1.15rem;font-size:clamp(4.35rem,11.2vw,9.8rem);font-weight:500}h1 span{display:block}h2{margin-bottom:0;font-size:clamp(2.35rem,4.8vw,4.55rem)}h3{color:var(--green);font-family:var(--serif);margin-bottom:.7rem;font-size:1.55rem;font-weight:600;line-height:1.1}.hero-copy{color:#fffdf8f5;text-shadow:0 2px 18px #241c164d;max-width:650px;margin:0 auto 1rem;font-size:clamp(1.1rem,2vw,1.35rem)}.hero-actions,.section-heading,.place-grid,.guest-layout,.form-layout{gap:1rem;display:grid}.hero-actions{grid-template-columns:repeat(2,max-content);justify-content:center}.button{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.55rem;min-height:48px;padding:.72rem 1.25rem;font-weight:800;text-decoration:none;transition:transform .15s,background .15s,color .15s,border-color .15s;display:inline-flex}.button:hover,.button:focus-visible{transform:translateY(-1px)}.button:disabled{cursor:wait;opacity:.72;transform:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button-primary{color:var(--paper);background:var(--green);box-shadow:0 12px 26px #1f2c272e}.button-ghost{color:var(--paper);background:#fffdf82e;border-color:#fffdf8b8}.button-outline{color:var(--green);background:0 0;border-color:#2f6f5859}.button-outline:hover,.button-outline:focus-visible{color:var(--paper);background:var(--green);border-color:#0000}.quick-facts{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:min(1120px,100% - 2rem);box-shadow:var(--shadow);z-index:2;grid-template-columns:repeat(3,1fr);margin:-2.5rem auto 0;display:grid;position:relative;overflow:hidden}.quick-facts article{border-right:1px solid var(--line);background:#fffefbeb;min-height:138px;padding:1.3rem}.quick-facts article:last-child{border-right:0}.quick-facts strong{color:var(--green);font-family:var(--serif);margin:.3rem 0 .2rem;font-size:clamp(1.55rem,2.25vw,2.05rem);font-weight:600;line-height:1.05;display:block}.quick-facts span:last-child{color:var(--muted)}.section{width:min(1120px,100% - 2rem);margin:0 auto;padding:clamp(3.75rem,7vw,6.5rem) 0}.intro-section{padding-top:clamp(5rem,9vw,8rem)}.intro-grid,.section-heading{grid-template-columns:minmax(0,.96fr) minmax(300px,.74fr);gap:clamp(2rem,6vw,5rem);display:grid}.section-heading{align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem)}.section-heading[id]{scroll-margin-top:96px}.section-heading p,.intro-copy{color:var(--muted);font-size:1.02rem}.section-heading p{max-width:36rem}.intro-copy p:last-child,.section-heading p:last-child{margin-bottom:0}.intro-signature{flex-wrap:wrap;gap:.55rem;margin-top:1.4rem;display:flex}.intro-signature span{min-height:32px;color:var(--green);background:#fffefb94;border:1px solid #2f6f5821;border-radius:999px;align-items:center;padding:.3rem .68rem;font-size:.78rem;font-weight:900;display:inline-flex}.roadmap-stop p,.place-card p,.logistics-grid p,.rsvp-side dd,.faq-list p,.message-card p{color:var(--muted)}.roadmap{isolation:isolate;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.85rem,2vw,1.35rem);min-height:430px;display:grid;position:relative}.route-line{z-index:0;width:100%;height:260px;color:var(--green);pointer-events:none;position:absolute;inset:2rem 0 auto;overflow:visible}.route-line-shadow,.route-line-main{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.route-line-shadow{stroke:#d7ad553d;stroke-width:18px}.route-line-main{stroke:currentColor;stroke-dasharray:11 13;stroke-width:2.4px}.roadmap-stop{z-index:1;align-content:start;gap:.8rem;min-width:0;display:grid;position:relative}.roadmap-stop-1{margin-top:9.4rem}.roadmap-stop-2{margin-top:1rem}.roadmap-stop-3{margin-top:10.2rem}.roadmap-stop-4{margin-top:3rem}.stop-marker{aspect-ratio:1;width:clamp(92px,10.5vw,122px);color:var(--green);background:#fffefbf5;border:1px solid #2f6f5829;border-radius:50%;place-items:center;display:grid;box-shadow:0 16px 34px #1f2c271f}.roadmap-stop-2 .stop-marker{color:var(--wine)}.roadmap-stop-3 .stop-marker{color:var(--terracotta)}.roadmap-stop-4 .stop-marker{color:var(--champagne)}.route-icon{width:84%;height:84%}.stop-card{border-radius:var(--radius);background:linear-gradient(135deg,#fffefbf7,#f8f7f1e6),repeating-linear-gradient(0deg,#2c665209 0 1px,#0000 1px 19px);border:1px solid #2f6f5821;min-height:278px;padding:clamp(1rem,2vw,1.25rem);box-shadow:0 10px 26px #1f2c270d}.stop-card time{color:var(--wine);text-transform:uppercase;font-weight:900;display:block}.stop-card span{color:var(--coral);letter-spacing:0;text-transform:uppercase;margin-bottom:.25rem;font-size:.75rem;font-weight:900;display:block}.stop-card h3{margin-bottom:.45rem}.stop-card p{margin-bottom:0}.stop-card .stop-reference{width:fit-content;color:var(--wine);background:#f5dfd873;border:1px solid #81334724;border-radius:999px;margin:.45rem 0 .75rem;padding:.24rem .5rem;font-size:.72rem;font-weight:900;display:inline-flex}.stop-card .stop-place{color:var(--green);margin-bottom:.7rem;font-weight:800}.route-signature{color:var(--green);flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:clamp(.5rem,2vw,1rem);display:flex}.route-signature span{background:#fffefbb8;border:1px solid #2f6f5821;border-radius:999px;align-items:center;min-height:34px;padding:.35rem .75rem;font-size:.8rem;font-weight:900;display:inline-flex}.route-signature span:first-child{color:var(--wine);font-family:var(--monogram);font-size:1.02rem;font-style:italic;font-weight:400}.place-grid{grid-template-columns:repeat(2,1fr)}.place-card{border-radius:var(--radius);background:var(--paper);border:1px solid #2f6f5824;min-height:320px;padding:clamp(1.25rem,3vw,2rem)}.place-card.featured{color:var(--paper);background:var(--green);border-color:#0000}.place-card.featured h3,.place-card.featured .place-meta,.place-card.featured p{color:var(--paper)}.place-card.featured .button-outline{color:var(--paper);border-color:#fffaf280}.route-band{color:var(--paper);background:var(--graphite);grid-template-columns:130px 1fr minmax(240px,.55fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);padding:clamp(2.2rem,5vw,3.5rem) max(1rem,50vw - 560px);scroll-margin-top:76px;display:grid}.route-band h2{font-size:clamp(2rem,4vw,3.5rem)}.route-band p{color:#fffefbc2;margin-bottom:0}.route-illustration{align-items:center;min-height:112px;display:grid}.tandem-sketch{color:#d7ad55e0;filter:drop-shadow(0 8px 16px #00000014);width:min(154px,100%);height:auto}.sketch-line{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;vector-effect:non-scaling-stroke}.sketch-soft{opacity:.54;stroke-width:1.35px}.festival-line{fill:none;stroke:var(--coral);stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;vector-effect:non-scaling-stroke}.logistics-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.logistics-grid article,.gift-note,.photo-placeholder{border-radius:var(--radius);background:var(--paper);border:1px solid #2f6f5824;padding:clamp(1.25rem,3vw,2rem)}.logistics-grid a{color:var(--green);font-weight:800}.form-layout{grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:start}.rsvp-form,.message-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);grid-template-columns:repeat(2,1fr);gap:1rem;padding:clamp(1.2rem,3vw,2rem);display:grid;box-shadow:0 10px 26px #1f2c270a}label{color:var(--ink);gap:.42rem;font-size:.9rem;font-weight:800;display:grid}fieldset{border:1px solid var(--line);border-radius:var(--radius);min-width:0;margin:0;padding:1rem}legend{color:var(--green);padding:0 .35rem;font-size:.9rem;font-weight:900}.transport-field{grid-template-columns:repeat(2,1fr);gap:.75rem 1rem;display:grid}.transport-field label{color:var(--ink);align-items:flex-start;font-weight:700;display:flex}.transport-field input{width:18px;min-height:18px;accent-color:var(--green);margin-top:.14rem}input,select,textarea{border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;border:1px solid #1f2c2729;outline:none}input,select{min-height:48px;padding:0 .85rem}textarea{resize:vertical;padding:.8rem .85rem}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c665221}.wide{grid-column:1/-1}.checkbox-line{color:var(--ink);align-items:center;font-weight:700;display:flex}.checkbox-line input{width:18px;min-height:18px;accent-color:var(--green)}.form-status{min-height:1.5rem;color:var(--wine);grid-column:1/-1;margin-bottom:0;font-weight:800}.rsvp-side{border-radius:var(--radius);background:var(--green-soft);border:1px solid #2f6f582e;padding:clamp(1.2rem,3vw,2rem)}.rsvp-side dl,.rsvp-side dd{margin:0}.rsvp-side div{border-top:1px solid #2f6f582e;padding:1rem 0}.rsvp-side dt{color:var(--green);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:900}.guest-layout{grid-template-columns:minmax(280px,420px) 1fr;align-items:start}.message-board{gap:1rem;display:grid}.message-card{border-radius:var(--radius);background:var(--paper);border:1px solid #2f6f581f;border-left:4px solid #2c665261;padding:1.1rem}.message-card header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.message-card strong{color:var(--green)}.message-card span{color:var(--green);background:#2c66521a;border-radius:999px;flex:none;padding:.25rem .55rem;font-size:.74rem;font-weight:900}.message-card p{margin-bottom:0}.gift-note{max-width:780px;color:var(--green);font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.18;position:relative}.gift-note:before{background:var(--champagne);content:"";width:74px;height:2px;margin-bottom:1.3rem;display:block}.gift-note p{margin-bottom:0}.photo-placeholder{grid-template-columns:96px 1fr;align-items:center;gap:1.5rem;display:grid}.photo-placeholder span{border-radius:var(--radius);background:linear-gradient(135deg,#0000 0 46%,#2f6f5838 47% 53%,#0000 54%),linear-gradient(45deg,#2c665214,#d7ad5538);border:1px solid #2f6f5833;width:96px;height:96px;display:block}.photo-placeholder p{max-width:620px;color:var(--muted);margin-bottom:0}.faq-list{gap:.85rem;display:grid}details{border-radius:var(--radius);background:var(--paper);border:1px solid #2f6f5821}summary{cursor:pointer;color:var(--green);font-family:var(--serif);padding:1.2rem;font-size:1.35rem;font-weight:600}details p{margin:0;padding:0 1.2rem 1.2rem}.site-footer{color:var(--paper);background:var(--graphite);justify-content:space-between;align-items:center;gap:1rem;padding:2rem max(1rem,50vw - 560px);display:flex}.site-footer p{margin:0}.site-footer a{font-weight:800;text-decoration:none}@media (width<=900px){.nav-toggle{display:grid}.site-nav{color:var(--ink);background:#fffefbf7;grid-template-columns:1fr;gap:0;padding:.8rem 1rem 1rem;display:none;position:fixed;top:76px;left:0;right:0;box-shadow:0 18px 50px #22201d1f}.site-header.is-open .site-nav{display:grid}.site-nav a{border-top:1px solid var(--line);padding:.85rem 0}.intro-grid,.section-heading,.form-layout,.guest-layout,.route-band,.logistics-grid,.quick-facts,.place-grid{grid-template-columns:1fr}.quick-facts article{border-right:0;border-bottom:1px solid var(--line)}.quick-facts article:last-child{border-bottom:0}.roadmap{grid-template-columns:1fr;gap:1rem;min-height:0;padding-left:.1rem}.roadmap:before{content:"";background:repeating-linear-gradient(#2c66528c 0 9px,#0000 9px 17px);width:2px;position:absolute;top:1.2rem;bottom:1.2rem;left:40px}.route-line{display:none}.roadmap-stop,.roadmap-stop-1,.roadmap-stop-2,.roadmap-stop-3,.roadmap-stop-4{grid-template-columns:80px minmax(0,1fr);align-items:start;gap:.95rem;margin-top:0}.stop-marker{width:80px}.stop-card{min-height:0}}@media (width<=620px){.site-header{min-height:66px}.brand{max-width:calc(100vw - 6rem)}.nav-toggle{z-index:3;background:#22201d2e;border-width:2px;flex:none;display:grid;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.site-header.is-scrolled .nav-toggle,.site-header.is-open .nav-toggle{background:#1f4a3b14}.site-nav{top:66px}.section-heading[id]{scroll-margin-top:82px}.hero{min-height:78svh}.hero-inner{padding-top:5rem}.hero-copy{max-width:22rem;font-size:1.05rem}h1{font-size:clamp(3.45rem,16vw,5.85rem)}.hero-actions{grid-template-columns:1fr}.button{width:100%}.quick-facts{margin-top:-1.25rem}.rsvp-form,.message-form,.transport-field,.photo-placeholder{grid-template-columns:1fr}.roadmap:before{left:34px}.roadmap-stop,.roadmap-stop-1,.roadmap-stop-2,.roadmap-stop-3,.roadmap-stop-4{grid-template-columns:68px minmax(0,1fr);gap:.8rem}.stop-marker{width:68px}.stop-card{padding:1rem}.site-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
