:root {
  --ink: #0b0b0b;
  --ink-2: #121212;
  --ink-3: #1a1a19;
  --paper: #eeeae1;
  --white: #f6f4ef;
  --muted: #a29f98;
  --gold: #c6a15b;
  --gold-soft: #dec78f;
  --line: rgba(255,255,255,.14);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --wide: "Manrope", Arial, sans-serif;
  --shell: min(1360px, calc(100vw - 8vw));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--ink); color: var(--white); font: 400 16px/1.6 var(--sans); font-variant-emoji: text; overflow-x: hidden; }
body.menu-open, body.modal-open { overflow: hidden; }
::selection { background: var(--gold); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }
img { display: block; max-width: 100%; }
h1,h2,h3,p,figure,blockquote { margin: 0; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding-block: clamp(6rem, 12vw, 11rem); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; padding: .8rem 1rem; background: var(--gold); color: var(--ink); transition: top .2s; }
.skip-link:focus { top: 1rem; }

.loader { position: fixed; z-index: 5000; inset: 0; display: grid; place-content: center; justify-items: center; gap: 1.5rem; background: #080808; transition: opacity .7s .15s, visibility .7s .15s; }
.loader.is-done { opacity: 0; visibility: hidden; }
.loader__mark { transform: scale(1.6); }
.loader__track { width: 160px; height: 1px; background: #292929; overflow: hidden; }
.loader__track span { display: block; width: 100%; height: 100%; background: var(--gold); transform: translateX(-100%); animation: loading 1.4s cubic-bezier(.76,0,.24,1) forwards; }
.loader p { color: #777; font-size: .65rem; letter-spacing: .26em; text-transform: uppercase; }
@keyframes loading { to { transform: translateX(0); } }

.scroll-progress { position: fixed; z-index: 1001; top: 0; left: 0; width: 100%; height: 2px; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; }
.cursor-glow { position: fixed; z-index: 0; width: 320px; height: 320px; border-radius: 50%; background: rgba(198,161,91,.05); filter: blur(60px); pointer-events: none; transform: translate(-50%,-50%); }

.site-header { position: fixed; z-index: 1000; top: 0; left: 0; width: 100%; height: 96px; padding: 0 4vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid transparent; transition: height .4s, background .4s, border-color .4s; }
.site-header.is-scrolled { height: 76px; background: rgba(9,9,9,.88); border-color: var(--line); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: .85rem; width: max-content; }
.logo-mark { display: inline-flex; align-items: center; gap: .2rem; font: 500 .82rem/1 var(--wide); letter-spacing: -.05em; }
.logo-mark i { display: block; width: 17px; height: 1px; background: var(--gold); transform: rotate(-58deg); }
.brand__words { display: grid; line-height: 1; text-transform: uppercase; }
.brand__words b { font: 500 .74rem/1 var(--wide); letter-spacing: .09em; }
.brand__words small { margin-top: .36rem; color: #9c9c9c; font-size: .54rem; letter-spacing: .35em; }
.desktop-nav { display: flex; gap: 2.4rem; font-size: .76rem; }
.desktop-nav a { position: relative; color: #d4d2cc; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; bottom: -.45rem; width: 100%; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .3s; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-cta { justify-self: end; display: flex; align-items: center; gap: .85rem; padding: .72rem 1rem .72rem 1.2rem; border: 1px solid rgba(255,255,255,.24); font-size: .72rem; transition: background .3s, color .3s; }
.header-cta span { color: var(--gold); }
.header-cta span,.button b,.text-link span,.service > i { font-family: Arial, Helvetica, sans-serif; font-variant-emoji: text; }
.header-cta:hover { background: var(--white); color: var(--ink); }
.menu-toggle { display: none; justify-self: end; width: 44px; height: 44px; background: transparent; }
.menu-toggle span:not(.sr-only) { position: absolute; width: 22px; height: 1px; right: 10px; background: white; transition: transform .3s; }
.menu-toggle span:first-child { transform: translateY(-4px); }
.menu-toggle span:nth-child(2) { transform: translateY(4px); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: rotate(-45deg); }
.mobile-menu { position: fixed; z-index: 900; inset: 0; display: grid; align-content: center; padding: 8rem 8vw 4rem; background: #0c0c0b; visibility: hidden; opacity: 0; transition: opacity .4s, visibility .4s; }
.mobile-menu.is-open { visibility: visible; opacity: 1; }
.mobile-menu nav { display: grid; }
.mobile-menu nav a { padding: .6rem 0; font: 500 clamp(2.2rem,10vw,5rem)/1.1 var(--serif); border-bottom: 1px solid var(--line); transform: translateY(1rem); opacity: 0; transition: transform .4s, opacity .4s; }
.mobile-menu.is-open nav a { transform: none; opacity: 1; }
.mobile-menu nav a span { color: var(--gold); font: .7rem var(--sans); vertical-align: top; }
.mobile-menu > p { margin-top: 2rem; color: var(--muted); font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; }

.hero { position: relative; min-height: 100svh; overflow: hidden; background: #101616; }
.hero__media, .hero__wash { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: heroIn 1.8s cubic-bezier(.22,1,.36,1) both; }
@keyframes heroIn { from { transform: scale(1.08); filter: brightness(.5); } to { transform: scale(1); filter: brightness(.85); } }
.hero__wash { background: linear-gradient(90deg, rgba(5,7,7,.93) 0%, rgba(5,7,7,.71) 34%, rgba(5,7,7,.12) 66%, rgba(5,7,7,.25) 100%), linear-gradient(0deg, rgba(5,5,5,.72), transparent 45%); }
.hero__content { position: relative; z-index: 2; min-height: 100svh; padding: max(9.5rem,18vh) 0 8rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.eyebrow { display: flex; align-items: center; gap: .8rem; color: #c4c1bb; font-size: .66rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow span { width: 34px; height: 1px; background: var(--gold); }
.hero__eyebrow { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); animation: fadeUp 1s 1.5s both; }
.hero h1 { max-width: 950px; font: 500 clamp(4rem, 8.8vw, 9.5rem)/.83 var(--serif); letter-spacing: -.055em; animation: fadeUp 1s 1.65s both; }
.hero h1 em, h2 em { color: var(--gold-soft); font-weight: 500; }
.hero__lower { width: min(680px, 52vw); margin-top: clamp(2.3rem,5vw,4rem); display: grid; grid-template-columns: 1fr 1.25fr; gap: 3rem; align-items: end; animation: fadeUp 1s 1.8s both; }
.hero__lower > p { color: #c7c6c1; font-size: .95rem; line-height: 1.75; }
.hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.3rem; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
.button { position: relative; min-width: 215px; padding: 1.15rem 1.25rem; display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; overflow: hidden; font-size: .76rem; font-weight: 500; letter-spacing: .03em; }
.button::before { content: ""; position: absolute; inset: 0; background: var(--white); transform: translateY(101%); transition: transform .35s cubic-bezier(.76,0,.24,1); }
.button span,.button b { position: relative; z-index: 1; }
.button b { font-weight: 400; }
.button:hover::before { transform: none; }
.button--gold { background: var(--gold); color: var(--ink); }
.button--gold::before { background: var(--white); }
.button--outline { border: 1px solid #474747; }
.button--outline:hover { color: var(--ink); }
.button--dark { background: var(--ink); color: white; }
.button--dark::before { background: #222; }
.text-link { display: inline-flex; align-items: center; gap: 1rem; padding-bottom: .4rem; background: none; border-bottom: 1px solid #666; font-size: .76rem; transition: color .2s, border-color .2s; }
.text-link span { color: var(--gold); }
.text-link:hover { color: var(--gold-soft); border-color: var(--gold); }
.hero__rail { position: absolute; z-index: 2; bottom: 0; left: 0; width: 100%; min-height: 58px; padding: 0 4vw; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; border-top: 1px solid rgba(255,255,255,.18); color: #aaa; font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; }
.hero__rail span:nth-child(2) { justify-self: center; }
.hero__scroll { justify-self: end; display: flex; align-items: center; gap: .8rem; }
.hero__scroll i { width: 28px; height: 1px; background: var(--gold); animation: pulse 1.4s alternate infinite; }
@keyframes pulse { to { width: 44px; } }

.trust-strip { overflow: hidden; border-block: 1px solid #272727; background: var(--ink-2); }
.ticker { width: 100%; overflow: hidden; }
.ticker__track { width: max-content; padding: 1.4rem 0; display: flex; align-items: center; gap: 3rem; animation: ticker 28s linear infinite; color: #8f8d88; font: 400 .66rem var(--wide); letter-spacing: .23em; text-transform: uppercase; }
.ticker__track i { color: var(--gold); font-size: .56rem; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section-head { padding-bottom: 1.5rem; display: flex; justify-content: space-between; border-bottom: 1px solid #30302f; }
.section-index { color: #777570; font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; }
.intro { background: var(--ink); }
.intro__statement { padding: clamp(3rem,7vw,6.5rem) 0; display: grid; grid-template-columns: 1.5fr .65fr; gap: 8vw; align-items: end; }
.intro__statement h2,.services__title h2,.work__heading h2,.experience h2,.training h2,.cta h2,.contact-modal h2 { font: 500 clamp(3rem,6.5vw,7rem)/.96 var(--serif); letter-spacing: -.045em; }
.intro__statement > div p { margin-bottom: 1.8rem; color: #aaa8a1; font-size: .94rem; }
.intro__statement strong { color: var(--white); font-weight: 500; }
.intro__visual { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 650px; background: var(--ink-2); }
.portrait-card { position: relative; min-height: 650px; overflow: hidden; }
.portrait-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.8), transparent 50%); }
.portrait-card img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.72) contrast(1.05); transition: transform .9s; }
.portrait-card:hover img { transform: scale(1.025); }
.portrait-card figcaption { position: absolute; z-index: 2; left: 2rem; bottom: 2rem; display: grid; }
.portrait-card figcaption span { font: 500 1.4rem var(--serif); }
.portrait-card figcaption small { color: #aaa; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.intro__quote { padding: clamp(3rem,6vw,6rem); display: flex; flex-direction: column; justify-content: space-between; }
.intro__quote blockquote { max-width: 690px; font: 500 clamp(1.8rem,3.3vw,3.65rem)/1.14 var(--serif); color: #d6d1c8; }
.stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.stats div { padding-top: 1.3rem; border-top: 1px solid #343434; display: grid; }
.stats strong { color: var(--gold-soft); font: 500 clamp(2.2rem,4vw,4rem)/1 var(--serif); }
.stats span { color: #85827d; font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }

.services { background: var(--paper); color: var(--ink); }
.services .section-head { border-color: #c9c5bd; }
.services .eyebrow { color: #595751; }
.services__title { padding: clamp(3rem,7vw,6rem) 0; display: grid; grid-template-columns: 1.45fr .55fr; gap: 6vw; align-items: end; }
.services__title h2 em { color: #9b7432; }
.services__title p { color: #69665f; font-size: .92rem; }
.service-list { border-top: 1px solid #bbb6ac; }
.service { position: relative; padding: 2rem 1rem; display: grid; grid-template-columns: .15fr 1.35fr .65fr auto; gap: 1.5rem; align-items: center; border-bottom: 1px solid #bbb6ac; transition: background .35s, padding .35s; }
.service::before { content: ""; position: absolute; inset: 0; background: var(--ink); transform: scaleY(0); transform-origin: bottom; transition: transform .35s; }
.service > * { position: relative; z-index: 1; }
.service:hover { padding-inline: 1.6rem; color: white; }
.service:hover::before { transform: scaleY(1); }
.service__number { color: #9f7940; font-size: .64rem; }
.service h3 { font: 500 clamp(1.5rem,2.5vw,2.6rem) var(--serif); }
.service div p { max-width: 500px; height: 0; color: #9d9d99; font-size: .78rem; opacity: 0; overflow: hidden; transition: height .3s, opacity .3s; }
.service:hover div p { height: 3.2em; opacity: 1; }
.service__tags { color: #716e67; font-size: .65rem; }
.service > i { font-style: normal; color: #9f7940; }

.work { background: var(--ink); }
.work__heading { padding: clamp(3rem,7vw,6rem) 0 3rem; display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.filters { display: flex; flex-wrap: wrap; gap: 1rem; }
.filters button { padding: .35rem 0; background: none; color: #777; border-bottom: 1px solid transparent; font-size: .63rem; text-transform: uppercase; letter-spacing: .08em; }
.filters button.active { color: var(--gold-soft); border-color: var(--gold); }
.work-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.25rem; }
.project { position: relative; min-height: 430px; padding: 0; overflow: hidden; background: #191918; color: white; text-align: left; transition: opacity .35s, transform .35s; }
.project.is-hidden { display: none; }
.project img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); transition: transform 1s cubic-bezier(.16,1,.3,1), filter .6s; }
.project__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.9), transparent 65%); }
.project__meta { position: absolute; left: clamp(1.3rem,3vw,2.7rem); bottom: clamp(1.3rem,3vw,2.7rem); display: grid; gap: .4rem; }
.project__meta small { color: #d2c9b7; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.project__meta strong { font: 500 clamp(1.5rem,2.5vw,2.65rem)/1.05 var(--serif); }
.project > i { position: absolute; top: 1.5rem; right: 1.5rem; padding: .6rem .8rem; background: rgba(8,8,8,.55); border: 1px solid rgba(255,255,255,.3); backdrop-filter: blur(8px); opacity: 0; transform: translateY(-10px); font: normal .62rem var(--sans); transition: .35s; }
.project:hover img { transform: scale(1.045); filter: saturate(1); }
.project:hover > i { opacity: 1; transform: none; }
.project--wide { grid-column: 1; min-height: 580px; }
.project--portrait { grid-column: 2; min-height: 580px; }
.project--portrait img { object-position: 60% center; }
.project--type { padding: 2.6rem; min-height: 500px; }
.project--gold { background: #b68f4d; color: #0c0c0b; }
.project--type .project__meta { left: 2.6rem; }
.project--type .project__meta small { color: #3a2b17; }
.project__glyph { font: 500 clamp(9rem,19vw,20rem)/.75 var(--serif); color: rgba(12,12,11,.12); }
.project__line { position: absolute; width: 70%; height: 1px; top: 42%; left: 15%; background: rgba(0,0,0,.3); transform: rotate(-25deg); }
.project--type > i { background: rgba(255,255,255,.22); border-color: rgba(0,0,0,.25); }
.project--landscape { min-height: 500px; }
.project--landscape img { object-position: center; }
.work__note { margin-top: 1.5rem; color: #777; font-size: .65rem; letter-spacing: .04em; }

.experience { padding-block: clamp(6rem,10vw,10rem); background: #151514; }
.experience__grid { padding: clamp(3rem,7vw,6rem) 0; display: grid; grid-template-columns: 1.4fr .6fr; gap: 5vw; align-items: end; }
.experience__grid p { color: #94918b; }
.client-row { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid #363635; }
.client-row span { min-height: 150px; display: grid; place-items: center; text-align: center; border-right: 1px solid #363635; color: #b5b1aa; font: 500 clamp(1rem,2vw,1.55rem)/1.05 var(--wide); letter-spacing: -.04em; }
.client-row span:last-child { border: 0; font: 400 .65rem/1.6 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.client-row .dna { font-weight: 600; letter-spacing: .02em; }
.client-row .stride { font-weight: 400; letter-spacing: .16em; }

.training { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem,8vw,8rem); align-items: center; }
.training__media { position: relative; height: min(760px,75vw); min-height: 550px; overflow: hidden; }
.training__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.45),transparent 50%); }
.training__media img { width: 100%; height: 100%; object-fit: cover; object-position: 25% center; filter: saturate(.65) contrast(1.04); }
.training__badge { position: absolute; z-index: 1; right: 0; bottom: 0; width: 175px; aspect-ratio: 1; padding: 1.4rem; display: flex; flex-direction: column; justify-content: space-between; background: var(--gold); color: var(--ink); }
.training__badge span,.training__badge i { font: normal .55rem var(--sans); letter-spacing: .15em; text-transform: uppercase; }
.training__badge strong { font: 500 1.5rem/1.05 var(--serif); }
.training__copy > p:not(.eyebrow) { margin: 2rem 0; max-width: 500px; color: #8f8c86; }
.training__copy h2 { margin-top: 1.5rem; }
.training__copy ul { max-width: 580px; margin: 2rem 0 2.5rem; padding: 0; list-style: none; border-top: 1px solid #30302f; }
.training__copy li { padding: 1rem 0; display: flex; gap: 1.5rem; border-bottom: 1px solid #30302f; color: #bbb8b1; font-size: .77rem; }
.training__copy li span { color: var(--gold); font-size: .6rem; }

.testimonials { background: var(--paper); color: var(--ink); }
.testimonials .section-head { border-color: #c9c5bd; }
.testimonials .eyebrow { color: #595751; }
.testimonial { position: relative; min-height: 560px; padding-top: clamp(4rem,8vw,7rem); display: grid; grid-template-columns: .35fr 1.65fr; }
.testimonial__quote { color: #b8904a; font: 500 clamp(9rem,18vw,17rem)/.7 var(--serif); }
.testimonial__slides { position: relative; min-height: 370px; }
.testimonial__slide { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; visibility: hidden; opacity: 0; transform: translateY(24px); transition: opacity .5s, transform .5s, visibility .5s; }
.testimonial__slide.active { visibility: visible; opacity: 1; transform: none; }
.testimonial blockquote { max-width: 950px; font: 500 clamp(2rem,4.5vw,4.7rem)/1.1 var(--serif); letter-spacing: -.03em; }
.testimonial figcaption { display: grid; font-size: .72rem; }
.testimonial figcaption span { color: #89857d; }
.carousel-controls { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: 1rem; }
.carousel-controls button { width: 48px; height: 48px; background: transparent; border: 1px solid #aaa49a; transition: background .2s, color .2s; }
.carousel-controls button:hover { background: var(--ink); color: white; }
.carousel-controls span { font-size: .64rem; color: #777; }
.carousel-controls b { color: var(--ink); }

.cta { position: relative; padding-block: clamp(7rem,14vw,13rem); overflow: hidden; background: var(--gold); color: var(--ink); }
.cta__orb { position: absolute; width: 600px; aspect-ratio: 1; top: -300px; right: -150px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f0deb7, #c49d58 48%, #9d753b); opacity: .68; filter: blur(1px); }
.cta__inner { position: relative; }
.cta .eyebrow { color: #43321c; }
.cta .eyebrow span { background: var(--ink); }
.cta h2 { margin: 2rem 0; font-size: clamp(4rem,9vw,9.6rem); line-height: .84; }
.cta h2 em { color: #4a3518; }
.cta__inner > p:not(.eyebrow) { max-width: 510px; color: #4d3a20; }
.cta__actions { margin-top: 3rem; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.cta .text-link { border-color: rgba(0,0,0,.45); }
.cta .text-link span { color: var(--ink); }

.site-footer { padding: 5rem 0 2rem; background: #080808; }
.footer__top { padding-bottom: 4rem; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2rem; align-items: start; border-bottom: 1px solid #292929; }
.footer__top > p { color: #8f8d87; font: 500 1.25rem/1.4 var(--serif); }
.footer__top > div { display: grid; justify-self: end; }
.footer__top small { color: #666; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.footer__top > div a { margin-top: .45rem; font-size: .8rem; border-bottom: 1px solid #444; }
.footer__credits { padding: 1.25rem 0; color: #565653; font-size: .56rem; border-bottom: 1px solid #292929; }
.footer__credits a { color: #85827d; border-bottom: 1px solid #3b3b39; }
.footer__credits a:hover { color: var(--gold-soft); }
.footer__bottom { padding-top: 2rem; display: grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap: 2rem; color: #686865; font-size: .62rem; }
.footer__bottom nav,.footer__bottom div { display: flex; gap: 1.4rem; }
.footer__bottom a:hover { color: var(--gold-soft); }
.back-top { justify-self: end; }

.contact-modal { width: min(820px, calc(100vw - 2rem)); padding: clamp(2rem,5vw,4.5rem); background: #151514; color: white; border: 1px solid #41413f; }
.contact-modal::backdrop,.lightbox::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(8px); }
.contact-modal h2 { margin: 1rem 0 2.2rem; }
.modal-close,.lightbox > button { position: absolute; top: 1rem; right: 1rem; width: 42px; height: 42px; background: none; color: white; font-size: 1.5rem; }
.contact-modal form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.contact-modal label { display: grid; gap: .5rem; color: #918e88; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.contact-modal input,.contact-modal select,.contact-modal textarea { width: 100%; padding: .85rem 0; background: transparent; border: 0; border-bottom: 1px solid #474744; border-radius: 0; outline: none; resize: vertical; }
.contact-modal input:focus,.contact-modal select:focus,.contact-modal textarea:focus { border-color: var(--gold); }
.contact-modal select option { background: var(--ink); }
.contact-modal .full { grid-column: 1 / -1; }
.form-note { color: #666; font-size: .58rem; }
.lightbox { width: min(1200px, calc(100vw - 2rem)); max-width: none; padding: 0; background: #111; border: 1px solid #333; overflow: visible; }
.lightbox img { width: 100%; max-height: 85vh; object-fit: contain; }
.lightbox > button { z-index: 2; background: rgba(0,0,0,.6); }

.reveal { opacity: 0; transform: translateY(40px); transition: opacity .85s cubic-bezier(.16,1,.3,1), transform .85s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav,.header-cta { display: none; }
  .menu-toggle { display: block; }
  .hero__content { justify-content: flex-end; padding-bottom: 9rem; }
  .hero__media img { object-position: 60% center; }
  .hero__wash { background: linear-gradient(90deg,rgba(5,7,7,.88),rgba(5,7,7,.16)),linear-gradient(0deg,rgba(5,5,5,.92),transparent 70%); }
  .hero__lower { width: 70%; }
  .intro__statement,.services__title,.experience__grid { grid-template-columns: 1fr; }
  .intro__statement > div,.services__title > p,.experience__grid > p { max-width: 520px; }
  .intro__visual { min-height: auto; }
  .portrait-card { min-height: 540px; }
  .intro__quote { min-height: 540px; }
  .service { grid-template-columns: .12fr 1fr auto; }
  .service__tags { display: none; }
  .work__heading { align-items: flex-start; flex-direction: column; }
  .training { grid-template-columns: 1fr; }
  .training__media { height: 70vh; max-height: 720px; }
}

@media (max-width: 700px) {
  :root { --shell: calc(100vw - 2.5rem); }
  .cursor-glow { display: none; }
  .site-header { height: 76px; padding-inline: 1.25rem; }
  .brand__words b { font-size: .65rem; }
  .hero__content { padding-bottom: 8.5rem; }
  .hero__media img { object-position: 64% center; }
  .hero__wash { background: linear-gradient(0deg,rgba(4,5,5,.96) 0%,rgba(4,5,5,.62) 56%,rgba(4,5,5,.14) 100%); }
  .hero h1 { font-size: clamp(3.5rem,17vw,5.6rem); }
  .hero__lower { width: 100%; grid-template-columns: 1fr; gap: 1.5rem; }
  .hero__lower > p { max-width: 88%; }
  .hero__actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .hero__rail { grid-template-columns: 1fr 1fr; padding-inline: 1.25rem; }
  .hero__rail span:nth-child(2) { display: none; }
  .ticker__track { gap: 2rem; }
  .section { padding-block: 6rem; }
  .section-head { align-items: flex-end; }
  .section-index { text-align: right; }
  .intro__statement { padding-block: 3rem 4.5rem; }
  .intro__visual { grid-template-columns: 1fr; }
  .portrait-card { min-height: 500px; }
  .intro__quote { min-height: 500px; padding: 2rem 1.5rem; }
  .stats { gap: .5rem; }
  .stats strong { font-size: 2.2rem; }
  .stats span { font-size: .5rem; }
  .service { padding-inline: 0; grid-template-columns: .14fr 1fr auto; }
  .service:hover { padding-inline: .65rem; }
  .service div p { display: none; }
  .work-grid { grid-template-columns: 1fr; }
  .project,.project--wide,.project--portrait,.project--landscape { grid-column: 1; min-height: 450px; }
  .project--wide { min-height: 370px; }
  .project--type { min-height: 420px; }
  .filters { gap: .8rem; }
  .client-row { grid-template-columns: 1fr 1fr; }
  .client-row span { min-height: 120px; }
  .client-row span:nth-child(2) { border-right: 0; }
  .client-row span:nth-child(-n+2) { border-bottom: 1px solid #363635; }
  .training__media { min-height: 470px; height: 65vh; }
  .testimonial { min-height: 600px; padding-top: 3rem; grid-template-columns: 1fr; }
  .testimonial__quote { height: 105px; }
  .testimonial__slides { min-height: 430px; }
  .testimonial__slide { justify-content: flex-start; gap: 2rem; }
  .cta__orb { width: 400px; top: -220px; right: -220px; }
  .cta h2 { font-size: clamp(4rem,17vw,6.5rem); }
  .cta__actions { align-items: flex-start; flex-direction: column; }
  .footer__top { grid-template-columns: 1fr; }
  .footer__top > div { justify-self: start; }
  .footer__bottom { grid-template-columns: 1fr 1fr; }
  .footer__bottom nav { display: none; }
  .footer__bottom div { justify-self: end; }
  .back-top { justify-self: start; }
  .contact-modal form { grid-template-columns: 1fr; }
  .contact-modal label,.contact-modal .full { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
