/* ──────────────────────────────────────────────
   Joe Eitzen — Studio site
   Tokens: G · Graphite on lichen
   ────────────────────────────────────────────── */
:root{
  --bg:#E6E8E0;            /* lichen */
  --bg-deep:#DCDED4;       /* deeper lichen for cards/sections */
  --bg-paper:#EFF0E9;      /* paper highlight */
  --fg:#141415;            /* graphite */
  --fg-2:#2B2C2D;
  --muted:rgba(20,20,21,.58);
  --muted-2:rgba(20,20,21,.40);
  --line:rgba(20,20,21,.14);
  --line-2:rgba(20,20,21,.07);
  --accent:#2D3A52;        /* deep graphite-blue (matches oklch token) */
  --accent-soft:#5C6B85;
  --warn:#7A4A2D;          /* a single tertiary, for accents in editorial moments */

  --sans:"Inter Tight","Geist",ui-sans-serif,sans-serif;
  --serif:"Fraunces","Iowan Old Style","Georgia",serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --radius:6px;
  --maxw:1600px;
  --pad-x:clamp(20px,3vw,48px);
}

/* base reset */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body{ cursor:none; overflow-x:hidden; }
a{color:inherit;text-decoration:none;cursor:none}
button{cursor:none;font:inherit;color:inherit;background:none;border:none}
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:2px;
}
img,svg,video{display:block;max-width:100%}
::selection{background:var(--fg);color:var(--bg);}

/* page paper texture */
body::before{
  content:"";
  position:fixed;inset:0;z-index:0;
  pointer-events:none;
  opacity:.32;
  background-image:
    radial-gradient(circle at 14% 22%, rgba(20,20,21,.04) 0 1px, transparent 1.5px),
    radial-gradient(circle at 71% 39%, rgba(20,20,21,.03) 0 1px, transparent 1.5px),
    radial-gradient(circle at 41% 80%, rgba(20,20,21,.04) 0 1px, transparent 1.5px),
    radial-gradient(circle at 88% 12%, rgba(20,20,21,.03) 0 1px, transparent 1.5px);
  background-size:7px 7px, 11px 11px, 9px 9px, 13px 13px;
  mix-blend-mode:multiply;
}
body > *{ position:relative; z-index:1; }

/* shared utilities */
.eyebrow{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.eyebrow b{ color:var(--fg); font-weight:400; }
.rule{ height:1px;background:var(--line);width:100%; }
.rule-soft{ height:1px;background:var(--line-2);width:100%; }
.container{ max-width:var(--maxw);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x); }

/* generic reveal */
.reveal{ opacity:0;transform:translateY(28px);transition:opacity 900ms cubic-bezier(.2,.8,.2,1),transform 900ms cubic-bezier(.2,.8,.2,1); }
.reveal.in{ opacity:1;transform:none; }

/* ─────────── LOADER ─────────── */
.loader{
  position:fixed;inset:0;z-index:300;
  background:var(--fg);
  color:var(--bg);
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:var(--pad-x);
  padding-bottom:calc(var(--pad-x) + 48px);
  pointer-events:none;
  transform-origin:bottom;
  animation:loaderOut 1100ms cubic-bezier(.7,0,.2,1) 1300ms forwards;
}
.loader .lg{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(80px,16vw,240px);
  line-height:.85;
  letter-spacing:-.04em;
}
.loader .lg .dot{ color:var(--bg); display:inline-block; transform:translateY(-.05em); }
.loader .meta{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  text-align:right;line-height:1.8;
  opacity:.6;
}
.loader .progress{
  position:absolute;left:var(--pad-x);right:var(--pad-x);bottom:24px;
  height:1px;background:rgba(255,255,255,.12);
}
.loader .progress span{
  display:block;height:100%;background:var(--bg);
  transform-origin:left;transform:scaleX(0);
  animation:progFill 1300ms cubic-bezier(.6,0,.2,1) forwards;
}
@keyframes progFill{ to{ transform:scaleX(1); } }
@keyframes loaderOut{
  0%{ transform:translateY(0); }
  100%{ transform:translateY(-101%); }
}

/* ─────────── CURSOR & CROSSHAIR ─────────── */
.cur{
  position:fixed;left:0;top:0;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  color:var(--fg);
  transition:color .25s ease;
}
.cur .ring{
  width:14px;height:14px;border-radius:50%;
  border:1px solid currentColor;
  transition:width 240ms cubic-bezier(.2,.8,.2,1), height 240ms cubic-bezier(.2,.8,.2,1), background 240ms, border-color .25s ease;
}
.cur.on-dark{ color:var(--bg); }
.cur.on-dark.is-link .ring{ background:rgba(255,255,255,.08); }
.cur .read{
  position:absolute;top:18px;left:18px;
  font-family:var(--mono);font-size:9px;letter-spacing:.14em;
  white-space:nowrap; opacity:.75;text-transform:uppercase;
  transition:opacity .18s;
}
.cur.is-link .read,
.cur.is-text .read,
.cur.is-drag .read{ opacity:0; }
.cur.is-link .ring{ width:54px;height:54px; background:color-mix(in oklab, var(--fg) 6%, transparent); }
.cur.is-link::after{
  content:attr(data-label);
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;
  color:currentColor;white-space:nowrap;text-transform:uppercase;
}
.cur.is-text .ring{ width:2px;height:22px;border-radius:0;background:currentColor;border:none; }
.cur.is-drag .ring{ width:64px;height:64px; }
.cur.is-drag::after{ content:"DRAG ↔"; position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:currentColor; }

/* ─────────── NAV / TOPBAR ─────────── */
.topbar{
  position:fixed; top:0;left:0;right:0;
  display:grid;grid-template-columns:1fr 1fr 1fr;
  align-items:center;
  padding:18px var(--pad-x);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  background:color-mix(in oklab, var(--bg) 86%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  z-index:80;
  border-bottom:1px solid var(--line);
}
.topbar .lhs{ display:flex;align-items:center;gap:14px; }
.topbar .mark{
  font-family:var(--sans);font-style:normal;font-weight:500;
  color:var(--fg);font-size:16px;letter-spacing:-.005em;line-height:1;
  display:inline-flex;align-items:center;gap:8px;
  text-transform:none;
}
.topbar .center{ display:flex;justify-content:center;gap:24px; }
.topbar .center .nv{
  padding:6px 4px;
  color:var(--muted);
  position:relative;
  transition:color .22s;
  display:inline-flex;
  align-items:baseline;
  gap:8px;
}
.topbar .center .nv .num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  opacity:.65;
  transition:opacity .22s;
}
.topbar .center .nv .lbl{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  max-width:0;
  opacity:0;
  overflow:hidden;
  white-space:nowrap;
  transition:max-width .32s cubic-bezier(.2,.8,.2,1), opacity .22s ease, margin-left .32s ease;
}
.topbar .center .nv:hover{ color:var(--fg); }
.topbar .center .nv:hover .num{ opacity:1; }
.topbar .center .nv:hover .lbl,
.topbar .center .nv:focus-visible .lbl,
.topbar .center .nv.active .lbl{
  max-width:160px;
  opacity:1;
}
.topbar .center .nv.active{ color:var(--fg); }
.topbar .center .nv.active .num{ opacity:1;font-weight:500; }
.topbar .center .nv.active::after{
  content:"";position:absolute;left:-2px;right:-2px;bottom:-2px;height:1px;background:var(--fg);
}
.topbar .rhs{ display:flex;justify-content:flex-end;gap:14px;align-items:center; }
.topbar .topbar-menu-btn{
  display:none;
  width:40px;height:40px;
  align-items:center;justify-content:center;flex-direction:column;gap:4px;
  padding:0;border:1px solid var(--line);border-radius:6px;
  background:color-mix(in oklab, var(--bg) 96%, transparent);
  cursor:pointer;
}
.topbar .topbar-menu-btn:hover{ border-color:var(--fg); }
.topbar .topbar-menu-bar{
  display:block;width:16px;height:1.5px;background:var(--fg);
}
.topbar .clock{ color:var(--fg); }
.topbar .clock b{ color:var(--accent); font-weight:400; }
.topbar .cmdk{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 12px;border:1px solid var(--line);border-radius:6px;
  color:var(--muted);
  transition:border-color .22s,color .22s;
}
.topbar .cmdk:hover{ color:var(--fg);border-color:var(--fg); }
.topbar .cmdk kbd{
  font-family:inherit;background:var(--fg);color:var(--bg);
  padding:2px 5px;border-radius:3px;font-size:9px;
}
.topbar .availbtn{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 12px;border-radius:999px;
  background:var(--fg);color:var(--bg);
  transition:background .22s;
}
.topbar .availbtn .led{
  width:6px;height:6px;border-radius:50%;background:var(--bg);position:relative;
}
.topbar .availbtn .led::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--bg);
  animation:pulse 2s ease-out infinite;
}
@keyframes pulse{ 0%{transform:scale(.6);opacity:1} 100%{transform:scale(2.4);opacity:0} }

/* progress under topbar */
.topbar-prog{
  position:absolute; left:0;bottom:-1px;height:1px;
  background:var(--accent);
  transform-origin:left;transform:scaleX(0);
}

/* spacer for fixed nav */
.nav-spacer{ height:64px; }

/* ─────────── SIDE RAIL ─────────── */
.rail{
  position:fixed;
  right:18px; top:50%; transform:translateY(-50%);
  display:flex;flex-direction:column;gap:14px;
  z-index:60;
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.rail a{
  display:flex;align-items:center;gap:10px;justify-content:flex-end;
  transition:color .22s;
}
.rail a .dash{ width:18px;height:1px;background:var(--muted);transition:width .3s,background .3s }
.rail a:hover, .rail a.active{ color:var(--fg) }
.rail a:hover .dash, .rail a.active .dash{ width:38px;background:var(--accent) }

/* ─────────── HERO ─────────── */
.hero{
  position:relative;
  border-bottom:1px solid var(--line);
}
.hero.hero-question{
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:120px var(--pad-x);
  text-align:center;
}
.hero-q-wrap{
  max-width:var(--maxw);
  display:flex;flex-direction:column;align-items:center;gap:48px;
}
.hero-q{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  letter-spacing:-.035em;
  line-height:1;
  color:var(--fg);
  font-size:clamp(72px, 11.5vw, 220px);
  white-space:nowrap;
  margin:0;
}
.hero-q em{
  font-style:italic;
  color:var(--accent);
  font-weight:300;
  padding:0 .04em;
}
.hero-q-ctas{
  display:inline-flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:-4px;
}
.hero-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:14px 22px;
  border-radius:999px;
  border:1px solid var(--line);
  transition:background .25s, color .25s, border-color .25s, transform .25s;
}
.hero-cta .arr{
  display:inline-block;
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.hero-cta:hover .arr{ transform:translateX(6px); }
.hero-cta-primary{
  background:var(--fg);
  color:var(--bg);
  border-color:var(--fg);
}
.hero-cta-primary:hover{
  background:var(--accent);
  border-color:var(--accent);
}
.hero-cta-secondary{
  color:var(--fg);
  background:transparent;
}
.hero-cta-secondary:hover{
  border-color:var(--fg);
  background:color-mix(in oklab, var(--fg) 4%, transparent);
}
.hero-q-sub{
  font-family:var(--mono);
  font-size:clamp(11px, .92vw, 13px);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;
  gap:0;
}
.hero-q-sub b{
  color:var(--fg);font-weight:500;
}
.hero-q-sub .dot{
  display:inline-block;
  margin:0 18px;
  color:var(--muted-2);
}

/* hero corner labels */
.hero-foot{
  position:absolute;
  bottom:32px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.hero-foot-l{ left:var(--pad-x); }
.hero-foot-r{
  right:var(--pad-x);
  display:inline-flex;align-items:center;gap:14px;
}
.hero-foot-r .hero-foot-line{
  display:inline-block;
  width:48px;height:1px;
  background:var(--fg);
}

/* legacy hero subsystems — kept hidden so any stale markup is harmless */
.kinh, .thesis, .meter, .meter-row, .meter-bar, .meter-state, .hero-sub, .hero-grid{
  display:none !important;
}
@keyframes flicker{ 50%{opacity:.4} }

/* ─────────── BIO ─────────── */
.bio{
  padding:140px var(--pad-x);
  background:var(--bg-paper);
  border-bottom:1px solid var(--line);
}
.bio-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;
  grid-template-columns:1fr 3fr;
  gap:96px;
  align-items:start;
}
.bio-aside{
  position:sticky;top:96px;
  display:flex;flex-direction:column;gap:18px;
}
.bio-aside .eyebrow{ margin:0; }
.bio-meta{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);line-height:2;
}
.bio-body{
  font-family:var(--serif);font-weight:300;
  font-size:21px;line-height:1.55;letter-spacing:-.005em;
  color:var(--fg);
  max-width:62ch;
  margin:0 auto;
  text-align:center;
}
.bio-body p{ margin-bottom:28px; }
.bio-body p:last-child{ margin-bottom:0; }
.bio-body em{ font-style:italic;color:var(--accent); }
.bio-body strong{ font-weight:500;color:var(--fg);font-style:normal; }
.bio-body .bio-lead{
  font-size:30px;line-height:1.4;
  margin-bottom:36px;
  letter-spacing:-.012em;
}
.bio-link{
  color:var(--accent);
  border-bottom:1px solid color-mix(in oklab, var(--accent) 30%, transparent);
  padding-bottom:1px;
  transition:color .25s, border-color .25s;
}
.bio-link:hover{
  color:var(--fg);
  border-bottom-color:var(--fg);
}

/* ─────────── CURRENTLY ─────────── */
.currently{
  padding:72px var(--pad-x) 96px;
  background:var(--bg-paper);
  border-bottom:1px solid var(--line);
}
.currently-wrap{
  max-width:var(--maxw);margin:0 auto;
  display:grid;
  grid-template-columns:140px 1fr;
  gap:48px;
  align-items:start;
}
.currently-label{ margin-top:8px; }
.currently-body{
  font-family:var(--serif);
  font-weight:300;
  font-style:italic;
  font-size:clamp(20px,2.1vw,28px);
  line-height:1.45;
  letter-spacing:-.008em;
  color:var(--fg);
  max-width:60ch;
}
@media (max-width:920px){
  .currently{ padding:56px var(--pad-x) 72px; }
  .currently-wrap{ grid-template-columns:1fr; gap:18px; }
  .currently-body{ font-size:20px; }
}
@media (max-width:600px){
  .currently{ padding:48px var(--pad-x) 56px; }
  .currently-body{ font-size:18px; line-height:1.5; }
}

/* ─────────── SECTION HEADERS ─────────── */
.sec-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:end;
  padding-bottom:22px;border-bottom:1px solid var(--line);
  margin-bottom:48px;
}
.sec-head h2{
  font-family:var(--sans); font-weight:300; letter-spacing:-.025em;
  font-size:clamp(36px,5vw,68px); line-height:.95;
}
.sec-head h2 em{ font-family:var(--serif);font-style:italic;font-weight:300;color:var(--accent); }
.sec-head .num{ font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted); }
.sec-head .ctrl{ display:flex;gap:6px;align-items:center; }

/* ─────────── WORK TOGGLE + ENTRIES ─────────── */
.work{ padding:120px var(--pad-x); border-bottom:1px solid var(--line); }
.work .container{ padding:0; max-width:none; }

.toggle{ display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--bg-paper); }
.toggle button{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  padding:8px 16px;border-radius:999px;transition:background .25s,color .25s;
}
.toggle button.on{ background:var(--fg);color:var(--bg); }

/* INDEX view — table of work */
.work-list{ display:flex;flex-direction:column; }
.row{
  display:grid;grid-template-columns:64px 1.4fr 1fr 1fr 90px;
  gap:24px;align-items:center;
  padding:28px 12px;
  border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
  transition:padding .35s;
}
.row::before{
  content:"";position:absolute;inset:0;background:var(--fg);
  transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.row:hover::before,
.row:focus-visible::before{ transform:scaleX(1); }
.row > *{ position:relative;z-index:1;transition:color .35s; }
.row:hover > *,
.row:focus-visible > *{ color:var(--bg); }
.row:focus-visible{ outline:none; }
.row .ix{ font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted); }
.row .nm{ font-family:var(--sans);font-size:36px;font-weight:400;letter-spacing:-.02em; display:flex;align-items:baseline; }
.row .nm em{ font-family:var(--serif);font-style:italic;font-weight:300;color:var(--accent); }
.row:hover .nm em{ color:#FFD089; }
.row .desc{ font-family:var(--serif); font-size:15px; line-height:1.5; color:var(--muted);font-style:italic; }
.row:hover .desc{ color:color-mix(in oklab, var(--bg) 75%, transparent); }
.row .meta{ font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:right;line-height:1.8 }
.row .meta b{ color:var(--accent);font-weight:400; }
.row:hover .meta b{ color:#FFD089; }
.row .arr{ font-family:var(--mono);font-size:22px;text-align:right;color:var(--fg);transition:transform .45s; }
.row:hover .arr{ transform:translate(8px,-2px); color:var(--bg); }

/* STUDIO view — full-bleed cards */
.studio-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
.studio-card{
  position:relative;overflow:hidden;
  border-radius:18px;
  background:var(--bg-deep);
  border:1px solid var(--line);
  aspect-ratio:4/3;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:32px;
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.studio-card:hover{ transform:translateY(-4px); }
.studio-card .vis{
  position:absolute;inset:0;z-index:0;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1), filter .6s;
}
.studio-card:hover .vis{ transform:scale(1.04); filter:saturate(1.15); }
.studio-card .vis svg{ width:100%;height:100%; }
.studio-card .vis img{ width:100%;height:100%;object-fit:cover;display:block; }
.studio-card h3.title-logo{
  margin-top:14px;
  display:block;
  line-height:1;
}
.studio-card h3.title-logo img{
  display:block;
  height:auto;width:auto;
  max-height:48px;max-width:40%;
  object-fit:contain;
  filter:drop-shadow(0 2px 14px rgba(0,0,0,.25));
}
@media (max-width:1100px){
  .studio-card h3.title-logo img{ max-height:42px; max-width:46%; }
}
@media (max-width:920px){
  .studio-card h3.title-logo img{ max-height:38px; max-width:52%; }
}
@media (max-width:600px){
  .studio-card h3.title-logo img{ max-height:30px; max-width:58%; }
}
.studio-card .scrim{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg, color-mix(in oklab, #000 76%, transparent) 0%, transparent 60%);
}
.studio-card > *{ position:relative;z-index:2;color:var(--bg); }
.studio-card .meta{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:color-mix(in oklab,var(--bg) 70%,transparent);
}
.studio-card h3{
  font-family:var(--sans);font-size:46px;font-weight:300;letter-spacing:-.02em;line-height:.96;margin-top:14px;
}
.studio-card h3 em{ font-family:var(--serif);font-style:italic;font-weight:300; color:#FFD089; }
.studio-card p{ font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.5;margin-top:10px;max-width:50ch;color:color-mix(in oklab,var(--bg) 90%,transparent); }
.studio-card .arr{
  position:absolute;top:32px;right:32px;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  display:flex;align-items:center;gap:8px;
}

/* ─────────── SUBJECTS / GALLERY ─────────── */
.subjects{
  position:relative;
  border-bottom:1px solid var(--line);
}
.subjects .pin{
  display:grid;grid-template-columns:340px 1fr;gap:0;
  align-items:stretch;
}
.subjects .pin .lhs{
  position:sticky;top:80px;
  align-self:flex-start;
  padding:120px var(--pad-x) 80px;
  height:auto;
}
.subjects .pin .lhs h2{
  font-family:var(--sans);font-weight:300;font-size:54px;letter-spacing:-.025em;line-height:.95;
}
.subjects .pin .lhs h2 em{ font-family:var(--serif);font-style:italic;font-weight:300;color:var(--accent); }
.subjects .pin .lhs p{ font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.5;color:var(--muted);margin-top:18px;max-width:34ch; }
.subjects .pin .lhs .controls{ margin-top:32px;display:flex;gap:8px;flex-wrap:wrap; }
.subjects .pin .lhs .controls button{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--muted);
  transition:all .22s;
}
.subjects .pin .lhs .controls button:hover, .subjects .pin .lhs .controls button.on{
  background:var(--fg);color:var(--bg);border-color:var(--fg);
}

.subjects .strip-wrap{
  overflow-x:auto;overflow-y:hidden;
  padding:120px var(--pad-x) 80px 24px;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.subjects .strip-wrap::-webkit-scrollbar{ display:none; }
.subjects .strip{
  display:flex;gap:32px;align-items:flex-end;
}
.subjects figure{
  flex:0 0 auto;
  background:var(--bg-deep);
  border-radius:var(--radius);
  overflow:hidden;
  scroll-snap-align:start;
  position:relative;
  border:1px solid var(--line);
}
.subjects figure svg{ display:block; }
.subjects figure .ph{
  position:relative; overflow:hidden; background:#0E0F11;
}
.subjects figure .ph img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:contrast(1.04) brightness(.98);
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1), filter .6s;
}
.subjects figure:hover .ph img{ transform:scale(1.04); filter:contrast(1.1) brightness(1.02); }
.subjects figure figcaption{
  padding:14px 18px;
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  background:var(--bg-paper);
  border-top:1px solid var(--line);
}
.subjects figure figcaption b{ color:var(--fg);font-weight:400; }
.subjects .scroll-hint{
  position:absolute;left:340px;bottom:20px;right:0;
  display:flex;align-items:center;gap:14px;
  padding:0 var(--pad-x);
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  pointer-events:none;
}
.subjects .scroll-hint .track{ flex:1;height:1px;background:var(--line);position:relative; }
.subjects .scroll-hint .track span{ position:absolute;left:0;top:-1px;height:3px;background:var(--accent);width:30%; }

/* ─────────── PHILOSOPHY / NOTES ─────────── */
.notes{
  padding:160px var(--pad-x);
  border-bottom:1px solid var(--line);
  background:var(--bg-paper);
}
.notes .container{ padding:0; }
.notes-grid{
  display:grid;grid-template-columns:1fr 2fr 1fr;gap:48px;
  max-width:var(--maxw);margin:0 auto;
}
.notes .l-col{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:2;
}
.notes .l-col strong{ color:var(--fg);font-weight:400; }
.notes blockquote{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(28px,3vw,44px);
  line-height:1.25;letter-spacing:-.015em;
  color:var(--fg);
}
.notes blockquote em{ font-style:italic;color:var(--accent); }
.notes blockquote .pull{
  display:block;
  font-style:italic;color:var(--accent);
  font-size:1.15em;margin-top:24px;
}
.notes .r-col{
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  color:var(--muted);line-height:1.7;
}
.notes .r-col .fn{
  display:grid;grid-template-columns:auto 1fr;gap:10px;
  padding-bottom:18px;border-bottom:1px solid var(--line-2);margin-bottom:18px;
}
.notes .r-col .fn .n{ color:var(--accent);font-weight:500; }

/* big bold pull quote — its own moment between the two notes blocks */
.pull-quote{
  max-width:var(--maxw);margin:96px auto 96px;
  padding:64px 0 56px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  text-align:center;
}
.pull-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:32px;
}
.pull-line{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  font-family:var(--sans);
  font-weight:200;
  letter-spacing:-.045em;
  line-height:.92;
  font-size:clamp(56px, 9vw, 144px);
  color:var(--fg);
}
.pull-line .pq-1{ font-weight:200; }
.pull-line .pq-2{
  font-family:var(--serif);font-style:italic;font-weight:300;
  color:var(--accent);
  letter-spacing:-.04em;
  font-size:1.06em;
}
.pull-mark{
  margin-top:32px;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.notes-grid-2{ padding-top:0; }

/* ─────────── POINT OF VIEW ─────────── */
.pov{
  max-width:var(--maxw);
  margin:0 auto;
  padding-top:24px;
}
.pov-head{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding-bottom:48px;
  border-bottom:1px solid var(--line);
  margin-bottom:64px;
  align-items:flex-start;
}
.pov-title{
  font-family:var(--sans);
  font-weight:300;
  letter-spacing:-.025em;
  line-height:.98;
  font-size:clamp(40px,5.4vw,72px);
  color:var(--fg);
  max-width:18ch;
}
.pov-title em{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  color:var(--accent);
}
.pov-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:48px;
}
.pov-item{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.pov-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
}
.pov-name{
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-.018em;
  font-size:clamp(28px,2.4vw,36px);
  line-height:1.05;
  color:var(--fg);
}
.pov-name em{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  color:var(--accent);
}
.pov-body{
  font-family:var(--serif);
  font-weight:300;
  font-size:18px;
  line-height:1.55;
  letter-spacing:-.003em;
  color:var(--fg-2);
  max-width:36ch;
}
@media (max-width:920px){
  .pov{ padding-top:16px; }
  .pov-head{ padding-bottom:32px; margin-bottom:40px; }
  .pov-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .pov-body{ font-size:17px; }
}
@media (max-width:600px){
  .pov-grid{ grid-template-columns:1fr; gap:28px; }
  .pov-item{ padding-top:20px; gap:14px; }
  .pov-body{ font-size:17px; max-width:none; }
}

/* ─────────── RECOGNITION ─────────── */
.recog{
  padding:80px var(--pad-x);border-bottom:1px solid var(--line);
}
.recog-intro{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:18px;
  line-height:1.5;
  color:var(--muted);
  margin-top:14px;
  max-width:48ch;
}
@media (max-width:600px){
  .recog-intro{ font-size:16px; }
}
.recog-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:0;
  border-top:1px solid var(--line);
  max-width:var(--maxw);margin:0 auto;
}
.recog-grid > *{
  padding:36px 28px 32px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);
  display:flex;flex-direction:column;gap:14px;
  text-decoration:none;
  position:relative;
  transition:background .25s ease, color .25s ease;
}
.recog-grid > *:nth-child(3n){ border-right:none; }
.recog-grid a{ cursor:pointer; }
.recog-grid a:hover{ background:color-mix(in oklab,var(--accent) 8%,transparent); }
.recog-grid a:focus-visible{
  outline:2px solid var(--accent); outline-offset:-2px;
  background:color-mix(in oklab,var(--accent) 8%,transparent);
}
.recog-grid a:hover .t{ color:var(--accent); }
.recog-grid a:hover .ext{ opacity:1; transform:translate(3px,-3px); }
.recog-grid > * .y{
  color:var(--accent);
  font-weight:500;
  letter-spacing:.18em;
}
.recog-grid > * .t{
  font-family:var(--sans);
  font-style:normal;
  font-weight:500;
  font-size:22px;
  letter-spacing:-.012em;
  color:var(--fg);
  text-transform:none;
  line-height:1.15;
  transition:color .25s ease;
}
.recog-grid > * .t .ext{
  font-family:var(--mono);font-style:normal;font-size:11px;font-weight:400;
  display:inline-block;opacity:.55;margin-left:4px;
  transition:opacity .25s ease, transform .25s ease;
}
.recog-grid > * > span:last-child{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:16px;
  letter-spacing:-.003em;
  line-height:1.45;
  text-transform:none;
  color:var(--fg-2);
}

/* ─────────── CONTACT ─────────── */
.contact{
  padding:160px var(--pad-x) 80px;
  background:var(--fg);color:var(--bg);
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--line);
}
.contact::after{
  content:"";position:absolute;inset:-20px;pointer-events:none;
  background-image:
    radial-gradient(circle at 14% 22%, rgba(255,255,255,.04) 0 1px, transparent 1.5px),
    radial-gradient(circle at 71% 39%, rgba(255,255,255,.03) 0 1px, transparent 1.5px),
    radial-gradient(circle at 41% 80%, rgba(255,255,255,.04) 0 1px, transparent 1.5px),
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.03) 0 1px, transparent 1.5px);
  background-size:9px 9px,11px 11px,7px 7px,13px 13px;
  mix-blend-mode:screen;
  opacity:.55;
}
.contact .ct-grid{
  display:grid;grid-template-columns:1.5fr 1fr;gap:64px;align-items:end;
  max-width:var(--maxw);margin:0 auto;
  position:relative;z-index:2;
}
.contact h2{
  font-family:var(--sans);font-weight:200;
  font-size:clamp(64px,9.5vw,164px);line-height:.92;letter-spacing:-.04em;
}
.contact h2 em{ font-family:var(--serif);font-style:italic;font-weight:300;color:#FFD089; }
.contact .email-pill{
  display:inline-flex;align-items:center;gap:14px;
  margin-top:36px;
  padding:22px 30px;border-radius:999px;
  background:var(--bg);color:var(--fg);
  font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.contact .email-pill:hover{ background:#FFD089; }
.contact .email-pill .arr{ transition:transform .35s; }
.contact .email-pill:hover .arr{ transform:translate(3px,-3px); }

.contact .links{
  display:grid;grid-template-columns:1fr;gap:0;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}
.contact .links a{
  padding:18px 0;display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid color-mix(in oklab,var(--bg) 18%, transparent);
  color:color-mix(in oklab,var(--bg) 60%,transparent);
  transition:padding-left .3s,color .25s;
}
.contact .links a:hover{ padding-left:14px;color:var(--bg); }
.contact .links a:hover .arr{ color:#FFD089; }

.contact .avail{
  margin-top:48px; padding-top:24px;
  border-top:1px solid color-mix(in oklab,var(--bg) 18%, transparent);
  display:grid;grid-template-columns:repeat(6,1fr);gap:6px;
}
.contact .avail .month{
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:color-mix(in oklab,var(--bg) 50%,transparent);
  display:flex;flex-direction:column;gap:8px;
}
.contact .avail .month .bar{
  height:6px;background:color-mix(in oklab,var(--bg) 14%,transparent);border-radius:2px;overflow:hidden;
}
.contact .avail .month .bar span{ display:block;height:100%;background:var(--bg); }
.contact .avail .month.full .bar span{ background:#FFD089; width:100%; }
.contact .avail .month.partial .bar span{ background:var(--bg); width:60%; }
.contact .avail .month.open .bar span{ background:#FFD089; width:30%; }
.contact .avail .month.future .bar span{ background:color-mix(in oklab,var(--bg) 30%,transparent);width:0; }

/* ─────────── COLOPHON FOOTER ─────────── */
.colophon{
  padding:56px var(--pad-x) 36px;
  background:var(--bg);
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fg-2);
  border-bottom:1px solid var(--line);
}
.colophon h4{ color:var(--fg);font-weight:500;margin-bottom:16px;font-size:11px; letter-spacing:.16em; }
.colophon p, .colophon a{ display:block;line-height:2;color:var(--fg-2); }
.colophon a{ transition:color .25s; }
.colophon a:hover{ color:var(--accent); }
.colophon a:focus-visible{ color:var(--accent); }
.colophon-end{
  padding:24px var(--pad-x);
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.colophon-end .wm{ font-family:var(--sans);font-style:normal;font-weight:500;font-size:16px;color:var(--fg);text-transform:none;letter-spacing:-.005em; }

/* ─────────── COMMAND PALETTE ─────────── */
.palette-overlay{
  position:fixed;inset:0;background:rgba(20,20,21,.4);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:14vh;z-index:200;opacity:0;pointer-events:none;
  transition:opacity .25s;
}
.palette-overlay.show{ opacity:1;pointer-events:auto; }
.palette{
  width:560px;max-width:92vw;background:var(--bg);
  border:1px solid var(--line);border-radius:12px;
  box-shadow:0 32px 80px rgba(0,0,0,.18);
  overflow:hidden;transform:translateY(-12px) scale(.98);
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.palette-overlay.show .palette{ transform:translateY(0) scale(1); }
.palette .input{ display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line); }
.palette .input span{ font-family:var(--mono);color:var(--muted);font-size:11px;letter-spacing:.16em; }
.palette .input input{ flex:1;border:none;outline:none;background:none;font:400 18px/1 var(--sans);color:var(--fg);cursor:none; }
.palette ul{ list-style:none;max-height:340px;overflow-y:auto; }
.palette li{ padding:14px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line-2);font-size:14px;color:var(--fg); }
.palette li.active{ background:var(--fg);color:var(--bg); }
.palette li.active .meta{ color:color-mix(in oklab,var(--bg) 60%,transparent); }
.palette li .meta{ font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted); }

/* ─────────── RESPONSIVE ─────────── */

/* Tablet */
@media (max-width: 1100px){
  .hero-q{ font-size:clamp(64px, 10vw, 150px); }
  .hero.hero-question{ padding:100px var(--pad-x); }
  .bio{ padding:100px var(--pad-x); }
  .bio-grid{ grid-template-columns:1fr 2.4fr; gap:56px; }
  .bio-body{ font-size:19px; }
  .bio-body .bio-lead{ font-size:26px; }
  .work{ padding:96px var(--pad-x); }
  .row{ grid-template-columns:56px 1.4fr 1fr 1fr 70px; gap:18px; padding:24px 10px; }
  .row .nm{ font-size:30px; }
  .row .desc{ font-size:14px; }
  .studio-grid{ gap:18px; }
  .studio-card{ padding:28px; }
  .studio-card h3{ font-size:38px; }
  .subjects .pin{ grid-template-columns:280px 1fr; }
  .subjects .pin .lhs{ padding:100px var(--pad-x) 64px; }
  .subjects .scroll-hint{ left:280px; }
  .notes{ padding:120px var(--pad-x); }
  .notes-grid{ gap:36px; }
  .recog{ padding:64px var(--pad-x); }
  .contact{ padding:120px var(--pad-x) 64px; }
  .contact h2{ font-size:clamp(56px, 8vw, 128px); }
  .colophon{ grid-template-columns:repeat(4, 1fr); gap:24px; }
}

/* Tablet portrait & small laptop */
@media (max-width: 920px){
  body{ cursor:auto; }
  .cur, .crosshair, .rail, .meter{ display:none; }
  a, button{ cursor:pointer; }

  /* Topbar */
  .topbar{ grid-template-columns:1fr auto; padding:14px var(--pad-x); }
  .topbar .center{ display:none; }
  .topbar .cmdk{ display:none; }
  .topbar .topbar-menu-btn{ display:inline-flex; }

  /* Hero */
  .hero.hero-question{
    min-height:88vh;
    padding:88px var(--pad-x) 96px;
  }
  .hero-q-wrap{ gap:36px; }
  .hero-q{
    white-space:normal;
    font-size:clamp(52px, 12vw, 110px);
    line-height:1.02;
    letter-spacing:-.025em;
  }
  .hero-q em{ padding:0 .03em; }
  .hero-q-sub{
    font-size:11px; letter-spacing:.18em;
    flex-wrap:wrap;
  }
  .hero-q-sub .dot{ margin:0 12px; }
  .hero-foot{ font-size:9px; bottom:24px; letter-spacing:.16em; }
  .hero-foot-r .hero-foot-line{ width:32px; }

  /* Bio */
  .bio{ padding:80px var(--pad-x); }
  .bio-grid{ grid-template-columns:1fr; gap:28px; }
  .bio-aside{ position:relative; top:0; flex-direction:row; align-items:baseline; gap:24px; flex-wrap:wrap; }
  .bio-meta{ line-height:1.7; }
  .bio-body{ font-size:18px; line-height:1.55; }
  .bio-body .bio-lead{ font-size:22px; line-height:1.4; margin-bottom:28px; }
  .bio-body p{ margin-bottom:22px; }

  /* Sec head */
  .sec-head{ grid-template-columns:1fr; gap:14px; align-items:start; margin-bottom:32px; }
  .sec-head h2{ font-size:clamp(32px, 7vw, 48px); }

  /* Work */
  .work{ padding:80px var(--pad-x); }
  .row{ grid-template-columns:46px 1fr 40px; gap:14px; padding:20px 4px; }
  .row .desc, .row .meta{ display:none; }
  .row .nm{ font-size:24px; }
  .row .arr{ font-size:18px; }

  /* Studio cards */
  .studio-grid{ grid-template-columns:1fr; gap:16px; }
  .studio-card{ padding:24px; aspect-ratio:5/4; border-radius:14px; }
  .studio-card h3{ font-size:34px; }
  .studio-card p{ font-size:14px; max-width:100%; }
  .studio-card .arr{ top:24px; right:24px; font-size:10px; }

  /* Subjects */
  .subjects .pin{ grid-template-columns:1fr; }
  .subjects .pin .lhs{ position:relative; top:0; padding:72px var(--pad-x) 24px; }
  .subjects .pin .lhs h2{ font-size:42px; }
  .subjects .strip-wrap{
    padding:8px var(--pad-x) 56px;
    scroll-padding-left:var(--pad-x);
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .subjects .strip{ gap:16px; align-items:flex-start; }
  .subjects figure{ scroll-snap-align:center; }
  .subjects figure figcaption{
    padding:10px 14px;
    flex-direction:row;flex-wrap:wrap;gap:6px 12px;
    font-size:9px;letter-spacing:.16em;
  }
  .subjects .scroll-hint{ left:0; padding:0 var(--pad-x); position:absolute; bottom:18px; right:0; }
  .subjects .scroll-hint span:first-child{ font-size:10px; letter-spacing:.18em; }

  /* Notes */
  .notes{ padding:96px var(--pad-x); }
  .notes-grid{ grid-template-columns:1fr; gap:24px; }
  .notes blockquote{ font-size:clamp(22px, 4.5vw, 32px); }
  .pull-quote{ margin:48px auto; padding:48px 0 40px; }
  .pull-line{ font-size:clamp(40px, 10vw, 88px); }

  /* Recognition */
  .recog{ padding:56px var(--pad-x); }
  .recog-grid{ grid-template-columns:1fr 1fr; }
  .recog-grid > *{ padding:28px 20px; gap:12px; }
  .recog-grid > *:nth-child(3n){ border-right:1px solid var(--line); }
  .recog-grid > *:nth-child(2n){ border-right:none; }
  .recog-grid > * .t{ font-size:20px; }
  .recog-grid > * > span:last-child{ font-size:15px; }

  /* Contact */
  .contact{ padding:96px var(--pad-x) 56px; }
  .contact .ct-grid{ grid-template-columns:1fr; gap:40px; }
  .contact h2{ font-size:clamp(48px, 11vw, 96px); line-height:.96; }
  .contact .email-pill{ padding:16px 22px; font-size:11px; gap:10px; }
  .contact .avail{ grid-template-columns:repeat(3,1fr); }
  .contact .links a{ padding:14px 0; font-size:10px; }

  /* Colophon */
  .colophon{ grid-template-columns:1fr 1fr; gap:24px; padding:36px var(--pad-x) 24px; }
  .colophon-end{ font-size:9px; padding:20px var(--pad-x); }
}

/* Phone */
@media (max-width: 600px){
  :root{ --pad-x:18px; }

  /* Hero */
  .hero.hero-question{ min-height:84vh; padding:80px var(--pad-x) 88px; }
  .hero-q-wrap{ gap:28px; }
  .hero-q{
    font-size:clamp(40px, 13.5vw, 60px);
    line-height:1.05;
  }
  .hero-q-sub{
    font-size:10px; letter-spacing:.18em;
    flex-direction:column; gap:6px;
  }
  .hero-q-sub .dot{ display:none; }
  .hero-foot{ font-size:9px; bottom:18px; letter-spacing:.14em; }
  .hero-foot-r .hero-foot-line{ width:24px; }

  /* Bio */
  .bio{ padding:64px var(--pad-x); }
  .bio-aside{ flex-direction:column; gap:14px; }
  .bio-body{ font-size:16.5px; }
  .bio-body .bio-lead{ font-size:20px; line-height:1.4; }
  .bio-body p{ margin-bottom:20px; }

  /* Work */
  .work{ padding:64px var(--pad-x); }
  .row{ grid-template-columns:36px 1fr 24px; gap:10px; padding:16px 2px; }
  .row .nm{ font-size:20px; }
  .row .ix{ font-size:9px; }

  /* Studio cards */
  .studio-card{ padding:20px; aspect-ratio:5/4; }
  .studio-card h3{ font-size:28px; }
  .studio-card p{ font-size:13px; }
  .studio-card .meta{ font-size:9px; }

  /* Subjects */
  .subjects .pin .lhs{ padding:56px var(--pad-x) 16px; }
  .subjects .pin .lhs h2{ font-size:36px; }
  .subjects .pin .lhs p{ font-size:16px; }
  .subjects .pin .lhs .controls{ gap:6px; margin-top:24px; }
  .subjects .pin .lhs .controls button{ padding:9px 14px; min-height:40px; }
  .subjects .strip-wrap{
    padding:8px 0 64px;
    scroll-padding-inline:var(--pad-x);
  }
  .subjects .strip{
    gap:12px;
    padding-left:var(--pad-x);
    padding-right:var(--pad-x);
  }
  .subjects figure{ border-radius:8px; }
  .subjects figure figcaption{
    padding:10px 12px;
    font-size:9px;letter-spacing:.14em;
  }
  .subjects .scroll-hint{ bottom:24px; gap:10px; }
  .subjects .scroll-hint .track{ flex:1; min-width:0; }

  /* Notes */
  .notes{ padding:72px var(--pad-x); }
  .notes blockquote{ font-size:20px; line-height:1.4; }
  .pull-quote{ margin:36px auto; padding:36px 0 28px; }
  .pull-line{ font-size:clamp(36px, 11vw, 56px); }

  /* Recognition */
  .recog-grid{ grid-template-columns:1fr; }
  .recog-grid > *:nth-child(2n){ border-right:none; }
  .recog-grid > * .t{ font-size:19px; }
  .recog-grid > * > span:last-child{ font-size:15px; }

  /* Contact */
  .contact{ padding:72px var(--pad-x) 48px; }
  .contact h2{ font-size:clamp(42px, 13vw, 64px); }
  .contact .email-pill{
    padding:14px 18px; font-size:10px;
    width:100%; justify-content:space-between;
  }
  .contact .avail{ grid-template-columns:repeat(2,1fr); gap:10px; }

  /* Colophon */
  .colophon{ grid-template-columns:1fr; gap:18px; }
  .colophon-end{ flex-direction:column; gap:6px; align-items:flex-start; }

  /* Palette */
  .palette{ width:92vw; }
  .palette .input{ padding:14px 16px; }
  .palette li{ padding:12px 16px; font-size:13px; }
}

/* ──────────────────────────────────────────────
   SUB-PAGES (Photography, Prints, etc.)
   Content-first layouts that share the home tokens
   but drop the immersive treatment (no loader, no
   custom cursor — better for SEO & faster reads).
   ────────────────────────────────────────────── */

body.je-subpage{ cursor:auto; }
body.je-subpage a, body.je-subpage button{ cursor:pointer; }
body.je-subpage main{ position:relative; z-index:1; }

/* Topbar */
.je-subtopbar{
  position:sticky;top:0;left:0;right:0;
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:18px var(--pad-x);
  background:color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  z-index:80;
  border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
}
.je-subtopbar .mark{
  font-family:var(--sans);font-style:normal;font-weight:500;
  color:var(--fg);font-size:16px;letter-spacing:-.005em;line-height:1;
  text-transform:none;
}
.je-subtopbar .rhs{
  display:flex;align-items:center;gap:32px;flex-wrap:wrap;justify-content:flex-end;
}
.je-subtopbar .links{
  display:flex;align-items:center;gap:28px;
}
.je-subtopbar .links .nv{
  color:var(--muted);
  position:relative;
  padding:6px 0;
  transition:color .22s;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
}
.je-subtopbar .links .nv:hover{ color:var(--fg); }
.je-subtopbar .links .nv.active{ color:var(--fg); }
.je-subtopbar .links .nv.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--fg);
}
.je-subtopbar-toggle{
  display:none;
  width:44px;height:44px;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  padding:0;border:1px solid var(--line);border-radius:6px;
  background:color-mix(in oklab, var(--bg) 96%, transparent);
  cursor:pointer;
}
.je-subtopbar-toggle:hover{ border-color:var(--fg); }
.je-subtopbar-toggle-bar{
  display:block;width:18px;height:1.5px;background:var(--fg);
  transition:transform .25s ease, opacity .2s ease;
}
.je-subtopbar.is-open .je-subtopbar-toggle-bar:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);
}
.je-subtopbar.is-open .je-subtopbar-toggle-bar:nth-child(2){ opacity:0; }
.je-subtopbar.is-open .je-subtopbar-toggle-bar:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);
}
@media (max-width:1100px){
  .je-subtopbar .links{ gap:22px; }
}
@media (max-width:880px){
  .je-subtopbar{ flex-wrap:wrap;gap:14px 18px; }
  .je-subtopbar .links{ gap:18px;flex-wrap:wrap;justify-content:flex-end; }
}
@media (max-width:720px){
  .je-subtopbar{
    flex-wrap:nowrap;justify-content:space-between;align-items:center;
    padding:14px var(--pad-x);
  }
  .je-subtopbar-toggle{ display:inline-flex; }
  .je-subtopbar .rhs{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:8px var(--pad-x) 16px;
    background:color-mix(in oklab, var(--bg) 96%, transparent);
    backdrop-filter:blur(14px) saturate(1.2);
    -webkit-backdrop-filter:blur(14px) saturate(1.2);
    border-bottom:1px solid var(--line);
    transform:translateY(-8px);
    opacity:0;pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
  }
  .je-subtopbar .links{
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;width:100%;
  }
  .je-subtopbar .links .nv{
    padding:14px 4px;
    border-bottom:1px solid var(--line-2);
    font-size:12px;letter-spacing:.2em;
  }
  .je-subtopbar .links .nv:last-child{ border-bottom:0; }
  .je-subtopbar .links .nv.active::after{ display:none; }
  .je-subtopbar .links .nv.active{
    color:var(--fg);
    background:color-mix(in oklab, var(--accent) 6%, transparent);
  }
  .je-subtopbar.is-open .rhs{
    opacity:1;pointer-events:auto;transform:translateY(0);
  }
}

/* Page hero — eyebrow + headline + lead */
.je-page-hero{
  padding:120px var(--pad-x) 64px;
  border-bottom:1px solid var(--line);
}
.je-page-hero-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;flex-direction:column;gap:18px;
}
.je-page-h1{
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(48px, 8vw, 124px);
  letter-spacing:-.03em;
  line-height:1;
  color:var(--fg);
  margin:0;
  max-width:18ch;
}
.je-page-h1 em{
  font-family:var(--serif);font-style:italic;font-weight:300;
  color:var(--accent);
}
.je-page-lead{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(18px, 1.8vw, 24px);
  line-height:1.5;letter-spacing:-.005em;
  color:var(--fg);
  max-width:62ch;
}
.je-meta-row{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.je-meta-row .dot{ margin:0 10px; color:var(--muted-2); }
.je-empty{
  padding:48px 0;color:var(--muted);font-style:italic;
  font-family:var(--serif);font-size:18px;
}

/* Photography — collection index */
.je-collections{
  padding:80px var(--pad-x) 120px;
  border-bottom:1px solid var(--line);
}
.je-collection-grid{
  list-style:none;
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:32px;
}
.je-collection-card{ display:block; }
.je-collection-card a{
  display:flex;flex-direction:column;gap:14px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.je-collection-card a:hover{ transform:translateY(-2px); }
.je-collection-card .vis{
  position:relative;overflow:hidden;
  aspect-ratio:5/4;
  border-radius:18px;
  background:var(--bg-deep);
  border:1px solid var(--line);
}
.je-collection-card .vis img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1), filter .6s;
  filter:contrast(1.04);
}
.je-collection-card a:hover .vis img{ transform:scale(1.04); filter:contrast(1.08) brightness(1.02); }
.je-collection-card .meta-row{
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.je-collection-card h2{
  font-family:var(--sans);font-weight:400;
  font-size:36px;letter-spacing:-.02em;line-height:1.05;
  color:var(--fg);
}
.je-collection-card p{
  font-family:var(--serif);font-size:17px;line-height:1.5;
  color:var(--muted);max-width:48ch;
}
.je-collection-card .arr{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);
}

/* Photography — gallery */
.gallery-hero{ padding-bottom:48px; }
.je-gallery{
  padding:64px var(--pad-x) 120px;
  border-bottom:1px solid var(--line);
}
.je-gallery-grid{
  list-style:none;
  max-width:var(--maxw);margin:0 auto;
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:18px;
}
.je-gallery-grid .gp{ overflow:hidden; }
.je-gallery-grid .gp-1{ grid-column:span 4; }
.je-gallery-grid .gp-2{ grid-column:span 2; }
.je-gallery-grid .gp-3{ grid-column:span 3; }
.je-gallery-grid figure{
  display:flex;flex-direction:column;gap:10px;
  background:var(--bg-paper);
  border:1px solid var(--line);
  border-radius:14px;overflow:hidden;
}
.je-gallery-grid figure img{
  width:100%;height:auto;display:block;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1), filter .6s;
  filter:contrast(1.04);
}
.je-gallery-grid figure:hover img{ transform:scale(1.02); }
.je-gallery-grid figcaption{
  padding:14px 16px;
  display:flex;justify-content:space-between;gap:18px;
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
}
.je-gallery-grid figcaption b{ color:var(--fg);font-weight:400; }
.je-collection-foot{
  padding:48px var(--pad-x) 96px;
  text-align:center;
}
.je-back-link{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  transition:color .22s;
}
.je-back-link:hover{ color:var(--fg); }

/* Prints — index */
.je-prints{
  padding:80px var(--pad-x) 120px;
  border-bottom:1px solid var(--line);
}
.je-print-grid{
  list-style:none;
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(3, 1fr);gap:32px;
}
.je-print-card a{
  display:flex;flex-direction:column;gap:14px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.je-print-card a:hover{ transform:translateY(-2px); }
.je-print-card .vis{
  position:relative;overflow:hidden;
  aspect-ratio:4/5;
  border-radius:14px;
  background:var(--bg-deep);
  border:1px solid var(--line);
}
.je-print-card .vis img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
  filter:contrast(1.05);
}
.je-print-card a:hover .vis img{ transform:scale(1.04); }
.je-print-card .meta-row{
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.je-print-card h2{
  font-family:var(--sans);font-weight:400;
  font-size:28px;letter-spacing:-.015em;line-height:1.1;
  color:var(--fg);
}
.je-print-card p{
  font-family:var(--serif);font-size:15px;line-height:1.5;
  color:var(--muted);max-width:42ch;
}
.je-print-card .price{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg);
  display:inline-flex;align-items:center;gap:6px;
}

/* Prints — detail */
.je-print-detail{
  padding:120px var(--pad-x);
  border-bottom:1px solid var(--line);
}
.je-print-detail-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:1.4fr 1fr;gap:64px;
  align-items:start;
}
.je-print-figure{
  background:var(--bg-deep);
  border:1px solid var(--line);
  border-radius:18px;overflow:hidden;
}
.je-print-figure img{ width:100%;height:auto;display:block; }
.je-print-info{
  display:flex;flex-direction:column;gap:24px;
  position:sticky;top:96px;
}
.je-print-info .je-page-h1{ font-size:clamp(40px, 5.6vw, 84px); max-width:none; }
.je-print-info .je-page-lead{ font-size:18px; }
.je-print-spec{
  display:grid;grid-template-columns:auto 1fr;gap:8px 18px;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  padding-top:16px;border-top:1px solid var(--line);
}
.je-print-spec dt{ color:var(--muted); }
.je-print-spec dd{ color:var(--fg);font-weight:400; margin:0; }

.je-print-buy{
  padding:24px;
  background:var(--bg-paper);
  border:1px solid var(--line);
  border-radius:14px;
  display:flex;flex-direction:column;gap:14px;
}
.je-print-buy-h{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);font-weight:400;
}
.je-print-buy ul{
  list-style:none;
  display:flex;flex-direction:column;gap:0;
}
.je-print-buy li{
  display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line-2);
}
.je-print-buy li:last-child{ border-bottom:none; }
.je-print-buy .sz{
  font-family:var(--sans);font-weight:400;font-size:15px;color:var(--fg);
}
.je-print-buy .pr{
  font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--fg);
}
.je-print-buy .buy{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  padding:10px 16px;border-radius:999px;
  background:var(--fg);color:var(--bg);
  transition:background .22s, color .22s;
}
.je-print-buy .buy:hover{ background:var(--accent); }
.je-print-buy .buy.disabled{
  background:transparent;color:var(--muted);
  border:1px solid var(--line);
}
.je-print-buy .buy.disabled:hover{ background:var(--bg-deep);color:var(--fg); }
.je-print-note{
  font-family:var(--serif);font-style:italic;font-size:13px;
  color:var(--muted);line-height:1.5;
}

/* ─────────── FEATURE HERO (image-led) ─────────── */
.je-feature-hero{
  position:relative;
  border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;
}
.je-feature-hero-vis{
  position:relative;display:block;
  width:100%;
  height:clamp(440px, 70vh, 760px);
  overflow:hidden;
  background:var(--bg-deep);
  border-bottom:1px solid var(--line);
}
.je-feature-hero-vis img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:contrast(1.06);
  transition:transform 1.6s cubic-bezier(.2,.8,.2,1), filter .6s;
}
.je-feature-hero-vis:hover img{ transform:scale(1.02); filter:contrast(1.1) brightness(1.02); }
.je-feature-hero-vis::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,
    color-mix(in oklab, #000 26%, transparent) 0%,
    transparent 30%,
    transparent 55%,
    color-mix(in oklab, #000 56%, transparent) 100%);
}
.je-feature-hero-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  padding:64px var(--pad-x);
  display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;
  pointer-events:none;
  max-width:var(--maxw);
  margin:0 auto;
}
.je-feature-hero-overlay-bottom{
  justify-content:flex-end;
}
.je-feature-eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:color-mix(in oklab, var(--bg) 78%, transparent);
  margin-bottom:18px;
}
.je-feature-eyebrow a{
  color:inherit;
  border-bottom:1px solid color-mix(in oklab, var(--bg) 30%, transparent);
  pointer-events:auto;
  transition:color .22s, border-color .22s;
}
.je-feature-eyebrow a:hover{ color:var(--bg); border-bottom-color:var(--bg); }
.je-feature-title{
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(48px, 8.4vw, 156px);
  letter-spacing:-.035em;
  line-height:.95;
  color:var(--bg);
  margin:0;
  max-width:18ch;
  text-shadow:0 2px 28px rgba(0,0,0,.18);
}
.je-feature-title em{
  font-family:var(--serif);font-style:italic;font-weight:300;
  color:#FFD089;
}
.je-feature-hero-tag{
  position:absolute;left:var(--pad-x);bottom:24px;z-index:3;
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 14px;border-radius:999px;
  background:color-mix(in oklab, #fff 96%, transparent);
  color:var(--fg);
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  backdrop-filter:blur(8px);
  box-shadow:0 6px 30px -12px rgba(0,0,0,.35);
}
.je-feature-hero-tag .dot{ color:var(--muted-2); }
.je-feature-hero-lede{
  max-width:var(--maxw);margin:0 auto;
  padding:64px var(--pad-x) 56px;
  display:grid;grid-template-columns:2fr 1fr;gap:48px;
  align-items:end;
}
.je-feature-hero-lede .je-page-lead{
  margin:0;
  font-size:clamp(20px, 2vw, 28px);
  line-height:1.45;
}
.je-feature-hero-lede .eyebrow{
  text-align:right;
  white-space:nowrap;
}

/* ─────────── PRINT DETAIL — refined "stage" hero ─────────── */
.je-print-stage{
  padding:96px var(--pad-x) 56px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--bg-paper) 0%, var(--bg) 100%);
}
.je-print-stage-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;flex-direction:column;gap:18px;
  text-align:center;
  align-items:center;
}
.je-print-stage-inner .eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}
.je-print-stage-inner .eyebrow a{
  color:var(--accent);
  border-bottom:1px solid color-mix(in oklab, var(--accent) 30%, transparent);
  transition:color .22s, border-color .22s;
}
.je-print-stage-inner .eyebrow a:hover{ color:var(--fg); border-bottom-color:var(--fg); }
.je-print-stage-inner .eyebrow .sep{ color:var(--muted-2);margin:0 6px; }
.je-print-stage-inner .je-page-lead{
  max-width:48ch;margin:0;
}
.je-print-stage-inner .je-print-stage-meta{ color:var(--muted-2); }
.je-print-title{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(56px, 8vw, 144px);
  letter-spacing:-.04em;line-height:1;
  color:var(--fg);
  margin:0;
}
.je-print-figure{
  margin-top:64px;
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
  display:flex;flex-direction:column;gap:18px;align-items:center;
}
.je-print-figure-mat{
  position:relative;
  padding:36px;
  background:var(--bg);
  border-radius:6px;
  box-shadow:
    0 1px 0 rgba(20,20,21,.06),
    0 30px 80px -28px rgba(20,20,21,.32),
    0 12px 36px -16px rgba(20,20,21,.18);
  max-width:1200px;
  width:100%;
}
.je-print-figure-mat::before{
  content:"";
  position:absolute;inset:18px;
  border:1px solid var(--line);
  pointer-events:none;
}
.je-print-figure-mat img{
  width:100%;height:auto;display:block;
  filter:contrast(1.05);
}
.je-print-figure figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  display:flex;justify-content:center;gap:18px;
}
.je-print-figure figcaption b{ color:var(--fg);font-weight:400; }

/* Print info row (below the stage hero) */
.je-print-info-row{
  padding:96px var(--pad-x) 120px;
  border-bottom:1px solid var(--line);
}
.je-print-info-row-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:64px;
  align-items:start;
}
.je-print-info-spec h2,
.je-print-buy h2{
  font-family:var(--sans);font-weight:400;font-size:24px;letter-spacing:-.012em;
  color:var(--fg);
  margin-bottom:18px;
}
.je-print-info-row .je-back-link{
  display:block;
  text-align:center;
  margin-top:48px;
}

/* Sub-page footer */
.je-subfoot{
  padding:48px var(--pad-x) 24px;
  background:var(--bg);
  border-top:1px solid var(--line);
}
.je-subfoot-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(4, 1fr);gap:32px;
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
}
.je-subfoot-grid h4{ color:var(--fg);font-weight:400;margin-bottom:14px;font-size:10px; }
.je-subfoot-grid p, .je-subfoot-grid a{ display:block;line-height:2;color:var(--muted); }
.je-subfoot-grid a:hover{ color:var(--fg); }
.je-subfoot-end{
  max-width:var(--maxw);margin:24px auto 0;
  padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.je-subfoot-end .wm{
  font-family:var(--sans);font-style:normal;font-weight:500;font-size:16px;
  color:var(--fg);text-transform:none;letter-spacing:-.005em;
}

/* Sub-page responsive */
@media (max-width: 1100px){
  .je-collection-grid{ gap:24px; }
  .je-print-grid{ grid-template-columns:repeat(2, 1fr); gap:24px; }
  .je-print-detail-grid{ grid-template-columns:1fr 1fr; gap:48px; }
  .je-gallery-grid{ grid-template-columns:repeat(4, 1fr); gap:14px; }
  .je-gallery-grid .gp-1{ grid-column:span 3; }
  .je-gallery-grid .gp-2{ grid-column:span 1; }
  .je-gallery-grid .gp-3{ grid-column:span 2; }
  .je-feature-hero-vis{ height:clamp(380px, 60vh, 640px); }
  .je-feature-hero-lede{ grid-template-columns:1fr; gap:18px; padding:48px var(--pad-x); }
  .je-feature-hero-lede .eyebrow{ text-align:left; }
  .je-print-figure-mat{ padding:24px; max-width:1000px; }
  .je-print-figure-mat::before{ inset:12px; }
  .je-print-info-row-grid{ grid-template-columns:1fr; gap:48px; }
}
@media (max-width: 920px){
  .je-subtopbar{ grid-template-columns:1fr auto; padding:14px var(--pad-x); }
  .je-subtopbar .center{ display:none; }
  .je-page-hero{ padding:80px var(--pad-x) 48px; }
  .je-page-h1{ font-size:clamp(40px, 9vw, 72px); }
  .je-page-lead{ font-size:18px; }
  .je-collections, .je-prints{ padding:48px var(--pad-x) 80px; }
  .je-collection-grid{ grid-template-columns:1fr; gap:24px; }
  .je-collection-card h2{ font-size:30px; }
  .je-collection-card .vis{ aspect-ratio:5/4; border-radius:14px; }
  .je-print-grid{ grid-template-columns:1fr 1fr; gap:18px; }
  .je-print-card h2{ font-size:22px; }
  .je-print-detail{ padding:64px var(--pad-x); }
  .je-print-detail-grid{ grid-template-columns:1fr; gap:32px; }
  .je-print-info{ position:relative; top:0; }
  .je-gallery{ padding:48px var(--pad-x) 80px; }
  .je-gallery-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .je-gallery-grid .gp,
  .je-gallery-grid .gp-1,
  .je-gallery-grid .gp-2,
  .je-gallery-grid .gp-3{ grid-column:span 1; }
  .je-subfoot-grid{ grid-template-columns:1fr 1fr; gap:24px; }

  /* Feature hero */
  .je-feature-hero-vis{ height:clamp(340px, 56vh, 540px); }
  .je-feature-hero-overlay{ padding:36px var(--pad-x); }
  .je-feature-title{ font-size:clamp(40px, 10vw, 88px); }
  .je-feature-eyebrow{ margin-bottom:12px; font-size:10px; letter-spacing:.2em; }
  .je-feature-hero-tag{ font-size:9px; padding:6px 12px; bottom:18px; }
  .je-feature-hero-lede{ padding:36px var(--pad-x) 48px; }
  .je-feature-hero-lede .je-page-lead{ font-size:18px; }

  /* Print stage */
  .je-print-stage{ padding:64px var(--pad-x) 36px; }
  .je-print-title{ font-size:clamp(40px, 10vw, 80px); }
  .je-print-figure{ margin-top:36px; }
  .je-print-figure-mat{ padding:14px; }
  .je-print-figure-mat::before{ inset:6px; }
  .je-print-info-row{ padding:48px var(--pad-x) 80px; }
  .je-print-info-row-grid{ grid-template-columns:1fr; gap:32px; }
  .je-print-info-spec h2, .je-print-buy h2{ font-size:20px; }
}
@media (max-width: 600px){
  .je-page-hero{ padding:64px var(--pad-x) 36px; }
  .je-page-h1{ font-size:clamp(36px, 11vw, 56px); }
  .je-page-lead{ font-size:17px; }
  .je-print-grid{ grid-template-columns:1fr; gap:18px; }
  .je-gallery-grid{ grid-template-columns:1fr; }
  .je-subfoot-grid{ grid-template-columns:1fr; }
  .je-subfoot-end{ flex-direction:column; gap:8px; align-items:flex-start; }
  .je-print-buy li{ grid-template-columns:1fr auto;grid-auto-rows:auto;gap:6px 14px; }
  .je-print-buy li .buy{ grid-column:1 / -1; text-align:center; }
  .je-feature-hero-vis{ height:60vh; }
  .je-feature-title{ font-size:clamp(36px, 13vw, 64px); }
  .je-feature-hero-overlay{ padding:24px var(--pad-x); }
  .je-feature-hero-tag{ display:none; }
  .je-print-stage{ padding:48px var(--pad-x) 24px; }
  .je-print-title{ font-size:clamp(36px, 12vw, 56px); }
}

/* ──────────────────────────────────────────────
   PHOTOGRAPHY — vault-west hero + archive
   Adapted from Claude Design "vault-west" handoff.
   ────────────────────────────────────────────── */

.je-bw{ filter:grayscale(1) contrast(1.05); }

/* ─── Hero ─── */
.je-west-hero{
  position:relative;
  padding:48px var(--pad-x) 56px;
  border-bottom:1px solid var(--line);
  max-width:var(--maxw);
  margin:0 auto;
}
.je-folio{
  position:absolute;top:14px;right:var(--pad-x);
  font-family:var(--mono);font-size:9px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
}
.je-west-hero-grid{
  display:grid;
  grid-template-columns:1fr 560px;
  gap:56px;
  align-items:start;
}
.je-west-hero-grid.je-west-hero-solo{
  grid-template-columns:minmax(0, 920px);
}
.je-west-hero.je-west-hero-compact{
  padding:40px var(--pad-x) 36px;
}
.je-west-hero-left{ min-width:0; padding-top:12px; }
.je-west-eye{
  font-family:var(--mono);
  font-size:10px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--muted);
  margin-bottom:20px;
}
.je-west-title{
  font-family:var(--serif);
  font-size:clamp(56px, 8vw, 124px);
  line-height:.86;margin:0;
  font-weight:300;letter-spacing:-.045em;
  color:var(--fg);
}
.je-west-title em{ font-style:italic; font-weight:400; }

.je-west-sub{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:20px;line-height:1.4;
  max-width:560px;margin:28px 0 0;
  color:var(--fg-2);
}
.je-west-sub em{
  font-style:normal; font-weight:400; color:var(--fg);
  border-bottom:1px solid var(--line); padding-bottom:1px;
}

.je-west-stamp-row{ display:flex;gap:10px;margin-top:34px;flex-wrap:wrap; }
.je-stamp{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 11px;border:1px solid var(--fg);
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fg);text-decoration:none;
  transition:background .2s, color .2s;
}
.je-stamp:hover{ background:var(--fg); color:var(--bg); }
.je-stamp.fill{ background:var(--fg); color:var(--bg); }
.je-stamp.fill:hover{ background:var(--fg-2); }

.je-west-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:28px;
  margin-top:44px;
  border-top:1px solid var(--line);
  padding-top:20px;
  max-width:620px;
}
.je-west-stats .k{
  font-family:var(--mono);
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.je-west-stats .v{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:16px;line-height:1.25;color:var(--fg);
}

/* ─── Anchor plate ─── */
.je-west-hero-right{ position:relative; }
.je-west-plate{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--fg);
  box-shadow:0 30px 80px rgba(0,0,0,.22), 0 2px 0 rgba(0,0,0,.08);
}
.je-west-plate-img{
  position:absolute; inset:0; overflow:hidden;
  opacity:0;
  transition:opacity 1100ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change:opacity;
  /* Promote each layer to its own compositor layer in Safari so opacity
     transitions stay on the GPU and don't trigger paint/decode hitches. */
  transform:translate3d(0, 0, 0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.je-west-plate-img.is-active{ opacity:1; }
.je-west-plate-img img{
  width:100%; height:100%; object-fit:cover; display:block;
}
@media (prefers-reduced-motion: reduce){
  .je-west-plate-img{ transition:none; }
}

.je-west-plate .je-ap-reg{
  position:absolute; width:12px; height:12px; opacity:.55; pointer-events:none; z-index:4;
}
.je-west-plate .je-ap-reg::before,
.je-west-plate .je-ap-reg::after{
  content:""; position:absolute; background:rgba(255,255,255,.9);
}
.je-west-plate .je-ap-reg::before{ left:0;right:0;top:50%;height:1px; }
.je-west-plate .je-ap-reg::after{ top:0;bottom:0;left:50%;width:1px; }
.je-west-plate .je-ap-reg.tl{ top:10px;left:10px; }
.je-west-plate .je-ap-reg.tr{ top:10px;right:10px; }
.je-west-plate .je-ap-reg.bl{ bottom:10px;left:10px; }
.je-west-plate .je-ap-reg.br{ bottom:10px;right:10px; }

.je-west-region{
  position:absolute;top:14px;left:50%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;background:rgba(0,0,0,.55);color:#f4f1ea;
  font-family:var(--mono);
  font-size:9px;letter-spacing:.24em;text-transform:uppercase;
  z-index:5;
}
.je-west-region .dot{
  width:5px;height:5px;border-radius:50%;
  background:#d15a34;animation:jeWestPulse 2.6s ease-in-out infinite;
}
@keyframes jeWestPulse{ 0%,100%{opacity:.4;} 50%{opacity:1;} }

.je-west-plate-readout{
  position:absolute;left:0;right:0;bottom:0;
  padding:10px 14px;
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.6));
  color:#f4f1ea;
  font-family:var(--mono);
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  z-index:5;
}
.je-west-plate-readout .sep{ opacity:.45; }

.je-west-ticks{
  display:flex;gap:6px;justify-content:center;
  margin-top:14px;
}
.je-tick{
  width:26px;height:2px;border:0;padding:0;cursor:pointer;
  background:var(--line);transition:background .3s;
}
.je-tick.on{ background:var(--fg); }
.je-tick:hover{ background:var(--fg); opacity:.75; }

/* ─── Archive panel (contact-sheet) ─── */
.je-west-archive{
  padding:72px var(--pad-x);
  max-width:var(--maxw);
  margin:0 auto;
  border-bottom:1px solid var(--line);
}
.je-archive-head{
  display:grid;grid-template-columns:auto 1fr auto;
  gap:28px;align-items:baseline;
  margin-bottom:28px;
  padding-bottom:18px;border-bottom:1px solid var(--line);
}
.je-archive-idx{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.je-archive-h2{
  font-family:var(--serif);font-size:clamp(40px, 5vw, 64px);
  margin:0;font-weight:300;letter-spacing:-.025em;line-height:.95;
}
.je-archive-h2 em{ font-style:italic;font-weight:400; }
.je-archive-meta{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
}

.je-archive-tools{
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--line);
  margin-bottom:24px;
}
.je-collection-tabs{ display:flex;gap:0;flex-wrap:wrap; }
.je-cab-tab{
  padding:10px 16px;border:1px solid transparent;border-bottom:0;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg);text-decoration:none;
  opacity:.55;margin-bottom:-1px;transition:opacity .2s;
}
.je-cab-tab:hover{ opacity:.85; }
.je-cab-tab.on{ opacity:1;border-color:var(--line);background:var(--bg); }

.je-archive-sort{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);display:flex;gap:8px;align-items:center;
}
.je-archive-sort .sep{ opacity:.5; }

.je-contact-grid{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(4, 1fr);
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.je-contact-cell{ background:var(--bg); }
.je-contact-cell a{
  display:flex;flex-direction:column;gap:8px;
  padding:12px;color:inherit;text-decoration:none;
}
.je-contact-img{
  position:relative;
  aspect-ratio:1/1;overflow:hidden;background:var(--fg);
}
.je-contact-img img,
.je-contact-img video{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease, filter .5s ease;
}
.je-contact-cell a:hover .je-contact-img img,
.je-contact-cell a:hover .je-contact-img video{ transform:scale(1.03); }
.je-contact-cell a:hover .je-contact-img img.je-bw{ filter:contrast(1.1); }
.je-contact-num{
  position:absolute;top:8px;right:8px;
  width:28px;height:22px;
  border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:#f4f1ea;
}
.je-contact-meta{
  display:flex;justify-content:space-between;align-items:baseline;gap:6px;
  padding-top:4px;
}
.je-contact-meta .ttl{
  font-family:var(--serif);font-style:italic;font-size:13px;color:var(--fg);
  letter-spacing:-.005em;line-height:1.2;
}
.je-contact-meta .num{
  font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.14em;
}
.je-contact-bar{
  display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}

.je-archive-foot{
  display:grid;grid-template-columns:2fr 1fr;gap:32px;align-items:end;
  margin-top:36px;padding-top:24px;border-top:1px solid var(--line);
}
.je-archive-lede{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(18px, 1.6vw, 22px);line-height:1.4;
  color:var(--fg-2);margin:0;max-width:640px;
}
.je-archive-foot .eyebrow{ text-align:right;white-space:nowrap; }

/* ─── Series rows (image + text editorial row) ─── */
.je-series-tools{
  display:flex;justify-content:space-between;align-items:flex-start;gap:24px;
  margin:-12px 0 28px;flex-wrap:wrap;
}
.je-archive-subhead{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(18px, 1.5vw, 22px);line-height:1.4;
  color:var(--fg-2);margin:0;max-width:640px;
}
.je-view-toggle{
  display:inline-flex;border:1px solid var(--line);
}
.je-view-toggle button{
  background:transparent;border:0;padding:8px 14px;cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
  transition:background .15s, color .15s;
}
.je-view-toggle button + button{ border-left:1px solid var(--line); }
.je-view-toggle button:hover{ color:var(--fg); }
.je-view-toggle button.on{ background:var(--fg);color:var(--bg); }

/* Index (archival list) view */
.je-series-index{
  list-style:none;padding:0;margin:0;
  border-top:1px solid var(--line);
}
.je-series-index li{ border-bottom:1px solid var(--line-2); }
.je-series-index li:last-child{ border-bottom:1px solid var(--line); }
.je-series-index a{
  display:grid;
  grid-template-columns:60px 64px 1.4fr 1.4fr auto 24px;
  gap:24px;align-items:center;
  padding:14px 4px;
  text-decoration:none;color:var(--fg);
  transition:background .15s, padding-left .2s;
}
.je-series-index a:hover{ background:var(--bg-paper);padding-left:14px; }
.je-series-index .num{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.je-series-index .thumb{
  display:block;width:64px;height:48px;overflow:hidden;background:var(--fg);
}
.je-series-index .thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.je-series-index .title{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:22px;letter-spacing:-.01em;line-height:1.1;color:var(--fg);
}
.je-series-index .loc{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}
.je-series-index .count{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);text-align:right;white-space:nowrap;
}
.je-series-index .arr{
  font-family:var(--mono);font-size:14px;color:var(--muted);text-align:right;
  transition:transform .2s, color .2s;
}
.je-series-index a:hover .arr{ color:var(--fg);transform:translateX(4px); }

@media (max-width:880px){
  .je-series-tools{ flex-direction:column;gap:14px; }
  .je-series-index a{
    grid-template-columns:48px 56px 1fr auto;
    gap:14px;
    grid-template-areas: "num thumb title arr" ". . loc loc" ". . count count";
  }
  .je-series-index .num{ grid-area:num; }
  .je-series-index .thumb{ grid-area:thumb;width:56px;height:42px; }
  .je-series-index .title{ grid-area:title;font-size:18px; }
  .je-series-index .loc{ grid-area:loc; }
  .je-series-index .count{ grid-area:count;text-align:left; }
  .je-series-index .arr{ grid-area:arr; }
}
.je-series-rows{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:1px;
  background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.je-series-rows[hidden],
.je-series-index[hidden]{ display:none; }
.je-series-row{ background:var(--bg); }
.je-series-row a{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:48px;align-items:stretch;
  padding:36px 0;
  text-decoration:none;color:var(--fg);
  transition:background .2s;
}
.je-series-row a:hover{ background:var(--bg-paper); }
.je-series-row-img{
  position:relative;
  aspect-ratio:3/2;overflow:hidden;background:var(--fg);
}
.je-series-row-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.6s cubic-bezier(.2,.8,.2,1);
}
.je-series-row a:hover .je-series-row-img img{ transform:scale(1.02); }

.je-series-row-body{
  display:flex;flex-direction:column;gap:14px;
  padding:14px 0;align-self:center;
}
.je-series-row-body .num{
  font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--muted);
}
.je-series-row-body h3{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(40px, 4.4vw, 64px);line-height:.95;letter-spacing:-.025em;
  margin:4px 0 0;color:var(--fg);
}
.je-series-row-body .sub{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-top:6px;
}
.je-series-row-body .sub .sep{ opacity:.55; }
.je-series-row-body p{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:18px;line-height:1.5;color:var(--fg-2);margin:8px 0 0;max-width:520px;
}
.je-series-row-body .arr{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
  margin-top:18px;
  transition:color .2s, transform .2s;
}
.je-series-row a:hover .arr{ color:var(--fg);transform:translateX(4px); }

@media (max-width:880px){
  .je-series-row a{ grid-template-columns:1fr; gap:20px; padding:28px 0; }
  .je-series-row-body{ padding:0; }
  .je-series-row-body h3{ font-size:36px; }
}

/* ─── Series / Field Notes TOC ─── */
.je-series-toc{
  display:flex;flex-direction:column;
  border-top:1px solid var(--line);
}
.je-toc-row{
  display:grid;grid-template-columns:80px 1.4fr 1fr 80px 24px;
  gap:24px;align-items:baseline;
  padding:22px 4px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--fg);
  transition:padding-left .2s, background .15s;
}
.je-toc-row:hover{ padding-left:18px;background:var(--bg-paper); }
.je-toc-row .toc-num{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
}
.je-toc-row .toc-t{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:30px;letter-spacing:-.02em;line-height:1;color:var(--fg);
}
.je-toc-row:hover .toc-t{ color:var(--fg-2); }
.je-toc-row .toc-d{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}
.je-toc-row .toc-c{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);text-align:right;
}
.je-toc-row .toc-arr{
  font-family:var(--mono);font-size:14px;color:var(--muted);
  transition:transform .2s, color .2s;
}
.je-toc-row:hover .toc-arr{ color:var(--fg);transform:translateX(4px); }

@media (max-width:880px){
  .je-toc-row{ grid-template-columns:50px 1fr auto; gap:14px; }
  .je-toc-row .toc-d{ display:none; }
  .je-toc-row .toc-c{ display:none; }
  .je-toc-row .toc-t{ font-size:22px; }
}

/* ─── About page ─── */
.je-about-grid{
  display:grid;grid-template-columns:1.4fr 1fr;gap:64px;
  margin-bottom:36px;
}
.je-about-body{ max-width:640px; }
.je-about-lede{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(22px, 2vw, 28px);line-height:1.45;
  margin:0 0 28px;color:var(--fg);
}
.je-about-body p{
  font-size:16px;line-height:1.75;margin:0 0 1em;color:var(--fg-2);
}
.je-about-aside{
  display:flex;flex-direction:column;gap:18px;
  padding:0 0 0 28px;border-left:1px solid var(--line);
}
.je-about-block{
  display:flex;flex-direction:column;gap:6px;
  padding-bottom:14px;border-bottom:1px solid var(--line-2);
}
.je-about-block:last-child{ border-bottom:0; }
.je-about-block .k{
  font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.je-about-block .v{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:16px;line-height:1.4;color:var(--fg-2);
}
@media (max-width:880px){
  .je-about-grid{ grid-template-columns:1fr;gap:32px; }
  .je-about-aside{ padding:24px 0 0;border-left:0;border-top:1px solid var(--line); }
}

/* About-page bio rendered inside the hero (left of portrait) */
.je-about-body-hero{
  max-width:60ch;
  margin:24px 0 32px;
}
.je-about-body-hero .je-about-lede{
  font-size:clamp(20px, 1.7vw, 24px);
}
.je-about-body .je-about-hello{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(40px, 5vw, 72px);
  line-height:1;
  letter-spacing:-.02em;
  color:var(--fg);
  margin:0 0 28px;
}

/* About hero — vertically center bio against portrait */
.je-about-hero-grid{ align-items:center; }
.je-about-hero .je-portrait-figure{ align-self:center; }

/* Meta row used on /about after bio moved to hero */
.je-about-meta-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap:24px 32px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:28px 0;
  margin:0 0 36px;
}
.je-about-meta-row .je-about-block{ border-bottom:0;padding-bottom:0; }

/* ─── About portrait (full color, not cropped) ─── */
.je-portrait-figure{
  margin:0;
  display:flex;flex-direction:column;gap:12px;
}
.je-portrait-figure img{
  width:100%;height:auto;display:block;
  background:var(--bg-deep);
}
.je-portrait-figure figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
}

/* ─── Fast answer (LLM-friendly summary block) ─── */
.je-fast-answer{
  font-family:var(--serif);font-style:normal;font-weight:300;
  font-size:clamp(17px, 1.4vw, 19px);line-height:1.65;
  color:var(--fg-2);
  max-width:780px;
  margin:0 0 36px;
  padding:20px 24px;
  background:var(--bg-paper);
  border-left:2px solid var(--fg);
}
.je-fast-answer strong{ color:var(--fg);font-weight:500; }
.je-fast-answer a{
  color:var(--fg);border-bottom:1px solid var(--line);padding-bottom:1px;
  transition:border-color .2s;
}
.je-fast-answer a:hover{ border-bottom-color:var(--fg); }

/* ─── FAQ (about page) ─── */
.je-faq{
  list-style:none;padding:0;margin:0;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(2, 1fr);
  column-gap:64px;
}
.je-faq-item{
  display:grid;grid-template-columns:48px 1fr;gap:24px;
  padding:24px 0;
  border-bottom:1px solid var(--line-2);
}
@media (max-width:1100px){
  .je-faq{ grid-template-columns:1fr; column-gap:0; }
}
.je-faq-num{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);padding-top:6px;
}
.je-faq-body{ display:flex;flex-direction:column;gap:10px;max-width:none; }
.je-faq-q{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(18px, 1.45vw, 22px);line-height:1.25;letter-spacing:-.015em;
  margin:0;color:var(--fg);
}
.je-faq-a p{
  font-family:var(--serif);font-weight:300;
  font-size:15px;line-height:1.65;color:var(--fg-2);margin:0;
}
.je-faq-a p a{
  color:var(--fg);border-bottom:1px solid var(--line);padding-bottom:1px;
  transition:border-color .2s;
}
.je-faq-a p a:hover{ border-bottom-color:var(--fg); }
@media (max-width:680px){
  .je-faq-item{ grid-template-columns:1fr; gap:8px; }
  .je-faq-num{ padding-top:0; }
}

/* ─── Gear list (about page) ─── */
.je-gear-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px 80px;
}
.je-gear-h{
  font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--muted);
  padding-bottom:14px;margin-bottom:20px;
  border-bottom:1px solid var(--line);
}
.je-gear-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.je-gear-list li{
  font-family:var(--serif);font-style:normal;font-weight:300;
  font-size:20px;line-height:1.4;color:var(--fg);
}
@media (max-width:680px){
  .je-gear-grid{ grid-template-columns:1fr; gap:36px; }
}

/* ─── Field note article ─── */
.je-fn{
  max-width:780px;
  margin:0 auto;
  padding:64px var(--pad-x) 56px;
}
.je-fn-head{
  margin-bottom:36px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.je-fn-eye{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:18px;
  display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;
}
.je-fn-eye a{
  color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.je-fn-eye a:hover{ color:var(--fg); border-bottom-color:var(--fg); }
.je-fn-eye .sep{ opacity:.55; }

.je-fn-title{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(48px, 6vw, 88px);
  line-height:1;letter-spacing:-.03em;
  margin:0;color:var(--fg);
}
.je-fn-lede{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(20px, 1.8vw, 26px);line-height:1.45;
  color:var(--fg-2);margin:18px 0 0;max-width:640px;
}
.je-fn-meta{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-top:18px;
  display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;
}
.je-fn-meta .sep{ opacity:.55; }

.je-fn-cover{
  margin:0 calc(-1 * var(--pad-x)) 40px;
  aspect-ratio:16/9;overflow:hidden;background:var(--fg);
}
.je-fn-cover img{
  width:100%;height:100%;object-fit:cover;display:block;
}

.je-fn-body{
  font-family:var(--serif);font-weight:300;
  font-size:18px;line-height:1.78;color:var(--fg);
  max-width:680px;
}
.je-fn-body > p{ margin:0 0 1.4em; }
.je-fn-body > p:first-of-type{
  font-size:21px;line-height:1.55;font-style:italic;color:var(--fg-2);
}
.je-fn-body > p:first-of-type::first-letter{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:64px;line-height:.85;
  float:left;padding:6px 12px 0 0;color:var(--fg);
}
.je-fn-body em{ font-style:italic; }
.je-fn-body strong{ font-weight:500; }
.je-fn-body h2{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:32px;letter-spacing:-.015em;line-height:1.15;
  margin:2.2em 0 .8em;color:var(--fg);
  padding-top:1.2em;border-top:1px solid var(--line-2);
}
.je-fn-body h3{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin:2em 0 1em;font-weight:400;
}
.je-fn-body blockquote{
  margin:2em 0;padding:0 0 0 24px;border-left:1px solid var(--fg);
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:22px;line-height:1.5;color:var(--fg);
}
.je-fn-body a{
  color:var(--fg);
  border-bottom:1px solid var(--line);padding-bottom:1px;
  transition:border-color .2s;
}
.je-fn-body a:hover{ border-bottom-color:var(--fg); }
.je-fn-body img{
  max-width:100%;display:block;margin:2em 0;
}
.je-fn-body .je-fn-figure{
  margin:2.6em 0;
}
.je-fn-body .je-fn-figure img{
  width:100%;height:auto;display:block;margin:0;
  background:var(--bg-paper);
}
.je-fn-body .je-fn-figure figcaption{
  margin-top:14px;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.je-fn-body .je-fn-figure-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);
  gap:14px 16px;
  margin:2.6em 0;
}
.je-fn-body .je-fn-figure-grid figure{ margin:0; }
.je-fn-body .je-fn-figure-grid img{
  width:100%;height:auto;display:block;margin:0;
  background:var(--bg-paper);
}
.je-fn-body .je-fn-figure-grid figcaption{
  margin-top:10px;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
  display:flex;justify-content:space-between;gap:8px;
}
@media (max-width:680px){
  .je-fn-body .je-fn-figure-grid{ grid-template-columns:1fr; gap:18px; }
}
.je-fn-body ul,
.je-fn-body ol{
  margin:0 0 1.4em;padding-left:1.4em;
}
.je-fn-body li{ margin-bottom:.4em; }

.je-fn-foot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:48px;padding-top:32px;border-top:1px solid var(--line);
}

@media (max-width:680px){
  .je-fn{ padding:40px var(--pad-x) 40px; }
  .je-fn-cover{ aspect-ratio:4/5; }
  .je-fn-body{ font-size:17px; }
  .je-fn-body > p:first-of-type{ font-size:19px; }
  .je-fn-foot{ flex-direction:column;align-items:stretch; }
  .je-fn-foot .je-stamp{ justify-content:center;text-align:center; }
}

/* ─── Lightbox (plate viewer) ─── */
.je-lb{
  position:fixed;inset:0;z-index:200;
  background:#0c0a08;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  padding:48px 56px;
}
.je-lb[hidden]{ display:none; }
.je-lb-stage{
  max-width:min(96vw, 1400px);max-height:90vh;
  display:flex;flex-direction:column;gap:14px;align-items:center;
  width:100%;
}
.je-lb-img,
.je-lb-vid{
  max-width:100%;max-height:90vh;
  object-fit:contain;display:block;
  box-shadow:0 30px 90px rgba(0,0,0,.6);
  background:#0f0d0b;
}
.je-lb-cap{ display:none; }
.je-lb-close{
  position:absolute;top:18px;right:22px;
  width:38px;height:38px;
  background:transparent;border:1px solid rgba(255,255,255,.3);
  color:#fff;cursor:pointer;
  font-family:var(--sans);font-size:18px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s, border-color .15s;
}
.je-lb-close:hover{ background:rgba(255,255,255,.12);border-color:#fff; }
.je-lb-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:48px;height:64px;
  background:transparent;border:1px solid rgba(255,255,255,.25);
  color:#fff;cursor:pointer;
  font-family:var(--serif);font-size:28px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s, border-color .15s;
}
.je-lb-nav.prev{ left:18px; }
.je-lb-nav.next{ right:18px; }
.je-lb-nav:hover{ background:rgba(255,255,255,.12);border-color:#fff; }

@media (max-width:680px){
  .je-lb{ padding:24px 16px; }
  .je-lb-nav{ width:40px;height:52px; }
  .je-lb-nav.prev{ left:8px; }
  .je-lb-nav.next{ right:8px; }
  .je-lb-close{ top:10px;right:10px; }
}

/* Make the spread hero / cells behave like buttons (anchor-styled) */
.je-spread-hero.je-plate-link{ display:block;color:inherit;text-decoration:none; }
.je-spread-cell-link{ display:flex;flex-direction:column;gap:10px;color:inherit;text-decoration:none; }
.je-spread-cell-cap{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding-top:2px;
}
.je-spread-cell-cap .ttl{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:18px;letter-spacing:-.005em;line-height:1.2;color:var(--fg);
}
.je-spread-cell-cap .num{
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}

/* ─── Collection spread (single collection page) ─── */
.je-collection-spread{
  padding:64px var(--pad-x) 80px;
  max-width:var(--maxw);margin:0 auto;
  border-bottom:1px solid var(--line);
}
.je-spread-head{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:48px;align-items:end;
  margin-bottom:40px;
  padding-bottom:24px;border-bottom:1px solid var(--line);
}
.je-spread-head-l .je-spread-eye{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px;
  display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;
}
.je-spread-head-l .je-spread-eye a{
  color:var(--muted);border-bottom:1px solid var(--line);
  padding-bottom:1px;transition:color .2s, border-color .2s;
}
.je-spread-head-l .je-spread-eye a:hover{ color:var(--fg); border-bottom-color:var(--fg); }
.je-spread-head-l .je-spread-eye .sep{ opacity:.5; }
.je-spread-title{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(56px, 8vw, 120px);
  line-height:.92;margin:0;letter-spacing:-.035em;color:var(--fg);
}
.je-spread-title em{ font-style:italic; }
.je-spread-sub{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-top:14px;
}
.je-spread-head-r .je-spread-intro{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(18px, 1.5vw, 22px);line-height:1.5;
  color:var(--fg-2);margin:0 0 24px;max-width:520px;
}
.je-spread-kit{
  display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;
  max-width:520px;
}
.je-spread-kit > div{
  display:flex;flex-direction:column;gap:6px;
  padding-top:12px;border-top:1px solid var(--line);
}
.je-spread-kit .k{
  font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.je-spread-kit .v{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--fg-2);
}

.je-spread-gallery{
  display:flex;flex-direction:column;gap:32px;
}
.je-spread-hero{
  position:relative;margin:0;
  aspect-ratio:16/9;overflow:hidden;background:var(--fg);
  cursor:zoom-in;
}
.je-spread-hero img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.6s cubic-bezier(.2,.8,.2,1);
}
.je-spread-hero:hover img{ transform:scale(1.02); }
.je-spread-hero .je-ap-reg{
  position:absolute;width:14px;height:14px;opacity:.55;pointer-events:none;z-index:2;
}
.je-spread-hero .je-ap-reg::before,
.je-spread-hero .je-ap-reg::after{
  content:"";position:absolute;background:rgba(255,255,255,.9);
}
.je-spread-hero .je-ap-reg::before{ left:0;right:0;top:50%;height:1px; }
.je-spread-hero .je-ap-reg::after{ top:0;bottom:0;left:50%;width:1px; }
.je-spread-hero .je-ap-reg.tl{ top:12px;left:12px; }
.je-spread-hero .je-ap-reg.tr{ top:12px;right:12px; }
.je-spread-hero .je-ap-reg.bl{ bottom:12px;left:12px; }
.je-spread-hero .je-ap-reg.br{ bottom:12px;right:12px; }
.je-spread-cap{
  position:absolute;left:14px;right:14px;bottom:14px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:8px 12px;background:rgba(0,0,0,.55);color:#f4f1ea;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  z-index:3;
}

.je-spread-grid{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.je-spread-gallery.is-quiet .je-spread-grid{ gap:18px; }
.je-spread-gallery.is-quiet .je-spread-cell-link{ gap:0; }
.je-spread-cell figure{ margin:0;display:flex;flex-direction:column;gap:10px; }
.je-spread-img{
  position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--fg);
  cursor:zoom-in;
}
.je-spread-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1);
}
.je-spread-cell figure:hover .je-spread-img img{ transform:scale(1.03); }
.je-spread-cell figcaption{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding-top:2px;
}
.je-spread-cell figcaption .ttl{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:18px;letter-spacing:-.005em;line-height:1.2;color:var(--fg);
}
.je-spread-cell figcaption .num{
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}
.je-spread-meta{
  display:flex;justify-content:space-between;gap:12px;
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  padding-top:4px;border-top:1px solid var(--line);
}

.je-spread-foot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  max-width:var(--maxw);margin:0 auto;
  padding:36px var(--pad-x) 56px;
}

@media (max-width:1100px){
  .je-spread-head{ grid-template-columns:1fr; gap:24px; align-items:start; }
  .je-spread-grid{ grid-template-columns:repeat(2, 1fr); gap:28px 18px; }
  .je-spread-kit{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .je-collection-spread{ padding:48px var(--pad-x) 56px; }
  .je-spread-grid{ grid-template-columns:1fr; gap:24px; }
  .je-spread-hero{ aspect-ratio:4/5; }
  .je-spread-foot{ flex-direction:column;align-items:stretch; }
  .je-spread-foot .je-stamp{ justify-content:center;text-align:center; }
}

/* ─── Editions catalog (prints) ─── */
.je-editions-grid{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fit, minmax(min(360px, 100%), 1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.je-ed-card{ background:var(--bg); display:block; }
.je-ed-card a{
  display:flex;flex-direction:column;
  color:inherit;text-decoration:none;
  height:100%;
  transition:background .2s;
}
.je-ed-card a:hover{ background:var(--bg-paper); }
.je-ed-img{
  position:relative;
  aspect-ratio:3/2;overflow:hidden;background:var(--fg);
  border-bottom:1px solid var(--line);
}
.je-ed-img img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1), opacity 1.1s ease;
}
.je-ed-img .je-ed-img-hover{
  opacity:0;
  z-index:1;
}
.je-ed-img .je-ed-img-hover.is-on{
  opacity:1;
  z-index:2;
}
.je-ed-card a:hover .je-ed-img img{ transform:scale(1.03); }
.je-ed-num{
  position:absolute;top:10px;right:10px;
  z-index:3;
  width:30px;height:24px;
  border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:#f4f1ea;
}
.je-ed-body{
  padding:22px 22px 24px;
  display:flex;flex-direction:column;gap:16px;flex:1;
}
.je-ed-top{
  display:flex;justify-content:space-between;gap:14px;align-items:flex-start;
}
.je-ed-top-l .eye{
  font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
.je-ed-top-l h3{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:28px;letter-spacing:-.02em;line-height:1;margin:0;
}
.je-availability{
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  padding:4px 9px;border:1px solid var(--line);
  white-space:nowrap;color:var(--fg-2);
  align-self:flex-start;
}
.je-availability.low{ color:var(--warn); border-color:var(--warn); }
.je-availability.sold{ opacity:.4; }
.je-ed-summary{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:15px;line-height:1.5;color:var(--fg-2);margin:0;
}
.je-ed-specs{
  display:flex;flex-direction:column;gap:8px;
  padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.je-ed-specs > div{
  display:grid;grid-template-columns:80px 1fr;gap:12px;
  font-family:var(--mono);font-size:10px;align-items:baseline;
}
.je-ed-specs .k{
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
.je-ed-specs .v{ font-size:11px;color:var(--fg-2); }
.je-ed-foot{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-top:auto;
}
.je-ed-foot .price{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:24px;color:var(--fg);
}
.je-ed-foot .arr{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);transition:color .2s, transform .2s;
}
.je-ed-card a:hover .je-ed-foot .arr{ color:var(--fg);transform:translateX(3px); }

/* Room mockup grid — "See it on your wall" on /prints */
.je-room-grid{
  list-style:none;padding:0;margin:32px 0 0;
  display:grid;grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.je-room-cell figure{
  margin:0;display:flex;flex-direction:column;gap:14px;
}
.je-room-cell img{
  width:100%;height:auto;display:block;
  background:var(--bg-paper);
  border:1px solid var(--line);
  transition:transform .6s ease;
}
.je-room-cell:hover img{ transform:scale(1.01); }
.je-room-cell figcaption{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);
}
.je-room-cell figcaption .sz{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:18px;letter-spacing:0;color:var(--fg);
  text-transform:none;
}

@media (max-width:1100px){
  .je-west-hero-grid{ grid-template-columns:1fr; gap:36px; }
  .je-folio{ display:none; }
  .je-west-stats{ grid-template-columns:1fr 1fr; }
  .je-contact-grid{ grid-template-columns:repeat(3, 1fr); }
  .je-editions-grid{ grid-template-columns:repeat(2, 1fr); }
  .je-room-grid{ grid-template-columns:repeat(2, 1fr); gap:18px; }
  .je-room-cell:nth-child(3){ grid-column:1 / -1; max-width:60%; margin:0 auto; }
}
@media (max-width:680px){
  .je-west-hero{ padding:32px var(--pad-x) 40px; }
  .je-west-archive{ padding:48px var(--pad-x); }
  .je-west-title{ font-size:clamp(44px, 13vw, 72px); }
  .je-west-sub{ font-size:17px; }
  .je-west-stats{ grid-template-columns:1fr; gap:18px; }
  .je-archive-head{ grid-template-columns:1fr;gap:8px; }
  .je-archive-meta{ display:none; }
  .je-archive-tools{ flex-direction:column;align-items:flex-start; }
  .je-archive-sort{ display:none; }
  .je-contact-grid{ grid-template-columns:repeat(2, 1fr); }
  .je-editions-grid{ grid-template-columns:1fr; }
  .je-archive-foot{ grid-template-columns:1fr; }
  .je-archive-foot .eyebrow{ text-align:left; }
  .je-room-grid{ grid-template-columns:1fr; gap:18px; }
  .je-room-cell:nth-child(3){ grid-column:auto; max-width:none; }
}

/* ──────────────────────────────────────────────
   ADDITIONAL TABLET / MOBILE POLISH
   ────────────────────────────────────────────── */

/* Tablet (760–1024) — refine sub-page topbar density & paddings */
@media (max-width:1024px){
  .je-print-stage{ padding:72px var(--pad-x) 40px; }
  .je-print-info-row{ padding:64px var(--pad-x) 96px; }
  .je-feature-hero-vis{ height:clamp(360px, 58vh, 600px); }
  .je-feature-hero-overlay{ padding:48px var(--pad-x); }
  .je-feature-hero-tag{ bottom:18px; }
}

/* iPad portrait & smaller (768) — extra breathing room for sub-page hero */
@media (max-width:768px){
  .je-page-hero{ padding:72px var(--pad-x) 44px; }
  .je-page-h1{ font-size:clamp(36px, 9vw, 60px); max-width:none; }
  .je-page-lead{ font-size:17px; }
  .je-fast-answer{ padding:18px 20px; font-size:16px; }
  .je-west-hero-grid{ grid-template-columns:1fr; gap:32px; }
  .je-west-hero-grid.je-west-hero-solo{ grid-template-columns:1fr; }
  .je-west-hero-right{ max-width:520px; margin:0 auto; width:100%; }
  .je-west-stats{ grid-template-columns:repeat(3,1fr); gap:18px; max-width:none; }
  .je-archive-tools{ gap:14px; }
  .je-collection-tabs{ gap:0;flex-wrap:wrap;width:100%; }
  .je-cab-tab{ padding:8px 12px;font-size:9px; }
  .je-contact-grid{ grid-template-columns:repeat(3,1fr); }
  .je-editions-grid{ grid-template-columns:1fr; }
  .je-print-info-row{ padding:48px var(--pad-x) 72px; }
  .je-room-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .je-room-cell:nth-child(3){ grid-column:1 / -1; max-width:60%; margin:0 auto; }

  /* Series rows tighter image */
  .je-series-row a{ gap:18px; padding:24px 0; }

  /* Spread (collection detail) */
  .je-spread-grid{ grid-template-columns:repeat(2, 1fr); gap:20px; }
  .je-spread-hero{ aspect-ratio:3/2; }
  .je-spread-kit{ grid-template-columns:1fr 1fr; gap:14px 20px; }

  /* Field note typography settles a notch sooner */
  .je-fn{ padding:56px var(--pad-x) 48px; }
  .je-fn-title{ font-size:clamp(40px, 8vw, 64px); }
  .je-fn-lede{ font-size:19px; }
}

/* Phone (≤480) — extra polish: bigger tap targets, prevent overflow */
@media (max-width:480px){
  /* Generic tap target floor for buttons & link pills */
  .toggle button, .je-stamp, .je-cab-tab, .je-view-toggle button,
  .subjects .pin .lhs .controls button,
  .je-print-buy .buy{
    min-height:40px;
  }
  .je-stamp{ padding:9px 13px; }
  .je-west-stamp-row{ gap:8px; }

  /* Photography west hero compresses */
  .je-west-hero{ padding:24px var(--pad-x) 32px; }
  .je-west-stats{ grid-template-columns:1fr; gap:16px; max-width:none; }
  .je-west-stats .v{ font-size:15px; }

  /* Photography contact grid: 2 cols on phone */
  .je-contact-grid{ grid-template-columns:repeat(2,1fr); }
  .je-contact-cell a{ padding:8px; gap:6px; }
  .je-contact-meta .ttl{ font-size:12px; }
  .je-contact-meta .num{ font-size:8px; }
  .je-contact-bar{ font-size:8px; }

  /* Print stage figure mat smaller padding */
  .je-print-stage{ padding:40px var(--pad-x) 20px; }
  .je-print-figure-mat{ padding:10px; }
  .je-print-figure-mat::before{ inset:4px; }
  .je-print-figure figcaption{ flex-direction:column;gap:4px;align-items:center; }

  /* Print buy block keeps two columns: size + price; CTA full-width below */
  .je-print-buy{ padding:18px; }
  .je-print-buy h2{ font-size:18px; }

  /* Editions card tweaks */
  .je-ed-body{ padding:18px 18px 20px; gap:12px; }
  .je-ed-top-l h3{ font-size:24px; }
  .je-ed-foot .price{ font-size:20px; }

  /* Archive head */
  .je-archive-h2{ font-size:36px; }
  .je-archive-head{ margin-bottom:18px; padding-bottom:14px; }

  /* Series TOC tighter */
  .je-toc-row{ padding:18px 4px; }

  /* Field note hero & body */
  .je-fn{ padding:36px var(--pad-x) 36px; }
  .je-fn-title{ font-size:clamp(34px, 9vw, 48px); }
  .je-fn-lede{ font-size:17px; }
  .je-fn-body > p:first-of-type::first-letter{ font-size:48px; padding:4px 10px 0 0; }
  .je-fn-body h2{ font-size:24px; }
  .je-fn-body blockquote{ font-size:18px; padding-left:16px; }
  .je-fn-cover{ aspect-ratio:4/5; margin-bottom:28px; }

  /* About */
  .je-about-meta-row{ padding:20px 0; gap:16px 24px; }
  .je-about-body .je-about-hello{ font-size:clamp(34px, 10vw, 48px); margin-bottom:18px; }
  .je-about-lede{ font-size:19px; }
  .je-portrait-figure{ margin:24px 0 0; }

  /* Spread on phone */
  .je-collection-spread{ padding:36px var(--pad-x) 48px; }
  .je-spread-grid{ grid-template-columns:1fr; gap:20px; }
  .je-spread-hero{ aspect-ratio:4/5; }
  .je-spread-head{ margin-bottom:24px; padding-bottom:18px; }
  .je-spread-kit{ grid-template-columns:1fr 1fr; gap:12px 16px; max-width:none; }

  /* Sub-footer keeps tight */
  .je-subfoot{ padding:36px var(--pad-x) 20px; }
  .je-subfoot-grid{ gap:16px; }
}

/* Very small (≤360) — give text & nav more room, no horizontal squeeze */
@media (max-width:360px){
  :root{ --pad-x:14px; }
  .je-print-stage-inner .eyebrow{ font-size:10px; letter-spacing:.14em; }
  .je-print-stage-inner .eyebrow .sep{ margin:0 4px; }
  .je-feature-hero-overlay{ padding:18px var(--pad-x); }
  .je-feature-title{ font-size:clamp(32px, 13vw, 56px); }
  .je-archive-h2{ font-size:32px; }
  .je-fn-title{ font-size:clamp(30px, 10vw, 42px); }
  .je-print-figure-mat{ padding:6px; }
  .je-print-figure-mat::before{ inset:2px; }
}

/* iOS safe-area aware bottom padding for sticky elements where helpful */
@supports (padding: max(0px)){
  .je-subfoot-end,
  .colophon-end{
    padding-bottom:max(20px, env(safe-area-inset-bottom));
  }
  .je-subtopbar,
  .topbar{
    padding-left:max(var(--pad-x), env(safe-area-inset-left));
    padding-right:max(var(--pad-x), env(safe-area-inset-right));
  }
}

/* Touch devices: smoother scrolling for horizontal strips */
@media (hover:none) and (pointer:coarse){
  .subjects .strip-wrap{ -webkit-overflow-scrolling:touch; }
  .je-collection-tabs{ overflow-x:auto; flex-wrap:nowrap; }
  .je-collection-tabs::-webkit-scrollbar{ display:none; }
  .je-collection-tabs{ scrollbar-width:none; }
  .je-cab-tab{ white-space:nowrap; }
}

/* Prevent the hero question mark from forcing horizontal scroll on phones */
@media (max-width:600px){
  .hero-q{ word-break:normal; overflow-wrap:break-word; }
}
