@font-face { font-family: Manrope; src: url('assets/manrope-variable.ttf') format('truetype'); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: Newsreader; src: url('assets/newsreader-italic.ttf') format('truetype'); font-weight: 200 800; font-style: italic; font-display: swap; }

:root {
  color-scheme: light;
  --paper: #f1f2ef;
  --surface: #e7ebe4;
  --surface-soft: #e9ece8;
  --ink: #1b211f;
  --muted: #59645e;
  --line: #b8c0b7;
  --accent: #7f9476;
  --white: #fafbf8;
  --page: clamp(20px, 5.6vw, 92px);
  --ease: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Manrope, Arial, sans-serif; font-size: 16px; -webkit-font-smoothing: antialiased; }
body.dialog-open { overflow: hidden; }
button,a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { font-weight: 500; }
::selection { background: #bed0ae; color: #18201a; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: 20px; background: var(--ink); color: var(--white); padding: 12px 18px; }
.skip-link:focus { top: 18px; }
.section-shell { width: min(100%, 1600px); margin-inline: auto; padding-inline: var(--page); }
.period { color: var(--accent); }

/* Navigation and page-level hierarchy */
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(241,242,239,.94); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(27,33,31,.13); }
.nav-shell { height: 73px; width: min(100%,1600px); margin: auto; padding-inline: var(--page); display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.wordmark { font-size: 19px; font-weight: 800; letter-spacing: -.052em; white-space: nowrap; }
.wordmark span { display: inline-block; font-weight: 400; margin-left: 6px; letter-spacing: -.07em; }
.nav-links { display: flex; align-items: center; gap: clamp(22px,3.3vw,52px); }
.nav-links a { font-size: 12px; font-weight: 650; letter-spacing: -.015em; position: relative; padding-block: 12px; }
.nav-links a::after { content: ''; position: absolute; left:0; right:0; bottom:5px; height:1px; background: var(--ink); transform:scaleX(0); transform-origin:left; transition: transform .35s var(--ease); }
.nav-links a:hover::after,.nav-links a:focus-visible::after { transform:scaleX(1); }
.menu-toggle { display: none; border: 0; padding: 9px; background: none; }
.menu-toggle span { display:block; width: 26px; height: 1.5px; margin: 6px 0; background:var(--ink); transition:transform .3s var(--ease); }

/* Hero: type and real imagery share the first impression */
.hero { min-height: calc(100dvh - 73px); display:grid; grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr); align-items: stretch; gap: clamp(28px,4.5vw,82px); padding-top: clamp(30px,5vh,70px); padding-bottom: clamp(32px,5vh,70px); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; position:relative; z-index:2; padding-bottom: clamp(12px,4vh,54px); }
.hero-overline { font-size: clamp(10px, .86vw, 12px); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: clamp(28px,5vh,65px); }
.hero h1 { font-weight: 550; font-size: clamp(51px, 5.65vw, 100px); line-height:1.08; letter-spacing: -.062em; white-space:nowrap; }
.hero h1 em { display:inline-block; font: italic 460 1.07em/1.15 Newsreader, Georgia, serif; color:#657b63; letter-spacing:-.024em; padding-bottom:.04em; }
.hero-lede { margin-top: clamp(22px,3.8vh,44px); font-size: clamp(14px, 1.16vw, 17px); line-height:1.7; max-width: 420px; color:var(--muted); }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; width:max-content; gap:28px; background:none; border:0; border-bottom:1px solid var(--ink); font-weight:750; font-size: 13px; padding: 0 0 12px; transition: color .3s var(--ease), border-color .3s var(--ease), gap .3s var(--ease); white-space:nowrap; }
.text-link:hover { color:#52664e; border-color:#52664e; gap:39px; }
.text-link span { font-size: 21px; font-weight: 400; line-height: .8; }
.hero-link { margin-top: clamp(24px,4.5vh,60px); }
.hero-media { min-height: 480px; align-self:stretch; position:relative; margin-right: clamp(0px,1.2vw,20px); }
.hero-media > img { width:100%; height:100%; object-fit:cover; object-position: 57% 50%; }
.hero-media-caption { position:absolute; bottom:0; left:0; background:var(--paper); color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.035em; padding:13px 22px 0 0; }
@media (prefers-reduced-motion: no-preference) {
  .hero-copy > * { animation: hero-enter .9s var(--ease) both; }
  .hero-copy > :nth-child(2) { animation-delay: .1s; }
  .hero-copy > :nth-child(3) { animation-delay: .2s; }
  .hero-copy > :nth-child(4) { animation-delay: .3s; }
  .hero-media { animation: image-enter 1.1s var(--ease) .1s both; }
}
@keyframes hero-enter { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:translateY(0); } }
@keyframes image-enter { from { opacity:0; clip-path: inset(9% 0 0 0); transform:translateY(20px); } to { opacity:1; clip-path:inset(0 0 0 0); transform:translateY(0); } }

/* Editorial pause */
.intro { display:grid; grid-template-columns: minmax(150px,.38fr) minmax(0,1fr); gap: clamp(50px,10vw,180px); padding-top: clamp(88px,10vw,155px); padding-bottom:clamp(80px,9.5vw,150px); }
.intro-glyph { font-size: clamp(25px,3vw,44px); line-height:1; font-weight:700; letter-spacing:-.1em; color:var(--accent); }
.intro h2 { max-width: 930px; font-size: clamp(36px,5vw,75px); line-height:1.13; letter-spacing:-.075em; }
.editorial-italic { margin-top:15px; color:#627861; font: italic 440 clamp(36px,5.3vw,79px)/1.18 Newsreader, Georgia, serif; padding-bottom:.04em; }
.intro-text { max-width: 620px; margin-top:clamp(36px,5vw,70px); font-size: 16px; line-height:1.9; color:var(--muted); }

/* Work and image treatments */
.work { padding-top:clamp(80px,9vw,150px); padding-bottom:clamp(120px,14vw,230px); }
.section-head { max-width:850px; margin-bottom:clamp(42px,6vw,85px); }
.section-head h2 { font-size:clamp(56px,8.2vw,132px); letter-spacing:-.065em; line-height:1.04; }
.section-head p { max-width:600px; margin-top:28px; line-height:1.7; color:var(--muted); font-size:16px; }
.image-trigger { position:relative; padding:0; background:var(--surface); border:0; display:block; width:100%; overflow:hidden; text-align:left; }
.image-trigger img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease), filter .6s ease; }
.image-trigger:hover img,.image-trigger:focus-visible img { transform:scale(1.055); }
.image-arrow { position:absolute; right:24px; bottom:24px; width:54px; height:54px; display:grid; place-items:center; font-size:26px; background:var(--paper); color:var(--ink); opacity:0; transform:translateY(10px); transition: opacity .35s var(--ease),transform .35s var(--ease); }
.image-trigger:hover .image-arrow,.image-trigger:focus-visible .image-arrow { opacity:1; transform:translateY(0); }
.feature-photo { height: clamp(380px,60vw,760px); }
.feature-photo img { object-position:center 51%; }
.work-caption { display:flex; justify-content:space-between; align-items:end; gap:20px; padding-top:22px; }
.work-caption h3 { font-weight:600; font-size:clamp(28px,3vw,45px); letter-spacing:-.065em; line-height:1.2; }
.work-caption p { margin-top:8px; font-size:13px; color:var(--muted); }
.work-caption .text-link { margin-bottom:4px; }
.work-pair { margin-top:clamp(90px,11vw,185px); display:grid; grid-template-columns:1.15fr .85fr; align-items:start; gap:clamp(28px,5vw,80px); }
.club-card { margin-top:clamp(40px,8vw,120px); }
.paired-photo { height:clamp(330px,36vw,540px); }
.hotel-card .paired-photo img { object-position:52% center; }
.club-card .paired-photo img { object-position:65% center; }
.work-card .work-caption h3 { font-size:clamp(27px,3vw,42px); }
.icon-text-button { background:transparent; border:1px solid var(--line); width:42px; height:42px; font-size:23px; transition:background .25s,color .25s; }
.icon-text-button:hover { background:var(--ink); color:var(--white); }

/* Concept archive, intentional asymmetry */
.interior-studies { background:var(--surface); padding-top:clamp(100px,11vw,170px); padding-bottom:clamp(100px,12vw,180px); }
.studies-heading { max-width:850px; }
.studies-heading h2 { font-size:clamp(57px,8vw,124px); letter-spacing:-.085em; line-height:1.03; }
.studies-heading p { margin-top:28px; max-width:560px; line-height:1.7; color:var(--muted); }
.filter-bar { display:flex; gap:clamp(18px,3vw,38px); flex-wrap:wrap; margin-top:clamp(57px,7vw,99px); margin-bottom:38px; border-bottom:1px solid var(--line); }
.filter-bar button { background:transparent; border:0; padding:0 0 16px; color:#627067; font-size:13px; font-weight:700; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .25s,border-color .25s; }
.filter-bar button.active,.filter-bar button:hover { color:var(--ink); border-bottom-color:var(--ink); }
.study-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:start; column-gap:clamp(22px,3vw,50px); row-gap:clamp(43px,6.5vw,100px); }
.study-tile { grid-column:span 5; }
.study-tile.study-large { grid-column:span 7; }
.study-tile.study-offset { grid-column:span 5; margin-top:clamp(50px,9vw,144px); }
.study-tile.study-wide { grid-column:span 7; }
.study-tile button { display:block; width:100%; padding:0; border:0; background:#f7f8f6; overflow:hidden; }
.study-tile img { width:100%; aspect-ratio:1.38; height:auto; object-fit:cover; transform:scale(1.09); transform-origin:center bottom; transition:transform .9s var(--ease); }
.study-tile button:hover img,.study-tile button:focus-visible img { transform:scale(1.14); }
.study-tile figcaption { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; justify-content:space-between; padding-top:17px; }
.study-tile strong { font-size:clamp(20px,2vw,29px); font-weight:550; letter-spacing:-.055em; }
.study-tile span { color:var(--muted); font-size:12px; }
.study-tile[hidden] { display:none !important; }
.studies-note { margin-top:80px; font-size:12px; color:var(--muted); }

/* Visualisation and technical evidence */
.visualisation { padding-top:clamp(135px,15vw,235px); padding-bottom:clamp(140px,15vw,230px); }
.visual-title-wrap { max-width:680px; margin-left:clamp(0px,26vw,370px); margin-bottom:clamp(65px,8vw,120px); }
.visual-title-wrap h2 { font-size:clamp(68px,10vw,148px); line-height:1.04; letter-spacing:-.09em; }
.visual-title-wrap em { font:italic 450 .92em/1.15 Newsreader,Georgia,serif; color:#6c816a; letter-spacing:-.02em; display:inline-block; padding-bottom:.08em; }
.visual-title-wrap p { max-width:540px; margin-top:25px; line-height:1.8; color:var(--muted); }
.visual-gallery { display:grid; grid-template-columns: 1.5fr .72fr; gap:clamp(19px,2.5vw,39px); align-items:end; }
.visual-large { height:clamp(330px,52vw,690px); }
.visual-small { height:clamp(260px,35vw,450px); margin-bottom:-50px; }
.approach { padding-top:clamp(145px,16vw,250px); padding-bottom:clamp(130px,12vw,200px); display:grid; grid-template-columns: .85fr 1.15fr; gap:clamp(30px,6vw,95px); }
.approach h2 { font-size:clamp(55px,6.7vw,106px); line-height:1.06; letter-spacing:-.085em; }
.approach-copy p { max-width:445px; margin-top:30px; color:var(--muted); line-height:1.8; }
.approach-visual { align-self:center; padding:clamp(22px,3.3vw,52px); background:var(--surface); }
.approach-visual img { width:100%; aspect-ratio:1.65; object-fit:contain; mix-blend-mode:multiply; }
.expertise-strip { grid-column:1 / -1; display:flex; flex-wrap:wrap; column-gap:clamp(25px,3.8vw,62px); row-gap:24px; margin-top:clamp(50px,7vw,100px); padding-top:32px; border-top:1px solid var(--line); }
.expertise-strip span { font-size:13px; font-weight:650; color:var(--muted); }

/* The actual downloadable edition is presented as an editorial object. */
.folio-edition { background:#25332d; color:var(--white); }
.folio-edition { scroll-margin-top:74px; }
.folio-edition-inner { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(50px,8vw,130px); align-items:center; min-height:640px; padding-block:clamp(90px,10vw,155px); }
.folio-edition-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:#c7d6c7; }
.folio-edition-copy h2 { margin-top:clamp(45px,5vw,72px); font-size:clamp(72px,7.9vw,125px); font-weight:500; letter-spacing:-.06em; line-height:1.04; }
.folio-edition-copy h2 em { color:#c5d7bd; font:italic 440 .99em/1.15 Newsreader,Georgia,serif; letter-spacing:-.024em; display:inline-block; padding-bottom:.04em; }
.folio-edition-copy > p:not(.folio-edition-label) { max-width:425px; margin-top:clamp(30px,3.5vw,50px); font-size:15px; line-height:1.8; color:#d7dfd8; }
.folio-download { width:max-content; display:inline-flex; align-items:center; justify-content:space-between; gap:65px; border-bottom:1px solid #d7dfd8; padding:0 0 12px; margin-top:38px; font-size:13px; font-weight:750; transition:gap .35s var(--ease),color .35s ease; }
.folio-download span { font-size:24px; line-height:1; font-weight:400; }
.folio-download:hover { gap:81px; color:#c5d7bd; }
.folio-edition-cover { display:block; position:relative; transform:rotate(0); transition:transform .65s var(--ease); }
.folio-edition-cover::before { content:''; position:absolute; inset:-10px -11px 30px 11px; background:#455b4e; border:1px solid rgba(255,255,255,.2); opacity:.55; z-index:-1; }
.folio-edition-cover:hover { transform:translateY(-6px); }
.folio-edition-cover img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; box-shadow:18px 22px 55px rgba(0,0,0,.27); border:1px solid rgba(255,255,255,.19); }
.folio-edition-cover span { display:block; margin-top:19px; text-align:right; font-size:11px; font-weight:700; color:#c7d6c7; letter-spacing:.07em; text-transform:uppercase; }

/* Human profile and final contact */
.profile { padding-top:clamp(70px,8vw,120px); padding-bottom:clamp(130px,15vw,220px); display:grid; grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr); gap:clamp(70px,9vw,145px); }
.profile-image { height:clamp(550px,65vw,770px); background:var(--surface); overflow:hidden; }
.profile-image img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.profile-content { padding-top:clamp(5px,2vw,30px); }
.profile h2 { font-size:clamp(54px,6.4vw,101px); line-height:1.08; letter-spacing:-.085em; }
.profile-role { margin-top:13px; font-size:clamp(17px,2vw,24px); font-weight:500; }
.profile-location { display:block; margin-top:12px; color:var(--muted); font-size:13px; font-weight:650; letter-spacing:0; }
.profile-bio { max-width:640px; margin-top:clamp(32px,4vw,64px); line-height:1.85; color:var(--muted); }
.experience { margin-top:clamp(40px,5vw,80px); border-top:1px solid var(--line); }
.experience > div { display:grid; grid-template-columns:160px 1fr; gap:20px; padding-top:24px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.experience-date { font-size:12px; color:var(--muted); margin-top:4px; }
.experience strong { font-size:16px; font-weight:750; }
.experience p { color:var(--muted); font-size:13px; margin-top:8px; line-height:1.6; }
.pdf-link { margin-top:42px; }
.contact { padding-top:clamp(130px,15vw,230px); padding-bottom:48px; border-top:1px solid var(--line); }
.contact > p { color:var(--muted); font-size:13px; font-weight:650; margin-bottom:32px; }
.contact h2 { font-size:clamp(60px,8.8vw,143px); letter-spacing:-.09em; line-height:1.05; }
.contact-email { display:flex; width:max-content; max-width:100%; align-items:baseline; gap:clamp(20px,4vw,60px); border-bottom:2px solid var(--ink); padding-bottom:16px; margin-top:clamp(50px,6vw,88px); font-size:clamp(20px,3vw,46px); font-weight:500; letter-spacing:-.065em; overflow-wrap:anywhere; }
.contact-email span { font-size:.8em; }
.contact-email:hover { color:#52664e; border-color:#52664e; }
.contact-bottom { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:clamp(115px,14vw,220px); padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.contact-bottom a:hover { color:var(--ink); }

/* Project detail is an actual accessible dialog, not a decorative overlay. */
.project-dialog { position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:var(--paper); color:var(--ink); overflow-y:auto; overscroll-behavior:contain; }
.project-dialog::backdrop { background:rgba(14,20,17,.72); }
.dialog-inner { max-width:1500px; margin:auto; padding:0 var(--page) 70px; }
.dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; height:74px; border-bottom:1px solid var(--line); }
.dialog-eyebrow { font-size:12px; font-weight:700; color:var(--muted); }
.dialog-close,.dialog-back,.dialog-next { background:transparent; border:0; font-size:14px; font-weight:700; padding:12px 0; }
.dialog-close span { font-size:30px; margin-left:16px; vertical-align:middle; font-weight:300; }
.dialog-close:hover,.dialog-back:hover,.dialog-next:hover { color:#52664e; }
.dialog-heading { padding-block:clamp(55px,7vw,112px); max-width:930px; }
.dialog-heading h2 { font-size:clamp(58px,8vw,124px); letter-spacing:-.085em; line-height:1.04; }
.dialog-heading p { margin-top:26px; max-width:680px; color:var(--muted); line-height:1.8; }
.dialog-main-image { width:100%; min-height:380px; max-height:710px; aspect-ratio: 1.95; overflow:hidden; background:var(--surface); }
.dialog-main-image img { width:100%; height:100%; object-fit:cover; }
.dialog-summary { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); gap:30px; padding-block:34px 52px; }
.dialog-summary > div { display:flex; flex-direction:column; gap:11px; }
.dialog-summary span { color:var(--muted); font-size:12px; }
.dialog-summary strong { font-size:14px; font-weight:700; line-height:1.5; }
.dialog-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,3vw,42px); padding-top:clamp(80px,9vw,144px); }
.dialog-gallery figure { min-width:0; }
.dialog-gallery figure.full { grid-column:1 / -1; }
.dialog-gallery img { width:100%; max-height:650px; aspect-ratio: 1.45; object-fit:cover; background:var(--surface); }
.dialog-gallery figure.full img { aspect-ratio:2; max-height:750px; }
.dialog-gallery figure.uncropped img,.dialog-gallery figure.uncropped.full img { height:auto; max-height:none; aspect-ratio:auto; object-fit:contain; background:var(--white); }
.dialog-gallery figcaption { color:var(--muted); font-size:12px; padding-top:14px; }
.dialog-end { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:40px; border-top:1px solid var(--line); padding-top:32px; margin-top:clamp(80px,9vw,145px); }
.dialog-end p { color:var(--muted); font-size:13px; max-width:530px; line-height:1.7; }
.dialog-end-actions { display:flex; gap:clamp(28px,4vw,62px); align-items:center; flex-wrap:wrap; }
.dialog-next { border-bottom:1px solid var(--ink); }

/* Reveal without scroll listeners. Content stays visible if JavaScript fails. */
.js-enabled .reveal { opacity:0; transform:translateY(38px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js-enabled .reveal.is-visible { opacity:1; transform:translateY(0); }

@media (max-width: 1090px) {
  .hero { gap:35px; }
  .hero h1 { font-size:clamp(50px,5.8vw,77px); }
  .work-pair { gap:30px; }
  .folio-edition-inner { gap:45px; }
  .profile { gap:60px; }
  .experience > div { grid-template-columns:125px 1fr; }
}

@media (max-width: 767px) {
  :root { --page: 20px; }
  .nav-shell { height:64px; }
  .wordmark { font-size:18px; }
  .menu-toggle { display:block; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.8px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.8px) rotate(-45deg); }
  .nav-links { display:none; position:absolute; top:64px; left:0; right:0; background:var(--paper); padding:22px var(--page) 32px; flex-direction:column; align-items:start; gap:12px; border-bottom:1px solid var(--line); }
  .nav-links.open { display:flex; }
  .nav-links a { font-size:22px; padding:9px 0; }
  .hero { min-height: calc(100dvh - 64px); display:flex; flex-direction:column; padding-top:clamp(48px,8vh,90px); padding-bottom:28px; gap:34px; }
  .hero-copy { justify-content:flex-start; padding-bottom:0; }
  .hero-overline { margin-bottom:35px; }
  .hero h1 { white-space:normal; font-size:clamp(51px,12vw,76px); line-height:1.03; }
  .hero-lede { margin-top:23px; font-size:14px; }
  .hero-link { margin-top:25px; }
  .hero-media { flex:1; min-height:clamp(310px,47vh,550px); margin:0 0 0 8%; }
  .hero-media-caption { font-size:9px; padding-right:11px; }
  .intro { display:block; padding-top:95px; padding-bottom:100px; }
  .intro-glyph { margin-bottom:46px; }
  .intro h2 { font-size:clamp(37px,9.2vw,62px); }
  .editorial-italic { font-size:clamp(46px,11vw,76px); }
  .intro-text { font-size:14px; }
  .work { padding-top:40px; padding-bottom:125px; }
  .section-head h2 { font-size:clamp(59px,13vw,93px); }
  .section-head p { font-size:14px; }
  .feature-photo { height:clamp(350px,68vw,500px); }
  .work-caption { align-items:start; }
  .work-caption h3 { font-size:28px; }
  .work-caption p { font-size:12px; }
  .work-caption .text-link { font-size:12px; gap:9px; }
  .work-pair { margin-top:92px; display:block; }
  .club-card { margin-top:90px; }
  .paired-photo { height:clamp(340px,68vw,520px); }
  .interior-studies { padding-top:112px; padding-bottom:120px; }
  .studies-heading h2 { font-size:clamp(55px,12vw,88px); }
  .studies-heading p { font-size:14px; }
  .filter-bar { margin-top:51px; overflow-x:auto; gap:23px; flex-wrap:nowrap; white-space:nowrap; scrollbar-width:none; }
  .filter-bar::-webkit-scrollbar { display:none; }
  .filter-bar button { font-size:12px; }
  .study-grid { display:block; }
  .study-tile,.study-tile.study-large,.study-tile.study-offset,.study-tile.study-wide { margin:0 0 56px; }
  .study-tile img { aspect-ratio:1.35; }
  .studies-note { margin-top:5px; }
  .visualisation { padding-top:130px; padding-bottom:150px; }
  .visual-title-wrap { margin:0 0 64px; }
  .visual-title-wrap h2 { font-size:clamp(65px,13vw,95px); }
  .visual-title-wrap p { font-size:14px; }
  .visual-gallery { display:block; }
  .visual-large { height:340px; }
  .visual-small { height:230px; width:75%; margin:24px 0 0 auto; }
  .approach { display:block; padding-top:50px; padding-bottom:130px; }
  .approach h2 { font-size:clamp(56px,12vw,80px); }
  .approach-copy p { font-size:14px; }
  .approach-visual { margin-top:60px; padding:20px; }
  .expertise-strip { margin-top:60px; gap:15px 25px; }
  .expertise-strip span { font-size:12px; }
  .folio-edition-inner { display:flex; flex-direction:column; align-items:stretch; gap:60px; padding-block:95px; }
  .folio-edition-copy h2 { font-size:clamp(51px,12.1vw,84px); margin-top:38px; }
  .folio-edition-copy > p:not(.folio-edition-label) { font-size:14px; margin-top:32px; }
  .folio-edition-cover { width:100%; }
  .profile { display:flex; flex-direction:column; gap:50px; padding-top:50px; padding-bottom:140px; }
  .profile-image { width:83%; height:clamp(430px,105vw,660px); }
  .profile h2 { font-size:clamp(53px,11vw,80px); }
  .profile-bio { font-size:14px; margin-top:33px; }
  .experience > div { grid-template-columns:105px 1fr; gap:14px; }
  .experience strong { font-size:14px; }
  .experience p,.experience-date { font-size:11px; }
  .contact { padding-top:130px; }
  .contact h2 { font-size:clamp(48px,11.2vw,82px); }
  .contact-email { font-size:clamp(20px,5.2vw,30px); }
  .contact-bottom { margin-top:130px; font-size:11px; }
  .dialog-toolbar { height:65px; }
  .dialog-heading { padding-block:65px; }
  .dialog-heading h2 { font-size:clamp(53px,12vw,83px); }
  .dialog-heading p { font-size:14px; }
  .dialog-main-image { min-height:330px; aspect-ratio:1.1; }
  .dialog-summary { grid-template-columns:1fr 1fr; gap:25px; }
  .dialog-gallery { display:block; }
  .dialog-gallery figure { margin-bottom:28px; }
  .dialog-gallery img,.dialog-gallery figure.full img { aspect-ratio:1.25; }
  .dialog-gallery figure.uncropped img,.dialog-gallery figure.uncropped.full img { aspect-ratio:auto; }
  .dialog-end { gap:25px; }
}

@media (max-width: 385px) {
  .hero h1 { font-size:47px; }
  .work-caption { flex-wrap:wrap; }
  .section-head h2 { font-size:52px; }
  .contact-email { font-size:19px; }
}

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