:root {
  --paper: #f5f3ec;
  --page-background: #f5f3ec;
  --page-grid-color: #8b807d;
  --page-header-ink: #272322;
  --page-header-muted: #625b58;
  --page-header-line: #d6cfcd;
  --ink: #24211f;
  --brown: #2a211c;
  --coral: #ef705f;
  --display: 'Inter Display', 'Inter', 'Arial', sans-serif;
  --text: 'Inter', 'Arial', sans-serif;
  --motion: cubic-bezier(.22,1,.36,1);
}
* { box-sizing: border-box; }
html { background:var(--page-background); scroll-behavior:smooth; scrollbar-gutter:auto; scrollbar-width:none; overscroll-behavior-y:none; }
body { zoom:0.95; overscroll-behavior-y:none; margin:0; color:var(--ink); background:var(--page-background); font-family:var(--text); -webkit-font-smoothing:antialiased; }
html::-webkit-scrollbar, body::-webkit-scrollbar {display:none;}
body {scrollbar-width:none;}
button { font:inherit; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible {outline:2px solid #b9472c;outline-offset:4px;}
.wrap { max-width:1460px; margin-inline:auto; padding-inline:clamp(18px,5vw,75px); }
.nav { height:83px; display:flex; align-items:center; justify-content:space-between; }
.wordmark { font-size:23px; font-weight:800; letter-spacing:-.075em; }
.back { font-size:12px; font-weight:600; letter-spacing:.015em; padding-bottom:4px; border-bottom:1px solid currentColor; transition:color .3s; }
.back:hover {color:#b9472c;}

/* HERO — equal height, rotationally related inner cuts */

@property --corner-x { syntax:'<percentage>'; inherits:true; initial-value:32%; }
@property --corner-y { syntax:'<percentage>'; inherits:true; initial-value:36%; }
.hero {
  --corner-x:32%;--corner-y:36%;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  height:clamp(435px,42vw,580px); isolation:isolate;
  transition:--corner-x 950ms var(--motion),--corner-y 950ms var(--motion);
}
.hero-panel {position:relative;min-width:0;height:100%;overflow:hidden;}
.hero-photo {background:#887e73;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--corner-y)),calc(100% - var(--corner-x)) 100%,0 100%);}
.hero-photo img {display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.04);transform:scale(1.045);transition:transform 1050ms var(--motion),filter 850ms ease;}
.hero:hover .hero-photo img {filter:saturate(.88) contrast(1.04);}
.hero-color {background:var(--coral);clip-path:polygon(var(--corner-x) 0,100% 0,100% 100%,0 100%,0 var(--corner-y));display:flex;align-items:center;justify-content:flex-end;padding:clamp(25px,4.3vw,67px);padding-left:clamp(30px,4.5vw,75px);text-align:right;}
.hero h1 {width:100%;font:700 clamp(36px,5.9vw,90px)/.91 var(--font-body);letter-spacing:-.045em;margin:0;text-wrap:nowrap;}
.hero h1 span {display:block;}

@media (prefers-reduced-motion:no-preference) {
  .hero-entering .hero-photo::after {
    content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
    background:linear-gradient(150deg,#f5f3ec 12%,rgba(245,243,236,.78) 84%);
    animation:photo-develop 860ms cubic-bezier(.4,0,.18,1) backwards;
  }
  .hero-entering .hero-copy h1 {animation:title-settle 600ms cubic-bezier(.32,0,.2,1) 80ms backwards;}
  .hero-entering .hero-note {animation:note-appear 440ms ease-in-out 220ms backwards;}
}
@keyframes title-settle {
  from {opacity:.58;transform:translateY(.08em);}
  to {opacity:1;transform:translateY(0);}
}
@keyframes note-appear {from {opacity:0;} to {opacity:1;}}
@keyframes photo-develop {
  from {opacity:.94;}
  to {opacity:0;}
}

/* Chapters share the page canvas; image backgrounds remain visible while loading. */
/* Match width to zoom so descendants retain their original layout and wrapping.
   An auto/full-width zoomed block would expand its internal layout instead. */
.photo-scale {zoom:.8;width:80%;margin-inline:auto;display:flow-root;}
.photo-chapters {zoom:.9;margin-top:clamp(80px,9vw,132px);}
.photo-chapter {
  padding-top:clamp(96px,9vw,144px);
  color:var(--chapter-ink);
}
.photo-chapter + .photo-chapter {
  padding-top:calc(clamp(96px,9vw,144px) + clamp(24px,3vw,40px));
}
.photo-chapter--materia {--chapter-background:#403233;--chapter-ink:#F3ECE5;--chapter-placeholder:#635756;}
.photo-chapter--terra {--chapter-background:#E9DFB7;--chapter-ink:#2B2521;--chapter-placeholder:#c7bea0;}
.photo-chapter--mechanica {--chapter-background:#252524;--chapter-ink:#F5F1EB;--chapter-placeholder:#484846;}
.chapter-subhero {display:grid;grid-template-columns:minmax(0,59fr) minmax(0,41fr);gap:clamp(24px,2vw,28px);align-items:start;}
.photo-chapter--terra .chapter-subhero {grid-template-columns:minmax(0,41fr) minmax(0,59fr);}
.chapter-image {position:relative;aspect-ratio:3.4 / 1;overflow:hidden;}
.chapter-image-reveal {position:absolute;inset:0;overflow:hidden;background:var(--chapter-placeholder);}
.chapter-image img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.photo-chapter--mechanica .chapter-image img {object-position:center 65%;}
.chapter-copy {min-width:0;container-type:inline-size;text-align:left;}
.chapter-copy h2 {margin:0;font:300 clamp(36px,20cqw,108px)/.95 var(--font-display);letter-spacing:-.065em;white-space:nowrap;}
.photo-chapter--mechanica h2 {font-size:clamp(30px,17.5cqw,100px);}
.chapter-copy p {margin:14px 0 0;font:400 clamp(22px,1.7vw,26px)/1.4 var(--font-body);text-wrap:pretty;}
.photo-chapter--terra .chapter-copy {text-align:right;}
/* Normal document flow lets content push every later subhero and its measured
   palette timing together. Rows can grow when real copy is added. */
.chapter-gallery-slot {
  --content-gap:clamp(24px,4vw,56px);
  container-type:inline-size;
  display:grid;
  grid-template-columns:minmax(0,44fr) minmax(0,55fr);
  grid-template-rows:repeat(2,minmax(min-content,1fr));
  grid-template-areas:"portrait landscape" "portrait text";
  gap:var(--content-gap);
  min-height:clamp(450px,38vw,560px);
  margin-top:clamp(52px,5vw,72px);
  align-items:stretch;
}
@media(min-width:761px) {
 .photo-chapter--terra .chapter-gallery-slot {grid-template-columns:minmax(0,55fr) minmax(0,44fr);grid-template-areas:"landscape portrait" "text portrait";}
}
.chapter-content-photo,.chapter-content-text {min-width:0;}
.chapter-content-photo {position:relative;overflow:hidden;background:color-mix(in srgb,var(--chapter-placeholder) 45%,transparent);}
.chapter-content-photo img {position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .chapter-content-photo img {transition:transform 1050ms var(--motion);}
 .chapter-content-photo:hover img {transform:scale(1.045);}
}
.chapter-content-photo--portrait {grid-area:portrait;min-height:calc((100cqw - var(--content-gap)) * 50 / 99);}
.chapter-content-photo--landscape {grid-area:landscape;min-height:calc((100cqw - var(--content-gap)) * 23 / 99);}
.chapter-content-text {grid-area:text;min-height:clamp(180px,15vw,290px);font:400 clamp(21px,1.45vw,25px)/1.6 var(--font-body);text-wrap:pretty;}
.chapter-content-text p {max-width:38em;margin:0;}
.chapter-content-text p + p {margin-top:1em;}
.terra-slideshow {position:relative;overflow:hidden;aspect-ratio:2.55 / 1;margin-top:clamp(24px,3vw,40px);background:var(--chapter-placeholder);}
.terra-slideshow img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease,transform 1050ms var(--motion);}
.terra-slideshow img.is-current {opacity:1;}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .terra-slideshow:hover img {transform:scale(1.025);}
}
.terra-slideshow::before {content:"";position:absolute;z-index:1;inset:25% 5%;backdrop-filter:blur(5px);mask-image:radial-gradient(ellipse, #000 20%, transparent 72%);opacity:0;transition:opacity 1s ease;pointer-events:none;}
.terra-slideshow.has-caption-blur::before {opacity:1;}
.terra-slideshow::after {content:"";position:absolute;inset:0;background:rgb(0 0 0 / 15%);pointer-events:none;}
.terra-caption {position:absolute;z-index:2;inset:0;display:grid;place-items:center;margin:0;padding:1em 6%;color:#fff;text-align:center;font:300 clamp(20px,2.8vw,40px)/1.15 var(--font-display);text-shadow:0 3px 12px rgb(0 0 0 / 65%);opacity:0;transition:opacity 1s ease;pointer-events:none;}
.terra-caption.is-current {opacity:1;}
@media(prefers-reduced-motion:reduce) {.terra-slideshow img,.terra-caption,.terra-slideshow::before {transition:none;}}
/* Materia story carousel: the clipped image window creates the diagonal seam. */
.materia-carousel {position:relative;isolation:isolate;overflow:hidden;margin-top:clamp(32px,3vw,44px);background:#F3ECE5;color:#222;min-height:clamp(380px,39vw,620px);display:grid;align-items:center;}
.materia-carousel__media {position:absolute;inset:0 auto 0 0;width:64%;overflow:hidden;clip-path:polygon(0 0,80% 0,100% 100%,0 100%);background:#b4aaa0;}
.materia-carousel__photo {position:absolute;inset:0;display:grid;place-items:center;visibility:hidden;background:linear-gradient(135deg,#b8afa4,#857d74);color:rgb(255 255 255 / .65);}
.materia-carousel__photo:nth-child(2) {background:linear-gradient(135deg,#a4ada5,#6c7c73);}
.materia-carousel__photo:nth-child(3) {background:linear-gradient(135deg,#b7a6a0,#8c716a);}
.materia-carousel__photo:nth-child(4) {background:linear-gradient(135deg,#a4a8b0,#707888);}
.materia-carousel__photo:nth-child(5) {background:linear-gradient(135deg,#b8b29d,#88816c);}
.materia-carousel__photo:nth-child(6) {background:linear-gradient(135deg,#afa79e,#776e68);}
.materia-carousel__photo:nth-child(7) {background:linear-gradient(135deg,#a8aaa3,#73776d);}
.materia-carousel__photo.is-current {visibility:visible;}
.materia-carousel__photo span {font:400 12px/1 var(--font-body);letter-spacing:.18em;}
.materia-carousel__photo img {position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.materia-carousel__stories {position:relative;top:calc(-1 * clamp(12px,2vw,28px));display:grid;margin-left:64%;padding:clamp(32px,4vw,64px) clamp(62px,6vw,90px) clamp(32px,4vw,64px) clamp(20px,2.3vw,36px);}
.materia-carousel__story {grid-area:1 / 1;min-width:0;opacity:0;visibility:hidden;}
.materia-carousel__story.is-current {opacity:1;visibility:visible;}
.materia-carousel__story h3 {margin:0 0 clamp(24px,2.2vw,32px);font:300 clamp(40px,3.4vw,56px)/.95 var(--font-display);letter-spacing:-.065em;text-wrap:balance;}
.materia-carousel__story p {margin:0;font:400 clamp(16px,1.1vw,18px)/1.5 var(--font-body);text-wrap:pretty;}
.materia-carousel__arrow {position:absolute;top:50%;z-index:3;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;padding:9px;border:1px solid rgb(34 34 34 / .12);border-radius:50%;background:rgb(255 255 255 / .18);color:#302d29;cursor:pointer;transition:opacity 200ms ease,background 200ms ease,border-color 200ms ease;}
@media (hover:hover) and (pointer:fine) {
 .materia-carousel__arrow {opacity:0;pointer-events:none;}
 .materia-carousel:hover .materia-carousel__arrow,
 .materia-carousel:focus-within .materia-carousel__arrow {opacity:1;pointer-events:auto;}
}
.materia-carousel__arrow[hidden] {display:none;}
.materia-carousel__arrow--prev {left:18px;border-color:rgb(255 255 255 / .25);color:#fff;background:rgb(0 0 0 / .08);}
.materia-carousel__arrow--next {right:18px;}
.materia-carousel__arrow:hover {background:rgb(255 255 255 / .4);border-color:currentColor;}
.materia-carousel__arrow svg {width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;}
.materia-carousel__status {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
@media(max-width:760px) {
 .materia-carousel {display:block;min-height:0;}
 .materia-carousel__media {position:relative;width:100%;height:clamp(240px,65vw,400px);clip-path:polygon(0 0,100% 0,100% 84%,0 100%);}
 .materia-carousel__stories {top:0;margin-left:0;padding:16px 64px 44px;}
 .materia-carousel__arrow {top:calc(clamp(240px,65vw,400px) / 2);}
 .materia-carousel__arrow--next {color:#fff;border-color:rgb(255 255 255 / .25);background:rgb(0 0 0 / .08);}
}
/* Matching opposite translations keep the photograph stationary while its window
   opens. The wipe only animates transforms, including on mobile compositors. */
html.photo-enhanced .chapter-image-reveal {transform:translateX(-100%);transition:transform 1000ms var(--motion);}
html.photo-enhanced .chapter-image img {transform:translateX(100%);transition:transform 1000ms var(--motion);}
html.photo-enhanced .chapter-copy h2,
html.photo-enhanced .chapter-copy p {opacity:0;transform:translateY(14px);transition:opacity 750ms var(--motion),transform 750ms var(--motion);}
html.photo-enhanced .chapter-copy h2 {transition-delay:180ms;}
html.photo-enhanced .chapter-copy p {transition-delay:310ms;}
html.photo-enhanced .chapter-gallery-slot,
html.photo-enhanced .materia-carousel,
html.photo-enhanced .terra-slideshow,
html.photo-enhanced .archive-footer {opacity:0;}
html.photo-enhanced .chapter-gallery-slot.is-visible,
html.photo-enhanced .materia-carousel.is-visible,
html.photo-enhanced .terra-slideshow.is-visible,
html.photo-enhanced .archive-footer.is-visible {opacity:1;transition:opacity 1000ms var(--motion) 650ms;}
html.photo-enhanced .chapter-gallery-slot.is-visible,
html.photo-enhanced .materia-carousel.is-visible,
html.photo-enhanced .terra-slideshow.is-visible {transition-duration:1200ms;transition-delay:80ms;}
html.photo-enhanced .archive-footer.is-visible {transition-delay:0ms;}
html.photo-enhanced .is-visible .chapter-image-reveal,
html.photo-enhanced .is-visible .chapter-image img {transform:translateX(0);}
html.photo-enhanced .is-visible .chapter-copy h2,
html.photo-enhanced .is-visible .chapter-copy p {opacity:1;transform:none;}
@media(max-width:760px) {
 .photo-chapters {margin-top:72px;}
 .photo-chapter {padding-top:80px;}
 .photo-chapter + .photo-chapter {padding-top:112px;}
 .chapter-subhero,.photo-chapter--terra .chapter-subhero {grid-template-columns:minmax(0,1fr);gap:26px;}
 .photo-chapter--terra .chapter-image {grid-row:1;}
 .chapter-copy h2 {font-size:clamp(44px,13cqw,84px);}
 .photo-chapter--mechanica h2 {font-size:clamp(30px,12cqw,80px);}
 .chapter-copy p {margin-top:12px;font-size:clamp(18px,3.5vw,22px);max-width:32em;}
 .photo-chapter--terra p {margin-left:auto;}
 .chapter-gallery-slot {grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"portrait" "landscape" "text";gap:24px;min-height:0;margin-top:48px;}
 .chapter-content-photo--portrait {min-height:0;aspect-ratio:44 / 50;}
 .chapter-content-photo--landscape {min-height:0;aspect-ratio:55 / 23;}
}
@media(prefers-reduced-motion:reduce) {
 html.photo-enhanced .chapter-gallery-slot,
 html.photo-enhanced .chapter-gallery-slot.is-visible,
 html.photo-enhanced .materia-carousel,
 html.photo-enhanced .materia-carousel.is-visible,
 html.photo-enhanced .terra-slideshow,
 html.photo-enhanced .terra-slideshow.is-visible,
 html.photo-enhanced .archive-footer,
 html.photo-enhanced .archive-footer.is-visible {opacity:1;transition:none;}
 html.photo-enhanced .chapter-image-reveal {transform:none;transition:none;}
 html.photo-enhanced .chapter-image img,
 html.photo-enhanced .chapter-copy h2,
 html.photo-enhanced .chapter-copy p {transform:none;transition:none;}
 html.photo-enhanced .chapter-copy h2,
 html.photo-enhanced .chapter-copy p {opacity:1;}
}
/* Keep the reusable image buttons ready for future gallery content. */
.shot {display:block;padding:0;margin:0;border:0;min-width:0;background:transparent;text-align:left;cursor:zoom-in;}
.shot-art {display:block;overflow:hidden;}
.shot img {width:100%;height:100%;display:block;object-fit:cover;transition:transform 1050ms var(--motion);}
.shot:hover img,.shot:focus-visible img {transform:scale(1.045);}

/* The original marquee continues over the shared page canvas. */
.archive-footer {zoom:.9;margin-top:clamp(26px,3vw,46px);background:transparent;color:var(--paper);overflow:hidden;}
.archive-marquee {padding:clamp(32px,4vw,56px) 0;overflow:hidden;user-select:none;}
.archive-marquee__track {display:flex;width:max-content;white-space:nowrap;}
.archive-marquee__repeat {flex:none;font:700 clamp(56px,9.4vw,145px)/1.02 var(--font-body);letter-spacing:-.045em;padding-right:.32em;animation:ticker 27s linear infinite;will-change:transform;}
.archive-marquee__repeat i {color:var(--coral);font-style:normal;font-weight:450;margin:0 .18em;}
@keyframes ticker {to {transform:translateX(-100%);}}

/* Viewer — top-layer FLIP shared-image transition */
/* Header effective scale: 0.95 × (0.85 / 0.95) = 0.85. */
.portfolio-header {zoom:0.894736842;}
/* Keep fullscreen coordinates in viewport pixels while enlarging viewer content. */
.viewer {zoom:1.052631579;position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;overflow:hidden;background:transparent;color:var(--paper);}
.viewer::backdrop {background:rgba(27,20,16,.962);animation:backdrop-in 540ms ease both;}
.viewer.is-closing::backdrop {animation:backdrop-out 540ms ease both;}
@keyframes backdrop-in {from {opacity:0;} to {opacity:1;}}
@keyframes backdrop-out {from {opacity:1;} to {opacity:0;}}
.viewer-layout {position:relative;width:100%;height:100%;display:grid;place-items:center;}
.viewer-image {zoom:1.055555556;display:block;width:auto;height:auto;max-width:min(88vw / 1.055555556,1400px);max-height:calc((100dvh - 120px) / 1.055555556);object-fit:contain;opacity:0;}
.viewer-image.is-ready {opacity:1;}
.viewer-flight {position:fixed;top:0;left:0;display:none;object-fit:cover;pointer-events:none;z-index:3;max-width:none;max-height:none;will-change:top,left,width,height;}

@media(max-width:800px) {
 .nav {height:72px;}
 .hero {height:405px;}
 .hero-color {padding:25px;}
 .hero h1 {font-size:clamp(27px,5.4vw,50px);}
}
@media(max-width:580px) {
 .nav {height:63px;}
 .wordmark {font-size:21px;}
 .back {font-size:10px;}
 .hero {height:auto;grid-template-columns:1fr;}
 .hero-panel {height:clamp(260px,80vw,340px);}
 .hero-color {padding:27px 27px 30px;}
 .hero h1 {font-size:clamp(46px,12vw,73px);}
 .archive-footer {margin-top:24px;}
 .archive-marquee {padding-block:37px;}
 .archive-marquee__repeat {font-size:clamp(56px,14vw,80px);}
 .viewer-image {max-width:calc(92vw / 1.055555556);max-height:calc((100dvh - 124px) / 1.055555556);}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto;}
 .hero,.hero-photo img,.shot img,.shot {transition:none !important;}
 .archive-marquee__repeat {animation:none;}
 .viewer::backdrop,.viewer.is-closing::backdrop {animation:none;}
}


/* Header and grid: original silhovette portfolio.css / theme.css layout and measurements. */
:root {
 --theme-color-ece52c72b8:#f5f3ec;
 --theme-color-814dc92b6b:#272322;
 --theme-color-9fa9d8100f:#625b58;
 --theme-color-7d27647f3d:#d6cfcd;
 --theme-color-d401724f09:#b9472c;
 --theme-color-7b79ea2ea0:#f5f3eced;
 --theme-color-57164b64d4:#8b807d;
 --theme-color-598b32b7d9:#000;
 --theme-color-7bdc44be1f:#0009;
 --theme-color-4540c8a818:rgb(98 91 88 / 25%);
 --paper:var(--theme-color-ece52c72b8);
 --ink:var(--theme-color-814dc92b6b);
 --muted:var(--theme-color-9fa9d8100f);
 --line:var(--theme-color-7d27647f3d);
 --red:var(--theme-color-d401724f09);
 --font-display:'Space Grotesk','Arial',sans-serif;
 --font-body:'Instrument Sans','Arial',sans-serif;
 --display:var(--font-display);
 --text:var(--font-body);
}
@font-face {font-family:'Space Grotesk';src:url('assets/fonts/SpaceGrotesk-Variable.ttf') format('truetype');font-weight:300 700;font-display:swap;}
@font-face {font-family:'Instrument Sans';src:url('assets/fonts/InstrumentSans-Latin.woff2') format('woff2');font-weight:400 700;font-display:swap;}
body.portfolio-home {isolation:isolate;font:15.5px/1.75 var(--font-body);color:var(--ink);background:var(--page-background);}
body::before,body::after {display:none;}
.page-grid {position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.page-grid::before,.page-grid::after {
 content:"";position:absolute;inset:0;
 background-image:linear-gradient(var(--page-grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--page-grid-color) 1px,transparent 1px);
 background-size:40px 40px;background-position:0 var(--grid-scroll-y,0px);
}
/* Move a viewport-sized grid layer; preserve its document-aligned 40px phase. */
.page-grid::before {opacity:.02;inset:-40px 0;background-position:0 0;transform:translateY(var(--grid-offset-y,0px));will-change:transform;}
.page-grid::after {
 opacity:0;
 mask-image:radial-gradient(ellipse 280px 280px at var(--grid-x,-500px) var(--grid-y,-500px),var(--theme-color-598b32b7d9) 0%,var(--theme-color-7bdc44be1f) 30%,transparent 100%);
 transition:opacity 220ms ease-out;
}
.page-grid.is-active::after {opacity:.045;}
@media (prefers-reduced-motion:reduce),(hover:none),(pointer:coarse) {.page-grid::after {display:none;transition:none;}}
/* Precisely imported header structure from photos(1).html; corresponding sizing from portfolio.css. */
.portfolio-header {overflow-anchor:none;position:sticky;top:0;z-index:40;background:var(--page-background);border-bottom:1px solid var(--line);
 --paper:var(--page-background);
 --ink:var(--page-header-ink);
 --muted:var(--page-header-muted);
 --line:var(--page-header-line);
 color:var(--ink);
}
.portfolio-header .wrap {max-width:1360px;margin-inline:auto;padding-inline:64px;}
.header-inner {min-height:60px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;position:relative;}
.header-left {display:flex;min-width:0;align-items:center;gap:12px;}
.header-clock {display:inline-flex;align-items:center;flex-shrink:0;gap:8px;color:var(--muted);font-size:12.5px;letter-spacing:normal;white-space:nowrap;}
.mono {font-family:var(--font-body);font-size:13px;font-weight:400;letter-spacing:normal;text-transform:uppercase;}
.header-controls {display:flex;align-items:center;justify-self:end;gap:16px;}
.contact-link {font:14px var(--font-body);border:0;padding:8px 0;white-space:nowrap;}
.portfolio-header .header-search {display:flex;align-items:center;position:relative;width:390px;margin:0;}
.search-toggle {width:32px;height:36px;padding:0;border:0;border-radius:0;background:none;align-items:center;justify-content:center;color:var(--muted);display:flex;flex-shrink:0;}
.portfolio-header .header-search-panel {flex:1;min-width:0;background:none;}
.portfolio-header .header-search input {display:block;width:100%;height:36px;padding:0 4px;border:0;border-bottom:1px solid var(--theme-color-4540c8a818);border-radius:0;color:var(--ink);background:none;font:14px var(--font-body);outline:none;transition:border-color 180ms ease-out;}
.portfolio-header .header-search input:focus {border-bottom-color:var(--muted);}
.portfolio-header .header-search .site-search__results {position:absolute;top:calc(100% + 14px);left:0;right:32px;width:auto;gap:0;max-height:min(50vh,420px);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;border:1px solid var(--line);border-radius:8px;padding:4px 16px;margin:0;background:var(--paper);box-shadow:none;opacity:0;transform:translateY(-6px);transition:opacity 200ms ease,transform 200ms ease,display 200ms allow-discrete;}
.portfolio-header .header-search .site-search__results::-webkit-scrollbar {display:none;}
.portfolio-header .header-search:not(.is-searching) .site-search__results {display:none;}
.portfolio-header .search-matches:not([hidden]) {display:grid;}
.portfolio-header .header-search.is-searching .search-matches:not([hidden]),.portfolio-header .header-search.is-searching.has-results .site-search__results {opacity:1;transform:translateY(0);}
.portfolio-header .site-search__result {display:block;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;color:var(--ink);font:14px/1.6 var(--font-body);text-align:left;cursor:pointer;}
.search-toggle:hover,.contact-link:hover,.portfolio-header .site-search__result:hover {color:var(--red);background:none;}
.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;top:-100px;left:20px;z-index:100;background:var(--ink);color:white;padding:14px;}
.skip-link:focus {top:15px;}
@media(min-width:1001px) and (max-width:1340px) {.header-inner {grid-template-columns:auto auto minmax(0,1fr);gap:20px;} .portfolio-header .header-search {flex:1;min-width:60px;width:auto;} .header-controls {width:100%;min-width:0;gap:10px;}}
@media(max-width:1000px) {.header-inner {grid-template-columns:minmax(0,1fr) auto;min-height:56px;gap:14px;}.header-controls {gap:12px;}}
@media(max-width:600px) {
 .header-inner {min-height:56px;gap:8px;}
 .header-clock {display:grid;gap:3px;letter-spacing:normal;}
 .header-left {gap:7px;}
 .header-controls {gap:6px;}
 .contact-link {font-size:14px;}
 .portfolio-header .header-search {position:static;width:32px;}
 .portfolio-header .header-search-panel {display:none;position:absolute;top:100%;right:24px;left:24px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:var(--paper);opacity:0;transform:translateY(-6px);transition:opacity 200ms ease,transform 200ms ease,display 200ms allow-discrete;}
 .portfolio-header .header-search-panel.is-open {display:block;opacity:1;transform:translateY(0);}
 .portfolio-header .header-search .site-search__results {position:static;width:100%;max-height:min(50vh,420px);margin-top:8px;padding:0;border:0;border-radius:0;}
}
@media(max-width:360px){.header-controls {gap:2px;}.search-toggle {width:28px;}}
.blank-page .header-inner {grid-template-columns:minmax(0,1fr) auto;}
.blank-page .header-controls {grid-column:2;}
@media(min-width:601px){.blank-page .portfolio-header .header-search {width:390px;margin-left:0;}}
/* Editorial content keeps the previous V2 layout and palette. */
.photo-editorial.wrap {max-width:1460px;padding-inline:clamp(18px,5vw,75px);}
.photo-editorial .hero {margin-top:clamp(18px,2.65vw,35px);}
.photo-editorial .hero-color {padding:clamp(27px,3.7vw,59px);}
.hero-copy {width:100%;display:flex;flex-direction:column;align-items:flex-end;gap:clamp(23px,2.8vw,44px);}
.hero-copy h1 {width:100%;font-size:clamp(39px,5.1vw,81px);}
.hero-note {max-width:325px;margin:0;color:#302620;text-align:right;font:400 clamp(11.5px,calc(1.2vw - 1px),14.5px)/1.28 var(--font-body);letter-spacing:-.018em;text-wrap:pretty;}
.shot:focus-visible {outline:2px solid var(--red);outline-offset:4px;}
.archive-footer {position:relative;z-index:1;}
@media(max-width:800px){
 .hero-copy {gap:20px;}
 .hero-copy h1 {font-size:clamp(30px,5vw,50px);}
 .hero-note {max-width:230px;font-size:10.5px;line-height:1.28;}
}
@media(max-width:580px){
 .photo-editorial .hero {margin-top:12px;}
 .hero-copy {gap:18px;}
 .hero-copy h1 {font-size:clamp(43px,11.2vw,65px);}
 .hero-note {max-width:275px;font-size:11.5px;line-height:1.28;}
}
@media(prefers-reduced-motion:reduce){.page-grid::after,.portfolio-header .header-search-panel,.portfolio-header .header-search .site-search__results {transition:none;}}
@media (max-width:360px) { .hero h1 span:last-child { font-size:.95em; } }

/* Match the homepage back-to-top control. */
.back-to-top {
  zoom:.8;
  position: fixed;
  right: 28px;
  bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  z-index: 90;
  width: 44px;
  height: 44px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid var(--theme-color-5d285dcd6d, #b7aaa4);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease-out, background-color 200ms ease-out, color 200ms ease-out;
}
.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.back-to-top:hover {
  background: var(--theme-color-39c900773b, #ece5dc);
  color: var(--red);
}
.back-to-top:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
@media (max-width: 640px) {
  .back-to-top {
    width: 40px;
    height: 40px;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
}
@media print {
  .back-to-top { display: none; }
}
