:root{--j-paper:#f5f0e4;--j-ink:#392e29;--j-muted:#786b60;--j-red:#913d39;--j-line:rgba(105,69,54,.22);--j-serif:'Playfair Display',Georgia,serif;--j-sans:'Libre Franklin',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{min-width:0;scroll-behavior:smooth;scrollbar-width:none!important;-ms-overflow-style:none!important;background:var(--j-paper)}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
body{margin:0;scrollbar-width:none!important;-ms-overflow-style:none!important;background:var(--j-paper);color:var(--j-ink);font-family:var(--j-sans);-webkit-font-smoothing:antialiased}
body.grand-amour{--j-paper:#fbf0ed;--j-ink:#3b2930;--j-muted:#80656e;--j-red:#803b54;--j-line:rgba(104,53,73,.2)}
body::before{position:fixed;z-index:4;inset:0;pointer-events:none;content:"";opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E");mix-blend-mode:multiply}
[hidden]{display:none!important}
.jardin-intro{position:fixed;z-index:20;inset:0;overflow:hidden;background:#1c261f;color:#fff4df;opacity:1;transition:opacity 0.8s cubic-bezier(.25,1,.5,1)}
.jardin-intro__poster-bg{position:absolute;inset:0;width:100%;max-width:700px;margin:auto;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}
.jardin-intro__video{position:absolute;inset:0;width:100%;max-width:700px;margin:auto;height:100%;object-fit:cover;object-position:center;z-index:1;background:transparent!important}
.jardin-intro__shade{position:absolute;inset:0;background:rgba(0,0,0,.15);transition:opacity .9s ease}
.jardin-intro__touch{position:absolute;z-index:2;inset:0;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.jardin-intro__touch:focus-visible{outline:2px solid #fff4df;outline-offset:-12px}
.jardin-intro__skip{position:absolute;z-index:3;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));border:1px solid rgba(255,244,223,.64);padding:11px 14px;background:rgba(32,25,20,.25);color:#fff4df;font:500 10px var(--j-sans);letter-spacing:.08em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .4s ease;cursor:pointer;backdrop-filter:blur(5px)}
.jardin-intro.is-opening .jardin-intro__skip{opacity:1;pointer-events:auto}
.jardin-intro.is-opening .jardin-intro__shade{opacity:0}
.jardin-intro.is-transitioning{opacity:0!important;pointer-events:none;will-change:opacity}
.jardin-intro__error{position:absolute;z-index:4;right:0;bottom:68px;left:0;margin:0;text-align:center;color:#fff4df;font-size:12px;text-shadow:0 1px 8px #000}
.jardin-nav{position:absolute;z-index:2;top:0;right:0;left:0;display:flex;justify-content:space-between;align-items:center;padding:20px clamp(18px,5vw,70px);font-size:9px;letter-spacing:.21em;color:#fff7e8}
.jardin-nav button{display:flex;align-items:center;gap:8px;border:0;background:none;color:inherit;font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.jardin-nav button i{width:14px;height:12px;border-right:1px solid currentColor;border-left:1px solid currentColor;background:linear-gradient(90deg,transparent 30%,currentColor 30% 34%,transparent 34% 64%,currentColor 64% 68%,transparent 68%);opacity:.75}
.jardin-nav button.is-muted i{opacity:.25}
.jardin-hero{position:relative;display:grid;place-items:center;width:100%;height:auto;aspect-ratio:16/9;max-height:920px;overflow:hidden;background:#1c261f}
.jardin-hero__image,.jardin-hero__veil{position:absolute;inset:0;width:100%;height:100%}
.jardin-hero__image{object-fit:cover;object-position:center;animation:none!important}
.jardin-hero__veil{background:linear-gradient(180deg,rgba(28,31,24,.2),rgba(30,29,24,.08) 35%,rgba(29,27,23,.46))}
.jardin-hero__copy{position:relative;z-index:1;width:min(92%,850px);padding:90px 0 48px;text-align:center;color:#fff8e7;text-shadow:0 2px 24px rgba(31,29,23,.22);animation:jardin-copy-arrive 1.3s .2s both}
.jardin-kicker{margin:0 0 20px;color:var(--j-red);font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.jardin-hero .jardin-kicker{color:#fff3dd}
.jardin-hero h1{margin:0;font:400 clamp(55px,11vw,142px)/.8 var(--j-serif);letter-spacing:-.045em}
.jardin-hero h1 span{font-style:italic;font-size:.68em}
.jardin-hero__copy>p:not(.jardin-kicker){margin:25px 0 30px;font:italic 18px/1.4 var(--j-serif)}
.jardin-hero__copy>a{display:inline-flex;gap:18px;align-items:center;color:#fff8e7;text-decoration:none;font-size:9px;letter-spacing:.17em;text-transform:uppercase}
.jardin-hero__copy>a span{font-size:17px;animation:jardin-float 1.5s infinite ease-in-out}
.jardin-hero__index{position:absolute;right:clamp(18px,4vw,54px);bottom:24px;color:#fff7e7;font:italic 14px var(--j-serif);letter-spacing:.14em}
.jardin-section{padding:clamp(72px,11vw,150px) 22px;text-align:center}
.jardin-opening{max-width:900px;margin:auto}
.jardin-section h2,.jardin-location h2{margin:0;color:var(--j-red);font:400 clamp(42px,7vw,82px)/.94 var(--j-serif);letter-spacing:-.035em}
.jardin-section h2 em,.jardin-location h2 em{font-weight:400}
.jardin-opening>p:not(.jardin-kicker){max-width:540px;margin:25px auto 0;color:var(--j-muted);font:400 15px/1.9 var(--j-serif)}
.jardin-countdown{display:flex;align-items:center;justify-content:center;gap:clamp(15px,4vw,44px);margin:44px auto 0;color:var(--j-red)}
.jardin-countdown div{display:grid;gap:3px;min-width:45px}.jardin-countdown strong{font:400 clamp(28px,4vw,42px)/1 var(--j-serif)}.jardin-countdown span{color:var(--j-muted);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.jardin-countdown>i{width:1px;height:38px;background:var(--j-line)}
.jardin-landscape{position:relative;width:min(100% - 36px,1160px);margin:0 auto;overflow:hidden;background:#d7d1bb}
.jardin-landscape img{display:block;width:100%;aspect-ratio:16/7;object-fit:cover;object-position:center 48%;transition:transform 1.2s cubic-bezier(.2,.65,.2,1)}.jardin-landscape:hover img{transform:scale(1.025)}
.jardin-landscape p{position:absolute;right:16px;bottom:12px;margin:0;color:#fff8e7;font:italic 14px var(--j-serif);text-shadow:0 1px 7px #332a20}
.jardin-events{background:rgba(255,252,245,.42)}.jardin-section__lead{margin:17px 0 0;color:var(--j-muted);font:italic 16px var(--j-serif)}
.jardin-timeline{width:min(100%,650px);margin:52px auto 0;text-align:left}
.jardin-timeline article{position:relative;display:grid;grid-template-columns:95px 1fr;gap:21px;padding:0 0 30px}.jardin-timeline article:not(:last-child)::before{position:absolute;top:13px;bottom:-2px;left:88px;width:1px;background:var(--j-line);content:""}.jardin-timeline time{position:relative;z-index:1;display:block;padding-top:1px;background:var(--j-paper);color:var(--j-red);font:400 19px var(--j-serif)}.jardin-timeline h3{margin:0;color:var(--j-ink);font:400 26px/1 var(--j-serif)}.jardin-timeline article p{margin:8px 0 0;color:var(--j-muted);font:400 13px/1.7 var(--j-serif)}
.jardin-location{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:450px;background:#e9e3d6}
.jardin-location__photo{min-height:400px;overflow:hidden}.jardin-location__photo img{width:100%;height:100%;min-height:400px;object-fit:cover;transition:transform 1.4s}.jardin-location:hover .jardin-location__photo img{transform:scale(1.03)}
.jardin-location__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(35px,8vw,105px)}.jardin-location h2{font-size:clamp(43px,6vw,73px)}.jardin-location__copy>p:not(.jardin-kicker){margin:24px 0;color:var(--j-muted);font:400 15px/1.8 var(--j-serif)}.jardin-location__copy>a{padding-bottom:5px;border-bottom:1px solid var(--j-red);color:var(--j-red);font-size:10px;letter-spacing:.13em;text-decoration:none;text-transform:uppercase}
.jardin-rsvp{max-width:780px;margin:0 auto}.jardin-rsvp>p:not(.jardin-kicker){color:var(--j-muted);font:400 15px var(--j-serif)}.jardin-rsvp form{display:grid;gap:17px;width:min(100%,540px);margin:38px auto 0;text-align:left}.jardin-rsvp label{display:grid;gap:7px;color:var(--j-red);font-size:9px;letter-spacing:.11em;text-transform:uppercase}.jardin-rsvp input,.jardin-rsvp select,.jardin-rsvp textarea{width:100%;border:0;border-bottom:1px solid var(--j-line);border-radius:0;padding:12px 3px;background:transparent;color:var(--j-ink);font:400 14px var(--j-serif);letter-spacing:normal;text-transform:none}.jardin-rsvp input:focus,.jardin-rsvp select:focus,.jardin-rsvp textarea:focus{outline:0;border-color:var(--j-red)}.jardin-rsvp button{justify-self:center;min-width:200px;margin-top:8px;border:0;padding:16px 20px;background:var(--j-red);color:#fff5e7;font:500 10px var(--j-sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.jardin-rsvp button span{margin-left:15px}.jardin-rsvp__response{margin:0;color:var(--j-red);font-size:12px;line-height:1.7;text-align:center}
.jardin-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;padding:28px clamp(20px,5vw,70px);border-top:1px solid var(--j-line);color:var(--j-muted);font-size:9px;letter-spacing:.16em}.jardin-footer p{width:100%;margin:15px 0 0;color:var(--j-red);font:italic 24px var(--j-serif);letter-spacing:0;text-align:center}
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1.2s cubic-bezier(.25,.46,.45,.94),transform 1.2s cubic-bezier(.25,.46,.45,.94)}.reveal.is-visible{opacity:1;transform:translateY(0)}
.jardin-fullscreen body{background:var(--j-paper)}
@keyframes jardin-copy-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes jardin-image-arrive{from{transform:scale(1.045)}to{transform:scale(1)}}@keyframes jardin-float{50%{transform:translateY(4px)}}
@media(max-width:640px){.jardin-hero{min-height:560px;height:78svh}.jardin-hero__image{object-position:54% center}.jardin-hero h1{font-size:clamp(57px,16vw,92px)}.jardin-hero__copy>p:not(.jardin-kicker){font-size:16px}.jardin-location{grid-template-columns:1fr}.jardin-location__photo,.jardin-location__photo img{min-height:290px;height:54vw;max-height:420px}.jardin-location__copy{padding:55px 28px 68px}.jardin-countdown{gap:clamp(12px,4vw,24px)}.jardin-countdown div{min-width:36px}.jardin-timeline{margin-top:38px}.jardin-timeline article{grid-template-columns:75px 1fr;gap:16px}.jardin-timeline article:not(:last-child)::before{left:69px}.jardin-timeline time{font-size:17px}.jardin-timeline h3{font-size:23px}.jardin-landscape{width:calc(100% - 28px)}.jardin-landscape img{aspect-ratio:4/3}.jardin-footer{justify-content:center;text-align:center}.jardin-footer span{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.jardin-intro,.jardin-site.is-entering,.jardin-site.is-entering.is-entered{opacity:1;transform:none;filter:none;transition:none}.jardin-hero__image,.jardin-hero__copy{animation:none}.jardin-hero__copy>a span{animation:none}.jardin-landscape img,.jardin-location__photo img{transition:none}}
/* In the phone preview, the invite itself is the scroll container. */
body.jardin-locked,body.jardin-transitioning{overflow:hidden}
.jardin-site{visibility:hidden}
.jardin-site.is-ready{visibility:visible}
body.jardin-open{overflow-y:auto}
@supports(height:100dvh){body.jardin-open{min-height:100dvh}}

/* Match the Storybook hero geometry and type scale from the exported suite CSS. */
.jardin-hero.lumiere-hero,.jardin-hero.grand-amour-hero{display:block;width:100%;height:100svh;min-height:0;max-height:none;max-width:700px;aspect-ratio:auto;margin:0 auto;text-align:center;isolation:isolate}
.jardin-hero .storybook-landscape{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center;animation:none}
.jardin-hero .hero-names{position:absolute;top:20%;left:10%;z-index:2;width:80%;padding:0;transform:translateY(-10%);text-align:center;text-shadow:0 1px 18px rgba(255,255,255,.95),0 0 30px rgba(255,255,255,.85);animation:none}
.jardin-hero.grand-amour-hero .hero-names{left:8%;width:84%}
.jardin-hero .hero-names{opacity:0;transform:translateY(6px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1)}.jardin-hero .hero-names.show-hero-text{opacity:1;transform:translateY(-10%)}
body.grand-amour .jardin-site.is-revealing .hero-names{animation:jardin-storybook-title-in 1.6s .35s cubic-bezier(.22,1,.36,1) both}
.jardin-hero .storybook-hero-label{margin:0 0 6px;color:#35553e;font:10px/1.7 'Libre Franklin',sans-serif;letter-spacing:.23em;text-transform:uppercase}
.jardin-hero .hero-names h1{margin:10px 0 14px;color:#233a2a;font:italic 600 clamp(23px,3.3vw,34px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:normal}
.jardin-hero .hero-names h1 i{display:block;color:inherit;font-size:.52em;font-style:italic;line-height:1.45}
.jardin-hero .storybook-hero-date{margin:0 0 4px;color:#35553e;font:400 12px/1.6 'Libre Franklin',sans-serif;letter-spacing:.08em}
.jardin-hero .storybook-hero-place{margin:0;color:#35553e;font:italic 11px/1.6 'Libre Franklin',sans-serif}
.grand-amour .jardin-hero .storybook-hero-label{margin-bottom:6px;color:#763f57;font-size:clamp(8px,2.8vw,10px);letter-spacing:.14em}
.grand-amour .jardin-hero .hero-names h1{margin:8px 0 10px;color:#4a2334;font-size:clamp(22px,calc(14px + 4.5vw),42px);line-height:1.08}
.grand-amour .jardin-hero .hero-names h1 i{color:#9b5a75;line-height:1.2}
.grand-amour .jardin-hero .storybook-hero-date{margin-bottom:3px;color:#763f57;font-size:clamp(10px,3.4vw,13px);font-weight:500;letter-spacing:.045em}
.grand-amour .jardin-hero .storybook-hero-place{color:#763f57;font-size:clamp(9px,3vw,11px);line-height:1.5}
.jardin-hero__scroll{position:absolute;z-index:3;bottom:28px;left:50%;color:var(--j-red);font:18px 'Libre Franklin',sans-serif;text-decoration:none;transform:translateX(-50%);animation:jardin-scroll-hint 1.8s ease-in-out infinite}
@keyframes jardin-storybook-title-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes grand-amour-title-in{from{opacity:0;transform:translateY(8px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes jardin-scroll-hint{50%{transform:translate(-50%,5px)}}
@media(max-width:600px){.jardin-hero.lumiere-hero .hero-names,.jardin-hero.grand-amour-hero .hero-names{top:16%}.jardin-hero.lumiere-hero .hero-names h1{font-size:23px}}
@media(prefers-reduced-motion:reduce){.jardin-intro{transition:none}.jardin-site.is-ready .hero-names{animation:none!important}.jardin-hero__scroll{animation:none}}

/* Storybook invitation body: typography and section rhythm follow the exported suite. */
.storybook-suite{position:relative;color:var(--j-ink);font:400 18px/1.6 'Libre Franklin',Arial,sans-serif;overflow-x:clip}
.storybook-suite .inv-section{padding:90px 26px;text-align:center}
.storybook-suite .inv-heading{text-align:center;margin:0 auto 20px}
.storybook-suite .inv-heading h2{margin:0 0 6px;color:var(--j-ink);font:italic 600 clamp(34px,4.2vw,45px)/1.2 'Playfair Display',Georgia,serif}
.storybook-suite .inv-heading>p{margin:0;color:var(--j-muted);font:400 10px/1.7 'Libre Franklin',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.storybook-suite .inv-art,.storybook-suite .suite-illustration{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto;object-fit:contain}
.storybook-suite .countdown{padding-top:54px;background:color-mix(in srgb,var(--j-ink) 9%,var(--j-paper));color:var(--j-ink)}
.storybook-suite .countdown>.inv-art{width:min(250px,65vw);margin-top:-35px;margin-bottom:0}
.storybook-suite .countdown .inv-heading{margin-bottom:28px}
.storybook-suite .countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:650px;margin:auto}
.storybook-suite .countdown-grid>div{padding:12px 5px}
.storybook-suite .countdown-grid span{display:block;color:var(--j-ink);font:600 clamp(35px,6vw,64px)/1.1 'Playfair Display',Georgia,serif}
.storybook-suite .countdown-grid small{display:block;margin-top:6px;color:var(--j-ink);font:400 12px/1.4 'Libre Franklin',Arial,sans-serif;letter-spacing:.08em}
.storybook-suite .details-title{padding-bottom:0}
.storybook-suite .details-title>.inv-art{width:210px;margin-bottom:10px}
.storybook-suite .venue-frame{position:relative;width:min(100%,650px);margin:auto;padding:0;overflow:hidden}
.storybook-suite .venue-interior{position:relative;margin:0;padding:25px 25px 0;overflow:hidden;border-radius:0;background:transparent;text-align:center}
.storybook-suite .venue-interior h3{margin:0 0 6px;color:var(--j-ink);font:italic 600 50px/1.15 'Playfair Display',Georgia,serif}
.storybook-suite .venue-name{margin:0;font:400 16px/1.6 'Libre Franklin',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.storybook-suite .venue-interior>p:not(.venue-time){margin:4px 0;font-size:16px}
.storybook-suite .venue-time{margin:6px 0 10px!important;font-size:13px;opacity:.75}
.storybook-suite .venue-interior .inv-art{width:min(500px,100%);margin-top:-20px}
.storybook-suite .venue-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:16px auto 0;padding:0 20px}
.storybook-suite .olive-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;border:1px solid var(--j-ink);border-radius:3px;padding:11px 16px;background:var(--j-ink);color:var(--j-paper);font:400 14px/1.5 'Libre Franklin',Arial,sans-serif;text-decoration:none;cursor:pointer}
.storybook-suite .olive-button:hover{filter:brightness(1.12)}
.storybook-suite .storybook-note{max-width:420px;margin:20px auto 0;padding:0 24px;color:var(--j-muted);font:400 12px/1.6 'Libre Franklin',Arial,sans-serif;text-align:center;opacity:.8}
.storybook-suite .dancers{width:min(250px,65vw);margin:0 auto 12px}
.storybook-schedule{position:relative;width:min(100%,740px);margin:auto}
.storybook-schedule::before{position:absolute;top:25px;bottom:25px;left:50%;width:1px;background:color-mix(in srgb,var(--j-ink),transparent 75%);content:""}
.storybook-schedule article{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;min-height:280px}
.storybook-schedule article:nth-child(even)>.suite-illustration{grid-column:2;grid-row:1}
.storybook-schedule article:nth-child(even)>div:not(.suite-illustration){grid-column:1;grid-row:1;text-align:right}
.storybook-schedule .suite-illustration{width:260px;max-height:230px}
.storybook-schedule time{color:var(--j-ink);font:400 14px/1.5 'Libre Franklin',Arial,sans-serif;letter-spacing:.1em}
.storybook-schedule h3{margin:12px 0;color:var(--j-ink);font:600 italic 29px/1.3 'Playfair Display',Georgia,serif}
.storybook-schedule p{margin:0;color:var(--j-muted);font-size:18px;line-height:1.5}
.storybook-suite .dress-section{background:color-mix(in srgb,var(--j-ink) 7%,var(--j-paper))}
.storybook-suite .narrow{width:min(100%,700px);margin:auto}
.storybook-suite .dress-section .inv-heading{margin-bottom:0}
.storybook-suite .dress-section .inv-art{position:relative;z-index:1;width:min(380px,90vw);margin:10px auto -25px}
.storybook-suite .dress-card{position:relative;z-index:0;border-radius:90px 90px 3px 3px;padding:55px 36px 34px;background:#fff9;box-shadow:none;text-align:center}
.storybook-suite .dress-card h3{margin:0 0 8px;color:var(--j-ink);font:600 italic 27px/1.3 'Playfair Display',Georgia,serif}
.storybook-suite .dress-card p{margin:12px 0;color:var(--j-ink);font-size:18px;line-height:1.6}
.storybook-suite .dress-card em{font-size:16px;font-style:italic}
.storybook-suite .fountain{width:min(300px,65vw);margin:55px auto -20px}
.grand-amour .storybook-suite .fountain{margin-bottom:24px}
.storybook-suite .accommodation-content{width:min(100%,650px);margin:auto;padding:10px 26px 30px;text-align:center}
.storybook-suite .accommodation-content>.inv-heading{margin-bottom:20px}
.storybook-suite .intro-copy{max-width:600px;margin:0 auto 20px;color:var(--j-muted);font-size:16px;line-height:1.65}
.storybook-suite .hotel-card{margin-top:15px;border:1px solid color-mix(in srgb,var(--j-ink),transparent 75%);border-radius:3px;padding:26px 30px;background:#ffffffa8;box-shadow:none;text-align:left}
.storybook-suite .hotel-card>small{font:400 10px/1.5 'Libre Franklin',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.storybook-suite .hotel-card h3{margin:5px 0;color:var(--j-ink);font:600 italic 24px/1.3 'Playfair Display',Georgia,serif}
.storybook-suite .hotel-card p{margin:8px 0;color:var(--j-muted);font-size:14px;line-height:1.6}
.storybook-suite .hotel-card hr{margin:14px 0;border:0;border-top:1px solid color-mix(in srgb,var(--j-ink),transparent 80%)}
.storybook-suite .hotel-card .olive-button{margin-top:5px}
.storybook-suite .quick-tips{margin-top:14px;border-radius:3px;padding:18px 20px;background:color-mix(in srgb,var(--j-ink) 8%,var(--j-paper));color:var(--j-ink);font-size:15px;text-align:left}
.storybook-suite .quick-tips h3{margin:0 0 5px;font:600 italic 18px/1.4 'Playfair Display',Georgia,serif}
.storybook-suite .quick-tips p{margin:0;line-height:1.6}
.storybook-suite .transport-section .narrow{max-width:700px}
.storybook-suite .transport-section .narrow>p{max-width:620px;margin:0 auto 10px;color:var(--j-muted);font-size:16px;line-height:1.7}
.storybook-suite .transport-section .inv-art{width:min(300px,70vw);margin:18px auto 14px}
.storybook-suite .transport-section .transport-note{font-size:14px;font-style:italic;opacity:.8}
.storybook-suite .gifts-section{padding-top:10px}
.storybook-suite .gifts-card{position:relative;max-width:620px;margin:auto;border:1px solid color-mix(in srgb,var(--j-ink),transparent 75%);border-radius:3px;padding:28px 35px 30px;background:#fff8;text-align:center}
.storybook-suite .gifts-card>p{margin:0 auto 18px;color:var(--j-muted);font-size:16px;line-height:1.6}
.storybook-suite .gifts-card details{margin:6px 0;border:1px solid color-mix(in srgb,var(--j-ink),transparent 78%);border-radius:3px;padding:0 14px;text-align:left}
.storybook-suite .gifts-card summary{padding:12px 0;color:var(--j-ink);font:400 16px/1.5 'Playfair Display',Georgia,serif;cursor:pointer;list-style-position:inside}
.storybook-suite .gifts-card details p{margin:0;padding:0 0 14px;color:var(--j-muted);font-size:14px;line-height:1.6}
.storybook-suite .hotel-tag{float:right;font:400 10px/1.5 'Libre Franklin',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.storybook-suite .gifts-card>.inv-art{position:static;width:min(240px,60vw);margin:0 auto -15px;transform:none;pointer-events:none}
.storybook-suite .couple-photo{width:100%;padding:20px 24px 40px;background:color-mix(in srgb,var(--j-ink) 7%,var(--j-paper))}
.storybook-suite .couple-photo>.inv-art{width:min(470px,90vw)}
.storybook-suite .rsvp-section{padding:65px 22px 70px}
.storybook-suite .rsvp-wrap{width:min(100%,620px);margin:auto}
.storybook-suite .rsvp-wrap form{display:flex;flex-direction:column;gap:18px;margin-top:28px;text-align:left}
.storybook-suite .rsvp-wrap fieldset{min-width:0;margin:0;border:0;padding:0}
.storybook-suite .rsvp-wrap label,.storybook-suite .rsvp-wrap legend{display:flex;flex-direction:column;gap:7px;color:var(--j-ink);font:400 16px/1.5 'Libre Franklin',Arial,sans-serif}
.storybook-suite .rsvp-wrap input:not([type=radio]):not([type=checkbox]),.storybook-suite .rsvp-wrap textarea{width:100%;min-height:44px;border:1px solid color-mix(in srgb,var(--j-ink),transparent 75%);border-radius:3px;padding:10px 12px;background:#fff9;color:var(--j-ink);font:400 16px/1.5 'Libre Franklin',Arial,sans-serif;box-shadow:none}
.storybook-suite .rsvp-wrap input::placeholder,.storybook-suite .rsvp-wrap textarea::placeholder{color:color-mix(in srgb,var(--j-ink),transparent 40%)}
.storybook-suite .rsvp-wrap .choice{display:flex;flex-direction:row;align-items:center;gap:9px;margin:9px 0;font-size:15px}
.storybook-suite .rsvp-wrap .choice input,.storybook-suite .rsvp-wrap .transport-check input{accent-color:var(--j-ink)}
.storybook-suite .rsvp-wrap .companions>p{margin:3px 0 10px;color:var(--j-muted);font-size:14px}
.storybook-suite .guest-actions{display:flex;flex-wrap:wrap;gap:8px}
.storybook-suite .guest-actions button{border:1px solid color-mix(in srgb,var(--j-ink),transparent 60%);border-radius:3px;padding:8px 12px;background:transparent;color:var(--j-ink);font:400 13px 'Libre Franklin',Arial,sans-serif;cursor:pointer}
.storybook-suite .guest-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.storybook-suite .guest-row input{margin-top:5px}
.storybook-suite .rsvp-wrap .transport-check{flex-direction:row;align-items:center;gap:9px}
.storybook-suite .rsvp-wrap .transport-check input{width:17px;height:17px}
.storybook-suite .rsvp-wrap .submit-rsvp{align-self:center;min-width:210px}
.storybook-suite .rsvp-response{margin:0;color:var(--j-ink);font-size:14px;text-align:center}
.storybook-suite .inv-footer{text-align:center;padding:50px 16px 30px}
.storybook-suite .inv-footer>.inv-art{width:180px;margin:0 auto 5px;opacity:1}
.storybook-suite .inv-footer>p{margin:8px 0;color:var(--j-ink);font:italic 600 48px/1.3 'Playfair Display',Georgia,serif}
.storybook-suite .inv-footer>small{font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.storybook-suite .inv-footer>div{margin-top:28px;font-size:14px;opacity:.7}
.storybook-suite .inv-footer>div a{color:inherit;text-decoration:underline}
.storybook-suite .replay-invitation{min-height:44px;margin-top:18px;border:1px solid color-mix(in srgb,var(--j-ink),transparent 60%);border-radius:3px;padding:9px 15px;background:transparent;color:var(--j-ink);font:400 14px 'Libre Franklin',Arial,sans-serif;cursor:pointer}
.storybook-suite .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1)}
.storybook-suite .reveal.is-visible{opacity:1;transform:translateY(0)}
.storybook-suite .jardin-hero__scroll{color:var(--j-ink)}
.storybook-suite button:focus-visible,.storybook-suite a:focus-visible,.storybook-suite summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:700px){
  .storybook-suite .inv-section{padding:65px 22px}
  .storybook-suite .details-title{padding-bottom:0}
  .storybook-suite .countdown{padding-top:46px}
  .storybook-suite .countdown-grid{gap:0}
  .storybook-suite .countdown-grid>div{padding:5px 2px}
  .storybook-suite .countdown-grid small{font-size:10px;letter-spacing:0}
  .storybook-suite .venue-interior{padding:20px 16px 0}
  .storybook-suite .venue-interior h3{font-size:42px}
  .storybook-suite .storybook-schedule article{gap:22px;min-height:235px}
  .storybook-suite .storybook-schedule .suite-illustration{width:170px;max-height:190px}
  .storybook-suite .storybook-schedule h3{font-size:24px}
  .storybook-suite .storybook-schedule p{font-size:16px}
  .storybook-suite .dress-section .inv-art{width:min(320px,88vw)}
  .storybook-suite .dress-card{padding:45px 24px 30px}
  .storybook-suite .dress-card p{font-size:16px}
  .storybook-suite .fountain{width:min(260px,70vw);margin-top:40px}
  .storybook-suite .accommodation-content{padding:10px 22px 15px}
  .storybook-suite .hotel-card{padding:22px 20px}
  .storybook-suite .hotel-card h3{font-size:22px}
  .storybook-suite .gifts-section{padding-top:0}
  .storybook-suite .gifts-card{padding:24px 18px 25px}
  .storybook-suite .couple-photo>.inv-art{width:min(350px,88vw)}
  .storybook-suite .rsvp-section{padding-top:55px}
  .storybook-suite .inv-footer>p{font-size:36px}
}
@media(max-width:480px){
  .storybook-suite .storybook-schedule::before{display:none}
  .storybook-suite .storybook-schedule article{display:flex;flex-direction:column;gap:0;padding:12px 0 30px;text-align:center}
  .storybook-suite .storybook-schedule article:nth-child(even)>div:not(.suite-illustration){text-align:center}
  .storybook-suite .storybook-schedule .suite-illustration{width:185px}
  .storybook-suite .venue-actions{flex-direction:column;align-items:stretch}
}
@media(prefers-reduced-motion:reduce){.storybook-suite .reveal{opacity:1;transform:none;transition:none}}

/* A single fluid scale also fits the 205–300px live phone viewport. */
.storybook-suite{font-size:15px;line-height:1.7}
.storybook-suite .inv-heading h2{font-size:clamp(22px,4.6vw,34px);line-height:1.3;text-wrap:balance}
.storybook-suite .inv-heading>p{max-width:42em;margin-inline:auto;font-size:9px;letter-spacing:.08em;line-height:1.8;text-wrap:balance}
.storybook-suite .venue-interior h3{font-size:clamp(28px,5vw,38px)}
.storybook-suite .venue-interior>p:not(.venue-time){font-size:14px}
.storybook-suite .venue-time{font-size:11px}
.storybook-suite .countdown-grid span{font-size:clamp(28px,6vw,48px)}
.storybook-suite .storybook-schedule h3{font-size:clamp(20px,3.5vw,25px);line-height:1.4;text-wrap:balance}
.storybook-suite .storybook-schedule p,.storybook-suite .dress-card p{font-size:14px;line-height:1.75}
.storybook-suite .dress-card h3,.storybook-suite .hotel-card h3{font-size:clamp(20px,3.5vw,24px)}
.storybook-suite .dress-card em,.storybook-suite .intro-copy,.storybook-suite .transport-section .narrow>p,.storybook-suite .gifts-card>p{font-size:14px;line-height:1.75}
.storybook-suite .rsvp-wrap label,.storybook-suite .rsvp-wrap legend{font-size:14px}
.storybook-suite .inv-footer>p{font-size:clamp(27px,5vw,38px);text-wrap:balance}
/* Grand Amour has a more compact editorial scale; keep Jardin unchanged. */
.grand-amour .storybook-suite .inv-heading h2{font-size:clamp(19px,4.4vw,30px);line-height:1.25}
.grand-amour .storybook-suite .inv-heading>p{line-height:1.6;letter-spacing:.04em}
.grand-amour .storybook-suite .storybook-schedule h3{margin:8px 0;font-size:clamp(18px,3.2vw,23px);line-height:1.3}
.grand-amour .storybook-suite .storybook-schedule time{font-size:12px;letter-spacing:.05em}
.grand-amour .storybook-suite .storybook-schedule p,.grand-amour .storybook-suite .dress-card p,.grand-amour .storybook-suite .dress-card em,.grand-amour .storybook-suite .intro-copy,.grand-amour .storybook-suite .transport-section .narrow>p,.grand-amour .storybook-suite .gifts-card>p{line-height:1.6}
.grand-amour .storybook-suite .venue-interior h3{font-size:clamp(25px,4.5vw,34px)}
.grand-amour .storybook-suite .dress-card h3,.grand-amour .storybook-suite .hotel-card h3{font-size:clamp(18px,3.2vw,22px);line-height:1.35}
.grand-amour .storybook-suite .inv-footer>p{font-size:clamp(24px,4.5vw,34px)}
@media(max-width:350px){
 .storybook-suite .inv-section{padding:48px 16px}
 .storybook-suite .details-title{padding-bottom:0}
 .storybook-suite .inv-heading h2{font-size:clamp(18px,7vw,21px)}
 .storybook-suite .inv-heading>p{font-size:8px;letter-spacing:.035em}
 .storybook-suite .countdown-grid{gap:4px}
 .storybook-suite .countdown-grid span{font-size:clamp(20px,8vw,27px)}
 .storybook-suite .storybook-schedule p,.storybook-suite .dress-card p,.storybook-suite .dress-card em,.storybook-suite .intro-copy,.storybook-suite .hotel-card p,.storybook-suite .transport-section .narrow>p,.storybook-suite .gifts-card>p{font-size:13px}
 .storybook-suite .dress-card{padding:38px 16px 24px}
 .storybook-suite .accommodation-content{padding:10px 16px 20px}
 .storybook-suite .gifts-section{padding-top:10px}
 .storybook-suite .olive-button{font-size:12px}
 .storybook-suite .rsvp-section{padding:48px 16px}
 .storybook-suite .inv-footer>div{font-size:12px}
}
