/* Shared reading hierarchy: existing families, palette and cultural assets retained. */
:root{--type-section:clamp(32px,4vw,56px);--type-card:clamp(20px,2vw,26px);--type-intro:clamp(21px,2.6vw,32px);--type-body:clamp(16px,1.2vw,18px);--type-meta:14px;--type-control:14px;--reading-width:65ch;--text-gap:24px}
body.v2 :is(.v2-head,.about-copy,.partners-head,.contact-intro,.archive-group,.legal) h2{font-size:var(--type-section);line-height:1.12;letter-spacing:-.035em;margin-bottom:var(--text-gap)}
body.v2 :is(.work-caption,.practice-list,.career-list) h3,body.v2 .practice-list summary{font-size:var(--type-card);line-height:1.25}
body.v2 :is(.intro-text,.about-copy .lead){font-size:var(--type-intro);line-height:1.5;max-width:var(--reading-width);text-align:left}
body.v2 :is(.about-copy,.bk-body,.partners-head,.contact-intro,.v2-head,.project-details) p{font-size:var(--type-body);line-height:1.65;max-width:var(--reading-width);text-align:left}
body.v2 :is(.work-summary,.card-credits p,.photos-credit,.work-caption>span,.mono-label,.af-label){font-size:var(--type-meta);line-height:1.55}
body.v2 :is(.filters button,.filters a,.btn,.media-action){font-size:var(--type-control)}
body.v2 .v2-head h2 br,body.v2 .photos-head h2 br{display:none}body.v2 .v2-head h2 em:before{content:' '}
body.v2 .filters a{display:inline-flex;align-items:center;padding:12px 16px;min-height:44px;border:1px solid var(--line);border-radius:999px}
body.v2 .film:not(.is-full) .film-controls{visibility:hidden;opacity:0;pointer-events:none}
body.v2 .film-portrait{aspect-ratio:9/16;max-width:540px;margin-inline:auto;background:transparent}
body.v2 .film-portrait .media-button{aspect-ratio:9/16}body.v2 .film-portrait .film-video{object-fit:contain}

/* Large blur surfaces and continuous transforms are replaced with a stable translucent tint. */
body.v2 :is(.v2-intro,.v2-work,.v2-practice,.v2-photos,.v2-classes,.v2-about,.v2-partners,.v2-cta,.v2-contact){backdrop-filter:none;-webkit-backdrop-filter:none;background-color:rgba(17,19,22,.88)}
body.v2 .photos-rail .ph{filter:none!important;transform:none!important}
/* Partner strip: retain the two equal rows for a continuous loop. */
body.v2 .credit-marquee{overflow:hidden}
body.v2 .credit-band .credit-row{animation:credit-slide 46s linear infinite;flex-wrap:nowrap}
body.v2 .credit-band .credit-row[aria-hidden=true]{display:flex}
body.v2 .credit-marquee:hover .credit-row{animation-play-state:running}
@media(prefers-reduced-motion:reduce){body.v2 .credit-band .credit-row{animation:credit-slide 120s linear infinite!important}}
body.v2 .work-card{transform:none!important;opacity:1!important}
@media(max-width:700px){body.v2 .v2-head,.about-copy{min-width:0}body.v2 .work-caption h3{overflow-wrap:anywhere}}
body.v2 .v2-header nav{font-size:var(--type-control)}
body.v2 .v2-head,.about-copy,.partners-head{min-width:0}
body.v2 .kinetic{contain:paint}
body.v2 .theater.portrait-project .theater-stage{width:min(100%,calc((100svh - 170px)*.5625));margin-inline:auto;background:transparent}
body.v2 .theater.portrait-project .film-video{width:100%;height:auto;max-height:calc(100svh - 170px);object-fit:contain}
:root{--type-hero:clamp(76px,14.6vw,270px)}
body.v2 .hero-name{font-size:var(--type-hero)}
#hiphop-panel h3{font-size:var(--type-card)}
:root{--type-project-open:clamp(24px,3vw,40px)}
body.v2 .theater-title,body.v2 #project-title{font-size:var(--type-project-open);line-height:1.2}
:root{--weight-body:400;--weight-intro:500;--weight-title:650;--weight-card:600;--weight-control:600}
body.v2 :is(.v2-head,.about-copy,.partners-head,.contact-intro) h2{font-weight:var(--weight-title)}
body.v2 .work-caption h3{font-weight:var(--weight-card)}
body.v2 :is(.intro-text,.about-copy .lead){font-weight:var(--weight-intro)}
body.v2 :is(.filters button,.filters a,.btn){font-weight:var(--weight-control)}
body.v2 .photos-rail{opacity:1!important;transform:none!important;transition:none!important}
body.v2 .film:not(.is-full) .ma-play{opacity:1;transform:none}
/* Keep the cultural artwork without continuous full-viewport compositing. */
body.v2 .maraj .tile,body.v2 .maraj .glow{animation:none;will-change:auto}
body.v2 .maraj .band path{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
body.v2 .sm-med,body.v2 .badge svg.ring{animation:none}
/* Small glass surfaces otherwise sample the moving page behind them on scroll. */
body.v2 :is(.v2-header,.partner,.class-card .cc-back,.watch-link,.btn-ghost,.media-action.ma-play){backdrop-filter:none;-webkit-backdrop-filter:none}

/* QA: allow translated archive copy to wrap inside narrow viewports. */
body.v2 .archive-intro h1{overflow-wrap:anywhere}
body.v2 .library-grid .work-caption>span{white-space:normal;overflow-wrap:anywhere}
/* Preserve the control artwork while meeting the minimum button hit area. */
body.v2 .menu-btn,body.v2 .hero-controls .hero-motion{min-width:44px;min-height:44px}
body.v2 .card-credits summary{min-height:44px}

/* Visitor QA: the portrait's intrinsic width must not widen the mobile biography track. */
@media(max-width:700px){body.v2 .v2-about{grid-template-columns:minmax(0,1fr)}body.v2 .v2-about>.portrait-wrap{min-width:0}}

/* Library cards use the library's declared columns, not home-page spans. */
body.v2 .library-grid>.work-card:nth-child(n){grid-column:auto;margin-top:0}

/* During playback only the video is visible; the poster returns when stopped. */
body.v2 .film.is-full .film-surface>img{opacity:0}
body.v2 .work-card.amb .film.is-full .film-video{background:#000}
body.v2 .work-card.amb .film.is-full::before{opacity:0}
body.v2 #project-commercial .commercial-cover{object-fit:contain}


/* Same capsule geometry, without repainting a clip-path over decoded video each frame.
   Counter-scale the image/video so the original cover crop and proportions stay intact. */
body.v2 .hero-stage .hero-media{clip-path:none;overflow:hidden;will-change:transform;transform:translateZ(0);backface-visibility:hidden}
body.v2 .hero-stage .hero-media>picture,
body.v2 .hero-stage .hero-media>video,
body.v2 .hero-stage .hero-media:after{transform:scale(var(--hero-inverse-x,1),var(--hero-inverse-y,1));transform-origin:center}
