.masthead{position:relative;width:100%;height:100svh;min-height:560px;background:var(--navy);overflow:hidden}.masthead>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.chapter-index{position:absolute;z-index:2;top:32px;left:var(--space);display:flex;gap:32px;font:13px/1.5 var(--mono)}.chapter-index a{padding:8px 0;text-shadow:0 1px 3px var(--navy)}.chapter-index a:focus-visible{outline-color:var(--ink)}.loop-pause{position:absolute;top:32px;right:var(--space);width:44px;height:44px;border:0;border-radius:4px;background:var(--navy);color:var(--ink);font-size:15px}.masthead-copy{position:absolute;bottom:0;left:0;padding:64px var(--space) 48px;max-width:100%;background:linear-gradient(to bottom,transparent 0,var(--navy) 56px);isolation:isolate}.masthead-copy h1{font-size:clamp(48px,6vw,80px);letter-spacing:-.025em;line-height:1}.public-title{font-size:18px;line-height:1.5;margin-top:12px}.masthead-statement{font:700 clamp(32px,3vw,40px)/1.1 var(--display);margin-top:32px;letter-spacing:-.015em}.masthead-copy .button{margin-top:24px;min-width:220px}.manifesto{padding-block:128px}.manifesto .word{color:var(--muted);transition:color .3s ease-out}.manifesto .word.is-highlighted{color:var(--ink)}
.film-chapter{background:#000;scroll-margin-top:0}.film-someone{background:var(--navy)}.film-scroll{position:relative;height:200svh}.film-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#000}.film-someone .film-stage{background:var(--navy)}.film-canvas,.sequence-poster{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:center}.sequence-poster:not([src]){visibility:hidden}.film-canvas{opacity:0}.film-scroll.is-drawn .film-canvas{opacity:1}.film-text{position:absolute;z-index:1;bottom:0;left:0;max-width:min(760px,100%);padding:64px var(--space) 32px;background:linear-gradient(to bottom,transparent 0,var(--navy) 56px);visibility:hidden;color:var(--ink)}.film-text h2{font-size:clamp(40px,5vw,64px);margin-top:16px;letter-spacing:-.02em}.film-text h2 .metadata{display:block;color:var(--muted);margin-bottom:12px;font-size:13px}.film-scroll[data-phase="intro"] .film-intro{visibility:visible}.film-scroll[data-phase="middle"] .film-middle{visibility:visible}.film-scroll[data-phase="final"] .film-text{visibility:hidden}.film-dissolve{position:absolute;bottom:-1px;left:0;right:0;height:48px;pointer-events:none;background:linear-gradient(to bottom,transparent,#000)}.film-someone .film-dissolve{background:linear-gradient(to bottom,transparent,var(--navy))}.film-copy{padding-block:56px 96px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,8vw,128px);border-top:1px solid var(--line)}.film-copy .project-deck{font-size:20px}.film-copy .method-line{padding:0;font-size:17px}.film-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:32px}.film-actions .button{min-width:180px}.method{padding-block:96px}.method h2 .metadata{display:block;color:var(--craft);font-size:13px;margin-bottom:24px}.bio{border-top:1px solid var(--line)}.contact{padding-block:96px 112px;border-top:1px solid var(--line)}.contact>.metadata{display:block;margin-bottom:32px}.contact h2{max-width:900px}.contact>p{font-size:24px;margin-top:24px}.contact-links{display:flex;flex-wrap:wrap;gap:32px;margin-top:48px}.contact-links a{font-size:17px;min-height:48px;display:inline-flex;align-items:center;gap:40px;border-bottom:1px solid var(--action)}.footer{padding-block:32px;display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);font-size:13px}.film-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.film-dialog-bar h2{font-size:32px;margin:0}.film-dialog-bar .dialog-close{flex-shrink:0}#film-dialog{max-width:1280px;width:calc(100% - 32px);padding:24px}#full-film{display:block;width:100%;max-height:75svh;aspect-ratio:16/9;object-fit:contain;background:#000}#film-dialog p{margin-bottom:0}#film-dialog [hidden]{display:none}
@media(max-width:768px){.masthead{min-height:600px}.chapter-index{top:24px;left:24px;gap:24px;font-size:11px}.loop-pause{top:24px;right:24px;width:36px;height:36px}.masthead-copy{padding:56px 24px 32px;width:100%}.masthead-copy h1{font-size:48px;max-width:340px}.public-title{font-size:15px;margin-top:8px}.masthead-statement{font-size:32px;margin-top:24px}.masthead-copy .button{margin-top:24px;width:100%}.manifesto{padding-block:88px}.manifesto p{font-size:40px}.film-text{padding:56px 24px 24px;width:100%;max-width:100%}.film-text h2{font-size:40px}.film-copy{grid-template-columns:1fr;padding:32px 24px 64px;gap:24px}.film-copy .project-deck{font-size:18px}.film-copy .method-line{font-size:15px}.film-actions{margin-top:24px;gap:24px}.film-actions .button{width:100%;min-width:0}.method{padding-block:64px}.contact{padding-block:64px}.contact h2{font-size:48px}.contact>p{font-size:20px}.contact-links{gap:24px;margin-top:32px}.contact-links a{font-size:15px;gap:24px}.film-dialog-bar h2{font-size:24px}#film-dialog{padding:16px}#full-film{max-height:65svh}}
@media(max-height:680px) and (max-width:768px){.masthead{min-height:100svh}.masthead-copy{padding-bottom:24px}.masthead-copy h1{font-size:40px}.masthead-statement{margin-top:16px}.masthead-copy .button{margin-top:16px;min-height:48px}}
@media(prefers-reduced-motion:reduce){.manifesto .word{color:var(--ink);transition:none}.film-scroll{height:auto}.film-stage{position:relative;height:auto;min-height:0;padding-bottom:0}.film-canvas{position:relative;height:auto;aspect-ratio:16/9}.sequence-poster{height:auto;aspect-ratio:16/9}.film-text{position:relative;visibility:visible;padding-top:32px;background:var(--navy)}.film-middle{display:none}.film-scroll[data-phase="final"] .film-intro{visibility:visible}.film-scroll .film-text{background:var(--navy)}.film-copy{padding-top:32px}.film-dissolve{display:none}}
.masthead-copy{background:none;isolation:isolate}
.masthead-copy::before{content:'';position:absolute;inset:0 -64px 0 0;z-index:-1;background:linear-gradient(to bottom,transparent 0,var(--navy) 56px);mask-image:linear-gradient(to right,#000 calc(100% - 64px),transparent)}
.chapter-index{isolation:isolate}
.chapter-index::before{content:'';position:absolute;inset:-16px -24px -20px;z-index:-1;background:linear-gradient(to bottom,var(--navy) calc(100% - 20px),transparent);mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
@media(max-width:768px){.film-text h2{font-size:32px}}
@media(max-width:768px) and (prefers-reduced-motion:no-preference){.film-stage{height:80svh;min-height:520px}}
@media(max-width:768px){.masthead-copy h1{font-size:40px;max-width:none}}
@media(max-width:360px){.masthead-copy h1{font-size:32px}}
@media(max-height:680px) and (max-width:768px){.masthead-copy h1{font-size:32px}}


/* Human Academy's first-screen rhythm, adapted to the author's DNA.
   Orbit supplies the shared interaction configuration in site-settings.js. */
.masthead{height:auto;min-height:100svh;display:flex;flex-direction:column;padding:88px 0 0;overflow:hidden;isolation:isolate;background:var(--navy)}
.hero-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:16px var(--space);gap:24px;z-index:2}
.hero-monogram{font:700 32px/1 var(--display);letter-spacing:-.025em;padding:8px 0}
.hero-location{font-size:12px;color:var(--muted)}
.chapter-index{position:static;transform:none;display:flex;gap:40px;font:13px/1.5 var(--mono);white-space:nowrap}
.chapter-index::before,.masthead-copy::before{content:none}
.chapter-index a{display:flex;gap:8px;padding:12px 0;text-shadow:none;position:relative;color:var(--ink)}
.chapter-index a span{color:var(--muted)}
.chapter-index a::after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-normal) var(--ease-out)}
.chapter-index a:hover::after,.chapter-index a[aria-current]::after,.chapter-index a:focus-visible::after{transform:scaleX(1)}
.masthead-copy{position:relative;inset:auto;display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;min-height:480px;width:100%;max-width:none;text-align:center;padding:48px 24px 64px;background:none}
.masthead-copy h1{font-size:28px;line-height:1.15;letter-spacing:-.025em;max-width:none}
.masthead-copy .public-title{font-size:16px;margin-top:8px;color:var(--muted)}
.masthead-copy .masthead-statement{font:700 clamp(64px,6.2vw,96px)/1.04 var(--display);letter-spacing:-.025em;margin-top:40px;max-width:1100px;text-wrap:balance}
.masthead-statement>span{display:block}
.masthead-statement>span+span{color:var(--muted)}
.masthead-actions{display:flex;justify-content:center;align-items:center;gap:32px;margin-top:40px}
.masthead-copy .button{width:auto;min-width:208px;min-height:56px;margin:0;border-radius:4px;transition:background-color var(--motion-normal) var(--ease-out),border-color var(--motion-normal) var(--ease-out)}
.hero-work-link{display:inline-flex;align-items:center;gap:24px;font-size:13px;font-weight:700;min-height:56px;padding:12px 0}
.hero-work-link span,.masthead-actions .button>span{transition:transform var(--motion-normal) var(--ease-out)}
.hero-work-link:hover span{transform:translateY(3px)}
.masthead-actions .button:hover>span{transform:translate(2px,-2px)}
.hero-proof{display:grid;width:100%;max-width:1280px;align-self:center;padding:32px var(--space) 40px;border:0;gap:40px;background:none}
.hero-proof>div,.hero-proof>div:first-child,.hero-proof>div:last-child{display:flex;flex-direction:row;align-items:center;gap:20px;padding:0;border:0}
.hero-proof strong{font-size:48px;flex:none;letter-spacing:-.025em}
.hero-proof p{font-size:13px;line-height:1.5;margin:0;max-width:230px}
.hero-framing{position:absolute;inset:120px 24px 180px;pointer-events:none;z-index:-1;color:var(--line)}
.hero-framing i{position:absolute;width:16px;height:16px;border-style:solid;border-color:currentColor;border-width:0}
.hero-framing i:nth-child(1){left:0;top:0;border-top-width:1px;border-left-width:1px}
.hero-framing i:nth-child(2){right:0;top:0;border-top-width:1px;border-right-width:1px}
.hero-framing i:nth-child(3){left:0;bottom:0;border-bottom-width:1px;border-left-width:1px}
.hero-framing i:nth-child(4){right:0;bottom:0;border-bottom-width:1px;border-right-width:1px}
.hero-focus{display:none;position:absolute;left:0;top:0;z-index:1;pointer-events:none;color:var(--craft);opacity:0;transition:opacity var(--motion-fast) ease-out}
.hero-focus>span{position:absolute;width:24px;height:24px;left:-12px;top:-12px}
.hero-focus>span::before,.hero-focus>span::after{content:'';position:absolute;background:currentColor}
.hero-focus>span::before{height:1px;width:24px;top:12px}.hero-focus>span::after{width:1px;height:24px;left:12px}
.hero-focus small{position:absolute;left:20px;top:16px;font:11px var(--mono);white-space:nowrap}
.hero-filmstrip{position:relative;background:#000;scroll-margin-top:0}
.hero-filmstrip video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#000}
.hero-film-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px var(--space);background:var(--navy);border-bottom:1px solid var(--line)}
.hero-film-controls .metadata{font-size:11px;color:var(--muted)}
.hero-film-controls .loop-pause{position:static;width:44px;height:44px;min-width:44px;border:1px solid var(--line);background:none;color:var(--ink);border-radius:4px}
@media(hover:hover) and (pointer:fine){.hero-focus{display:block}.masthead.is-tracking .hero-focus{opacity:1}}
@media(max-width:1100px){.hero-proof{gap:24px}.hero-proof>div,.hero-proof>div:first-child,.hero-proof>div:last-child{gap:12px}.hero-proof strong{font-size:40px}.hero-proof p{font-size:13px}.hero-location{display:none}}
@media(max-width:768px){
 .masthead{padding-top:72px;min-height:100svh}
 .hero-header{min-height:72px;padding:16px 24px;gap:24px}
 .hero-monogram{font-size:28px}.chapter-index{gap:24px;font-size:11px}.chapter-index a{gap:6px}
 .masthead-copy{padding:40px 24px 48px;min-height:440px}
 .masthead-copy h1{font-size:24px}.masthead-copy .public-title{font-size:15px;margin-top:8px}
 .masthead-copy .masthead-statement{font-size:48px;line-height:1.04;margin-top:32px;max-width:550px}
 .masthead-actions{flex-direction:column;gap:8px;margin-top:32px;width:100%;max-width:330px}
 .masthead-copy .button{width:100%;min-width:0}.hero-work-link{min-height:48px;gap:16px}
 .hero-proof{padding:16px 24px 32px;gap:24px;grid-template-columns:1fr 1fr}
 .hero-proof>div,.hero-proof>div:first-child,.hero-proof>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0;border:0}
 .hero-proof>div:last-child{grid-column:1/-1;flex-direction:row;align-items:center;gap:16px}
 .hero-proof strong{font-size:40px}.hero-proof p{font-size:13px;line-height:1.5;max-width:240px}
 .hero-framing{inset:112px 16px 280px}.hero-framing i{width:8px;height:8px}
 .hero-film-controls{padding:8px 24px;gap:16px}.hero-film-controls .metadata{font-size:10px}
}
@media(max-width:360px){.hero-header{padding-inline:16px;gap:16px}.chapter-index{gap:16px}.masthead-copy{padding-inline:16px}.hero-proof{padding-inline:16px}.masthead-copy .masthead-statement{font-size:48px}}
@media(prefers-reduced-motion:reduce){.hero-focus{display:none!important}.hero-work-link span,.masthead-actions .button>span{transform:none!important}}
.hero-proof>div+div{border:0}
.hero-contact-sheet{display:none;--aim-x:0px;--aim-y:0px}
@media(min-width:1250px){
 .hero-contact-sheet{display:block;position:absolute;inset:0;pointer-events:none;z-index:1}
 .hero-contact-frame{display:block;position:absolute;width:clamp(136px,12vw,200px);pointer-events:auto;transform:translate3d(var(--aim-x),var(--aim-y),0);transition:transform var(--motion-normal) var(--ease-out)}
 .hero-contact-original{left:var(--space);top:20%}
 .hero-contact-someone{right:var(--space);bottom:24%}
 .hero-contact-frame img{display:block;width:100%;height:auto;aspect-ratio:16/9}
 .hero-contact-frame>span{display:block;padding-top:12px;font:10px/1.5 var(--mono);color:var(--muted)}
 .hero-contact-frame:hover>span,.hero-contact-frame:focus-visible>span{color:var(--ink)}
 .masthead-copy{z-index:0}
}
@media(prefers-reduced-motion:reduce){.hero-contact-frame{transform:none!important}}

/* Editorial pause and unobstructed native-scroll film sequences. */
.manifesto{position:relative;height:160svh;padding-block:0}
.manifesto-stage{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;justify-content:center;padding-block:64px}
.manifesto-stage p{width:100%;max-width:1080px;font-size:clamp(48px,4.8vw,64px);line-height:1.12;letter-spacing:-.02em}
.manifesto .word{transition:color var(--motion-normal) var(--ease-out)}
.film-heading{padding-block:64px 48px;background:var(--navy)}
.film-original .film-heading{background:#000}
.film-heading-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.film-heading-meta>.metadata{color:var(--muted)}
.film-heading h2{font-size:clamp(48px,5vw,72px);letter-spacing:-.02em}
.film-scroll{height:200svh}
.film-stage{--picture-height:min(56.25vw,calc(100svh - 80px));position:sticky;top:max(0px,calc((100svh - var(--picture-height) - 48px)/2));height:auto;min-height:0;width:min(100%,calc((100svh - 80px)*1.777778));margin-inline:auto;overflow:visible;background:transparent}
.film-picture{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000}
.film-canvas{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:16/9}
.sequence-poster{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.film-sequence-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:12px 24px;color:var(--muted);background:var(--navy)}
.film-original .film-sequence-meta{background:#000}
.film-sequence-meta .metadata{font-size:11px}
.sequence-scroll-hint{display:inline-flex;gap:16px;align-items:center}
.film-sequence-progress{height:1px;background:var(--line);overflow:hidden}
.film-sequence-progress i{display:block;width:100%;height:100%;background:var(--craft);transform:scaleX(0);transform-origin:left}
.film-copy{border-top:0}
@media(max-width:768px){
 .manifesto-stage{padding-block:48px}.manifesto-stage p{font-size:40px;line-height:1.12}
 .film-heading{padding-block:48px 32px}.film-heading-meta{gap:16px;margin-bottom:24px}.film-heading-meta .ai-label{font-size:11px}
 .film-heading h2{font-size:48px;max-width:650px}
 .film-scroll{height:160svh}
 .film-stage{height:auto;min-height:0;max-width:none}
 .film-sequence-meta{padding-inline:24px}
}
@media(prefers-reduced-motion:reduce){
 .manifesto{height:auto}.manifesto-stage{position:relative;min-height:0;padding-block:96px}
 .film-scroll{height:auto}.film-stage{position:relative;top:auto;height:auto;width:100%;min-height:0}
 .film-canvas{position:relative;width:100%;height:auto;aspect-ratio:16/9}
 .film-sequence-progress,.sequence-scroll-hint{display:none}
 .manifesto .word{color:var(--ink)}
}

/* Static Method title and generous editorial reading rows. */
.method{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:clamp(48px,8vw,128px);padding-block:112px 128px;border-top:1px solid var(--line)}
.method .section-heading{position:sticky;top:64px;align-self:start;margin:0}
.method h2{font-size:64px}
.method h2 .metadata{margin-bottom:24px}
.steps{display:block;list-style:none;margin:0;padding:0;min-width:0}
.step{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:24px;row-gap:16px;padding:32px 0 40px;border-top:1px solid var(--line);border-bottom:0}
.step:first-child{padding-top:0;border-top:0}
.step:last-child{padding-bottom:0}
.step-number{grid-column:1;grid-row:1 / 3;position:relative;align-self:start;margin:8px 0 0;color:var(--muted);font-size:13px;transition:color var(--motion-normal) var(--ease-out)}
.step-number::after{content:'';display:block;width:24px;height:2px;background:var(--craft);margin-top:12px;transform:scaleX(0);transform-origin:left;transition:transform var(--motion-normal) var(--ease-out)}
.step[data-active="true"] .step-number{color:var(--craft)}
.step[data-active="true"] .step-number::after{transform:scaleX(1)}
.step h3{grid-column:2;font-size:40px;line-height:1.08;margin:0;letter-spacing:-.015em}
.step p{grid-column:2;font-size:17px;line-height:1.7;max-width:55ch}
.bio{padding-block:112px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(48px,8vw,128px);align-items:center}
.portrait-pending{position:relative;aspect-ratio:4/5;max-width:480px;min-height:0;padding:32px;justify-content:flex-end;background:var(--panel)}
.portrait-pending p{position:relative;font-size:14px;line-height:1.7}
.portrait-guides{position:absolute;inset:24px;pointer-events:none;color:var(--muted)}
.portrait-guides i{position:absolute;width:16px;height:16px;border:0 solid currentColor}
.portrait-guides i:nth-child(1){top:0;left:0;border-top-width:1px;border-left-width:1px}
.portrait-guides i:nth-child(2){top:0;right:0;border-top-width:1px;border-right-width:1px}
.portrait-guides i:nth-child(3){bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}
.portrait-guides i:nth-child(4){bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.bio-copy h2{font-size:64px;letter-spacing:-.02em;margin-bottom:32px}
.bio-copy p{font-size:17px;line-height:1.75;max-width:58ch;margin-bottom:24px}
.bio-copy p:last-child{margin:0}
.bio-copy .bio-lead{font-size:20px;line-height:1.55}
.contact{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(48px,8vw,128px);padding-block:112px 128px;align-items:start}
.contact-intro>.metadata{display:block;margin-bottom:32px;color:var(--muted)}
.contact h2{font-size:clamp(56px,5.8vw,80px);line-height:1.02;letter-spacing:-.025em;max-width:620px}
.contact-intro>p{font-size:18px;margin-top:32px;line-height:1.6}
.contact-links{display:block;margin:0;padding:0}
.contact-links a{display:flex;width:100%;min-height:112px;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);font-size:24px;font-family:var(--display);font-weight:700}
.contact-links a:first-child{padding-top:0;min-height:88px}
.contact-channel{min-width:0}
.contact-channel small{display:block;font:300 14px/1.6 var(--body);margin-top:8px;color:var(--muted);overflow-wrap:anywhere}
.contact-arrow{flex:none;color:var(--muted);transition:color var(--motion-normal) var(--ease-out),transform var(--motion-normal) var(--ease-out)}
.contact-links a:hover .contact-arrow,.contact-links a:focus-visible .contact-arrow{color:var(--ink);transform:translate(3px,-3px)}
.contact-links a:hover,.contact-links a:focus-visible{border-color:var(--ink)}
.footer{align-items:center;padding-block:32px;flex-wrap:wrap}
.footer>.wordmark{font-size:20px}
.footer>span:nth-child(2){color:var(--muted);margin-left:auto}
.back-to-top{display:inline-flex;align-items:center;gap:16px;min-height:44px;padding:8px 0;margin-left:40px;font-size:13px}
.back-to-top>span{transition:transform var(--motion-normal) var(--ease-out)}
.back-to-top:hover>span{transform:translateY(-3px)}
@media(max-width:1000px){.method{grid-template-columns:.6fr 1.4fr;gap:48px}.bio{gap:48px}.contact{gap:48px}.contact h2{font-size:56px}}
@media(max-width:768px){
 .method{display:block;padding-block:64px 72px}.method .section-heading{position:static;margin-bottom:48px}.method h2{font-size:48px}.method h2 .metadata{margin-bottom:16px}
 .step{grid-template-columns:32px minmax(0,1fr);gap:16px;padding:32px 0}.step h3{font-size:32px}.step p{font-size:15px;line-height:1.7}.step-number{font-size:12px}
 .bio{display:flex;flex-direction:column;align-items:stretch;padding-block:72px;gap:40px}
 .portrait-pending{max-width:none;aspect-ratio:4/3;padding:32px}.portrait-guides{inset:16px}
 .bio-copy h2{font-size:48px;margin-bottom:24px}.bio-copy .bio-lead{font-size:20px}.bio-copy p{font-size:15px;line-height:1.75}
 .contact{display:block;padding-block:72px 64px}.contact-intro>.metadata{margin-bottom:24px}.contact h2{font-size:56px;max-width:520px}.contact-intro>p{font-size:18px;margin-top:24px}
 .contact-links{margin-top:48px}.contact-links a{font-size:24px;min-height:104px}.contact-channel small{font-size:14px}
 .footer{gap:16px}.footer>.wordmark{font-size:20px}.footer>span:nth-child(2){margin-left:auto}.back-to-top{margin:0;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}
}
@media(prefers-reduced-motion:reduce){.method .section-heading{position:static}.step-number::after{transition:none}.contact-arrow,.back-to-top>span{transform:none!important}}

/* Real supplied portrait, with the complete original composition. */
.bio{align-items:start}
.bio-portrait{margin:0;width:100%;max-width:560px}
.bio-portrait img{display:block;width:100%;height:auto;object-fit:contain;border-radius:0}
@media(max-width:768px){.bio-portrait{max-width:none}}

/* v2.4: timed ideas during each reversible scroll sequence. */
.sequence-heading{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
.film-scroll{height:280svh}
.film-original .film-scroll{height:300svh}
.film-stage{position:sticky;top:0;width:100%;max-width:none;height:100svh;min-height:0;margin:0;overflow:hidden}
.film-picture{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;background:transparent;overflow:hidden}
.film-canvas{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.sequence-poster{width:100%;height:100%;object-fit:contain}
.sequence-caption{position:absolute;left:var(--space);bottom:72px;z-index:1;width:min(340px,32vw);padding:0;isolation:isolate;color:var(--ink)}
.sequence-caption-header{display:flex;align-items:center;justify-content:space-between;gap:16px;font:11px/1.5 var(--mono);color:var(--ink);margin-bottom:24px;white-space:nowrap}
.sequence-phase-count{font-variant-numeric:tabular-nums;flex:none}
.sequence-caption-body{opacity:1;transition:opacity 140ms ease-out}
.sequence-caption.is-changing .sequence-caption-body{opacity:0}
.sequence-copy-stack{display:grid;grid-template-areas:'copy';min-height:220px;align-items:start}
.sequence-beat{grid-area:copy;visibility:hidden;opacity:0;pointer-events:none}
.sequence-beat.is-active{visibility:visible;opacity:1}
.sequence-copy,.sequence-title{font:700 clamp(28px,2.5vw,40px)/1.12 var(--display);letter-spacing:-.015em;text-wrap:pretty;color:var(--ink)}
.sequence-title{font-size:48px;line-height:1.04}
.sequence-subtitle{font:700 20px/1.4 var(--body);margin-top:16px}
.sequence-action{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px}
.sequence-action[hidden]{display:none}
.sequence-action .metadata{font-size:12px;color:var(--ink);width:100%}
.sequence-action .button{min-width:180px;min-height:52px;padding:14px 20px}
.film-stage>.film-sequence-progress{position:absolute;bottom:0;left:0;right:0;z-index:2}
.sequence-end-dissolve{display:none}
.film-original .sequence-end-dissolve{display:block;position:absolute;bottom:0;left:0;right:0;height:48px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--navy));opacity:0}
.film-original .film-scroll[data-phase="final"] .sequence-end-dissolve{opacity:1}
/* Full approved copy stays available in the HTML and to assistive technology. */
.film-chapter>.film-copy{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:normal;border:0}
.film-chapter>.film-copy .film-actions{display:none}
@media(max-width:768px){
 .film-scroll{height:280svh}.film-original .film-scroll{height:300svh}
 .film-stage{height:100svh;min-height:0}
 .sequence-caption{left:24px;right:24px;top:52%;bottom:auto;width:auto;max-width:500px}
 .sequence-caption-header{font-size:11px;margin-bottom:24px}
 .sequence-copy{font-size:32px;line-height:1.1}
 .sequence-title{font-size:40px;line-height:1.04}
 .sequence-copy-stack{min-height:168px}
 .sequence-subtitle{font-size:18px;line-height:1.4}
 .sequence-action{margin-top:16px;gap:12px}.sequence-action .button{min-height:48px}
}
@media(max-height:700px) and (max-width:768px){
 .sequence-caption{top:51%;left:24px;right:24px}
 .sequence-caption-header{margin-bottom:16px}
 .sequence-copy-stack{min-height:140px}
 .sequence-copy{font-size:32px}.sequence-title{font-size:36px}
 .sequence-action{margin-top:12px}.sequence-action .metadata{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 .sequence-heading{position:static!important;width:auto!important;height:auto!important;padding:48px var(--space) 32px!important;margin:0!important;overflow:visible!important;clip-path:none;white-space:normal}
 .film-scroll,.film-original .film-scroll{height:auto}
 .film-stage{position:relative;top:auto;height:auto;overflow:visible}
 .film-picture{position:relative;inset:auto;height:auto;aspect-ratio:16/9}
 .film-canvas{position:relative;height:auto;aspect-ratio:16/9}
 .sequence-caption,.sequence-end-dissolve,.film-stage>.film-sequence-progress{display:none!important}
 .film-chapter>.film-copy{position:static;width:auto;height:auto;padding:32px var(--space) 64px;margin:0;overflow:visible;clip-path:none;white-space:normal;display:grid}
 .film-chapter>.film-copy .film-actions{display:flex}
}
@media(min-width:769px) and (prefers-reduced-motion:no-preference){.sequence-caption{top:45%;bottom:auto}}

/* The authored statement now belongs to the opening showreel preview. */
.showreel-media{position:relative;background:var(--navy);overflow:hidden;isolation:isolate}
.showreel-media>video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.showreel-media .manifesto{position:absolute;left:var(--space);bottom:48px;z-index:1;width:min(760px,65%);height:auto;max-width:none;margin:0;padding:0;isolation:isolate}
.showreel-media .manifesto::before{content:'';position:absolute;inset:-120px -180px -48px calc(-1*var(--space));z-index:-1;pointer-events:none;background:linear-gradient(to right,rgba(16,24,40,.94),rgba(16,24,40,.94) calc(100% - 180px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 120px,#000)}
.showreel-media .manifesto-stage{position:static;display:block;min-height:0;height:auto;padding:0}
.showreel-media .manifesto-stage p{font-size:clamp(36px,3.4vw,48px);line-height:1.12;letter-spacing:-.02em;max-width:none}
@media(max-width:768px){
 .showreel-media{height:75svh;min-height:560px}
 .showreel-media>video{height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
 .showreel-media .manifesto{left:24px;right:24px;bottom:32px;width:auto}
 .showreel-media .manifesto-stage p{font-size:32px;line-height:1.12}
 .showreel-media .manifesto::before{inset:-112px -24px -32px;background:linear-gradient(to bottom,transparent,rgba(16,24,40,.94) 112px,rgba(16,24,40,.94));mask-image:none}
}
@media(prefers-reduced-motion:reduce){.showreel-media .manifesto .word{color:var(--ink)}.showreel-media .manifesto-stage{position:static;padding:0;min-height:0}}

/* Real supplied reference frames give each film a larger visual world. */
.film-gallery{position:relative;overflow:hidden;background:var(--navy);padding-block:64px 112px}
.film-gallery-original{background:#000;padding-bottom:128px}
.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px;font:700 24px/1.2 var(--display)}
.gallery-caption .metadata{font-size:12px;color:var(--muted);font-weight:400}
.portrait-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%}
.editorial-frame{margin:0;min-width:0;position:relative}
.editorial-frame img{display:block;width:100%;height:auto;border-radius:0}
.portrait-panel{overflow:hidden;background:#000}
.portrait-panel img{width:100%;height:auto;aspect-ratio:1856/2304;object-fit:contain;object-position:center}
.film-gallery-someone .portrait-panel img{aspect-ratio:9/16}
.editorial-still-pair{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:64px;margin-top:160px;padding-right:var(--space)}
.editorial-still-pair .still-landscape{margin-left:calc(-1*var(--space));width:calc(100% + var(--space));margin-top:64px}
.editorial-still-pair .still-landscape img{width:100%;height:auto}
.editorial-still-pair .still-detail{margin-top:-64px;margin-right:calc(-1*var(--space));width:calc(100% + var(--space))}
.editorial-still-pair .still-detail:not(.still-vertical){margin-top:-32px}
.editorial-still-pair .still-detail img{width:100%;height:auto}
.film-gallery-original .editorial-still-pair{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:80px;margin-top:160px}
.film-gallery-original .still-landscape{margin-top:112px}
/* Perimeter frames have no card, border or floating label over the image. */
@media(min-width:1250px){
 .hero-contact-original{left:-24px;top:14%;width:clamp(150px,13vw,210px)}
 .hero-contact-someone{right:-24px;bottom:20%;width:clamp(150px,12vw,190px)}
 .hero-contact-frame img{aspect-ratio:auto;height:auto;object-fit:contain}
 .hero-contact-original>span{padding-left:40px}
 .hero-contact-someone>span{padding-right:40px;text-align:right}
}
@media(max-width:1000px){.editorial-still-pair{gap:32px}.film-gallery-original .editorial-still-pair{gap:40px}}
@media(max-width:768px){
 .film-gallery,.film-gallery-original{padding-block:48px 64px}
 .gallery-caption{font-size:20px;margin-bottom:24px}.gallery-caption .metadata{font-size:11px}
 .portrait-triptych{gap:0;grid-template-columns:repeat(3,minmax(0,1fr))}
 .portrait-panel img{height:auto;aspect-ratio:1856/2304;object-fit:contain}
 .film-gallery-someone .portrait-panel img{aspect-ratio:9/16}
 .editorial-still-pair,.film-gallery-original .editorial-still-pair{display:grid;grid-template-columns:1fr;gap:32px;margin-top:64px;padding:0}
 .editorial-still-pair .still-landscape,.film-gallery-original .still-landscape{margin:0 0 0 -24px;width:calc(100% + 24px)}
 .editorial-still-pair .still-detail,.editorial-still-pair .still-detail:not(.still-vertical){margin:-16px -24px 0 auto;width:82%}
 .editorial-still-pair .still-vertical{width:64%;margin-top:-16px}
}

/* 29 October: clean editorial separation, never shading over the film. */
.sequence-caption::before{content:none!important}
.sequence-end-dissolve{display:none!important}
@media(prefers-reduced-motion:no-preference){
 .film-stage{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);grid-template-rows:100%;background:var(--navy)}
 .film-picture{grid-column:2;grid-row:1;position:relative;inset:auto;align-self:stretch;height:100%;background:#000}
 .sequence-caption{grid-column:1;grid-row:1;position:relative;inset:auto;width:auto;max-width:none;padding:40px var(--space);align-self:center;isolation:auto}
 .sequence-caption-header{margin-bottom:32px}
 .sequence-copy-stack{min-height:240px}
 .sequence-copy{font-size:clamp(28px,2.5vw,40px)}
 .sequence-title{font-size:clamp(36px,3.3vw,48px)}
}
@media(max-width:768px) and (prefers-reduced-motion:no-preference){
 .film-stage{grid-template-columns:100%;grid-template-rows:46% 54%}
 .film-picture{grid-column:1;grid-row:1}
 .sequence-caption{grid-column:1;grid-row:2;align-self:start;padding:28px 24px 20px;inset:auto;width:auto;max-width:none}
 .sequence-caption-header{margin-bottom:24px}
 .sequence-copy-stack{min-height:152px}
 .sequence-copy{font-size:32px;line-height:1.1}
 .sequence-title{font-size:40px}
 .sequence-action{margin-top:16px}
}
@media(max-width:768px) and (max-height:700px) and (prefers-reduced-motion:no-preference){
 .film-stage{grid-template-rows:40% 60%}
 .sequence-caption{padding-top:20px}
 .sequence-caption-header{margin-bottom:16px}
 .sequence-copy-stack{min-height:128px}
 .sequence-copy{font-size:28px}
 .sequence-title{font-size:36px}
}

/* Masked line choreography: rise into view, lower out, no opacity fade. */
.sequence-caption-body,.sequence-caption.is-changing .sequence-caption-body{opacity:1;transition:none}
.sequence-beat{opacity:1;transition:none}
.sequence-beat:not(.is-active):not(.is-leaving){visibility:hidden}
.sequence-line-mask{display:block;overflow:clip;padding-block:.09em;margin-block:-.09em}
.sequence-line{display:block;white-space:nowrap;transform:translateY(120%);transition:transform 360ms cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--line-index)*55ms)}
.sequence-beat.is-active .sequence-line{transform:translateY(0)}
.sequence-beat.is-leaving .sequence-line{transform:translateY(120%);transition-duration:220ms;transition-delay:calc(var(--line-index)*45ms);transition-timing-function:cubic-bezier(.55,0,1,.45)}
@media(prefers-reduced-motion:reduce){.sequence-line{transform:none!important;transition:none!important}.sequence-line-mask{overflow:visible}}
