@font-face{font-family:Garden Serif;src:url("../fonts/cormorantgaramond.618588c60263.ttf");font-display:swap}@font-face{font-family:Garden Display;src:url("../editorial-noir/fonts/Prata-Regular.3456391b8e6e.ttf");font-display:swap}@font-face{font-family:Garden Script;src:url("../blush-atelier/fonts/GreatVibes-Regular.d1358c495233.ttf");font-display:swap}
*{box-sizing:border-box}html{scrollbar-width:none;scroll-behavior:smooth}body{margin:0;background:#061c13;color:#f0e6c9;font:20px/1.25 Garden Serif,Georgia,serif;overflow-x:clip}h1,h2,h3,p,figure{margin:0;font-weight:400}img,svg{display:block}button,input{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #e6c77d;outline-offset:3px}button:disabled{opacity:.6;cursor:default}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.garden-invitation{width:min(100%,520px);margin:auto;container-type:inline-size;box-shadow:0 0 80px #0008}.garden-section{position:relative;isolation:isolate;min-height:177.69cqi;overflow:hidden;background:#082419;overflow-wrap:anywhere}.garden-scene{position:absolute;inset:0;width:100%;height:100%;z-index:-1;object-fit:fill;pointer-events:none}.garden-ornament{width:26cqi;height:6cqi;color:#b99b58;margin:2cqi auto}.garden-photo-window{overflow:hidden;position:relative;background:#0d291d}.garden-client-photo{display:block;width:100%;height:100%;transform-origin:center;object-fit:cover}.garden-names{font:var(--name-size,12cqi)/.93 Garden Serif,Georgia,serif;text-align:center}.garden-names span{display:block;word-break:normal;overflow-wrap:anywhere}.garden-names i{display:flex;align-items:center;justify-content:center;gap:2cqi;font-size:.65em;line-height:1.05;color:#d2b275}.garden-names i:before,.garden-names i:after{content:"";width:10cqi;height:1px;background:#bc9e5d}.garden-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:10px 15px;border:1px solid #b5a06b;outline:1px solid #284132;outline-offset:2px;border-radius:12px;background:linear-gradient(120deg,#102b1c,#0a2117);color:#f8efd3;text-decoration:none;font-size:4.2cqi;max-width:100%;box-shadow:0 3px 8px #0002}.garden-button:hover{background:#294d35}.garden-success,.errorlist{background:#f3ead8;color:#24442d;border:1px solid #95804f;padding:10px;font-size:16px;list-style:none}.errorlist{color:#872b28}
/* 01: fixed greenhouse, independent arched portrait, live names below. */
.garden-hero-photo{position:absolute;left:22.7%;top:16.1%;width:54.4%;height:39.7%;border-radius:50% 50% 0 0;border:1px solid #dfcb92;box-shadow:0 0 0 2px #b5a16d33}.garden-hero-copy{position:relative;padding:104cqi 0 36cqi;width:54%;margin-left:23%;text-align:center}.garden-hero-copy time{display:block;font-size:3.5cqi;text-transform:uppercase;letter-spacing:.21em;margin-top:4cqi}.garden-hero-kicker{position:absolute;top:6%;left:20%;width:60%;text-align:center;font-size:3.5cqi;letter-spacing:.12em}
/* 02: complex botanical paper remains authored, all copy is HTML. */
.garden-intro-copy{padding:82cqi 0 12cqi;width:55%;margin-left:24%;text-align:center;color:#173322}.garden-intro-copy h2{font-size:2.9cqi;letter-spacing:.22em;text-transform:uppercase;line-height:1.7;margin-bottom:2cqi}.garden-intro-copy .garden-names{font-style:italic}.garden-intro-copy .garden-names i{font-size:.4em}.garden-intro-copy p{font-size:3.4cqi;line-height:1.15;font-style:italic;width:84%;margin:auto}.garden-intro-copy .garden-ornament{height:2cqi;margin:1cqi auto}
/* 03: live calendar and date in the dark glass arch. */
.garden-date-copy{text-align:center;padding:21cqi 0 0}.garden-date-copy h2{font-size:3.3cqi;text-transform:uppercase;letter-spacing:.2em;line-height:1.3}.garden-date-copy time{display:block;color:#f1d599;margin-top:6cqi}.garden-date-copy strong{display:block;font:26cqi/.9 Garden Serif,Georgia,serif;text-shadow:0 1px 2px #fff8}.garden-date-copy span{display:block;font-size:6.8cqi;text-transform:uppercase;letter-spacing:.18em;margin:1cqi 0}.garden-date-copy b{display:block;font-size:4cqi;font-weight:400;letter-spacing:.2em}.garden-date-copy em{display:block;font-size:4cqi;color:#f4ebd1;margin-top:3cqi}.garden-calendar{width:61%;margin:7cqi auto 0;padding:4cqi 3cqi 0;border:1px solid #b59955;border-radius:50% 50% 0 0 / 14% 14% 0 0;text-align:center;color:#e9d297}.garden-calendar h3{text-transform:uppercase;font-size:3.6cqi;letter-spacing:.1em;margin-bottom:2cqi}.garden-calendar table{border-collapse:collapse;width:100%;table-layout:fixed}.garden-calendar th{font-size:2.5cqi;font-weight:400;padding-bottom:2cqi}.garden-calendar td{height:5.4cqi;font-size:3.4cqi;padding:0}.garden-calendar td span{display:grid;place-items:center;width:5cqi;height:5cqi;margin:auto}.garden-calendar .is-event-day{border:1px solid #edc574;border-radius:50%;box-shadow:0 0 10px #cfa45988;color:#fff6d5}.garden-calendar p{font-size:4cqi;font-style:italic;line-height:1.1;color:#f5ebd2}.garden-calendar .garden-ornament{margin:1.5cqi auto}.garden-calendar-export{font-size:2.6cqi;text-underline-offset:3px;display:inline-block;margin:2cqi 0 3cqi}
/* 04: individual event nodes and a path built from actual DOM coordinates. */
.garden-programme{padding:17cqi 9cqi 13cqi}.garden-programme header{text-align:center}.garden-programme header>p{font-size:2.9cqi;letter-spacing:.35em;text-transform:uppercase}.garden-programme h2{font-size:9.5cqi;line-height:.95}.garden-programme header>.garden-ornament{margin:2cqi auto;width:27cqi}.garden-event-stage{position:relative;padding-top:3cqi}.garden-event-stage ol{list-style:none;padding:0;margin:0;position:relative;z-index:1}.garden-event-stage li{position:relative;display:flex;align-items:center;gap:3cqi;min-height:25cqi;margin-bottom:1.5cqi}.garden-event-stage li:nth-child(even){padding-left:29cqi}.garden-event-stage li:nth-child(odd){padding-left:7cqi;padding-right:15cqi}.garden-event-icon{position:relative;flex:0 0 20cqi;width:20cqi;height:24cqi;display:grid;place-items:center;color:#f1d993;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at 70% 20%,#c6b06a33,transparent 60%),#0b281ecc;border:1px solid #cdb271;box-shadow:inset 0 0 0 3px #172c21,inset 0 0 0 4px #aa8e52}.garden-event-icon:after{content:"";position:absolute;inset:-4cqi -5cqi -5cqi -4cqi;background:url("assets/event-frame.4bb1338be764.webp") center/100% 100% no-repeat;pointer-events:none}.garden-event-icon>svg{width:12cqi;height:12cqi}.garden-event-copy{min-width:0;max-width:32cqi;color:#f3ebd0;text-shadow:0 1px 8px #000}.garden-event-copy time{font-size:5.5cqi}.garden-event-copy h3{font-size:4.1cqi;line-height:1.05}.garden-event-copy p{font-size:3.3cqi;margin-top:3px}.garden-event-copy .garden-ornament{width:15cqi;height:3cqi;margin:1cqi 0}.garden-event-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}.garden-path-line{stroke:#d8bf80;stroke-width:1.2;fill:none;filter:drop-shadow(0 0 3px #c2a260)}.garden-moving-leaf{position:absolute;z-index:3;left:0;top:0;width:23px;height:23px;display:grid;place-items:center;font-size:29px;color:#f2d991;pointer-events:none;text-shadow:0 0 8px #fff5}
/* 05: actual venue photo is separate from the decorative glasshouse. */
.garden-location-photo{position:absolute;left:11.2%;top:24.8%;width:78%;height:29.5%;border:1px solid #dac89e;border-radius:9px}.garden-location-placeholder{height:100%;padding:5cqi 8cqi;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;background:radial-gradient(ellipse at top,#2a4a35,#0d2b1e);color:#d7cfb1}.garden-location-placeholder svg{width:12cqi;height:12cqi}.garden-location-placeholder p{font-size:4cqi}.garden-location-placeholder small{font-size:3cqi}.garden-location-copy{padding:102cqi 0 29cqi;width:69%;margin:auto;text-align:center;color:#10291a}.garden-location-copy h2{font-size:4.5cqi}.garden-location-copy h3{font-size:6.6cqi;line-height:1.05}.garden-location-copy>p{font-size:4cqi}.garden-location-copy>.garden-ornament{height:3cqi;margin:2cqi auto}.garden-location-copy .garden-button{margin:5cqi auto 0;width:92%}.garden-location-copy>small{display:block;font-size:2.8cqi;line-height:1.2;margin:4cqi auto 0;max-width:95%}
/* 06: four starting clothing colours; the authored palette never changes. */
.garden-dress-copy{padding:54cqi 0 28cqi;width:62%;margin:auto;color:#183225;text-align:center}.garden-dress-copy h2{font:9.3cqi/1 Garden Serif,serif;white-space:normal}.garden-dress-copy>.garden-ornament{margin:2cqi auto}.garden-dress-copy>p{font-size:4cqi;line-height:1.2;width:95%;margin:auto}.garden-swatches{display:flex;justify-content:center;flex-wrap:wrap;gap:2cqi;list-style:none;padding:0;margin:5cqi -2cqi}.garden-swatches li{flex:0 0 13.2cqi;min-width:0}.garden-swatches li>span{display:block;width:11cqi;height:11cqi;border:1px solid #af8b44;border-radius:50%;outline:1px solid #f7efd9;outline-offset:-3px;margin:auto}.garden-swatches small{display:block;text-align:center;font-size:2.1cqi;letter-spacing:.07em;text-transform:uppercase;line-height:1.25;margin-top:2cqi}.garden-dress-copy>.garden-dress-note{font:5.8cqi/1.25 Garden Script,cursive;color:#786737;margin-top:3cqi}
/* 07: portrait window, real thumbnails, native touch scroll. */
.garden-gallery-content{padding:20cqi 0 15cqi}.garden-gallery-stage{position:relative;width:76%;margin:auto}.garden-slides{display:flex;width:100%;height:93cqi;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:50% 50% 4% 4% / 35% 35% 3% 3%;border:1px solid #d7c087;overscroll-behavior-x:contain}.garden-slides::-webkit-scrollbar{display:none}.garden-slides figure{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}.garden-gallery-stage>button{position:absolute;top:60%;width:30px;height:30px;border:1px solid #c7b67d;border-radius:50%;background:#0c281de6;color:#f5ebce;padding:0;display:grid;place-items:center;font:20px/1 Georgia,serif;z-index:2}.garden-gallery-stage>button:first-of-type{left:8px}.garden-gallery-stage>button:last-of-type{right:8px}.garden-gallery-hint{text-align:center;font-size:3cqi;line-height:1.2;margin:2cqi 15% 0;text-shadow:0 1px 4px #000}.garden-gallery-hint span{font-size:5cqi}/* 08: live RSVP on authored cream stationery and green envelope. */
.garden-rsvp-copy{width:55%;margin:auto;padding:53cqi 0 8cqi;color:#143222}.garden-rsvp-copy h2{text-align:center;font-size:8cqi;line-height:1.05}.garden-rsvp-copy>.garden-ornament{height:4cqi;margin:2cqi auto}.garden-rsvp-copy>p{text-align:center;font-size:3.6cqi;font-style:italic;line-height:1.15;margin-bottom:3cqi}.garden-field{margin-bottom:1.5cqi}.garden-field>label{display:block;font-size:2.9cqi;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1cqi}.garden-field input:not([type=radio]){width:100%;min-height:7cqi;border:1px solid #8f967f;border-radius:3px;background:#f7f0dfaa;padding:1.2cqi 2cqi;font-size:4cqi;color:#143222}.garden-count-control{position:relative}.garden-count-control input{appearance:textfield;text-align:center}.garden-count-control input::-webkit-inner-spin-button{appearance:none}.garden-count-control button{display:grid;place-items:center;position:absolute;top:0;height:100%;width:30px;border:0;background:none;padding:0;font-size:22px}.garden-count-control button:first-of-type{left:2px}.garden-count-control button:last-of-type{right:2px}.garden-attendance>div{display:grid;gap:2cqi;margin-top:3cqi}.garden-attendance label{display:flex;align-items:center;gap:7px;border:1px solid #9c8652;background:#f4ecd8;border-radius:9px;padding:7px 8px;min-height:8cqi;font-size:3.6cqi;line-height:1.05}.garden-attendance label:has(input:checked){background:#123322;color:#f4e8c7}.garden-attendance input{appearance:none;display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;border:1px solid currentColor;border-radius:50%;margin:0}.garden-attendance input:checked:after{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.garden-rsvp-form>.garden-button{width:100%;margin-top:3cqi;font-size:3.6cqi;min-height:9cqi;padding:5px}.garden-form-note{font-size:2.6cqi;text-align:center;margin-top:2cqi}.garden-rsvp .errorlist{font-size:3.4cqi;margin:1cqi 0}
/* 09–10: live countdown and final typography over empty garden scenes. */
.garden-countdown-copy{text-align:center;padding:87cqi 0 39cqi;width:79%;margin:auto}.garden-countdown-copy h2{font-size:7.8cqi;line-height:.95;text-shadow:0 2px 12px #0008;overflow-wrap:normal}.garden-countdown-copy>.garden-ornament{margin:3cqi auto}.garden-timer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5cqi;margin-top:3cqi}.garden-timer>div{border:1px solid #b59c5d;border-bottom:0;border-radius:50% 50% 0 0 / 35% 35% 0 0;padding-top:2cqi;min-width:0}.garden-timer>div>span{font-size:4cqi;color:#bca164}.garden-timer strong{display:block;font-size:10cqi;line-height:1.1;font-weight:400;white-space:nowrap}.garden-timer small{font-size:2.4cqi;letter-spacing:.12em;text-transform:uppercase}.garden-timer strong.is-long-number{font-size:calc(29cqi / var(--digits))}.garden-countdown-copy>[data-expired]{font-size:4.5cqi;margin-top:3cqi}.garden-finale-copy{text-align:center;padding:111cqi 0 21cqi;width:70%;margin:auto;text-shadow:0 1px 12px #000}.garden-finale-copy h2{font:14cqi/.95 Garden Script,cursive}.garden-finale-copy .garden-ornament{margin:4cqi auto}.garden-finale-copy p{font-size:4.8cqi;font-style:italic}
@media(pointer:coarse){.garden-gallery-stage>button{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.garden-moving-leaf{display:none}}

.garden-event-icon:before{content:"";position:absolute;bottom:-3px;left:calc(50% - 3px);height:6px;width:6px;background:#f5d98a;border-radius:50%;box-shadow:0 0 9px #f1d383}

/* Long client copy grows on a cream panel; it never escapes onto the foliage. */
.garden-long-copy .garden-intro-copy,.garden-long-copy .garden-dress-copy,.garden-long-copy .garden-rsvp-copy{width:70%;margin:55cqi auto 20cqi;padding:32px 18px;background:#f0e6ce;border:1px solid #b49a60;border-radius:100px 100px 12px 12px;box-shadow:0 8px 22px #0005}.garden-long-copy .garden-intro-copy p{width:100%}.garden-long-copy .garden-location-photo{position:relative;top:auto;left:auto;width:78%;height:52cqi;margin:42cqi auto 0}.garden-long-copy .garden-location-copy{width:78%;padding:25px 18px;background:#f0e6ce;margin:0 auto 25cqi;border:1px solid #b49a60}

/* Register each live window to the circular arch in its authored scene. */
.garden-hero>.garden-scene{height:177.69cqi}
.garden-hero-photo{left:23.3%;top:28.3cqi;width:53.4%;height:70.6cqi;border:0;border-radius:26.7cqi 26.7cqi 0 0;box-shadow:none}
.garden-event-icon{flex:0 0 28cqi;width:28cqi;height:28cqi;background:none;border:0;border-radius:0;box-shadow:none}
.garden-event-icon:before{left:27%;top:9%;bottom:auto;width:55%;height:79%;border-radius:50% 50% 0 0 / 35% 35% 0 0;background:#0b281e;box-shadow:none}
.garden-event-icon:after{inset:0}
.garden-event-icon>svg{position:absolute;left:37%;top:31%;width:35%;height:35%;z-index:1}
.garden-event-stage li{gap:1cqi;min-height:29cqi}
.garden-event-stage li:nth-child(odd){padding-left:0;padding-right:12cqi}
.garden-event-stage li:nth-child(even){padding-left:23cqi}
.garden-event-copy{flex:1;max-width:34cqi}
.garden-gallery{min-height:0;overflow:clip}
.garden-gallery>.garden-scene{height:177.69cqi}
.garden-gallery-content{padding:20.7cqi 0 12px}
.garden-gallery-stage{width:75.2%;margin-left:12.4%}
.garden-slides{height:94.8cqi;border:0;border-radius:37.6cqi 37.6cqi 2cqi 2cqi}
.garden-gallery-hint{margin:18px 14% 0;font-size:3.6cqi;line-height:1.25;min-height:20px}
.garden-gallery-hint span{font-size:5cqi;line-height:1;vertical-align:middle}
@media(max-width:767px),(pointer:coarse){.garden-gallery-stage>button{display:none}}
