/* The final invitation uses the same colour and typography roles as the film. */
.contact-section { position:relative; isolation:isolate; overflow:hidden; padding:clamp(110px,14vw,200px) 7vw 140px; background:var(--color-bg); scroll-margin-top:80px; }
.contact-section::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 75% 35%,var(--color-credits-halo),transparent 65%); }
.contact-rule { position:absolute; top:0; left:7vw; right:7vw; height:1px; background:var(--color-border); }
.contact-inner { width:min(100%,1000px); margin:auto; }
.contact-inner>.eyebrow { color:var(--color-warm); margin:0 0 30px; }
.contact-inner h2 { font-family:var(--font-heading); font-weight:var(--weight-heavy); font-size:clamp(48px,8.7vw,126px); line-height:.96; letter-spacing:var(--tracking-title); margin:0 0 40px; }
.contact-inner h2 span { color:var(--color-warm); }
.contact-lead { font-size:clamp(19px,2.3vw,28px); font-weight:var(--weight-strong); margin:0 0 18px; }
.contact-invitation { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.7fr); align-items:end; gap:32px 8%; margin-top:clamp(36px,5vw,64px); }
.contact-description { color:var(--color-text-muted); font-size:var(--size-body); line-height:var(--leading-body); margin:0; padding-bottom:14px; }
/* A typographic invitation, balanced against the closing title. */
.contact-link { position:relative; display:flex; align-items:center; justify-content:flex-start; width:100%; min-height:80px; padding:20px 0 23px; border:0; border-bottom:1px solid var(--color-border-warm); border-radius:0; background:transparent; color:var(--color-text); text-align:left; font:var(--weight-medium) clamp(24px,2.5vw,34px)/1.35 var(--font-heading); letter-spacing:.06em; transition:color .35s ease; }
.contact-link::after { content:""; position:absolute; bottom:-1px; left:0; width:100%; height:1px; background:var(--color-warm); transform:scaleX(.22); transform-origin:left center; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
.contact-link-label { display:inline-flex; align-items:center; gap:clamp(12px,1.3vw,16px); transition:transform .4s cubic-bezier(.2,.7,.2,1); }
.contact-mail-icon { display:block; flex:none; width:clamp(26px,2.5vw,32px); height:auto; }
.contact-link:hover:not(:disabled),.contact-link:focus-visible { color:var(--color-text-warm); }
.contact-link:hover:not(:disabled)::after,.contact-link:focus-visible::after { transform:scaleX(1); }
.contact-link:hover:not(:disabled) .contact-link-label,.contact-link:focus-visible .contact-link-label { transform:translateY(-3px); }
.contact-link:focus-visible { outline:2px solid var(--color-warm); outline-offset:8px; }
.contact-link:disabled { opacity:.45; cursor:default; }
.contact-note { margin:16px 0 0; color:var(--color-text-muted); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.contact-enhanced .contact-inner { opacity:0; transform:translateY(24px); transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1); }
.contact-enhanced.is-visible .contact-inner { opacity:1; transform:translateY(0); }
body.motion-reduced .contact-enhanced .contact-inner { opacity:1; transform:none; transition:none; }
body.motion-reduced .contact-link,body.motion-reduced .contact-link::after,body.motion-reduced .contact-link-label { transition:none; }
body.motion-reduced .contact-link .contact-link-label { transform:none!important; }
.social-accounts>a { display:flex; flex-direction:column; gap:7px; }
.social-accounts>a small { color:var(--color-text-muted); font-size:12px; letter-spacing:.03em; overflow-wrap:anywhere; }
@media(max-width:760px) { .site-header nav a[href="#label"] { display:none; } }
@media(max-width:760px) { .contact-invitation { grid-template-columns:minmax(0,1fr); gap:18px; margin-top:32px; } .contact-description { padding:0; } .contact-link { width:min(100%,420px); justify-self:end; min-height:76px; font-size:27px; padding-top:20px; padding-bottom:22px; } }
@media(max-width:600px) { .contact-section { padding:100px 24px 126px; } .contact-rule { left:24px; right:24px; } .contact-inner h2 { font-size:clamp(40px,12vw,70px); margin-bottom:30px; } .contact-link { width:100%; font-size:25px; } }
@media(prefers-reduced-motion:reduce) { .contact-enhanced .contact-inner { opacity:1; transform:none; transition:none; } .contact-link,.contact-link::after,.contact-link-label { transition:none; } .contact-link .contact-link-label { transform:none!important; } }

/* A compact closing signature: equal side columns keep the words truly centred. */
.contact-section{padding-bottom:clamp(64px,7vw,96px)}
.site-footer{display:block;position:relative;padding-top:0;padding-bottom:24px;background:var(--color-bg)}
.site-footer .footer-main{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding:28px 0 24px;border-top:1px solid var(--color-border-warm)}
.site-footer .footer-mark{width:112px;max-width:100%;justify-self:start;min-height:44px}
.site-footer .footer-tagline{max-width:32ch;margin:0;text-align:center;text-wrap:balance;color:var(--cream);font:var(--weight-medium) clamp(16px,1.75vw,22px)/1.65 var(--font-body);letter-spacing:.08em}
.site-footer .footer-links{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:4px 20px;min-width:0}
.site-footer .footer-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font:var(--weight-medium) 11px/1.5 var(--font-label);letter-spacing:.08em;color:var(--color-text-warm);white-space:nowrap;text-underline-offset:6px;transition:color .25s}
.site-footer .footer-links a:hover,.site-footer .footer-links a:focus-visible{color:var(--cream);text-decoration:underline}
.site-footer .footer-copyright{display:block;margin:0;padding-top:15px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font:var(--weight-regular) 10px/1.6 var(--font-label);letter-spacing:.12em}
@media(max-width:1100px){.site-footer{padding-bottom:78px}}
@media(max-width:760px){
 .site-footer .footer-main{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px;padding:24px 0 14px}
 .site-footer .footer-mark{width:96px;justify-self:center}
 .site-footer .footer-tagline{font-size:18px;max-width:100%}
 .site-footer .footer-links{justify-content:center;gap:6px 28px}
 .site-footer .footer-links a{font-size:12px}
 .site-footer .footer-copyright{padding-top:13px;font-size:10px}
}
@media(max-height:540px) and (min-width:600px){.site-footer{padding-bottom:78px}}
@media(prefers-reduced-motion:reduce){.site-footer .footer-links a{transition:none}}

/* The form appears only after the invitation is opened. */
.contact-form{min-width:0;border-top:1px solid var(--color-border-warm);padding-top:24px}
.contact-form [hidden]{display:none!important}
.contact-form-caption,.contact-privacy,.contact-mode,.contact-draft-note{font:var(--weight-regular) 12px/1.8 var(--font-body);color:var(--muted);margin:0 0 24px}
.contact-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-field{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;font:var(--weight-medium) 13px/1.6 var(--font-body);color:var(--cream)}
.contact-field input,.contact-field select,.contact-field textarea,.contact-draft-body{width:100%;min-width:0;min-height:48px;border:1px solid var(--color-border);border-radius:0;background:var(--color-surface);color:var(--cream);padding:13px 14px;font:var(--weight-regular) 16px/1.6 var(--font-body);letter-spacing:.015em;transition:border-color .2s}
.contact-field textarea,.contact-draft-body{resize:vertical;min-height:156px}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--muted);opacity:.8}
.contact-field select{color-scheme:dark;cursor:pointer}
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus,.contact-draft-body:focus{outline:2px solid var(--brass);outline-offset:3px;border-color:var(--brass)}
.contact-privacy{margin-top:-3px;margin-bottom:22px}
.contact-submit{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;background:var(--cream);color:var(--ink);border:1px solid var(--cream);font:var(--weight-medium) 13px/1.6 var(--font-body);letter-spacing:.06em;transition:background .2s,border-color .2s}
.contact-submit:hover:not(:disabled){background:var(--color-text-warm);border-color:var(--color-text-warm)}
.contact-submit:disabled,.contact-text-button:disabled{opacity:.55;cursor:wait}
.contact-mode{margin:18px 0 0;font-size:11px}
.contact-status{font:var(--weight-medium) 13px/1.8 var(--font-body);color:var(--color-text-warm);margin:16px 0 0;overflow-wrap:anywhere}
.contact-status:empty{display:none}
.contact-status[data-state="error"]{color:var(--cream);border-left:2px solid var(--brass);padding-left:13px}
.contact-review h3{font:var(--weight-medium) 23px/1.4 var(--font-body);margin:0 0 24px}
.contact-review dl{margin:0 0 24px}
.contact-review dl>div{padding:15px 0;border-bottom:1px solid var(--line)}
.contact-review dt{font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:7px}
.contact-review dd{margin:0;font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.contact-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:24px}
.contact-text-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 0;color:var(--color-text-warm);font:var(--weight-medium) 12px/1.6 var(--font-body);text-decoration:underline;text-underline-offset:6px}
.contact-review details{margin:12px 0}.contact-review summary{cursor:pointer;font-size:12px;line-height:1.6;min-height:44px;display:list-item;padding:12px 0;color:var(--muted)}
.contact-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.contact-field-pair{grid-template-columns:minmax(0,1fr);gap:0}.contact-submit{width:100%}.contact-review-actions{justify-content:center;gap:8px}}

@media(prefers-reduced-motion:reduce){.contact-field input,.contact-field select,.contact-field textarea,.contact-submit{transition:none}}

#contact-dialog:not([open]){display:none}
#contact-dialog{width:min(680px,calc(100vw - 32px));max-width:none;max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);padding:0;margin:auto;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--color-border-warm);background:var(--color-bg);color:var(--cream)}
#contact-dialog::backdrop{background:#090909c9;backdrop-filter:blur(8px)}
.contact-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;background:var(--color-bg);border-bottom:1px solid var(--line)}
#contact-dialog .contact-dialog-header h2{margin:0;font:var(--weight-medium) clamp(22px,4vw,28px)/1.5 var(--font-body);letter-spacing:0;overflow-wrap:anywhere}
.contact-close{flex:none;min-height:44px;padding:8px 0 8px 12px;font:var(--weight-medium) 12px/1.5 var(--font-body);color:var(--color-text-warm);text-decoration:underline;text-underline-offset:5px}
.contact-dialog-body{padding:26px 28px 28px}
#contact-dialog .contact-form{border:0;padding:0}
#contact-dialog .contact-form p{font-size:12px;line-height:1.8}
#contact-dialog .contact-form .contact-mode{font-size:11px}
.contact-privacy a{text-decoration:underline;text-underline-offset:3px;margin-left:.4em}
.site-footer .footer-privacy{display:block;width:fit-content;max-width:100%;margin:0 auto 12px;min-height:44px;padding:10px 8px;text-align:center;color:var(--muted);font:var(--weight-regular) 11px/1.8 var(--font-body);text-underline-offset:5px}
.site-footer .footer-privacy:hover,.site-footer .footer-privacy:focus-visible{text-decoration:underline;color:var(--cream)}
@media(max-width:600px){.contact-dialog-header{padding:14px 18px}.contact-dialog-body{padding:20px 18px 24px}}
