/* NUVOR — cinematic homepage layer
   Deliberately isolated from service/detail templates. */

:root {
    --cinema-red: #c30d18;
    --cinema-red-deep: #770009;
    --cinema-ink: #050506;
    --cinema-panel: #0a0a0c;
    --cinema-line: rgba(255,255,255,.12);
    --cinema-muted: #a4a4ab;
    --cinema-ease: cubic-bezier(.16, 1, .3, 1);
}

body:has(.cinema-hero) { background: var(--cinema-ink); }
body:has(.cinema-hero) main { overflow: clip; }
body:has(.cinema-hero) .nav { padding-top: 1.45rem; padding-bottom: 1.45rem; }
body:has(.cinema-hero) .nav.scrolled { padding-top: .72rem; padding-bottom: .72rem; background: rgba(4,4,5,.84); }
body:has(.cinema-hero) .nav-logo-img { height: 35px; }
body:has(.cinema-hero) .footer { background: #060607; }
body:has(.cinema-hero) .nav-links a.is-current { color: #fff; }
body:has(.cinema-hero) .nav-links a.is-current::after { width: 100%; }

/* Branded load intro */
.nuvor-loader {
    position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center;
    background: #030304; color: #fff; overflow: hidden;
    transition: opacity .75s var(--cinema-ease), visibility .75s, transform .9s var(--cinema-ease);
    animation: loader-fallback 0s 5s forwards;
}
.nuvor-loader.is-leaving { opacity: 0; visibility: hidden; transform: scale(1.025); pointer-events: none; }
.nuvor-loader.is-gone { display: none; }
.loader-mark { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.loader-mark img { width: clamp(72px, 8vw, 112px); height: auto; filter: drop-shadow(0 0 28px rgba(195,13,24,.22)); animation: loader-mark-in .9s .1s var(--cinema-ease) both; }
.loader-mark span, .loader-index { font: 500 .48rem/1 var(--font-display); letter-spacing: .35em; text-transform: uppercase; }
.loader-mark span { color: rgba(255,255,255,.66); animation: fade-up .7s .38s var(--cinema-ease) both; }
.loader-index { position: absolute; left: var(--pad-x); bottom: 2rem; color: #5f5f66; }
.loader-line { position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: rgba(255,255,255,.06); overflow: hidden; }
.loader-line i { display: block; width: 100%; height: 100%; background: var(--cinema-red); transform-origin: left; animation: loader-progress 1.45s .1s var(--cinema-ease) both; }
body.is-loading { overflow: hidden; }
@keyframes loader-mark-in { from { opacity: 0; transform: scale(.74) rotate(-7deg); filter: blur(8px); } to { opacity: 1; transform: none; filter: drop-shadow(0 0 28px rgba(195,13,24,.22)); } }
@keyframes loader-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes loader-fallback { to { visibility: hidden; pointer-events: none; } }

.section-shell { width: min(100%, 1540px); margin-inline: auto; padding: clamp(6rem, 10vw, 10rem) var(--pad-x); }
.eyebrow {
    font: 600 .6rem/1.2 var(--font-display); color: var(--cinema-red);
    letter-spacing: .34em; text-transform: uppercase;
}
.eyebrow i { display: inline-block; width: 30px; height: 1px; margin: 0 .8rem .2rem; background: currentColor; }
.section-coordinate { display: flex; align-items: center; gap: 1rem; margin-bottom: clamp(3rem, 6vw, 6rem); color: #66666d; }
.section-coordinate span { font: 500 .51rem/1 var(--font-display); letter-spacing: .25em; }
.section-coordinate i { display: block; width: 44px; height: 1px; background: currentColor; opacity: .5; }
.section-coordinate.light { color: rgba(255,255,255,.55); }
.editorial-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); gap: 4rem; align-items: end; margin-bottom: 4rem; }
.editorial-head h2,
.process-content h2,
.sector-stage-content h2,
.voices h2,
.cinematic-cta h2,
.contact-editorial h2 {
    margin-top: 1.15rem; font: 700 clamp(2.4rem, 5.7vw, 6.8rem)/1 var(--font-body);
    letter-spacing: -.055em; text-transform: uppercase;
}
.editorial-head h2 em,
.process-content h2 em,
.sector-stage-content h2 em,
.voices h2 em,
.cinematic-cta h2 em,
.contact-editorial h2 em {
    display: inline-block; max-width: 100%; box-sizing: border-box;
    margin-top: .11em; padding: .025em .11em .075em; line-height: 1.02;
    background: linear-gradient(100deg, #a6000a, #c30d18);
    color: #fff; -webkit-text-stroke: 0; font-style: normal; letter-spacing: -.035em;
    box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.editorial-head > p { max-width: 430px; color: var(--cinema-muted); font-size: clamp(.9rem, 1.15vw, 1.08rem); font-weight: 300; line-height: 1.8; }

/* Hero */
.cinema-hero { position: relative; min-height: 100svh; height: max(780px, 100svh); overflow: clip; isolation: isolate; }
.cinema-hero-media,
.cinema-hero-shade,
.cinema-grid { position: absolute; inset: 0; }
.cinema-hero-media { z-index: -3; overflow: hidden; }
.cinema-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% center; transform: scale(1.055); animation: hero-settle 2.2s var(--cinema-ease) both; }
@keyframes hero-settle { from { opacity: 0; transform: scale(1.14); } to { opacity: 1; transform: scale(1.055); } }
.cinema-hero-shade { z-index: -2; background: linear-gradient(90deg, rgba(2,2,3,.95) 0%, rgba(2,2,3,.78) 31%, rgba(2,2,3,.18) 64%, rgba(2,2,3,.18) 100%), linear-gradient(0deg, #050506 0%, transparent 26%, rgba(0,0,0,.2) 100%); }
.cinema-grid { z-index: -1; opacity: .26; background: linear-gradient(90deg, transparent calc(25% - 1px), rgba(255,255,255,.09) 25%, transparent calc(25% + 1px), transparent calc(50% - 1px), rgba(255,255,255,.08) 50%, transparent calc(50% + 1px), transparent calc(75% - 1px), rgba(255,255,255,.08) 75%, transparent calc(75% + 1px)); }
.cinema-hero-copy { position: absolute; z-index: 2; left: var(--pad-x); top: 50%; width: min(810px, 58vw); transform: translateY(-48%); }
.hero-eyebrow { margin-bottom: 1.9rem; opacity: 0; animation: fade-up .8s .35s var(--cinema-ease) forwards; }
.cinema-title { font: 800 clamp(4.4rem, 8.4vw, 9.5rem)/.76 var(--font-body); letter-spacing: -.075em; text-transform: uppercase; }
.title-line { display: block; overflow: hidden; padding: .05em .02em .1em; margin: 0; }
.title-line > span { display: block; transform: translateY(110%); animation: title-in 1.1s .25s var(--cinema-ease) forwards; }
.title-line:nth-child(2) > span { animation-delay: .38s; }
.title-line-outline { margin-top: .04em; color: #fff; -webkit-text-stroke: 0; font-size: .81em; line-height: .98; }
.title-line-outline > span {
    display: inline-block; width: fit-content; max-width: 100%; padding: .025em .075em .075em;
    background: linear-gradient(100deg, #a6000a, #c30d18);
    color: #fff; -webkit-text-stroke: 0; letter-spacing: -.055em;
}
@keyframes title-in { to { transform: translateY(0); } }
@keyframes fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.hero-copy-row { display: grid; grid-template-columns: minmax(220px, 390px) 1fr; align-items: end; gap: 3.5rem; margin-top: 2rem; opacity: 0; animation: fade-up .9s .72s var(--cinema-ease) forwards; }
.hero-copy-row > p { max-width: 390px; color: #b8b8be; font-size: clamp(.88rem, 1.2vw, 1.08rem); font-weight: 300; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 1.7rem; flex-wrap: wrap; }
.cinema-hero .btn,
.cinematic-cta .btn { min-height: 58px; padding-inline: 1.65rem; background: var(--cinema-red); border-color: var(--cinema-red); }
.cinema-hero .btn:hover,
.cinematic-cta .btn:hover { background: #e1111f; border-color: #e1111f; }
.text-link { position: relative; display: inline-flex; align-items: center; gap: .9rem; padding: .75rem 0; color: #f2f2f4; text-decoration: none; font: 600 .57rem/1.2 var(--font-display); letter-spacing: .17em; text-transform: uppercase; }
.text-link::after { content: ''; position: absolute; left: 0; bottom: .35rem; width: 100%; height: 1px; background: currentColor; transform-origin: right; transition: transform .45s var(--cinema-ease); }
.text-link:hover::after { transform: scaleX(0); }
.text-link span { color: var(--cinema-red); }
.hero-metrics { position: absolute; z-index: 2; right: var(--pad-x); bottom: 3.4rem; display: flex; gap: clamp(1.4rem, 3vw, 4.5rem); }
.metric { min-width: 105px; border-left: 1px solid rgba(255,255,255,.22); padding-left: 1rem; }
.metric strong { display: block; font: 500 1.5rem/1 var(--font-display); color: #fff; }
.metric span { display: block; max-width: 100px; margin-top: .5rem; color: #84848b; font: 500 .48rem/1.45 var(--font-display); text-transform: uppercase; letter-spacing: .13em; }
.cinema-hero-index { position: absolute; z-index: 2; top: 50%; right: 1.4rem; display: flex; gap: 1.5rem; writing-mode: vertical-rl; color: rgba(255,255,255,.35); font: 500 .45rem/1 var(--font-display); letter-spacing: .18em; }
.scroll-cue { position: absolute; z-index: 3; left: var(--pad-x); bottom: 3rem; display: flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.48); text-decoration: none; font: 500 .47rem/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase; }
.scroll-cue span { display: block; width: 1px; height: 36px; background: rgba(255,255,255,.24); position: relative; overflow: hidden; }
.scroll-cue span::after { content: ''; position: absolute; left: 0; top: -100%; width: 1px; height: 100%; background: var(--cinema-red); animation: scroll-pulse 1.8s ease-in-out infinite; }
@keyframes scroll-pulse { 60%,100% { top: 100%; } }

/* ticker */
.signal-ticker { overflow: hidden; border-block: 1px solid rgba(255,255,255,.09); background: #070708; }
.signal-track { display: flex; width: max-content; animation: signal-run 55s linear infinite; }
.signal-track span { display: inline-flex; align-items: center; gap: 2.1rem; padding: 1.1rem 1.15rem; color: #77777d; white-space: nowrap; font: 500 .54rem/1 var(--font-display); letter-spacing: .23em; text-transform: uppercase; }
.signal-track i { width: 4px; height: 4px; transform: rotate(45deg); background: var(--cinema-red); }
@keyframes signal-run { to { transform: translateX(-50%); } }

/* manifesto */
.manifesto { position: relative; }
.manifesto::before { content: ''; position: absolute; top: 0; right: 13%; width: 1px; height: 100%; background: linear-gradient(transparent, rgba(255,255,255,.08), transparent); pointer-events: none; }
.manifesto-lead { max-width: 1180px; margin-bottom: clamp(4rem, 8vw, 8rem); }
.manifesto-lead h2 { margin-top: 1.4rem; font: 400 clamp(2.5rem, 5.4vw, 6.2rem)/1.02 var(--font-body); letter-spacing: -.045em; text-transform: uppercase; }
.manifesto-lead h2 em { color: #6f6f76; font-style: normal; }
.craft-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: clamp(2.5rem, 7vw, 8rem); align-items: center; }
.craft-media { position: relative; min-height: 690px; overflow: hidden; }
.parallax-frame { position: absolute; inset: -6%; }
.parallax-frame img { width: 100%; height: 100%; object-fit: cover; }
.craft-media::after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.1); pointer-events: none; }
.craft-media figcaption { position: absolute; z-index: 2; left: 1.5rem; bottom: 1.5rem; color: rgba(255,255,255,.72); font: 500 .53rem/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase; }
.craft-media figcaption span { margin-right: 1rem; color: var(--cinema-red); }
.craft-copy > p { max-width: 560px; color: #929299; font-size: 1rem; font-weight: 300; line-height: 1.9; }
.craft-copy .craft-intro { margin-bottom: 1.3rem; color: #e4e4e7; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.45; }
.craft-values { margin-top: 3rem; border-top: 1px solid var(--cinema-line); }
.craft-values article { display: grid; grid-template-columns: 38px 120px 1fr; gap: 1rem; align-items: baseline; padding: 1.25rem 0; border-bottom: 1px solid var(--cinema-line); }
.craft-values article > span { color: var(--cinema-red); font: 500 .52rem/1 var(--font-display); }
.craft-values h3 { font: 600 .7rem/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.craft-values p { color: #77777e; font-size: .8rem; font-weight: 300; line-height: 1.5; }

/* services */
.expertise { background: #080809; max-width: none; width: 100%; }
.expertise > * { max-width: 1396px; margin-left: auto; margin-right: auto; }
.cinematic-filter { justify-content: flex-start; gap: 0; margin-bottom: 3rem; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; border-bottom: 1px solid var(--cinema-line); }
.cinematic-filter::-webkit-scrollbar { display: none; }
.cinematic-filter .filter-btn { flex: 0 0 auto; position: relative; padding: 1rem 1.2rem; border: 0; background: transparent; color: #73737a; }
.cinematic-filter .filter-btn::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--cinema-red); transform: scaleX(0); transition: transform .35s var(--cinema-ease); }
.cinematic-filter .filter-btn.active { color: #fff; }
.cinematic-filter .filter-btn.active::after { transform: scaleX(1); }
.editorial-services { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.15rem; }
.editorial-service { grid-column: span 4; min-width: 0; background: transparent; border: 0; overflow: visible; }
.editorial-service:nth-child(7n + 1), .editorial-service:nth-child(7n + 5) { grid-column: span 6; }
.editorial-service:nth-child(7n + 1) figure, .editorial-service:nth-child(7n + 5) figure { aspect-ratio: 16 / 9; }
.editorial-service::after { display: none; }
.editorial-service:hover { transform: none; box-shadow: none; }
.editorial-service.hidden-card { display: none; }
.editorial-service > a { display: block; color: inherit; text-decoration: none; }
.editorial-service figure { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #111; }
.editorial-service figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.75)); transition: opacity .5s; }
.editorial-service img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.7) brightness(.7); transition: transform .9s var(--cinema-ease), filter .7s ease; }
.editorial-service:hover img { transform: scale(1.055); filter: grayscale(0) brightness(.9); }
.service-no, .service-arrow { position: absolute; z-index: 2; top: 1rem; color: rgba(255,255,255,.75); font: 500 .5rem/1 var(--font-display); letter-spacing: .12em; }
.service-no { left: 1rem; }
.service-arrow { display: grid; place-items: center; right: 1rem; width: 35px; height: 35px; border: 1px solid rgba(255,255,255,.22); font-size: .8rem; transition: background .35s, border-color .35s, transform .35s; }
.editorial-service:hover .service-arrow { transform: rotate(45deg); background: var(--cinema-red); border-color: var(--cinema-red); }
.service-copy { padding: 1.25rem .15rem 1.8rem; }
.service-copy > span { color: var(--cinema-red); font: 500 .49rem/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase; }
.service-copy h3 { margin-top: .65rem; font: 600 clamp(1rem, 1.5vw, 1.32rem)/1.25 var(--font-display); letter-spacing: .035em; text-transform: uppercase; }
.service-copy p { max-width: 430px; margin-top: .55rem; color: #7c7c84; font-size: .79rem; font-weight: 300; line-height: 1.65; }

/* selected work carousel */
.work-showcase { padding: clamp(6rem, 10vw, 10rem) 0; background: #050506; overflow: hidden; }
.showcase-header { display: flex; justify-content: space-between; align-items: end; padding-top: 0; padding-bottom: 3.5rem; }
.showcase-header h2 { margin-top: .8rem; font: 700 clamp(2.5rem, 5.5vw, 6.4rem)/.9 var(--font-body); letter-spacing: -.055em; text-transform: uppercase; }
.showcase-header h2 em {
    display: inline-block; margin-left: .08em; padding: .015em .11em .065em;
    background: linear-gradient(100deg, #a6000a, #c30d18);
    color: #fff; -webkit-text-stroke: 0; font-style: normal; letter-spacing: -.035em;
}
.carousel-controls { display: flex; align-items: center; gap: .55rem; }
.carousel-count { min-width: 108px; display: flex; align-items: center; gap: .65rem; margin-right: .8rem; color: #6f6f76; font: 500 .52rem/1 var(--font-display); letter-spacing: .15em; }
.carousel-count span:first-child { color: #fff; }
.carousel-count i { width: 34px; height: 1px; background: var(--cinema-red); }
.carousel-arrow { width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.16); background: transparent; color: #fff; cursor: pointer; font-size: 1rem; transition: background .35s, border-color .35s, transform .35s var(--cinema-ease); }
.carousel-arrow:hover, .carousel-arrow:focus-visible { background: var(--cinema-red); border-color: var(--cinema-red); outline: none; transform: translateY(-2px); }
.carousel-viewport { position: relative; width: calc(100% - var(--pad-x)); margin-left: var(--pad-x); overflow: hidden; cursor: grab; touch-action: pan-y; }
.carousel-viewport.is-dragging { cursor: grabbing; }
.carousel-track { display: flex; align-items: center; gap: clamp(.8rem, 1.4vw, 1.4rem); transition: transform .85s var(--cinema-ease); will-change: transform; }
.carousel-track.is-dragging { transition: none; }
.work-slide { position: relative; flex: 0 0 min(78vw, 1160px); height: clamp(470px, 47vw, 690px); overflow: hidden; opacity: .34; transform: scale(.965); transform-origin: left center; transition: opacity .65s ease, transform .85s var(--cinema-ease); isolation: isolate; }
.work-slide.is-active { opacity: 1; transform: scale(1); }
.work-slide::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0,0,0,.95) 0%, rgba(0,0,0,.45) 32%, transparent 64%); }
.work-slide img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: brightness(.62) saturate(.78); transform: scale(1.025); transition: transform 1.2s var(--cinema-ease), filter .7s; pointer-events: none; user-select: none; }
.work-slide.is-active img { filter: brightness(.82) saturate(.94); transform: scale(1); }
.work-slide figcaption { position: absolute; left: clamp(1.4rem, 3vw, 3rem); right: 1.5rem; bottom: clamp(1.5rem, 3vw, 3rem); max-width: 720px; }
.work-slide figcaption span { color: var(--cinema-red); font: 500 .5rem/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase; }
.work-slide figcaption h3 { margin-top: .8rem; font: 650 clamp(1.4rem, 3vw, 3.1rem)/1.02 var(--font-body); letter-spacing: -.035em; text-transform: uppercase; }
.work-slide figcaption p { max-width: 520px; margin-top: .7rem; color: #a5a5ac; font-size: .86rem; font-weight: 300; }
.carousel-timer { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: rgba(255,255,255,.08); }
.carousel-timer i { display: block; width: 100%; height: 100%; background: var(--cinema-red); transform: scaleX(0); transform-origin: left; }
.carousel-timer i.is-running { animation: carousel-timer 5.5s linear both; }
@keyframes carousel-timer { to { transform: scaleX(1); } }
.carousel-dots { display: flex; align-items: center; gap: .65rem; width: min(100%, 1540px); margin: 1.6rem auto 0; padding-inline: var(--pad-x); }
.carousel-dots button { position: relative; width: 38px; height: 12px; border: 0; padding: 0; background: transparent; cursor: pointer; }
.carousel-dots button::before { content: ''; position: absolute; left: 0; top: 5px; width: 100%; height: 1px; background: rgba(255,255,255,.2); transition: background .3s, transform .3s; }
.carousel-dots button.is-active::before { background: var(--cinema-red); transform: scaleY(2); }

/* process */
.precision-process { position: relative; min-height: 1050px; isolation: isolate; overflow: clip; }
.process-bg, .process-overlay { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.process-bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); }
.process-overlay { z-index: -1; background: linear-gradient(90deg, rgba(3,3,4,.97) 0%, rgba(3,3,4,.88) 43%, rgba(3,3,4,.18) 80%), linear-gradient(0deg, #050506 0%, transparent 22%, rgba(0,0,0,.24) 100%); }
.process-content { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(360px, .7fr); grid-template-areas: "coord coord" "head list"; column-gap: 9vw; align-items: start; }
.process-content .section-coordinate { grid-area: coord; }
.process-content > header { grid-area: head; position: sticky; top: 9rem; }
.process-content h2 { font-size: clamp(3rem, 5.7vw, 6.7rem); }
.process-list { grid-area: list; list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.process-list li { display: grid; grid-template-columns: 54px 1fr; gap: 1.2rem; min-height: 170px; padding: 2.2rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.process-list li > span { color: var(--cinema-red); font: 500 .52rem/1 var(--font-display); letter-spacing: .13em; }
.process-list h3 { font: 600 .9rem/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.process-list p { max-width: 330px; margin-top: .75rem; color: #9999a0; font-size: .88rem; font-weight: 300; line-height: 1.7; }

/* sectors */
.sector-stage { position: relative; min-height: 980px; isolation: isolate; overflow: clip; }
.sector-stage-media, .sector-stage-overlay { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.sector-stage-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); }
.sector-stage-overlay { z-index: -1; background: linear-gradient(180deg, rgba(2,2,3,.3), rgba(2,2,3,.35) 45%, #050506 100%), linear-gradient(90deg, rgba(0,0,0,.78), transparent 66%); }
.sector-stage-content { min-height: 980px; display: flex; flex-direction: column; }
.sector-stage-content header { max-width: 800px; }
.sector-tabs { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: auto; border-top: 1px solid rgba(255,255,255,.2); }
.sector-tabs article { min-height: 260px; padding: 2rem; border-right: 1px solid rgba(255,255,255,.2); background: rgba(4,4,5,.36); backdrop-filter: blur(5px); transition: background .45s var(--cinema-ease), transform .45s var(--cinema-ease); }
.sector-tabs article:first-child { border-left: 1px solid rgba(255,255,255,.2); }
.sector-tabs article:hover { transform: translateY(-12px); background: rgba(4,4,5,.78); }
.sector-tabs article > span { color: var(--cinema-red); font: 500 .5rem/1 var(--font-display); }
.sector-tabs h3 { margin-top: 2.2rem; font: 600 1rem/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.sector-tabs p { max-width: 320px; margin-top: .9rem; color: #aaaab1; font-size: .83rem; font-weight: 300; line-height: 1.65; }
.sector-tabs a { display: inline-block; margin-top: 1.4rem; color: #fff; text-decoration: none; font: 500 .49rem/1 var(--font-display); letter-spacing: .15em; text-transform: uppercase; }

/* distinction */
.distinction-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--cinema-line); border-left: 1px solid var(--cinema-line); }
.distinction-grid article { position: relative; min-height: 430px; padding: 1.5rem; border-right: 1px solid var(--cinema-line); border-bottom: 1px solid var(--cinema-line); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; isolation: isolate; }
.distinction-grid article::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0,0,0,.96), rgba(0,0,0,.1) 70%); }
.distinction-grid img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) brightness(.55); transition: transform .8s var(--cinema-ease), filter .6s; }
.distinction-grid article:hover img { transform: scale(1.06); filter: grayscale(.2) brightness(.7); }
.distinction-grid article > span { position: absolute; top: 1.4rem; left: 1.4rem; color: var(--cinema-red); font: 500 .5rem/1 var(--font-display); }
.distinction-grid h3 { font: 600 .78rem/1.3 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.distinction-grid p { margin-top: .7rem; color: #95959c; font-size: .78rem; font-weight: 300; line-height: 1.6; }

/* voices */
.voices { background: #080809; max-width: none; width: 100%; }
.voices > * { max-width: 1396px; margin-left: auto; margin-right: auto; }
.voices header { max-width: 900px; margin-bottom: 4rem; }
.voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--cinema-line); border-left: 1px solid var(--cinema-line); }
.voice-grid blockquote { min-height: 330px; padding: clamp(1.5rem, 3vw, 2.8rem); border-right: 1px solid var(--cinema-line); border-bottom: 1px solid var(--cinema-line); display: flex; flex-direction: column; }
.voice-grid .stars { color: var(--cinema-red); letter-spacing: .18em; }
.voice-grid blockquote > p { margin: 2rem 0; color: #d5d5da; font-size: clamp(1.05rem, 1.7vw, 1.4rem); font-weight: 300; line-height: 1.55; }
.voice-grid footer { margin-top: auto; }
.voice-grid footer strong, .voice-grid footer span { display: block; font: 600 .55rem/1.4 var(--font-display); letter-spacing: .14em; text-transform: uppercase; }
.voice-grid footer span { margin-top: .4rem; color: #6f6f76; font-weight: 500; }

/* CTA */
.cinematic-cta { position: relative; min-height: min(850px, 92svh); display: flex; align-items: center; isolation: isolate; overflow: clip; }
.cinematic-cta-media, .cinematic-cta-shade { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.cinematic-cta-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.08); }
.cinematic-cta-shade { z-index: -1; background: linear-gradient(90deg, rgba(2,2,3,.96) 0%, rgba(2,2,3,.74) 42%, rgba(2,2,3,.12) 79%), linear-gradient(0deg, rgba(0,0,0,.65), transparent); }
.cinematic-cta-copy { width: min(900px, 70vw); padding: 6rem var(--pad-x); }
.cinematic-cta-copy > p:not(.eyebrow) { max-width: 500px; margin: 2rem 0; color: #a2a2a9; font-size: 1rem; font-weight: 300; }
.cinematic-cta .cta-actions { display: flex; gap: 1.8rem; align-items: center; flex-wrap: wrap; }

/* contact */
.contact-editorial-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, .72fr); gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.contact-lines { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 4rem; border-top: 1px solid var(--cinema-line); padding-top: 1.5rem; }
.contact-lines span { color: var(--cinema-red); font: 500 .49rem/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase; }
.contact-lines p { margin-top: .7rem; color: #929299; font-size: .78rem; font-weight: 300; line-height: 1.65; }
.contact-lines a { color: inherit; text-decoration: none; }
.contact-form-wrap .lead-form { padding: clamp(1.7rem, 3vw, 2.7rem); background: #0a0a0c; border: 1px solid var(--cinema-line); }
.contact-form-wrap .lead-form h3 { font-size: .82rem; }
.contact-form-wrap input,
.contact-form-wrap select,
.contact-form-wrap textarea { border-color: rgba(255,255,255,.12); background: #070708; }
.contact-form-wrap input:focus,
.contact-form-wrap select:focus,
.contact-form-wrap textarea:focus { border-color: var(--cinema-red); }
.cinematic-map { height: 440px; filter: grayscale(1) invert(.9) contrast(.9); opacity: .7; transition: filter .5s, opacity .5s; }
.cinematic-map:hover { filter: grayscale(.35) invert(.88) contrast(.9); opacity: .9; }

/* scroll reveal */
[data-reveal] { opacity: 0; transition: opacity .85s var(--cinema-ease), transform .95s var(--cinema-ease), clip-path 1.1s var(--cinema-ease); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, transform; }
[data-reveal="up"] { transform: translateY(48px); }
[data-reveal="left"] { transform: translateX(48px); }
[data-reveal="clip"] { transform: scale(.965); }
[data-reveal].is-visible { opacity: 1; transform: none; clip-path: inset(0); }

@media (max-width: 1180px) {
    .cinema-hero-copy { width: min(790px, 76vw); }
    .cinema-title { font-size: clamp(4rem, 9.2vw, 8rem); }
    .cinema-hero-shade { background: linear-gradient(90deg, rgba(2,2,3,.93), rgba(2,2,3,.63) 54%, rgba(2,2,3,.2)), linear-gradient(0deg, #050506, transparent 34%); }
    .hero-metrics { right: var(--pad-x); }
    .editorial-service { grid-column: span 6; }
    .editorial-service:nth-child(7n + 1), .editorial-service:nth-child(7n + 5) { grid-column: span 6; }
    .distinction-grid { grid-template-columns: repeat(2, 1fr); }
    .process-content { column-gap: 5vw; }
}

@media (max-width: 820px) {
    body:has(.cinema-hero) .nav { padding-top: 1rem; padding-bottom: 1rem; }
    body:has(.cinema-hero) .nav-logo-img { height: 29px; }
    .section-shell { padding-top: 6.5rem; padding-bottom: 6.5rem; }
    .section-coordinate { margin-bottom: 3.5rem; }
    .editorial-head { grid-template-columns: 1fr; gap: 1.7rem; }
    .cinema-hero { height: auto; min-height: 820px; }
    .cinema-hero-media img { object-position: 63% center; }
    .cinema-hero-shade { background: linear-gradient(90deg, rgba(2,2,3,.88), rgba(2,2,3,.35)), linear-gradient(0deg, #050506 0%, rgba(2,2,3,.7) 32%, rgba(2,2,3,.2) 72%, rgba(2,2,3,.65)); }
    .cinema-grid, .cinema-hero-index { display: none; }
    .cinema-hero-copy { left: var(--pad-x); right: var(--pad-x); top: 43%; width: auto; transform: translateY(-50%); }
    .cinema-title { font-size: clamp(3.3rem, 14vw, 6.2rem); line-height: .82; }
    .cinema-title .title-line-outline { font-size: .74em; letter-spacing: 0; }
    .hero-copy-row { grid-template-columns: 1fr; gap: 1.5rem; }
    .hero-actions { gap: 1.2rem; }
    .hero-metrics { left: var(--pad-x); right: var(--pad-x); bottom: 2.8rem; justify-content: space-between; gap: 1rem; }
    .metric { min-width: 0; }
    .scroll-cue { display: none; }
    .craft-grid { grid-template-columns: 1fr; }
    .craft-media { min-height: 580px; }
    .craft-copy { max-width: 680px; }
    .process-content { display: block; }
    .process-content > header { position: static; margin-bottom: 3.5rem; }
    .process-list { max-width: 560px; margin-left: auto; }
    .precision-process, .sector-stage, .sector-stage-content { min-height: 900px; }
    .sector-tabs { grid-template-columns: 1fr; }
    .sector-tabs article { min-height: 0; padding: 1.4rem; border-left: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
    .sector-tabs h3 { margin-top: 1.1rem; }
    .sector-tabs article:hover { transform: none; }
    .voice-grid { grid-template-columns: 1fr; }
    .contact-editorial-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .section-shell { padding-top: 5.5rem; padding-bottom: 5.5rem; }
    .section-coordinate { margin-bottom: 2.7rem; }
    .editorial-head h2, .process-content h2, .sector-stage-content h2, .voices h2, .cinematic-cta h2, .contact-editorial h2 { font-size: clamp(2.55rem, 12vw, 4.3rem); }
    .cinema-hero { min-height: 760px; }
    .cinema-hero-copy { top: 40%; }
    .hero-eyebrow { max-width: 280px; line-height: 1.8; }
    .cinema-title { font-size: clamp(3.05rem, 16vw, 5.2rem); }
    .cinema-title .title-line-outline { font-size: .67em; letter-spacing: 0; }
    .hero-copy-row { margin-top: 1.5rem; }
    .hero-copy-row > p { max-width: 320px; font-size: .84rem; }
    .hero-actions { width: 100%; min-width: 0; flex-direction: column; align-items: flex-start; gap: .55rem; }
    .cinema-hero .btn { min-height: 52px; width: min(100%, 252px); padding-inline: 1.25rem; }
    .hero-actions .text-link { font-size: .51rem; }
    .hero-metrics { bottom: 1.8rem; }
    .metric { padding-left: .65rem; }
    .metric strong { font-size: 1.05rem; }
    .metric span { font-size: .39rem; letter-spacing: .09em; }
    .manifesto-lead h2 { font-size: clamp(2.2rem, 10.8vw, 3.7rem); }
    .craft-media { min-height: 430px; }
    .craft-values article { grid-template-columns: 28px 92px 1fr; gap: .55rem; }
    .craft-values p { font-size: .72rem; }
    .cinematic-filter { margin-inline: calc(-1 * var(--pad-x)); padding-left: var(--pad-x); }
    .editorial-services { display: block; }
    .editorial-service { margin-bottom: 1.5rem; }
    .editorial-service figure,
    .editorial-service:nth-child(7n + 1) figure,
    .editorial-service:nth-child(7n + 5) figure { aspect-ratio: 4 / 3; }
    .work-showcase { padding-block: 5.5rem; }
    .showcase-header { display: block; }
    .showcase-header h2 em { margin-left: 0; letter-spacing: -.035em; }
    .carousel-controls { margin-top: 2rem; }
    .carousel-count { margin-right: auto; }
    .carousel-arrow { width: 44px; height: 44px; }
    .carousel-viewport { width: calc(100% - var(--pad-x)); }
    .work-slide { flex-basis: calc(100vw - (var(--pad-x) * 2)); height: min(128vw, 560px); }
    .work-slide figcaption { max-width: calc(100% - 2rem); }
    .work-slide figcaption h3 { font-size: clamp(1.45rem, 7.5vw, 2.4rem); }
    .work-slide figcaption p { font-size: .78rem; }
    .precision-process { min-height: 940px; }
    .process-bg img { object-position: 58% center; }
    .process-overlay { background: linear-gradient(180deg, rgba(3,3,4,.72), rgba(3,3,4,.92) 54%, #050506); }
    .process-list { margin-top: 2.5rem; }
    .process-list li { min-height: 140px; padding: 1.7rem 0; }
    .sector-stage, .sector-stage-content { min-height: 940px; }
    .sector-stage-media img { object-position: 60% center; }
    .sector-stage-overlay { background: linear-gradient(180deg, rgba(2,2,3,.34), rgba(2,2,3,.7) 45%, #050506 76%); }
    .distinction-grid { grid-template-columns: 1fr; }
    .distinction-grid article { min-height: 390px; }
    .cinematic-cta { min-height: 760px; align-items: flex-end; }
    .cinematic-cta-media img { object-position: 68% center; }
    .cinematic-cta-shade { background: linear-gradient(0deg, rgba(2,2,3,.98), rgba(2,2,3,.78) 48%, rgba(2,2,3,.12)); }
    .cinematic-cta-copy { width: 100%; padding-top: 7rem; padding-bottom: 5.5rem; }
    .cinematic-cta .btn { width: auto; }
    .contact-lines { grid-template-columns: 1fr; gap: 1.5rem; }
    .contact-lines div { padding-bottom: 1.2rem; border-bottom: 1px solid var(--cinema-line); }
    .cinematic-map { height: 340px; }
}

@media (prefers-reduced-motion: reduce) {
    .cinema-hero-media img, .title-line > span, .hero-eyebrow, .hero-copy-row { animation: none; opacity: 1; transform: none; }
    .signal-track { animation-play-state: paused; }
    [data-reveal] { opacity: 1; transform: none; clip-path: none; transition: none; }
    .scroll-cue span::after { animation: none; }
}
