:root {
  --paper: #e9e6de;
  --paper-light: #f2efe8;
  --paper-deep: #ded9cf;
  --ink: #22241f;
  --muted: #77766f;
  --line: #c9c6be;
  --pale: #eae8df;
  --off-white: #f1eee7;
  --sans: 'Yantramanav', 'Helvetica Neue', Arial, sans-serif;
  --gutter: clamp(22px, 4.55vw, 84px);
  --max-content: 1800px;
  --header-h: 92px;
  --utility-h: 33px;
  --brand-blue: #0A99FF;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + var(--utility-h)); }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-weight:300; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; text-transform:uppercase; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font-family:var(--sans); text-transform:uppercase; }
button { font:inherit; cursor:pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
img { display:block; max-width:100%; }
::selection { background:#777a70; color:#fff; }
.skip-link { position:fixed; top:-70px; left:16px; z-index:200; background:var(--paper); color:var(--ink); padding:10px 15px; }
.skip-link:focus { top:12px; }
#main { display:block; }
.section-wrap { padding-left:var(--gutter);padding-right:var(--gutter); }
.eyebrow { font-size:12px; line-height:1.5; font-weight:400; letter-spacing:.14em; text-transform:uppercase; }
.section-marker { display:flex; gap:17px; align-items:baseline; font-size:12px; font-weight:400; line-height:1.2; letter-spacing:.13em; text-transform:uppercase; white-space:nowrap; }
.section-marker span:first-child { color:#929088; }
.section-marker--light { color:#e0ded6; }
.section-marker--light span:first-child { color:#858781; }
.editorial-heading { font-family:var(--sans); font-size:clamp(44px,5.5vw,94px); line-height:1.09; letter-spacing:-.025em; font-weight:300; margin:0; }
.editorial-heading em { font-style:normal; font-weight:400; }
.fine-link { display:inline-flex; gap:40px; align-items:center; justify-content:space-between; font-size:13px; text-transform:uppercase; font-weight:400; letter-spacing:.11em; border-bottom:1px solid var(--ink); padding:0 0 11px; transition:opacity .3s ease; }
.fine-link:hover { opacity:.65; }
.fine-link--light { color:#e8e6de; border-bottom-color:#777b74; }
.image-stack { position:absolute; inset:0; display:block; width:100%; height:100%; overflow:hidden; background:#4c4e49; }
.image-stack img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(90%); }
.image-stack__remote { opacity:0; transition:opacity 1.1s ease; }
.image-stack__remote.is-loaded { opacity:1; }

/* Fixed bright-blue utility strip — visual reference: Ralph Lauren's slim top bar. */
.utility-bar { height:var(--utility-h); background:var(--brand-blue); color:#fff; width:100%; }
.utility-bar__inner { max-width:2100px; height:100%; margin:auto; padding:0 var(--gutter); display:flex; align-items:center; justify-content:flex-end; gap:clamp(18px,2vw,32px); }
.utility-bar__edition,.utility-bar__link { font:400 10px/1 var(--sans); letter-spacing:.095em; white-space:nowrap; }
.utility-bar__link { display:inline-flex; align-items:center; gap:5px; transition:opacity .2s ease; }
.utility-bar__link:hover { opacity:.72; }

/* Main navigation — two-line centered identity over the hero. */
.site-header { position:fixed; z-index:90; top:0; right:0; left:0; color:#f2f0eb; transition:background .38s ease,color .38s ease,border-color .38s ease; border-bottom:1px solid transparent; }
.site-header.is-solid,.site-header--solid { color:var(--ink); background:rgba(235,232,224,.98); border-bottom-color:rgba(45,45,42,.13); backdrop-filter:blur(18px); }
/* The navigation softly fades to a pale ivory panel when hovered.
   Like the Ralph Lauren reference, the text changes from ivory to charcoal.
   The independent #0A99FF utility strip remains unchanged. */
.top-nav { position:relative; isolation:isolate; height:var(--header-h); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 var(--gutter); max-width:2100px; margin:auto; color:inherit; transition:color .48s ease; }
.top-nav::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(250,249,246,.98);
  opacity:0;
  pointer-events:none;
  transition:opacity .48s ease;
}
@media (hover:hover) and (pointer:fine) {
  .top-nav:hover::before { opacity:1; }
  .top-nav:hover { color:var(--ink); }
}
/* The same treatment is available to keyboard users. */
.top-nav:focus-within::before { opacity:1; }
.top-nav:focus-within { color:var(--ink); }
.top-nav__side { display:flex; gap:clamp(25px,3vw,61px); align-items:center; }
.top-nav__side--right { justify-content:flex-end; }
.top-nav__link { font-size:13px; font-weight:400; letter-spacing:.075em; transition:opacity .2s; }
.top-nav__link:hover { opacity:.54; }
.wordmark { align-self:center; display:flex; flex-direction:column; gap:1px; align-items:center; justify-content:center; white-space:nowrap; }
.wordmark__name { font-size:26px; line-height:1; font-weight:400; letter-spacing:.105em; }
.wordmark__sub { margin-top:3px; font-size:9px; line-height:1; font-weight:300; letter-spacing:.29em; transform:translateX(.145em); }
.menu-toggle { display:none; background:none; border:0; color:inherit; width:35px; height:35px; padding:8px 0; }
.menu-toggle span { height:1px; width:100%; background:currentColor; display:block; margin:8px 0; }

/* Full-page menu, mobile-first interaction also works on desktop via keyboard. */
.menu-overlay { z-index:95; position:fixed; inset:0; background:var(--paper-light); color:var(--ink); display:flex; flex-direction:column; opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .25s ease, visibility .25s ease, transform .25s ease; padding:38px var(--gutter) 30px; }
.menu-open { overflow:hidden; }
.menu-open .menu-overlay { opacity:1; visibility:visible; transform:none; }
.menu-overlay__top, .menu-overlay__bottom { display:flex; justify-content:space-between; align-items:center; font-size:12px; font-weight:400; letter-spacing:.12em; }
.menu-overlay__top { padding-bottom:25px; border-bottom:1px solid var(--line); }
.menu-close { border:0; background:transparent; font-size:12px; text-transform:uppercase; letter-spacing:.12em; padding:0; color:inherit; }
.menu-close span { font-size:25px; font-weight:300; vertical-align:middle; margin-left:15px; }
.menu-overlay__links { flex:1; display:flex; flex-direction:column; justify-content:center; gap:clamp(10px,2.4vh,25px); }
.menu-overlay__links a { position:relative; display:flex; align-items:baseline; gap:40px; font-family:var(--sans); font-size:clamp(43px,7.7vw,94px); line-height:1.12; letter-spacing:-.02em; font-weight:300; transition:opacity .2s,transform .35s; }
.menu-overlay__links a:hover { opacity:.5; transform:translateX(8px); }
.menu-overlay__bottom { border-top:1px solid var(--line); padding-top:25px; }

/* The blue strip sits above the opening image; navigation remains over the image. */
.home-main { padding-top:var(--utility-h); }

/* Full viewport editorial opening, with replaceable photo / muted video slides. */
.hero { position:relative; width:100%; min-height:720px; height:calc(100svh - var(--utility-h)); max-height:1300px; display:flex; justify-content:center; align-items:center; background:#272a26; color:#f7f4ec; isolation:isolate; }
.hero__media { position:absolute; inset:0; z-index:-2; overflow:hidden; background:#272a26; }
.hero__slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1.25s ease,visibility 0s linear 1.25s; }
.hero__slide.is-active { opacity:1; visibility:visible; transition:opacity 1.25s ease; }
.hero__slide .image-stack { z-index:0; }
.hero__slide .image-stack img { object-position:center center; }
.hero__video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:#111; }
.hero__veil { position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(12,14,13,.46) 0%,rgba(12,14,13,.15) 28%,rgba(12,14,13,.35) 69%,rgba(10,12,11,.72) 100%); pointer-events:none; }
.hero__center { text-align:center; margin-top:clamp(20px,5vh,60px); display:flex; flex-direction:column; align-items:center; gap:18px; padding:0 20px; transform:translateY(clamp(75px,12vh,135px)); }
.hero__overline { font-size:clamp(10px,1vw,13px); letter-spacing:.28em; font-weight:300; line-height:1.8; }
.hero__center h1 { font-size:clamp(120px,18vw,315px); letter-spacing:-.07em; font-weight:300; line-height:.78; margin:4px 0 18px; transform:translateX(-.035em); }
.hero__bottom { position:absolute; bottom:0; left:var(--gutter); right:var(--gutter); height:80px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-top:1px solid rgba(255,255,255,.35); font-size:10px; font-weight:400; letter-spacing:.18em; }
.hero__scroll { display:flex; align-items:center; gap:16px; text-align:center; white-space:nowrap; }
.hero__scroll > span { font-size:20px; line-height:1; }
.hero__end { display:flex; align-items:center; justify-content:flex-end; gap:clamp(18px,2.5vw,42px); }
.hero__edition { white-space:nowrap; }
.hero__rotation { display:flex; align-items:center; gap:14px; white-space:nowrap; }
.hero__counter { font-size:10px; font-weight:400; letter-spacing:.14em; font-variant-numeric:tabular-nums; }
.hero__pause,.hero__next { border:0; border-radius:0; background:transparent; color:inherit; padding:7px 2px; line-height:1; font-size:15px; transition:opacity .2s ease; }
.hero__pause:hover,.hero__next:hover { opacity:.55; }
.hero__pause > span { font-family:var(--sans); font-size:11px; }
.hero__next > span { font-size:18px; }

/* Introduction */
.intro { position:relative; min-height:620px; display:grid; grid-template-columns:1fr 4fr; column-gap:5vw; padding-top:150px; padding-bottom:110px; }
.intro__body { padding-top:clamp(25px,6vw,90px); }
.intro__description { max-width:350px; margin:45px 0 0 2px; font-size:clamp(15px,1.3vw,18px); line-height:1.5; font-weight:300; color:#5c5b55; }
.intro__edition { font-size:10px; font-weight:400; letter-spacing:.17em; position:absolute; bottom:62px; right:var(--gutter); color:#97948c; }

/* Image-led fields, offset editorial grid */
.practice { padding-top:68px; padding-bottom:170px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-start; border-top:1px solid var(--line); padding-top:28px; margin-bottom:55px; }
.section-heading p { margin:0; color:#6c6b64; font-size:14px; font-weight:300; line-height:1.35; }
.practice-grid { display:grid; grid-template-columns:minmax(0, 1.07fr) minmax(0, .93fr); gap:28px clamp(28px,6vw,120px); align-items:start; }
.practice-card { min-width:0; display:block; }
.practice-card__visual { position:relative; display:block; width:100%; overflow:hidden; background:#a7a29a; aspect-ratio:1/1.05; }
.practice-card__visual .image-stack img { transition:transform .9s ease,filter .7s ease,opacity 1.1s ease; }
.practice-card:hover .practice-card__visual .image-stack img { transform:scale(1.035); filter:grayscale(75%); }
.practice-card--moving-image .practice-card__visual { aspect-ratio:1.13/1; }
.practice-card--modeling { margin-top:130px; }
.practice-card--modeling .practice-card__visual { aspect-ratio:.81/1; }
.practice-card--art { margin-top:-110px; }
.practice-card--art .practice-card__visual { aspect-ratio:1.18/1; }
.practice-card--media { margin-top:65px; }
.practice-card--media .practice-card__visual { aspect-ratio:1.06/1; }
.practice-card--photography { margin-top:-45px; }
.practice-card--photography .practice-card__visual { aspect-ratio:1.1/1; }
.practice-card--photography .image-stack img, .practice-card--photography:hover .image-stack img { filter:none; }
.practice-card__meta { display:flex; justify-content:space-between; align-items:baseline; gap:15px; margin-top:17px; padding-bottom:5px; font-size:clamp(18px,1.75vw,25px); font-weight:300; line-height:1.15; }
.practice-card__number { font-size:11px; letter-spacing:.05em; margin-right:15px; color:#85857d; vertical-align:3px; font-weight:400; }
.practice-card__caption { display:block; font-size:12px; font-weight:300; color:#77766f; }

/* Manifesto / archive gateway */
.manifesto { position:relative; overflow:hidden; background:#272a26; min-height:620px; padding-top:42px; padding-bottom:65px; color:#e7e5dd; display:flex; flex-direction:column; justify-content:space-between; }
.manifesto:after { content:''; position:absolute; width:65vw; height:65vw; max-width:850px; max-height:850px; border-radius:50%; top:-330px; right:-170px; border:1px solid rgba(230,228,216,.06); pointer-events:none; }
.manifesto__center { align-self:center; text-align:center; position:relative; z-index:1; }
.manifesto__small { display:block; font-size:10px; letter-spacing:.23em; font-weight:400; margin-bottom:40px; }
.manifesto__center p { margin:0 0 52px; font:300 clamp(52px,7.7vw,118px)/1.07 var(--sans); letter-spacing:-.031em; }
.manifesto__center em { font-style:normal; font-weight:400; }
.manifesto__year { align-self:flex-end; letter-spacing:.12em; font-size:11px; font-weight:400; color:#8d8e87; }

/* Journal preview */
.notes { padding-top:155px; padding-bottom:180px; }
.notes__grid { margin-top:86px; display:grid; grid-template-columns:1fr .95fr; gap:8vw; align-items:center; }
.notes__grid > div { align-self:center; }
.notes__body { max-width:380px; font-size:18px; line-height:1.55; color:#66665e; margin:40px 0 42px; }
.notes__image { height:min(600px,55vw); position:relative; display:block; overflow:hidden; background:#656761; }
.notes__image .image-stack img { transition:transform .8s ease; }
.notes__image:hover .image-stack img { transform:scale(1.035); }
.notes__image-label { position:absolute; bottom:24px; left:28px; font-size:11px; letter-spacing:.18em; color:#ece9e0; font-weight:400; }

/* Final invitation */
.closing { min-height:440px; background:#dcd8cf; padding-top:85px; padding-bottom:85px; display:flex; justify-content:space-between; align-items:end; gap:30px; }
.closing h2 { font:300 clamp(50px,6vw,100px)/1.08 var(--sans); letter-spacing:-.032em; margin:40px 0 0; }
.closing h2 em { font-style:normal; font-weight:400; }
.closing__link { border-bottom:1px solid var(--ink); min-width:190px; display:flex; justify-content:space-between; align-items:center; padding-bottom:10px; font-size:13px; text-transform:uppercase; letter-spacing:.12em; white-space:nowrap; font-weight:400; }

/* Footer */
.site-footer { padding:45px var(--gutter) 28px; background:#222520; color:#e8e7dd; }
.footer-top { display:flex; justify-content:space-between; padding-bottom:50px; border-bottom:1px solid #575b54; }
.footer-back { font-size:12px; font-weight:400; letter-spacing:.12em; text-transform:uppercase; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr; padding:60px 0 95px; }
.footer-statement p { font:300 clamp(37px,4.8vw,70px)/1.12 var(--sans); letter-spacing:-.025em; margin:0; }
.underlined-link { font-size:12px; font-weight:400; letter-spacing:.12em; border-bottom:1px solid #a4a69e; text-transform:uppercase; padding-bottom:9px; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:10px 30px; align-content:start; justify-self:end; width:min(100%,350px); font-size:14px; font-weight:300; }
.footer-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.footer-end { display:grid; grid-template-columns:1fr auto 1fr; gap:35px; align-items:end; border-top:1px solid #575b54; padding-top:26px; font-size:10px; letter-spacing:.1em; font-weight:400; color:#aaa9a0; }
.footer-end > span:last-child { text-align:right; }
.footer-end__identity { display:flex; align-items:center; gap:19px; font-size:11px; letter-spacing:.17em; line-height:1.6; color:#dedbd3; }
.signature { object-fit:contain; width:58px; height:45px; }

/* Reusable interior pages */
.interior-main { padding-top:calc(var(--header-h) + var(--utility-h)); }
.interior-main--plain { padding-top:calc(var(--header-h) + var(--utility-h)); }
.division-hero { position:relative; min-height:650px; height:78svh; max-height:1050px; background:#323531; color:#f1efe6; display:flex; align-items:flex-end; padding:0 var(--gutter) 90px; isolation:isolate; }
.division-hero__image { position:absolute; inset:0; z-index:-2; }
.division-hero__overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,18,16,.55),rgba(15,18,16,.2)),linear-gradient(0deg,rgba(15,18,16,.62),transparent 55%); }
.division-hero__content h1 { font:300 clamp(74px,10vw,164px)/1 var(--sans); letter-spacing:-.035em; margin:30px 0 12px; }
.division-hero__content p { font-size:14px; letter-spacing:.045em; font-weight:300; }
.division-hero__index { position:absolute; right:var(--gutter); bottom:93px; font-size:11px; letter-spacing:.15em; font-weight:400; }
.division-description { min-height:520px; padding-top:125px; padding-bottom:135px; display:grid; grid-template-columns:1fr 3fr; gap:40px; }
.division-description .editorial-heading { max-width:1030px; font-size:clamp(42px,5.2vw,86px); }
.division-categories { padding-top:40px; padding-bottom:120px; }
.division-categories .section-marker { margin-bottom:36px; }
.category-row { display:grid; grid-template-columns:110px 1fr 35px; border-top:1px solid var(--line); padding:18px 0; align-items:baseline; font-size:clamp(20px,2.5vw,38px); }
.category-row:last-child { border-bottom:1px solid var(--line); }
.category-row span:first-child,.category-row span:last-child { font-size:12px; color:var(--muted); }
.category-row span:last-child { text-align:right; }
.division-coming { background:#dad6cd; padding-top:115px; padding-bottom:125px; }
.division-coming h2 { max-width:930px; margin:25px 0; }
.division-coming p { font-size:16px; line-height:1.5; max-width:480px; margin-bottom:40px; color:#6d6b64; }
.next-field { padding-top:70px; padding-bottom:90px; }
.next-field > div { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:25px; }
.next-field a { border-top:1px solid var(--line); padding:13px 0; font-size:24px; display:flex; justify-content:space-between; }
.plain-hero { padding-top:130px; padding-bottom:140px; min-height:510px; }
.plain-hero h1 { font:300 clamp(82px,11vw,182px)/1 var(--sans); letter-spacing:-.042em; margin:55px 0 40px; }
.period { color:#a6a297; }
.plain-hero p { font-size:clamp(17px,1.5vw,22px); max-width:570px; line-height:1.45; color:#595b54; }
.archive-list,.archive-projects { padding-bottom:120px; }
.archive-list .section-marker,.archive-projects .section-marker { margin-bottom:35px; }
.archive-row { display:grid; grid-template-columns:120px 1fr; align-items:center; border-top:1px solid var(--line); padding:18px 0; }
.archive-row:last-child { border-bottom:1px solid var(--line); }
.archive-row span:first-child { font-size:12px; color:#86867f; font-weight:400; }
.archive-row span:nth-child(2) { font:300 clamp(38px,5.8vw,88px)/1.12 var(--sans); letter-spacing:-.022em; transition:opacity .2s ease; }
.archive-row:hover span:nth-child(2) { opacity:.64; }
.project-row { display:grid; grid-template-columns:140px 1fr 1fr; align-items:center; gap:20px; border-top:1px solid var(--line); padding:20px 0; }
.project-row strong { font-weight:400; }
.quiet-empty { border-top:1px solid var(--line); padding:50px 0; font:300 clamp(31px,4.1vw,54px)/1.24 var(--sans); letter-spacing:-.018em; }
.quiet-empty span { display:block; font:300 16px/1.5 var(--sans); color:#77766e; margin-top:12px; }
.journal-feature { display:grid; grid-template-columns:1fr 1fr; min-height:550px; gap:6vw; padding-bottom:160px; align-items:center; }
.journal-feature > .image-stack { position:relative; height:500px; }
.journal-feature h2 { font:300 clamp(43px,4.9vw,76px)/1.1 var(--sans); letter-spacing:-.025em; margin:25px 0; }
.journal-feature p { max-width:410px; font-size:17px; line-height:1.6; color:#676760; }
.about-layout,.inquiry-layout { display:grid; grid-template-columns:1fr 3fr; gap:40px; padding-top:60px; padding-bottom:150px; }
.about-layout .editorial-heading,.inquiry-layout .editorial-heading { margin:0 0 35px; }
.about-layout > div:last-child > p,.inquiry-layout > div:last-child > p { font-size:18px; color:#60615a; line-height:1.6; max-width:650px; margin:0 0 24px; }
.about-layout .fine-link { margin-top:22px; }
.about-signature { min-height:310px; background:#292b28; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; }
.about-signature .signature { height:150px; width:260px; }
.about-signature span { color:#8c8e86; font-size:11px; letter-spacing:.2em; }
.inquiry-state { margin:60px 0; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:16px; font-size:12px; font-weight:400; letter-spacing:.13em; }
.inquiry-dot { width:6px; height:6px; border-radius:50%; background:#a09e92; }

/* Optional reveal — good with reduced motion disabled */
.reveal { opacity:1; transform:none; }
.reveal.is-visible { opacity:1; transform:none; }

@media(max-width: 960px) {
  :root { --header-h:80px; }
  .top-nav__side { gap:22px; }
  .top-nav__link { font-size:12px; }
  .wordmark__name { font-size:21px; }
  .hero__bottom-label,.hero__edition { display:none; }
  .hero__bottom { grid-template-columns:1fr auto; }
  .hero__scroll { display:flex; }
  .intro { grid-template-columns:1fr 3fr; gap:28px; }
  .practice-grid { gap:40px; }
  .practice-card--modeling { margin-top:100px; }
  .practice-card--art { margin-top:-80px; }
  .notes__grid { gap:40px; }
}
@media(max-width: 680px) {
  :root { --header-h:76px; --utility-h:31px; --gutter:22px; }
  .utility-bar__inner { gap:17px; }
  .utility-bar__edition,.utility-bar__link { font-size:9px; letter-spacing:.06em; }
  .top-nav { grid-template-columns:1fr auto; }
  .top-nav__side { display:none; }
  .wordmark { justify-self:start; align-items:start; }
  .wordmark__name { font-size:22px; }
  .wordmark__sub { font-size:8px; letter-spacing:.27em; }
  .menu-toggle { display:block; justify-self:end; }
  .hero { min-height:620px; height:calc(100svh - var(--utility-h)); max-height:none; }
  .hero__center { margin-top:20px; gap:21px; transform:translateY(clamp(45px,7vh,80px)); }
  .hero__center h1 { font-size:clamp(104px,30vw,185px); margin:0 0 10px; }
  .hero__overline { max-width:300px; font-size:9px; letter-spacing:.21em; }
  .hero__bottom { height:66px; grid-template-columns:1fr auto; gap:14px; font-size:8px; letter-spacing:.10em; }
  .hero__scroll { gap:7px; }
  .hero__scroll > span { font-size:17px; }
  .hero__rotation { gap:9px; }
  .hero__counter { font-size:8px; }
  .hero__pause,.hero__next { padding:6px 1px; }
  .intro { min-height:auto; display:block; padding-top:85px; padding-bottom:110px; }
  .intro__body { padding-top:58px; }
  .editorial-heading { font-size:clamp(46px,11.5vw,70px); }
  .intro__description { margin-top:35px; font-size:16px; }
  .intro__edition { bottom:35px; }
  .practice { padding-top:10px; padding-bottom:105px; }
  .section-heading { margin-bottom:35px; }
  .section-heading p { max-width:145px; font-size:12px; text-align:right; }
  .section-marker { font-size:10px; gap:10px; }
  .practice-grid { display:block; }
  .practice-card,.practice-card--art,.practice-card--modeling,.practice-card--media,.practice-card--photography { margin:0 0 48px; }
  .practice-card:nth-child(even) { margin-left:14%; }
  .practice-card:nth-child(odd) { margin-right:8%; }
  .practice-card__visual,.practice-card--moving-image .practice-card__visual,.practice-card--modeling .practice-card__visual,.practice-card--art .practice-card__visual,.practice-card--media .practice-card__visual { aspect-ratio:1.02/1; }
  .practice-card--modeling .practice-card__visual { aspect-ratio:.95/1; }
  .practice-card__number { margin-right:6px; }
  .manifesto { min-height:500px; padding-top:35px; padding-bottom:35px; }
  .manifesto__small { font-size:9px; margin-bottom:24px; }
  .manifesto__center p { font-size:clamp(55px,13vw,85px); margin-bottom:38px; }
  .notes { padding-top:90px; padding-bottom:100px; }
  .notes__grid { display:flex; flex-direction:column; gap:55px; margin-top:65px; align-items:stretch; }
  .notes__body { font-size:16px; margin:30px 0; }
  .notes__image { height:390px; }
  .closing { min-height:360px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; padding-top:55px; padding-bottom:55px; }
  .closing h2 { font-size:clamp(52px,11vw,75px); margin:30px 0 0; }
  .closing__link { align-self:flex-end; }
  .site-footer { padding-top:35px; }
  .footer-top { padding-bottom:35px; }
  .footer-grid { display:flex; flex-direction:column; gap:55px; padding:50px 0 65px; }
  .footer-statement p { font-size:45px; }
  .footer-links { justify-self:start; width:100%; }
  .footer-end { grid-template-columns:1fr 1fr; gap:18px; }
  .footer-end__identity { grid-column:1/-1; margin-bottom:15px; }
  .footer-end > span:last-child { display:none; }
  .footer-end > span:nth-child(2) { grid-column:1/-1; }
  .menu-overlay { padding-top:30px; }
  .menu-overlay__top,.menu-overlay__bottom { font-size:10px; }
  .menu-overlay__links { gap:16px; }
  .menu-overlay__links a { font-size:clamp(49px,12vw,80px); gap:22px; }
  .division-hero { height:75svh; min-height:530px; padding-bottom:65px; }
  .division-hero__content h1 { font-size:clamp(70px,17vw,110px); }
  .division-hero__index { bottom:20px; font-size:9px; }
  .division-description,.about-layout,.inquiry-layout { display:block; padding-top:80px; padding-bottom:90px; }
  .division-description .editorial-heading { margin-top:42px; font-size:42px; }
  .division-categories { padding-bottom:85px; }
  .category-row { grid-template-columns:55px 1fr 20px; font-size:27px; }
  .division-coming { padding-top:90px; padding-bottom:95px; }
  .next-field { padding-top:70px; }
  .next-field > div { display:block; }
  .next-field a { font-size:26px; }
  .plain-hero { min-height:430px; padding-top:115px; padding-bottom:80px; }
  .plain-hero h1 { font-size:clamp(74px,19vw,125px); margin:45px 0 32px; }
  .plain-hero p { font-size:17px; }
  .archive-row { grid-template-columns:40px 1fr; }
  .archive-row span:nth-child(2) { font-size:48px; }
  .quiet-empty { font-size:32px; }
  .journal-feature { display:block; padding-bottom:100px; }
  .journal-feature > .image-stack { height:340px; }
  .journal-feature > div { padding-top:40px; }
  .journal-feature h2 { font-size:51px; }
  .about-layout .editorial-heading,.inquiry-layout .editorial-heading { margin-top:40px; }
  .about-layout > div:last-child > p,.inquiry-layout > div:last-child > p { font-size:16px; }
  .project-row { grid-template-columns:70px 1fr; }
  .project-row > span:last-child { grid-column:2; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}

/* The art division holds drawn and digital work as separate visual collections. */
.art-two { padding-top:30px; padding-bottom:130px; }
.art-two__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,5vw,80px); align-items:start; margin-top:36px; }
.art-two__grid > div:nth-child(2) { margin-top:90px; }
.art-two__image { position:relative; height:520px; overflow:hidden; background:#a59f96; }
.art-two__image .image-stack img { transition:transform .7s ease; }
.art-two__image:hover .image-stack img { transform:scale(1.035); }
.art-two__grid > div > span { display:block; margin-top:15px; font-size:12px; letter-spacing:.13em; font-weight:400; }
@media (max-width:680px) {
  .art-two { padding-bottom:90px; }
  .art-two__grid { display:block; }
  .art-two__grid > div:nth-child(2) { margin-top:40px; }
  .art-two__image { height:370px; }
}

/* Keep the header usable without transition for reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
  .top-nav, .top-nav::before { transition:none; }
}


/* V1.9 — PHOTOGRAPHY / LONDON 2026 */
.photography-main { background:var(--paper-light); }
.photography-intro { padding-top:clamp(105px,11vw,200px); padding-bottom:clamp(75px,9vw,160px); border-bottom:1px solid var(--line); }
.photography-intro__heading { display:flex; align-items:end; justify-content:space-between; gap:45px; margin-top:75px; }
.photography-intro h1 { font:300 clamp(78px,10.3vw,172px)/1 var(--sans); letter-spacing:-.037em; margin:0; }
.photography-intro__heading p { font:300 17px/1.35 var(--sans); max-width:205px; margin:0 0 5px; color:#77756f; }
.photo-series { padding-top:clamp(65px,8vw,135px); padding-bottom:clamp(115px,11vw,185px); }
.photo-series__heading { display:flex; justify-content:space-between; align-items:start; gap:45px; margin-bottom:50px; }
.photo-series__heading > div:last-child { flex:0 1 64%; }
.photo-series__heading h2 { font:300 clamp(55px,6.7vw,118px)/.95 var(--sans); letter-spacing:.045em; margin:0 0 12px; white-space:nowrap; }
.photo-series__heading p { font:400 11px/1.4 var(--sans); letter-spacing:.14em; color:#77756e; margin:0; }
/* Long editorial series titles wrap rather than overflow their column. */
.photo-series--long-title .photo-series__heading h2 { font-size:clamp(34px,4.4vw,78px); letter-spacing:.022em; line-height:1.06; white-space:normal; text-wrap:balance; }
.photo-carousel { outline:none; }
.photo-carousel:focus-visible { outline:1px solid #858278; outline-offset:7px; }
.photo-carousel__stage { height:clamp(510px,75svh,920px); width:100%; position:relative; overflow:hidden; background:#dad6ce; }
.photo-carousel__slide { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; margin:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .65s ease,visibility 0s linear .65s; }
.photo-carousel__slide.is-current { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .65s ease; }
.photo-carousel__slide img { width:100%; height:100%; object-fit:contain; object-position:center center; display:block; filter:none; }
.photo-carousel__toolbar { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); min-height:77px; }
.photo-carousel__position { font:400 12px/1 var(--sans); letter-spacing:.14em; font-variant-numeric:tabular-nums; }
.photo-carousel__buttons { display:flex; gap:clamp(24px,4vw,60px); align-items:center; }
.photo-carousel__buttons button { border:0; background:transparent; color:var(--ink); font:400 11px/1 var(--sans); letter-spacing:.15em; padding:20px 0; transition:opacity .25s ease; }
.photo-carousel__buttons button:hover { opacity:.46; }
.photo-carousel__buttons button:focus-visible { outline:1px solid var(--ink); outline-offset:3px; }
.photo-carousel__filmstrip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,2vw,25px); width:min(100%,620px); margin:28px 0 0 auto; }
.photo-carousel__thumb { border:0; background:none; color:var(--ink); padding:0 0 9px; text-align:left; cursor:pointer; opacity:.57; border-bottom:1px solid transparent; transition:opacity .3s ease,border-color .3s ease; }
.photo-carousel__thumb:hover { opacity:.82; }
.photo-carousel__thumb.is-current { border-bottom-color:var(--ink); opacity:1; }
.photo-carousel__thumb img { width:100%; height:clamp(68px,10vw,125px); object-fit:cover; object-position:center; display:block; }
.photo-carousel__thumb span { display:block; font:400 10px/1 var(--sans); letter-spacing:.08em; margin-top:9px; }
.photo-outro { display:flex; justify-content:space-between; align-items:baseline; padding-top:45px; padding-bottom:85px; background:var(--paper); gap:20px; }
.photo-outro .fine-link { white-space:nowrap; }
.project-row--link { transition:opacity .3s ease; }
.project-row--link:hover { opacity:.55; }
@media (max-width:960px) {
  .photography-intro__heading { flex-wrap:wrap; }
  .photo-series__heading { display:block; }
  .photo-series__heading > div:last-child { margin-top:50px; }
}
@media (max-width:680px) {
  .photography-intro { padding-top:65px; padding-bottom:70px; }
  .photography-intro__heading { display:block; margin-top:75px; }
  .photography-intro h1 { font-size:clamp(62px,13vw,95px); }
  .photography-intro__heading p { margin-top:29px; }
  .photo-series { padding-top:70px; padding-bottom:100px; }
  .photo-series__heading h2 { font-size:clamp(36px,9vw,60px); letter-spacing:.03em; }
  .photo-series--long-title .photo-series__heading h2 { font-size:clamp(31px,7.8vw,49px); }
  .photo-series__heading > div:last-child { margin-top:40px; }
  .photo-series__heading { margin-bottom:27px; }
  .photo-carousel__stage { height:min(64svh,650px); min-height:370px; }
  .photo-carousel__toolbar { min-height:68px; }
  .photo-carousel__filmstrip { gap:11px; margin-top:20px; }
  .photo-carousel__thumb img { height:65px; }
  .photo-outro { flex-direction:column; gap:30px; }
}
@media (prefers-reduced-motion:reduce) { .photo-carousel__slide,.photo-carousel__thumb { transition:none; } }

/* V2.2 — reusable immersive photo/video viewer. Original media is never cropped. */
body.media-viewer-open { overflow:hidden; }
.media-viewer[hidden], .media-viewer__nav[hidden] { display:none !important; }
.media-viewer {
  position:fixed; inset:0; z-index:1000; width:100%; height:100vh; height:100dvh;
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  background:#131513; color:#f2f0eb; padding:clamp(16px,2vw,31px) var(--gutter);
  font-family:var(--sans); font-weight:400;
}
.media-viewer:fullscreen { width:100%; height:100%; padding:clamp(16px,2vw,31px) var(--gutter); background:#131513; }
.media-viewer__head, .media-viewer__foot { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; min-height:35px; }
.media-viewer__title { font-size:clamp(10px,1vw,13px); font-weight:400; letter-spacing:.14em; text-transform:uppercase; }
.media-viewer__head button,.media-viewer__nav button {
  border:0; background:transparent; color:inherit; font:400 12px/1 var(--sans); letter-spacing:.12em;
  padding:10px 1px; transition:opacity .2s ease;
}
.media-viewer__head button:hover,.media-viewer__nav button:hover { opacity:.57; }
.media-viewer__close span { font-size:22px; font-weight:300; margin-left:11px; vertical-align:-1px; }
.media-viewer__stage { position:relative; min-width:0; min-height:0; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:12px 0; }
.media-viewer__image, .media-viewer__video { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; filter:none; box-shadow:none; }
.media-viewer__image { flex:0 1 auto; }
.media-viewer video { width:min(100%,1440px); height:100%; object-fit:contain; }
.media-viewer iframe { width:min(100%,1440px); height:100%; aspect-ratio:16/9; border:0; }
.media-viewer__count { font-size:11px; font-weight:400; letter-spacing:.18em; font-variant-numeric:tabular-nums; }
.media-viewer__nav { display:flex; align-items:center; gap:clamp(22px,3vw,55px); }
.photo-carousel__slide.is-current img { cursor:zoom-in; }
.photo-carousel__buttons [data-photo-action="fullscreen"] { display:inline-flex; align-items:center; gap:9px; }
.photo-carousel__buttons [data-photo-action="fullscreen"] svg { width:14px; height:14px; }
.hero__fullscreen { border:0; border-radius:0; background:transparent; color:inherit; padding:7px 2px; line-height:1; transition:opacity .2s ease; display:inline-flex; align-items:center; }
.hero__fullscreen:hover { opacity:.55; }
@media (max-width:680px) {
  .media-viewer { padding:16px 15px; }
  .media-viewer__stage { padding:6px 0; }
  .media-viewer__head,.media-viewer__foot { min-height:44px; }
  .media-viewer__nav { gap:22px; }
  .media-viewer__head button,.media-viewer__nav button { font-size:11px; }
  .photo-carousel__buttons { gap:clamp(12px,3vw,24px); }
  .photo-carousel__buttons button { font-size:10px; letter-spacing:.08em; }
  .photo-carousel__buttons [data-photo-action="fullscreen"] { gap:5px; }
  .photo-carousel__buttons [data-photo-action="fullscreen"] svg { width:13px; height:13px; }
}
@media (prefers-reduced-motion:reduce) { .media-viewer__head button,.media-viewer__nav button { transition:none; } }

/* ============================================================
   V2.6 — ONE VOICE / FIVE FIELDS
   Uppercase Yantramanav (300, 400, 500) everywhere.
   No serif type, no bold or automatically advancing hero slides.
   ============================================================ */
strong, b { font-weight:500; }

/* Editorial background-image chapter 001 */
.intro {
  padding-top:clamp(48px,6vw,106px);
  padding-bottom:clamp(75px,9vw,150px);
  display:block;
  min-height:auto;
}
.intro__frame {
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(565px,77svh,860px);
  background:#444842; color:#f5f2e9;
}
.intro__image {
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover; object-position:center;
  filter:grayscale(58%); transform:scale(1.01);
}
.intro__shade {
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg,rgba(10,13,13,.52),rgba(12,15,14,.38) 30%,rgba(10,12,11,.63));
}
.intro__content {
  position:relative; z-index:1;
  width:100%; min-height:inherit;
  padding:clamp(29px,4.5vw,76px);
  display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:30px;
}
.intro__content .section-marker { color:#f4f0e8; }
.intro__content .section-marker span:first-child { color:rgba(244,240,232,.68); }
.intro__body { padding:0; margin:auto 0; text-align:center; }
.intro__body .editorial-heading {
  font:300 clamp(38px,6.4vw,104px)/1.08 var(--sans);
  letter-spacing:-.025em;
  text-wrap:balance;
  max-width:1400px; margin:0 auto;
}
.intro__link {
  display:inline-block; margin-top:clamp(30px,5vw,58px);
  font:400 13px/1.35 var(--sans);
  letter-spacing:.19em;
  border-bottom:1px solid currentColor;
  padding:0 0 7px;
  transition:opacity .25s ease;
}
.intro__link:hover { opacity:.58; }
.intro__edition {
  position:static; align-self:flex-end;
  color:rgba(244,240,232,.72);
  font-size:10px; letter-spacing:.16em;
}
/* The first portfolio panel is the destination of SEE HOW. */
.practice { scroll-margin-top:calc(var(--header-h) + var(--utility-h) + 16px); }
.section-heading p { font-size:13px; font-weight:400; line-height:1.45; letter-spacing:.11em; }
.practice-card__meta { letter-spacing:.035em; }
.practice-card__caption { letter-spacing:.075em; font-weight:400; }

/* Editorial background-image chapter 003 */
.manifesto {
  isolation:isolate; min-height:clamp(620px,76svh,900px);
  background:#272a26;
}
.manifesto::after { display:none; }
.manifesto__image {
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(45%); transform:scale(1.02);
}
.manifesto__shade {
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg,rgba(13,17,16,.73),rgba(13,16,15,.55) 38%,rgba(12,15,14,.79));
}
.manifesto .section-marker { position:relative; z-index:1; }
.manifesto__center { width:100%; max-width:1400px; padding:32px 6px; }
.manifesto__center h2 {
  margin:0 0 clamp(32px,5vw,62px);
  font:300 clamp(38px,5.8vw,95px)/1.13 var(--sans);
  letter-spacing:-.025em; text-wrap:balance;
}
.manifesto__year { position:relative; z-index:1; color:#d1cec5; }

/* Final statement: longer copy needs smaller type and measured line length. */
.closing h2 {
  font:300 clamp(33px,4.2vw,72px)/1.12 var(--sans);
  letter-spacing:-.025em;
}
.footer-statement p { text-transform:uppercase; }

@media (max-width:960px) {
  .intro { display:block; padding-top:55px; padding-bottom:92px; }
  .intro__body { padding:0; }
}
@media (max-width:680px) {
  .intro { padding-top:34px; padding-bottom:72px; }
  .intro__frame { min-height:clamp(480px,73svh,690px); }
  .intro__content { padding:24px 20px 26px; }
  .intro__body .editorial-heading { font-size:clamp(35px,8.9vw,60px); line-height:1.12; letter-spacing:-.025em; }
  .intro__link { margin-top:30px; font-size:12px; }
  .intro__edition { font-size:9px; }
  .manifesto { min-height:clamp(520px,72svh,780px); }
  .manifesto__center { padding:25px 0; }
  .manifesto__center h2 { font-size:clamp(33px,8.4vw,56px); line-height:1.13; }
  .closing h2 { font-size:clamp(30px,7vw,48px); line-height:1.15; }
  .section-heading p { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
  .intro__link { transition:none; }
}

/* V2.7 — NO DECORATIVE SECTION NUMBERS
   Keep carousel image-position counters as functional navigation. */
.section-marker > span:first-child,
.section-marker--light > span:first-child,
.intro__content .section-marker > span:first-child { color:inherit; }
.archive-row { display:block; }
.archive-row > span:first-child {
  font:300 clamp(38px,5.8vw,88px)/1.12 var(--sans);
  letter-spacing:-.022em; color:var(--ink);
  transition:opacity .2s ease;
}
.archive-row:hover > span:first-child { opacity:.64; }
.category-row { grid-template-columns:1fr 35px; }
.category-row > span:first-child { font-size:inherit; color:var(--ink); }
@media (max-width:680px) {
  .archive-row > span:first-child { font-size:48px; }
  .category-row { grid-template-columns:1fr 20px; }
}

/* V2.8 — looping MOVING IMAGE portfolio preview (poster fallback on mobile). */
.practice-card__video-frame { position:absolute; inset:0; display:block; overflow:hidden; background:#22241f; }
.practice-card__video-poster,
.practice-card__preview-video { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.practice-card__video-poster { z-index:0; }
.practice-card__preview-video { z-index:1; opacity:0; pointer-events:none; transition:opacity .5s ease,transform .9s ease; }
.practice-card__preview-video.is-playing { opacity:1; }
.practice-card--moving-image:hover .practice-card__preview-video { transform:scale(1.035); }
@media (prefers-reduced-motion:reduce) { .practice-card__preview-video { display:none; } }


/* V3.1 — MODELING, ART and MEDIA carousel images fill their panels. */
.practice-card__gallery-carousel {
  position:absolute; inset:0; display:block; overflow:hidden;
  background:#202421;
}
.practice-card__gallery-slide {
  position:absolute; inset:0; display:block;
  width:100%; height:100%; object-fit:cover; object-position:center;
  opacity:0; transition:opacity 1.1s ease;
  pointer-events:none;
}
.practice-card__gallery-slide.is-active { opacity:1; }
@media (prefers-reduced-motion:reduce) {
  .practice-card__gallery-slide { transition:none; }
}


/* V3.1 — full-bleed rotating backgrounds for JACK OF ALL TRADES.
   Each image is center-cropped to fill the frame, with no letterboxing or stretching. */
.intro__carousel { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.intro__slide { position:absolute; inset:0; opacity:0; transition:opacity 1.25s ease; }
.intro__slide.is-active { opacity:1; }
.intro__artwork { position:absolute; inset:0; height:100%; width:100%; display:block; object-fit:cover; object-position:center; }
.intro__shade { background:linear-gradient(180deg,rgba(8,10,12,.52),rgba(8,10,12,.32) 36%,rgba(8,10,12,.62)); }
@media (prefers-reduced-motion: reduce) {
  .intro__slide { transition:none; }
}

/* V3.2 — wide seasonal headline replaces the four-digit year; fit on all screens. */
.hero__center h1.hero__season { font-size:clamp(52px,10vw,184px); letter-spacing:-.045em; line-height:.92; white-space:nowrap; }
@media (max-width:600px) { .hero__center h1.hero__season { font-size:clamp(44px,11vw,64px); letter-spacing:-.035em; } }


/* V3.3 — all five portfolio cards share the same subtle cool-toned hover tint.
   The transparent layer works on photography, images, image carousels and video.
   Never tint the source assets; only the card appearance changes on interaction. */
.practice-card__visual::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background: rgba(11, 51, 71, .33);
  opacity: 0;
  transition: opacity .48s ease;
}
@media (hover: hover) and (pointer: fine) {
  .practice-card:hover .practice-card__visual::after { opacity: 1; }
}
.practice-card:focus-visible .practice-card__visual::after,
.practice-card:focus-within .practice-card__visual::after { opacity: 1; }
.practice-card__gallery-slide { transition-duration: .72s; }
@media (prefers-reduced-motion: reduce) {
  .practice-card__visual::after { transition: none; }
  .practice-card__gallery-slide { transition: none; }
}


/* V3.4 — match PHOTOGRAPHY's gentle zoom on every ALL FIELDS card.
   Scale the media inside its clipped frame; never stretch source images.
   The existing blue-gray hover tint stays unchanged. */
.practice-card__gallery-slide,
.practice-card__video-poster {
  transform: scale(1);
  transform-origin: center center;
  transition: opacity .72s ease, transform .9s ease;
}
@media (hover: hover) and (pointer: fine) {
  .practice-card:hover .practice-card__gallery-slide,
  .practice-card:hover .practice-card__video-poster,
  .practice-card:hover .practice-card__preview-video {
    transform: scale(1.035);
  }
}
.practice-card:focus-visible .practice-card__gallery-slide,
.practice-card:focus-visible .practice-card__video-poster,
.practice-card:focus-visible .practice-card__preview-video,
.practice-card:focus-visible .practice-card__visual .image-stack img {
  transform: scale(1.035);
}
@media (prefers-reduced-motion: reduce) {
  .practice-card__gallery-slide,
  .practice-card__video-poster,
  .practice-card__preview-video,
  .practice-card__visual .image-stack img {
    transition-duration: 0s;
  }
  .practice-card:hover .practice-card__gallery-slide,
  .practice-card:hover .practice-card__video-poster,
  .practice-card:hover .practice-card__preview-video,
  .practice-card:hover .practice-card__visual .image-stack img,
  .practice-card:focus-visible .practice-card__gallery-slide,
  .practice-card:focus-visible .practice-card__video-poster,
  .practice-card:focus-visible .practice-card__preview-video,
  .practice-card:focus-visible .practice-card__visual .image-stack img {
    transform: none;
  }
}

/* V3.6 — editorial photography landing and non-destructive collection index */
.photography-landing[hidden], .photography-detail[hidden], .photo-series[hidden] { display:none !important; }
.photography-intro__links { display:flex; align-items:center; gap:38px; margin-top:50px; }
.photography-featured { padding-top:clamp(65px,8vw,135px); padding-bottom:clamp(85px,10vw,165px); }
.photography-featured > .section-marker, .photography-index > .section-marker { margin-bottom:36px; }
.photography-covers { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(32px,5vw,76px) clamp(16px,2.4vw,38px); }
.photography-cover { display:block; grid-column:span 6; text-decoration:none; color:var(--ink); min-width:0; }
.photography-cover--lead { grid-column:span 12; }
.photography-cover__frame { height:clamp(340px,42vw,680px); overflow:hidden; background:#d8d4cd; }
.photography-cover--lead .photography-cover__frame { height:clamp(470px,60vw,950px); }
.photography-cover__frame img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; transition:transform .7s cubic-bezier(.2,.55,.2,1); }
.photography-cover:hover .photography-cover__frame img, .photography-cover:focus-visible .photography-cover__frame img { transform:scale(1.035); }
.photography-cover:focus-visible { outline:1px solid var(--ink); outline-offset:6px; }
.photography-cover__caption { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px 22px; margin:17px 0 0; }
.photography-cover__caption h3 { margin:0; font:300 clamp(27px,3.3vw,54px)/1.04 var(--sans); letter-spacing:-.012em; }
.photography-cover__caption span, .photography-cover__subtitle { margin:0; color:#6f6b63; font:400 11px/1.5 var(--sans); letter-spacing:.08em; }
.photography-cover__subtitle { margin-top:15px; max-width:680px; }
.photography-index { padding-top:clamp(65px,8vw,135px); padding-bottom:clamp(90px,10vw,165px); border-top:1px solid var(--line); }
.photography-index__row { display:grid; grid-template-columns:100px minmax(0,1fr) 120px; gap:20px; align-items:baseline; border-top:1px solid var(--line); padding:24px 0 20px; color:var(--ink); text-decoration:none; }
.photography-index__row:last-child { border-bottom:1px solid var(--line); }
.photography-index__row strong { font:300 clamp(28px,4vw,62px)/1.04 var(--sans); letter-spacing:-.018em; }
.photography-index__row > span { font:400 11px/1.3 var(--sans); letter-spacing:.1em; color:#827f76; }
.photography-index__row > span:last-child { text-align:right; }
.photography-index__row:hover strong { opacity:.56; }
.photography-index__note { max-width:470px; font:300 15px/1.5 var(--sans); color:#77756e; margin-top:24px; }
.photography-detail .photo-series { padding-top:clamp(125px,13vw,215px); }
.photo-series__back { display:flex; justify-content:space-between; align-items:center; margin-bottom:clamp(50px,6vw,100px); }
.photo-series__back span { font:400 11px/1 var(--sans); letter-spacing:.14em; color:#77756e; }
.photo-series__subtitle { max-width:650px; margin-top:17px !important; font-size:12px !important; line-height:1.65 !important; letter-spacing:.055em !important; }
.photo-series__end { margin:44px 0 0; }
.photo-carousel__filmstrip { display:flex; flex-wrap:nowrap; gap:10px; width:100%; overflow-x:auto; overflow-y:hidden; padding-bottom:13px; scrollbar-width:thin; scrollbar-color:#918f86 transparent; }
.photo-carousel__thumb { flex:0 0 clamp(72px,7.6vw,116px); }
.photo-carousel__thumb img { height:clamp(65px,8vw,105px); }
.photo-carousel__stage { background:#e2ded8; }
#photo-selected, #photo-index { scroll-margin-top:120px; }
@media (max-width:800px) {
 .photography-cover { grid-column:span 12; }
 .photography-cover__frame,.photography-cover--lead .photography-cover__frame {height:clamp(360px,75vw,660px);}
 .photography-index__row {grid-template-columns:65px minmax(0,1fr) 69px;gap:12px;}
 .photography-index__row strong {font-size:clamp(23px,4.7vw,40px);}
}
@media (max-width:480px) {
 .photography-intro__links { gap:22px;flex-wrap:wrap; }
 .photography-cover__frame,.photography-cover--lead .photography-cover__frame {height:clamp(350px,105vw,550px);}
 .photography-cover__caption {display:block;}
 .photography-cover__caption span {display:block;margin-top:7px;}
 .photography-index__row > span {font-size:9px;}
 .photography-index__row {grid-template-columns:46px minmax(0,1fr) 49px;}
 .photo-series__back {margin-bottom:35px;}
 .photo-carousel__filmstrip {margin-top:18px;}
}
@media(prefers-reduced-motion:reduce){.photography-cover__frame img{transition:none;}}


/* V3.8 — curated, mixed-media modeling projects; inherited editorial visual language. */
#modeling-landing[hidden], #modeling-detail[hidden] { display:none !important; }
.modeling-covers { grid-template-columns:repeat(12,minmax(0,1fr)); }
.modeling-cover { grid-column:span 6; }
.modeling-cover .photography-cover__frame {height:clamp(420px,48vw,800px);}
.modeling-cover .photography-cover__frame img {object-position:center 29%;}
.modeling-cover .photography-cover__caption h3 {font-size:clamp(24px,2.65vw,46px);}
.modeling-main .photography-featured { padding-bottom:clamp(85px,10vw,165px); }
#modeling-detail .photo-series { padding-top:clamp(125px,13vw,215px); }
.modeling-series .photo-series__heading h2 { max-width:1040px; }
.modeling-film-badge {pointer-events:none;position:absolute;bottom:clamp(16px,3vw,32px);left:clamp(16px,3vw,32px);background:rgba(17,17,17,.68);color:white;backdrop-filter:blur(6px);padding:12px 16px;font:400 11px/1 var(--sans);letter-spacing:.16em;}
.modeling-video-slide img {cursor:pointer;}
.modeling-film-thumb__visual {display:block;position:relative;margin:0;}
.modeling-film-thumb__visual img {width:100%;}
.modeling-film-thumb__visual b {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(17,17,17,.68);color:#fff;font-size:12px;font-weight:400;border-radius:50%;display:flex;align-items:center;justify-content:center;width:34px;height:34px;}
@media(max-width:800px) {
 .modeling-cover {grid-column:span 12;}
 .modeling-cover .photography-cover__frame {height:clamp(430px,110vw,850px);}
}
@media(prefers-reduced-motion:reduce) { .modeling-cover .photography-cover__frame img {transition:none;} }
