/* Balanced main area and three independent footer columns. */
.page{min-height:100svh}.invitation{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;flex:1 0 auto;min-height:0;padding:48px 210px}.center{width:100%;min-width:0;max-width:850px;margin:0;padding:0}h1 span{white-space:normal}h1{text-wrap:balance}.center>.bow{margin-bottom:0}.footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,1fr) minmax(0,1fr);gap:28px;padding-top:24px;align-items:center}.footer-note{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;min-width:0;text-align:center}.footer-note .status{margin:0;max-width:100%;font-size:11px;line-height:1.6;letter-spacing:.2px;gap:8px}.footer-note .copyright{grid-area:auto;white-space:nowrap}.footer-note .loading{flex:0 0 22px}.contact-links{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:0;gap:0}.contact-links a{display:inline-flex;align-items:center;gap:10px;min-height:44px;max-width:100%;font:12px/1.5 'DM Sans',sans-serif;letter-spacing:.3px;text-align:right}.contact-links a span{overflow-wrap:anywhere}.contact-links svg{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;stroke-width:1.2;fill:none}.contact-arrow{font-size:15px;opacity:.6}.whatsapp:hover{text-decoration:underline;text-underline-offset:5px}.press{min-width:0}.press-links{gap:14px;flex-wrap:wrap}.side{pointer-events:none}.botanical{top:clamp(95px,20%,180px)}.monogram-paper{bottom:clamp(75px,14%,145px)}
@media(min-width:1101px) and (max-height:850px){.invitation{padding-top:34px;padding-bottom:34px}.hero-seal{width:70px;height:70px;margin-bottom:19px}.center .eyebrow{margin-bottom:16px}h1{font-size:clamp(62px,8.9vh,94px)}html[lang=es] h1,html[lang=fr] h1{font-size:clamp(57px,8.3vh,88px)}.flourish{margin:19px auto 15px}.center>.bow{width:78px;height:57px;margin-top:12px}}
@media(max-width:1100px){.invitation{padding:48px 165px}.footer{grid-template-columns:minmax(0,1fr) minmax(210px,1fr) minmax(0,1fr);gap:20px}.footer-note{gap:11px}.footer .copyright{grid-area:auto}.press-caption{max-width:260px}.publication{font-size:21px}.publication.wed{font-size:19px}.press-links{gap:9px}.contact-links a{font-size:11px}.footer-note .status{font-size:10px}}
@media(max-width:800px){.invitation{padding:135px 42px;min-height:0}.botanical{top:43px;left:36px}.monogram-paper{bottom:25px;right:38px;width:90px;height:111px}.monogram-paper .paper-script{font-size:12px}.monogram-paper .paper-small{font-size:6px}.footer{grid-template-columns:1fr 1fr;gap:22px}.footer-note{grid-column:1/-1;grid-row:2}.contact-links{grid-column:2;grid-row:1}.press{grid-column:1;grid-row:1}.press-caption{max-width:300px}.center{max-width:620px}.side-note{display:none}}
@media(max-width:650px){.invitation{padding:150px 23px}.hero-seal{width:70px;height:70px}.botanical{top:47px;left:25px;width:65px;height:88px}.botanical-art{width:31px;height:43px}.monogram-paper{bottom:22px;right:29px;width:89px;height:108px}.paper-oval{padding:8px 4px}.monogram-paper .paper-script{font-size:12px}.center>.bow{margin:15px auto 0}.footer{grid-template-columns:1fr;gap:18px;justify-items:center}.press{grid-column:1;grid-row:1;align-items:center}.press-links{justify-content:center;gap:15px}.publication{font-size:24px}.publication.wed{font-size:21px}.contact-links{grid-column:1;grid-row:2;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 24px}.contact-links a{font-size:12px;text-align:center}.footer-note{grid-column:1;grid-row:3;gap:10px}.footer-note .status{font-size:10px}.footer .copyright{grid-area:auto}.press-caption{text-align:center}.side.right{right:22px;top:20px}.invitation:before,.invitation:after{top:10px;bottom:10px}}
@media(max-width:360px){.invitation{padding-inline:20px}.contact-links{gap:0 15px}.contact-links a{font-size:11px}.publication{font-size:22px}.publication.wed{font-size:20px}.botanical{left:21px}.press-links{gap:10px}}



/* One interaction language for editorial and contact links. */
.footer a{transition:color 280ms ease;text-decoration:none}
.footer a .link-text{position:relative;display:inline-block}
.footer .publication .link-text{font:inherit;letter-spacing:inherit;opacity:1}
.footer a .link-text::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 320ms cubic-bezier(.22,.61,.36,1)}
.footer a:is(:hover,:focus-visible){color:#88615f;text-decoration:none}
.footer a:is(:hover,:focus-visible) .link-text::after{transform:scaleX(1)}
.footer a:focus-visible{outline:1px solid #88615f;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.footer a,.footer a .link-text::after{transition:none}}

/* Airy display lettering with an independently aligned registration mark. */
.wordmark{display:inline-flex;align-items:flex-start;gap:4px;font:400 33px/1.1 'Italiana','Cormorant Garamond',serif;letter-spacing:.045em;white-space:nowrap}
.wordmark-register{font:400 10px/1 'DM Sans',sans-serif;letter-spacing:0;margin-top:3px}
/* A shared icon column, including when the contact labels are translated. */
.contact-links{display:grid;grid-template-columns:minmax(0,1fr);justify-self:end;justify-items:stretch;width:max-content;max-width:100%;gap:0}
.contact-links a{display:grid;grid-template-columns:18px minmax(0,1fr);justify-self:stretch;justify-content:start;text-align:left;column-gap:11px}
.contact-links svg{justify-self:center;width:18px;height:18px}
.contact-links .link-text{justify-self:start}
@media(max-width:650px){.wordmark{font-size:28px;gap:3px}.wordmark-register{font-size:9px;margin-top:2px}.contact-links{justify-self:center}}

/* Readable details and an immediate route to enquiries. */
.wordmark-register{font-size:12px}
.footer .press-label,.footer .press-caption,.footer .copyright,.footer-note .status,.contact-links a{font-size:12px}
.project-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:8px 4px;margin-top:8px;font:500 13px/1.6 'DM Sans',sans-serif;letter-spacing:.2px;text-wrap:balance;transition:color 280ms ease}
.project-link .link-text{position:relative;display:inline-block}
.project-link .link-text:after{background:currentColor;bottom:-3px;transform:scaleX(.22);transition:transform 320ms cubic-bezier(.22,.61,.36,1)}
.project-link:is(:hover,:focus-visible){color:#88615f}
.project-link:is(:hover,:focus-visible) .link-text:after{transform:scaleX(1)}
.project-link:focus-visible{outline:1px solid #88615f;outline-offset:4px}
.center>.bow{display:block;margin-top:5px}
.motion-ready [data-reveal=project]{--delay:580ms}
/* Keyboard focus must remain visible even during the entrance. */
html .project-link:focus-visible{opacity:1;animation:none;translate:none}
.motion-ready [data-reveal=contact]{--delay:180ms;animation-duration:500ms}
@media(max-width:800px){.invitation{padding-top:100px;padding-bottom:115px}}
@media(max-width:650px){
 .invitation{padding:88px 23px 100px}
 .hero-seal{width:64px;height:64px;margin-bottom:20px}
 .center .eyebrow{margin-bottom:18px}
 .description{font-size:14px;line-height:1.8}
 .wordmark-register{font-size:11px}
 .project-link{font-size:13px;margin-top:8px}
 .center>.bow{width:72px;height:53px;margin:5px auto 0}
 .botanical{top:28px;width:57px;height:76px}
 .monogram-paper{bottom:12px;width:72px;height:84px}
 .monogram-paper .paper-small{font-size:6px}
 .monogram-paper .paper-script{font-size:10px}
 .footer{gap:16px}
}
@media(max-width:360px){.invitation{padding-inline:20px}.description{font-size:14px}.center .eyebrow{letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.project-link,.project-link .link-text:after{transition:none}}

/* Keep the mobile card lettering inside its frame, without flex compression. */
@media(max-width:650px){
 .invitation{padding-bottom:112px}
 .monogram-paper{width:82px;height:96px;padding:5px;bottom:10px}
 .monogram-paper .paper-oval{padding:8px 3px;gap:5px}
 .monogram-paper .paper-small,.monogram-paper .paper-script{flex:0 0 auto;max-width:100%;padding:1px 2px;margin:0}
 .monogram-paper .paper-small{font-size:6px;line-height:1.4;letter-spacing:.35px;white-space:nowrap}
 .monogram-paper .paper-script{font-size:10px;line-height:1.2;letter-spacing:0;text-wrap:balance}
}

/* Studio context stays visible, translated and part of the entrance sequence. */
.center .description{max-width:490px}
.availability{max-width:440px;margin:12px auto 0;font:400 13px/1.75 'DM Sans',sans-serif;color:var(--soft);text-wrap:pretty}
.motion-ready [data-reveal=availability]{--delay:580ms}
.motion-ready [data-reveal=project]{--delay:660ms}
.motion-ready [data-reveal=ribbon]{--delay:740ms}
@media(max-width:650px){.center .description{max-width:340px}.availability{max-width:310px;margin-top:10px;font-size:13px}}

/* Crawlable language links; the current URL is the language preference. */
.languages{display:flex;align-items:center;gap:2px;flex-shrink:0}
.languages a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:44px;padding:0 4px;font:400 11px/1 'DM Sans',sans-serif;letter-spacing:.3px;color:var(--soft);text-decoration:none;transition:color 280ms ease}
.languages a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.languages a:hover,.languages a:focus-visible{color:#88615f}
.languages a:focus-visible{outline:1px solid currentColor;outline-offset:1px}
@media(max-width:800px){.header-tools .worldwide{display:none}}
@media(max-width:400px){header{flex-wrap:wrap;gap:8px}.header-tools{margin-left:auto}.languages a{min-width:34px;padding-inline:2px}.wordmark{font-size:25px}}
@media(prefers-reduced-motion:reduce){.languages a{transition:none}}

/* Restore the compact native language selector. */
#language{font-size:11px;min-width:62px;min-height:44px}
/* Fine paper grain and a soft contact shadow. */
.paper{box-shadow:0 1px 2px #514b3820,3px 9px 14px -6px #514b3833,7px 19px 28px -12px #514b3826;isolation:isolate}
.paper::after{content:'';position:absolute;inset:0;pointer-events:none;background:url('assets/paper-grain.svg');opacity:.24;mix-blend-mode:multiply;z-index:3}
.botanical{background-color:#e9e8df;background-image:linear-gradient(130deg,#ffffff38,transparent 45%,#8d916516)}
.monogram-paper{background-color:#e8dcd6;background-image:linear-gradient(130deg,#ffffff30,transparent 45%,#a1766814)}
/* Fit the full composition to ordinary desktop heights, without clipping content. */
@media(min-width:1101px) and (min-height:650px){
 .page{min-height:100svh;padding:clamp(16px,2.7vh,29px) 44px clamp(14px,2vh,23px)}
 header{padding-bottom:clamp(12px,2vh,24px)}
 .invitation{flex:1 0 auto;padding:clamp(15px,2.5vh,32px) 190px}
 .center .description{max-width:560px;font-size:14px;line-height:1.7}
 .hero-seal{width:clamp(58px,8vh,82px);height:clamp(58px,8vh,82px);margin-bottom:clamp(12px,1.8vh,22px)}
 .center .eyebrow{margin-bottom:clamp(10px,1.6vh,20px)}
 h1,html[lang=es] h1,html[lang=fr] h1{font-size:clamp(52px,8.2vh,94px);line-height:1.06}
 .flourish{margin:clamp(12px,1.8vh,22px) auto 12px}
 .availability{margin-top:8px}
 .project-link{margin-top:2px}
 .center>.bow{width:65px;height:48px;margin-top:2px}
 .footer{padding-top:clamp(12px,2vh,22px)}
 .press{gap:5px}
}

/* Let the stationery grow with generous desktop space, keeping its proportions. */
@media(min-width:1400px){
 .botanical{width:clamp(175px,12vw,235px);height:auto;aspect-ratio:159/222;left:clamp(48px,4vw,90px);padding:14px}
 .monogram-paper{width:clamp(166px,11.4vw,224px);height:auto;aspect-ratio:151/210;right:clamp(48px,4vw,90px);padding:14px}
 .botanical .botanical-art{width:58%;height:auto;max-height:60%;margin:10px 0 6px}
 .botanical .paper-script{font-size:clamp(20px,1.5vw,27px)}
 .botanical .paper-small{font-size:9px;letter-spacing:1.3px}
 .monogram-paper .paper-script{font-size:clamp(17px,1.25vw,23px)}
 .monogram-paper .paper-small{font-size:10px}
}
@media(max-width:650px){.paper{box-shadow:0 1px 2px #514b3818,2px 6px 10px -4px #514b3830}}

/* A clearer editorial wordmark and more presence for the seal and ribbon. */
.wordmark{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:34px;letter-spacing:.035em;line-height:1.05}
.wordmark-register{font-size:11px;margin-top:3px}
.hero-seal{width:90px;height:90px}
.center>.bow{width:104px;height:76px}
@media(min-width:1101px) and (min-height:650px){
 .hero-seal{width:clamp(72px,9vh,96px);height:clamp(72px,9vh,96px);margin-bottom:clamp(10px,1.5vh,18px)}
 .center>.bow{width:clamp(86px,10vh,110px);height:auto;aspect-ratio:150/110;margin-top:2px}
 .invitation{padding-top:clamp(10px,1.8vh,24px);padding-bottom:clamp(10px,1.8vh,24px)}
}
@media(max-width:1100px){.hero-seal{width:82px;height:82px}.center>.bow{width:96px;height:auto;aspect-ratio:150/110}}
@media(max-width:650px){.wordmark{font-size:30px;letter-spacing:.02em}.wordmark-register{font-size:10px}.hero-seal{width:76px;height:76px}.center>.bow{width:88px;height:auto;aspect-ratio:150/110}}

/* Frame and content enter together, with the original content stagger. */
.invitation{border-top-color:transparent;border-bottom-color:transparent;background-image:linear-gradient(var(--rule),var(--rule)),linear-gradient(var(--rule),var(--rule));background-repeat:no-repeat;background-position:left top,right bottom;background-size:100% 1px,100% 1px;background-origin:border-box}
.invitation::before{transform-origin:top}
.invitation::after{transform-origin:bottom}
@media(prefers-reduced-motion:no-preference){
 .motion-startup .invitation{background-size:0% 1px,0% 1px}
 .motion-startup .invitation::before,.motion-startup .invitation::after{transform:scaleY(0)}
 .motion-ready .invitation{animation:frame-horizontal 1000ms cubic-bezier(.22,.61,.36,1) both}
 .motion-ready .invitation::before,.motion-ready .invitation::after{animation:frame-vertical 1000ms cubic-bezier(.22,.61,.36,1) both}
 .motion-ready [data-reveal]{animation-delay:var(--delay)}
 .motion-ready .bow path{animation-delay:780ms}
 .motion-ready .bow path:nth-child(2){animation-delay:1040ms}
 /* Keyboard navigation never waits for the decorative introduction. */
 html [data-reveal]:focus-within{opacity:1;animation:none;translate:none}
}
@keyframes frame-horizontal{from{background-size:0% 1px,0% 1px}to{background-size:100% 1px,100% 1px}}
@keyframes frame-vertical{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.invitation{background-size:100% 1px,100% 1px}.invitation::before,.invitation::after{transform:none;animation:none}}
