/* *** Custom Code by Vitals Agency 2026 *** */
/* *** Custom Code by Vitals Agency 2026 *** */
:root{--brand:#1B1812;--brand-hover:#322C22;--ink:#1B1812;--ink-soft:#5C5347;--surface:#F6F1E7;--surface-alt:#EFE6D3;--surface-dark:#1B1812;--accent:#C49A5A;--on-brand:#F6F1E7;--on-dark:#F6F1E7;--on-dark-soft:#C9BFAE;--hairline:#DCD0B8;--hairline-dark:#3A352B;--font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-display:"Fraunces",ui-serif,Georgia,"Times New Roman",serif;--step--1:clamp(.83rem,.8rem + .16vw,.9rem);--step-0:clamp(1rem,.95rem + .3vw,1.125rem);--step-1:clamp(1.25rem,1.16rem + .45vw,1.5rem);--step-2:clamp(1.56rem,1.4rem + .8vw,2rem);--step-3:clamp(1.95rem,1.68rem + 1.35vw,2.75rem);--step-5:clamp(3.2rem,2.4rem + 4vw,5.4rem);--step-6:clamp(3.6rem,2.2rem + 7vw,8rem);--space-1:clamp(.5rem,.47rem + .15vw,.625rem);--space-2:clamp(.75rem,.7rem + .25vw,1rem);--space-3:clamp(1rem,.9rem + .5vw,1.5rem);--space-4:clamp(1.5rem,1.3rem + 1vw,2.5rem);--space-5:clamp(2rem,1.6rem + 2vw,3.5rem);--space-6:clamp(3rem,2.3rem + 3.5vw,5rem);--space-7:clamp(4rem,2.8rem + 6vw,7rem);--container:75rem;--measure:62ch;--gutter:var(--space-3);--radius:.25rem;--radius-sm:.125rem;--shadow-2:0 16px 48px rgba(27,24,18,.18);--ease:cubic-bezier(.2,.6,.2,1);--dur:220ms}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,picture,video,svg{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--font-display);line-height:1.12;text-wrap:balance;font-weight:500;margin:0;color:var(--ink)}
h1{font-size:var(--step-5);letter-spacing:-.01em}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}
p{text-wrap:pretty;max-width:var(--measure);margin:0;color:var(--ink-soft)}
p.lede{font-size:var(--step-1);color:var(--ink)}
a{color:inherit}strong{color:var(--ink);font-weight:600}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}
.eyebrow{display:block;font-size:var(--step--1);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:var(--space-2);font-weight:600}
.section--dark .eyebrow,.hero .eyebrow{color:var(--accent)}
.container{width:min(100% - 2*var(--gutter),var(--container));margin-inline:auto}
.container--narrow{width:min(100% - 2*var(--gutter),46rem);margin-inline:auto}
.section{padding-block:var(--space-7)}
.section--alt{background:var(--surface-alt)}
.section--dark{background:var(--surface-dark);color:var(--on-dark)}
.section--dark p{color:var(--on-dark-soft)}
.section--dark h2,.section--dark h3{color:var(--on-dark)}
.stack>*+*{margin-top:var(--space-3)}.stack--lg>*+*{margin-top:var(--space-5)}
.grid-auto{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.grid-2{display:grid;gap:var(--space-5);grid-template-columns:1fr;align-items:center}
@media (min-width:64rem){.grid-2{grid-template-columns:1fr 1fr}}
.cluster{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.section-head{max-width:44rem;margin-bottom:var(--space-5)}
.divider{border:none;border-top:1px solid var(--hairline);margin-block:var(--space-6)}
.section--dark .divider{border-top-color:var(--hairline-dark)}
/* header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(246,241,231,.97);border-bottom:1px solid var(--hairline)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-2)}
.brand-mark{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.08em;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;line-height:1}
.brand-mark span{font-family:var(--font-body);font-size:.55em;letter-spacing:.3em;color:var(--ink-soft);margin-top:.3em}
.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-4);align-items:center}
.primary-nav a:not(.btn){text-decoration:none;font-size:var(--step--1);letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:var(--ink);padding-block:.25rem;border-bottom:1px solid transparent;transition:border-color var(--dur) var(--ease)}
.primary-nav a:not(.btn):hover{border-color:var(--accent)}
.nav-toggle{display:none}
@media (max-width:63.99rem){.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink);cursor:pointer}.primary-nav #primary-menu{position:fixed;inset:4.2rem 0 0 0;background:var(--surface);flex-direction:column;align-items:flex-start;padding:var(--space-4) var(--gutter);display:none;gap:var(--space-3);overflow-y:auto}.primary-nav #primary-menu[data-open="true"]{display:flex}.primary-nav a:not(.btn){font-size:var(--step-1)}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--step--1);font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.btn--primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.btn--primary:hover{background:var(--brand-hover)}
.btn--light{background:var(--surface);color:var(--ink);border-color:var(--surface)}
.btn--light:hover{background:#fff}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--hairline)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--block{width:100%}
/* ---------- HERO (static, high-resolution) ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--on-dark);overflow:hidden;background:var(--surface-dark)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,24,18,.55) 0%,rgba(27,24,18,.22) 34%,rgba(27,24,18,.52) 68%,rgba(27,24,18,.9) 100%)}
.hero-content{position:relative;z-index:1;padding-block:var(--space-6) var(--space-6)}
.hero h1{color:var(--on-dark);max-width:17ch}
.hero p.lede{color:var(--on-dark-soft);max-width:40ch}
.hero-facts{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-5);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--hairline-dark)}
.hero-facts dt{font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-soft)}
.hero-facts dd{margin:.2em 0 0;font-family:var(--font-display);font-size:var(--step-2);color:var(--on-dark)}
.scroll-cue{position:absolute;left:50%;bottom:var(--space-3);transform:translateX(-50%);z-index:2;color:var(--on-dark-soft);font-size:var(--step--1);letter-spacing:.2em;text-transform:uppercase;display:none}
@media (min-width:48rem){.scroll-cue{display:block}}
/* outline button for the film CTA on dark ground */
.btn--outline{background:transparent;color:var(--on-dark);border-color:var(--on-dark)}
.btn--outline:hover{background:var(--on-dark);color:var(--ink)}
.play-dot{display:inline-grid;place-items:center;width:1.5em;height:1.5em;border-radius:50%;border:1px solid currentColor}
.play-dot svg{width:.7em;height:.7em;margin-left:.1em}
/* ---------- TYPE-MASK ---------- */
.typemask{position:relative;min-height:70vh;min-height:78svh;display:grid;place-items:center;overflow:hidden;background:var(--surface-dark);isolation:isolate}
.typemask img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.typemask .knock{position:absolute;inset:0;z-index:2;display:grid;align-content:center;padding:var(--space-6) var(--gutter);text-align:center;background:var(--surface);mix-blend-mode:screen}
.typemask .knock span{display:block;font-family:var(--font-display);font-weight:500;font-size:var(--step-6);line-height:.95;letter-spacing:-.02em;color:#000;text-transform:uppercase}
.typemask .knock small{display:block;margin-top:var(--space-2);font-family:var(--font-body);font-size:var(--step--1);letter-spacing:.3em;color:#000;text-transform:uppercase}
@supports not (mix-blend-mode:screen){.typemask .knock{mix-blend-mode:normal}}
/* ---------- FILM poster button + modal ---------- */
.film{position:relative;display:block;width:100%;padding:0;border:none;background:var(--surface-dark);border-radius:var(--radius);overflow:hidden;cursor:pointer;aspect-ratio:16/9}
.film img{width:100%;height:100%;object-fit:cover}
.film-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);background:rgba(27,24,18,.3);color:var(--on-dark);transition:background var(--dur) var(--ease)}
.film:hover .film-overlay{background:rgba(27,24,18,.16)}
.film-overlay .ring{width:80px;height:80px;border-radius:50%;border:1px solid var(--on-dark);display:grid;place-items:center}
.film-overlay .ring svg{width:24px;height:24px;margin-left:3px}
.film-overlay .label{font-size:var(--step--1);letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.film-modal{position:fixed;inset:0;z-index:220;background:rgba(15,13,10,.96);display:none;align-items:center;justify-content:center;padding:var(--space-4)}
.film-modal[data-open="true"]{display:flex}
.film-stage{width:min(94vw,72rem);aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden}
.film-stage video{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.film-stage{position:relative}
.film-stage[data-loading="true"]::after{content:"Loading the film…";position:absolute;inset:0;display:grid;place-items:center;color:var(--on-dark-soft);font-size:var(--step--1);letter-spacing:.2em;text-transform:uppercase;background:rgba(15,13,10,.72)}
.film-close{position:absolute;top:var(--space-3);right:var(--space-3);background:transparent;border:1px solid var(--on-dark-soft);color:var(--on-dark);width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:1.4rem;line-height:1}
/* ---------- media / cards ---------- */
.media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--surface-alt)}
.media img{width:100%;height:100%;object-fit:cover}
.media--3-4{aspect-ratio:3/4}.media--4-3{aspect-ratio:4/3}.media--16-9{aspect-ratio:16/9}
.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden}
.card-body{padding:var(--space-4)}.card h3{font-size:var(--step-1)}
.tag-row{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}
.tag{font-size:var(--step--1);color:var(--ink-soft);border:1px solid var(--hairline);border-radius:999px;padding:.25em .75em}
.feature-grid{display:grid;gap:var(--space-2) var(--space-5);grid-template-columns:1fr}
@media (min-width:48rem){.feature-grid{grid-template-columns:1fr 1fr}}
.feature-grid li{list-style:none;padding-block:var(--space-2);border-bottom:1px solid var(--hairline);display:flex;gap:.75em;align-items:baseline}
.section--dark .feature-grid li{border-bottom-color:var(--hairline-dark)}
.feature-grid li::before{content:"—";color:var(--accent);flex:none}
.gallery{display:grid;gap:var(--space-2);grid-template-columns:repeat(2,1fr)}
@media (min-width:48rem){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery .media:nth-child(5n+1){grid-column:span 2;grid-row:span 2}
.gallery button.media{cursor:zoom-in;padding:0;border:none;background:var(--surface-alt);font:inherit;display:block;width:100%}
@media (prefers-reduced-motion:no-preference){.gallery img{transition:transform .5s var(--ease)}.gallery .media:hover img{transform:scale(1.04)}}
/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--hairline)}
.faq-item summary{cursor:pointer;list-style:none;padding-block:var(--space-3);font-family:var(--font-display);font-size:var(--step-1);display:flex;justify-content:space-between;gap:var(--space-3);color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--accent);font-size:1.4em;line-height:1;flex:none}
.faq-item[open] summary::after{content:"–"}
.faq-item p{padding-bottom:var(--space-3);max-width:70ch}
/* ---------- LEAD ---------- */
.lead-section{border-top:1px solid var(--hairline-dark)}
.lead-panel{background:#FFFFFF;border:none;border-top:3px solid var(--accent);border-radius:var(--radius);padding:var(--space-3);box-shadow:0 24px 64px rgba(0,0,0,.38)}
.embed-frame{width:100%;overflow:visible;background:#FFFFFF}
.embed-frame iframe{width:100%;display:block;border:none;min-height:1120px}
/* Third-party embed scripts have been observed hiding this iframe off-screen while
   waiting for a handshake that never arrives. The lead form is the entire point of the
   page, so its visibility is not negotiable. */
.embed-frame iframe{position:static!important;left:auto!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.embed-note{font-size:var(--step--1);line-height:1.5;margin-top:var(--space-2);padding-inline:var(--space-2)}
.section--dark .embed-note{color:var(--ink-soft)}
.section--dark .embed-note a{color:var(--ink);text-decoration:underline}
@media (max-width:35rem){.embed-frame iframe{min-height:1200px}.lead-panel{padding:var(--space-2)}}
/* ---------- single sticky CTA ---------- */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--surface-dark);border-top:1px solid var(--hairline-dark);padding:var(--space-2) var(--gutter) calc(var(--space-2) + env(safe-area-inset-bottom));display:flex;justify-content:center;transform:translateY(110%);transition:transform .35s var(--ease)}
.cta-bar[data-show="true"]{transform:none}
.cta-bar .btn{width:min(100%,26rem)}
@media (prefers-reduced-motion:reduce){.cta-bar{transition:none}}
.skip-link{position:absolute;left:.75rem;top:-4rem;z-index:1000;background:var(--brand);color:var(--on-brand);padding:.6rem 1rem;border-radius:var(--radius-sm);transition:top .15s}
.skip-link:focus{top:.75rem}
.site-footer{background:var(--surface-dark);color:var(--on-dark-soft)}
.site-footer p{color:var(--on-dark-soft)}
.site-footer a:not(.btn):not(.brand-mark){color:var(--on-dark);text-decoration:underline;text-underline-offset:.2em}
.site-footer .btn--light{color:var(--ink);text-decoration:none}
.site-footer .brand-mark{text-decoration:none}
.site-footer .legal{font-size:var(--step--1);max-width:68ch}
.footer-grid{display:grid;gap:var(--space-5);grid-template-columns:1fr}
@media (min-width:56rem){.footer-grid{grid-template-columns:1.4fr 1fr}}
.footer-links{list-style:none;margin:0;padding:0}.footer-links li+li{margin-top:.6em}
@media (prefers-reduced-motion:no-preference){html.js [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}html.js [data-reveal][data-revealed]{opacity:1;transform:none}}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(27,24,18,.94);display:none;align-items:center;justify-content:center;padding:var(--space-4)}
.lightbox[data-open="true"]{display:flex}
.lightbox img{max-width:min(92vw,70rem);max-height:86vh;object-fit:contain;border-radius:var(--radius)}
.lightbox-close{position:absolute;top:var(--space-3);right:var(--space-3);background:transparent;border:1px solid var(--on-dark-soft);color:var(--on-dark);width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:1.25rem}
main{padding-bottom:5.5rem}
