.hero-sequence{position:relative;height:calc(100svh + 230vw);background:var(--ink)}.hero-stage{height:100svh;position:sticky;top:0;overflow:hidden}.hero-sequence .hero{height:100svh;min-height:0}.hero-picture{right:0}.hero-meta{right:calc(11% + 40px)}.hero-film-track{position:absolute;top:0;left:89vw;display:flex;height:100%;will-change:transform}.hero-film-card{position:relative;flex:0 0 42vw;width:42vw;display:grid;grid-template-rows:72% 28%;height:100%;background:var(--film-color);color:#fff;overflow:hidden}.hero-film-image{overflow:hidden;background:var(--ink)}.hero-film-image video{height:100%;object-fit:cover;object-position:50% 50%;will-change:transform}.hero-film-caption{display:flex;align-items:end;gap:20px;justify-content:space-between;padding:40px;overflow:hidden}.hero-film-caption h2{font-size:clamp(36px,4.4vw,68px);line-height:1.04;letter-spacing:-.05em;max-width:75%}.film-toggle{flex-shrink:0;display:grid;place-items:center;border:1px solid #ffffffaa;background:transparent;border-radius:50%;width:48px;height:48px;color:white}.film-toggle:hover{background:white;color:var(--ink)}.hero-sequence .hero-copy{right:calc(11% + 48px)}.hero-sequence .hero .play-toggle{right:calc(11% + 35px)}.hero-film-card.is-current .hero-film-caption h2{opacity:1}.film-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:65px 28px;align-items:start}.film-library figure:nth-child(3n+2){margin-top:90px}.film-library video{aspect-ratio:9/16;object-fit:cover;background:var(--ink);border-radius:2px}.film-library figcaption{padding-top:17px;font-size:21px;letter-spacing:-.025em}.work{background:#e6e9e3}.work .section-heading{padding-top:0}.hero-sequence .hero-shade{transition:none}.hero-film-card:focus-within{outline:2px solid white;outline-offset:-4px}
@media(max-width:800px),(pointer:coarse),(prefers-reduced-motion:reduce){.hero-sequence{height:auto}.hero-stage{position:relative;height:auto;overflow:visible}.hero-sequence .hero{height:90svh;min-height:710px}.hero-film-track{position:relative;left:0;display:grid;height:auto;transform:none!important;will-change:auto}.hero-film-card{width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;flex-basis:auto}.hero-film-image{aspect-ratio:9/16}.hero-film-image video{will-change:auto}.hero-film-caption{padding:25px;align-items:start;justify-content:center;flex-direction:column;gap:35px}.hero-film-caption h2{font-size:clamp(30px,5vw,60px);max-width:100%;opacity:1}.hero-sequence .hero-copy{right:20px}.hero-sequence .hero .play-toggle{right:20px}.hero-meta{right:20px}.hero-film-card:nth-child(2) .hero-film-image{grid-column:2;grid-row:1}.hero-film-card:nth-child(2) .hero-film-caption{grid-column:1;grid-row:1}.film-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 20px}.film-library figure:nth-child(3n+2){margin-top:0}.film-library figcaption{font-size:17px}.film-toggle{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce) and (min-width:801px){.hero-sequence .hero-copy{right:48px}.hero-sequence .hero{height:100svh;min-height:780px}.hero-film-track{grid-template-columns:repeat(3,1fr)}.hero-film-card{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto}.hero-film-caption{min-height:220px}.hero-film-caption h2{font-size:45px}}
@media(max-width:450px){.hero-film-caption{padding:20px 16px}.hero-film-caption h2{font-size:30px}.film-library{gap:35px 14px}.film-library figcaption{font-size:15px}.hero-sequence .hero{min-height:650px}}
@media(min-width:801px) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero-sequence .hero .play-toggle{top:calc(47% + 3px);bottom:auto;right:calc(11% + 110px)}}

.hover-film video{cursor:pointer}.hover-film video:focus-visible{outline:2px solid var(--ink);outline-offset:5px}

.hero-meta .scroll-indicator{margin-left:auto}

.work-bottom{display:flex;justify-content:flex-end;margin-top:65px}
@media(max-width:800px){.work-bottom{margin-top:40px}}

/* Review refinements: service CTA, pack copy and phone field. */
.service-bottom{display:flex;justify-content:flex-end;margin-top:65px}.service-bottom .text-link{margin-top:0}
.pricing .pack:not(:first-child){border-top:0}
.pricing .pack-description{max-width:none;line-height:1.65}
.phone-field{display:flex;gap:12px;min-width:0}.phone-field>label:first-child{flex:0 0 100px}.phone-field>label:last-child{flex:1;min-width:0}.phone-field select{padding-right:10px;text-overflow:ellipsis}
@media(max-width:800px){.service-bottom{margin-top:40px}.phone-field{gap:8px}.phone-field>label:first-child{flex-basis:90px}}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}.phone-field>label:first-child{flex-basis:135px}}

/* Footer placement across desktop and phone layouts. */
.footer-layout{display:grid;grid-template-columns:1fr auto;gap:55px 30px;align-items:start}
.footer-layout>.back-top{grid-column:1/-1;justify-self:end;font-size:13px;color:#b3bcaa}
.footer-brand{grid-column:1/-1}.footer-brand .footer-wordmark{display:inline-block}
.footer-copyright{font-size:13px;color:#b3bcaa;margin-top:18px}
.footer-links{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:22px;font-size:14px;color:#b3bcaa}
.footer-links nav{display:flex;justify-content:center;flex-wrap:wrap;gap:28px}
.footer-layout>.footer-cta{grid-column:1/-1;justify-self:end;margin-top:0}
@media(max-width:800px){.footer-layout{gap:40px 20px}.footer-copyright{font-size:12px;margin-top:12px}.footer-links{font-size:13px;gap:20px}.footer-links nav{gap:25px}.footer-layout>.back-top{font-size:12px}.footer-brand .footer-wordmark{font-size:34vw}}

/* Whole-panel scroll stacking on phones and touch screens. */
@media(max-width:800px) and (prefers-reduced-motion:no-preference),(pointer:coarse) and (prefers-reduced-motion:no-preference){
 .hero-film-track{display:block;position:relative;isolation:isolate}
 .hero-film-card{position:sticky;top:0;height:100svh;min-height:0;grid-template-rows:100%;width:100%;overflow:hidden}
 .hero-film-card:nth-child(1){z-index:1}.hero-film-card:nth-child(2){z-index:2}.hero-film-card:nth-child(3){z-index:3}
 .hero-film-image{height:100%;aspect-ratio:auto}.hero-film-caption{height:100%}
}

/* Santal Works: full-width tight columns, centered title and scroll choreography. */
.santal-work{position:relative;background:var(--ink);color:var(--paper);padding:150px 0 110px;isolation:isolate}
.santal-work .section-heading{display:block;text-align:center;margin-bottom:110px;position:relative;z-index:1}
.santal-work .section-heading h2{font-size:16px;letter-spacing:0;font-weight:500;line-height:1.4}
.santal-work .film-library{width:100%;display:block;position:relative;z-index:1;overflow:hidden;padding:0 16px}
.santal-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.santal-column{display:flex;flex-direction:column;gap:16px;min-width:0;will-change:transform}
.santal-work .film-library figure,.santal-work .film-library figure:nth-child(3n+2){margin:0;position:relative;overflow:hidden}
/* Override intrinsic HTML heights so Reels keep their proportions at every column width. */
.santal-work .film-library video,.santal-work .film-library img{border-radius:0;aspect-ratio:9/16;width:100%;height:auto;object-fit:cover}
.santal-work .film-library figcaption{position:absolute;bottom:16px;left:16px;right:16px;padding:0;font-size:15px;color:white;opacity:0;pointer-events:none;text-shadow:0 1px 10px #000;transition:opacity .2s}
.santal-work figure:hover figcaption,.santal-work figure:focus-within figcaption{opacity:1}
.santal-work video:focus-visible{outline:2px solid var(--paper);outline-offset:-5px}
.work-lines{position:absolute;inset:0;z-index:0;pointer-events:none}.work-lines span:first-child{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#ffffff14}.work-lines span:last-child{position:absolute;top:250px;left:0;right:0;height:1px;background:#ffffff14}
.santal-work .work-bottom{margin-top:65px;position:relative;z-index:1}
@media(max-width:1023px){.santal-work{padding-top:100px;padding-bottom:75px}.santal-work .section-heading{margin-bottom:100px}.santal-work .film-library{padding:0 6px}.santal-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.santal-column{gap:6px;will-change:auto}.work-lines span:last-child{top:175px}.santal-work .film-library figcaption{font-size:12px;left:10px;bottom:10px}}
@media(prefers-reduced-motion:reduce){.santal-column{will-change:auto}.santal-work .film-library figcaption{transition:none}}

.footer-brand .footer-wordmark{display:block;width:max-content;max-width:100%;line-height:.82}.footer-brand .footer-copyright{margin-top:6px}

/* The closing sections reveal as complete scroll panels. */
.closing-sequence{position:relative;isolation:isolate}.closing-faq{background:var(--paper)}
@media(prefers-reduced-motion:no-preference){
 .closing-sequence>.sample,.closing-sequence>.closing-faq,.closing-sequence>.footer{position:sticky;top:var(--stack-top,0px)}
 .closing-sequence>.sample{z-index:1}.closing-sequence>.closing-faq{z-index:2}.closing-sequence>.footer{z-index:3}
}

/* Begin the closing stack with the fully revealed pricing panel. */
.closing-pricing{background:var(--paper)}
@media(prefers-reduced-motion:no-preference){
 .closing-sequence>.closing-pricing{position:sticky;top:var(--stack-top,0px);z-index:1}
 .closing-sequence>.sample{z-index:2}.closing-sequence>.closing-faq{z-index:3}.closing-sequence>.footer{z-index:4}
}

/* Give every closing panel enough scroll length to replace the previous screen. */
.closing-sequence>div,.closing-sequence>.sample,.closing-sequence>.footer{min-height:100svh}
.closing-sequence>.footer{padding:60px 0 30px}
.closing-sequence .footer-layout{min-height:calc(100svh - 90px);align-content:space-between}
@media(max-width:800px){.closing-sequence>.footer{padding:40px 0 25px}.closing-sequence .footer-layout{min-height:calc(100svh - 65px)}}

body.menu-on-footer:not(.sm-menu-open) .sm-toggle{background:var(--paper);color:var(--ink)}

/* Let the gallery rise over the held introduction. */
.work-transition{position:relative;isolation:isolate;background:var(--paper)}
@media(prefers-reduced-motion:no-preference){
 .work-transition>.intro{position:sticky;top:var(--intro-stack-top,0px);min-height:100svh;align-content:center;z-index:0}
 .work-transition>.santal-work{margin-top:-30svh;z-index:1}
}

/* Expand from the intro's center line without a vertical entrance. */
.work-curtain{display:none}
@media(prefers-reduced-motion:no-preference){
 .work-transition>.santal-work{margin-top:0;z-index:2}
 .work-curtain{display:grid;place-items:center;position:sticky;top:0;height:100svh;margin-top:-100svh;background:var(--ink);color:var(--paper);clip-path:inset(0 50%);z-index:1;pointer-events:none}
 .work-curtain>span{font-size:16px;font-weight:500}
}

/* Balance the sample and FAQ within their full-screen scroll panels. */
.closing-sequence>.sample{display:flex;align-items:center;padding:clamp(64px,8vw,96px) 0}
.sample .sample-layout{grid-template-columns:1fr 1.1fr;gap:clamp(48px,5vw,64px);align-items:center}
.sample .sample-copy>p{max-width:420px;margin-top:32px}
.sample form>h3{margin-bottom:32px}.sample .form-grid{gap:24px}
.sample .phone-field{grid-column:1/-1}.sample .phone-field>label:first-child{flex-basis:152px}
.sample .form-grid>label:has(select){grid-column:1/-1}
.closing-faq{display:flex;align-items:center}
.closing-faq>.faq{padding-top:clamp(64px,8vw,96px);padding-bottom:clamp(64px,8vw,96px)}
.closing-faq .faq-layout{grid-template-columns:1fr 1.1fr;gap:clamp(48px,5vw,64px);align-items:start}
@media(max-width:800px){
 .closing-sequence>.sample{padding:64px 0}.sample .sample-layout,.closing-faq .faq-layout{grid-template-columns:1fr;gap:48px}
 .sample .sample-copy>p{margin-top:24px}.sample form>h3{margin-bottom:24px}
 .closing-faq>.faq{padding-top:64px;padding-bottom:64px}
 .sample .phone-field>label:first-child{flex-basis:135px}
}

@media(min-width:801px) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero-film-track{left:100vw}.hero-sequence .hero-copy{right:48px}.hero-meta{right:40px}.hero-sequence .hero .play-toggle{right:110px}}

/* Mobile hero films use the full panel, with readable controls over the footage. */
@media(max-width:800px),(pointer:coarse){
 .hero-film-card{grid-template-columns:1fr;grid-template-rows:1fr}
 .hero-film-card .hero-film-image,.hero-film-card:nth-child(2) .hero-film-image{grid-column:1;grid-row:1;width:100%;height:100%;aspect-ratio:auto}
 .hero-film-card .hero-film-caption,.hero-film-card:nth-child(2) .hero-film-caption{position:absolute;inset:auto 0 0;grid-column:auto;grid-row:auto;height:auto;min-height:220px;padding:80px 24px 32px;background:linear-gradient(transparent,rgba(0,0,0,.7));display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:24px;z-index:1}
 .hero-film-caption h2{font-size:clamp(32px,7vw,52px);max-width:80%;text-shadow:0 1px 12px #0006}
 .hero-film-caption .film-toggle{width:44px;height:44px;background:#0003;border-color:#ffffffb3}
}
@media(max-width:800px) and (prefers-reduced-motion:reduce){.hero-film-card{height:100svh}}

/* Pricing feedback: preserve the layout and ease into the reversed brand colors. */
.pricing .pack{position:relative;isolation:isolate;transition:color 280ms cubic-bezier(.25,1,.5,1)}
.pricing .pack::before{content:"";position:absolute;inset:16px 0;z-index:-1;background:var(--ink);opacity:0;pointer-events:none;transition:opacity 280ms cubic-bezier(.25,1,.5,1)}
.pricing .pack :is(.cost>p,.cost span,.pack-description,.button){transition:color 280ms cubic-bezier(.25,1,.5,1),border-color 280ms cubic-bezier(.25,1,.5,1)}
.pricing .pack:focus-within{color:var(--paper)}
.pricing .pack:focus-within::before{opacity:1}
.pricing .pack:focus-within :is(.cost>p,.cost span,.pack-description,.button){color:var(--paper);border-color:var(--paper)}
@media(hover:hover) and (pointer:fine){
 .pricing .pack:hover{color:var(--paper)}
 .pricing .pack:hover::before{opacity:1}
 .pricing .pack:hover :is(.cost>p,.cost span,.pack-description,.button){color:var(--paper);border-color:var(--paper)}
}
@media(min-width:801px){.pricing .pack::before{left:-18px;right:12px}.pricing .pack:last-child::before{right:-18px}}
@media(max-width:800px){.pricing .pack::before{left:-12px;right:-12px}}
@media(prefers-reduced-motion:reduce){.pricing .pack,.pricing .pack::before,.pricing .pack :is(.cost>p,.cost span,.pack-description,.button){transition:none}}
