/* Eeever motion 01. Progressive enhancement: no hidden content without JS. */
.hp-home.hp-motion-active .hp-hero-copy,
.hp-home.hp-motion-active .hp-actor,
.hp-home.hp-motion-active .hp-film-invite{animation:none}
/* Fixed brand curl: green trace, soft halo, luminous pen only while drawing. */
.hp-home .hp-thread-host{background:none;mask:none;opacity:.9;pointer-events:none}
.hp-home svg.hp-thread{display:block;width:100%;height:100%;overflow:visible;stroke:none}
.hp-home .hp-thread path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.hp-home .hp-thread-halo{stroke:var(--green);stroke-width:34;opacity:.32}
.hp-home .hp-thread-line{stroke:var(--green);stroke-width:13}
.hp-home .hp-thread-core{stroke:#d9ffee;stroke-width:3;opacity:.7}
.hp-home .hp-thread-tip{opacity:0}
.hp-home .hp-thread-tip-glow{fill:var(--green);opacity:.85}
.hp-home .hp-thread-tip-core{fill:#effff8}
/* Hero: the thread enters from the section edge; its loop stays beside the actor. */
.hp-home .hp-cinema{isolation:auto}
/* Separate the transparent portrait from its blue backdrop. Clip only the portrait
   at the scene's bottom so it cannot cover the promises/credential strip below. */
.hp-home .hp-actor-layer{position:absolute;inset:0;z-index:6;clip-path:inset(-120px -180px 0 -180px);pointer-events:none}
.hp-home .hp-film-caption,.hp-home .hp-film-invite{z-index:7}
.hp-home .hp-hero-sign{inset:0 auto 0 calc(50% - 25px);width:clamp(260px,30vw,460px);height:auto;transform:none;z-index:5}
.hp-home .hp-hero-sign .hp-thread-line{stroke-width:5}
.hp-home .hp-hero-sign .hp-thread-core{stroke-width:1.3}
.hp-home .hp-hero-sign .hp-thread-halo{stroke-width:16}
.hp-home .hp-hero-mobile-sign{display:none}
@media(max-width:600px){
 .hp-home .hp-hero-sign{display:none}
 .hp-home .hp-hero-mobile-sign{display:block;position:absolute;inset:0;z-index:1}
 .hp-home .hp-hero-mobile-sign .hp-thread-line{stroke-width:3.5}
 .hp-home .hp-hero-mobile-sign .hp-thread-core{stroke-width:1}
 .hp-home .hp-hero-mobile-sign .hp-thread-halo{stroke-width:12}
}
.hp-home .hp-title-line{display:block;overflow:clip;padding-bottom:.13em;margin-bottom:-.13em}
.hp-home .hp-title-line>span{display:block}
.hp-home .hp-hero h1>.hp-title-line{font-size:1em;letter-spacing:inherit}
.hp-home .hp-hero h1>.hp-title-line:last-child{font-size:1em;letter-spacing:inherit}
.hp-home.hp-motion-active .hp-work-image img{transition:none}
.hp-home.hp-motion-active .hp-work:hover .hp-work-image img,
.hp-home.hp-motion-active .hp-work:focus-visible .hp-work-image img{transform:none}
.hp-home .hp-work-image{perspective:1000px}
.hp-home .hp-work-image:after{content:'';position:absolute;inset:7% 0 0;pointer-events:none;border:1px solid var(--green);opacity:0;transform:translate(8px,8px);transition:opacity .3s,transform .4s}
.hp-home .hp-work:hover .hp-work-image:after,
.hp-home .hp-work:focus-visible .hp-work-image:after{opacity:.65;transform:translate(0,0)}
.hp-home .hp-film-play{position:relative}
.hp-home .hp-film-play:after{content:'';position:absolute;inset:-7px;border:1px solid var(--green);border-radius:50%;opacity:0;transform:scale(.85);transition:transform .45s,opacity .45s}
.hp-home .hp-film-invite:hover .hp-film-play:after,
.hp-home .hp-film-invite:focus-visible .hp-film-play:after{opacity:.45;transform:scale(1)}
/* Text stays in document flow. Only the film stage stays alongside it. */
@media(min-width:960px) and (min-height:640px) and (prefers-reduced-motion:no-preference){
 .hp-home .hp-method-story.hp-story-active{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);column-gap:clamp(55px,7vw,105px);position:relative;border-top:1px solid var(--hp-line)}
 .hp-home .hp-method-rail{grid-column:1;grid-row:1;min-width:0;padding-block:50px}
 .hp-home .hp-film-stage{position:sticky;top:120px;height:clamp(300px,calc(100svh - 220px),580px);isolation:isolate}
 .hp-home .hp-film-stage:before{content:'';position:absolute;inset:13px -13px -13px 13px;background:var(--night);border-right:1px solid var(--green);border-bottom:1px solid var(--green);z-index:-1}
 .hp-home .hp-film-frame{position:absolute;inset:0;margin:0;background:var(--night);overflow:clip;isolation:isolate}
 .hp-home .hp-film-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 28%;opacity:.91}
 .hp-home .hp-film-frame:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,var(--night))}
 .hp-home .hp-film-frame figcaption{position:absolute;inset:auto 27px 23px;display:flex;align-items:end;justify-content:space-between;gap:20px;z-index:1}
 .hp-home .hp-film-frame figcaption>span{font-family:var(--display);font-size:clamp(55px,7vw,95px);font-weight:700;line-height:.95;letter-spacing:-.065em;color:var(--green)}
 .hp-home .hp-film-frame figcaption>strong{font-family:var(--display);font-size:clamp(24px,2.4vw,34px);font-weight:700;letter-spacing:-.03em;line-height:1.2;padding-bottom:4px}
 .hp-home .hp-film-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--green);z-index:5;transform-origin:left}
 .hp-home .hp-story-active .hp-pillars{grid-column:2;grid-row:1;display:block}
 .hp-home .hp-story-active .hp-pillar{display:grid;grid-template-columns:1fr;align-content:center;align-items:start;gap:25px;min-height:clamp(540px,78svh,780px);padding:65px 0;border-top:1px solid var(--hp-line)}
 .hp-home .hp-story-active .hp-pillar:first-child{border-top:0}
 .hp-home .hp-story-active .hp-pillar-visual{display:none}
 .hp-home .hp-story-active .hp-pillar-heading{padding:0}
 .hp-home .hp-story-active .hp-pillar h3{font-size:clamp(36px,3.5vw,51px);line-height:1.12;margin:0 0 25px}
 .hp-home .hp-story-active .hp-pillar-label{font-size:11px;margin-bottom:22px}
 .hp-home .hp-story-active .hp-pillar-topics{font-size:10px;max-width:none}
 .hp-home .hp-story-active .hp-pillar-detail{grid-column:1;max-width:430px}
 .hp-home .hp-story-active .hp-pillar-detail>p{font-size:14px;line-height:1.9}
 .hp-home .hp-story-active .hp-pillar-detail .hp-link{display:flex;font-size:12px;margin-top:9px}
}
@media(max-width:850px){.hp-home .hp-hero h1>.hp-title-line:last-child{font-size:1em}}
@media(max-width:600px){.hp-home .hp-hero h1>.hp-title-line:last-child{font-size:1em}}
@media(prefers-reduced-motion:reduce){
 /* Overrides the shared smooth anchor scrolling, including the sticky contact link. */
 html:has(.hp-home){scroll-behavior:auto}
 .hp-home .hp-work-image:after,.hp-home .hp-film-play:after{transition:none;transform:none}
}
