/* Ivory gallery hero. Existing content below the hero retains its release styling. */
body.gallery-edition { --gh-ink:#282821; --gh-muted:#45443d; --gh-paper:#eeeae2; }
.study-on body.gallery-edition .gallery-hero {
  position:relative; isolation:isolate; overflow:hidden; width:100%; max-width:none;
  min-height: min(1000px, 100svh); min-height:min(1000px,100dvh); height:900px; max-height:1100px;
  padding:118px max(4.3vw,24px) 48px; margin:0; border:0; border-radius:0;
  background:var(--gh-paper); color:var(--gh-ink); box-shadow:none; display:block;
}
.gallery-hero .gh-scene { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 64%; }
.gallery-hero::after { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(247,244,237,.38),rgba(247,244,237,.12) 37%,transparent 65%); }
.gallery-hero .gh-content { position:relative; max-width:1560px; margin:auto; }
.gallery-hero .gh-eyebrow { margin:0 0 27px; font:500 12px/1.4 Archivo,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--gh-muted); }
.study-on body.gallery-edition .gallery-hero h1 { display:block; margin:0; width:100%; max-width:none; font:400 clamp(46px,6.7vw,112px)/1.02 Archivo,sans-serif; letter-spacing:-.065em; color:var(--gh-ink); }
.gallery-hero h1 > span { display:block; white-space:nowrap; }
.gallery-hero h1 > em { display:block; margin-top:1px; font-family:Didot,"Bodoni MT","Times New Roman",serif; font-size:1.25em; font-weight:400; letter-spacing:-.065em; line-height:1.02; }
.gallery-hero .gh-intro { margin-top:30px; max-width:480px; }
.gallery-hero .gh-intro p { margin:0; font:400 16px/1.55 Archivo,sans-serif; letter-spacing:-.02em; color:var(--gh-muted); }
.gallery-hero .gh-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:23px; }
.gallery-hero .gh-work,.gallery-hero .gh-contact { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:48px; text-decoration:none; white-space:nowrap; font:500 13px/1 Archivo,sans-serif; }
.gallery-hero .gh-work { padding:0 22px; border-radius:3px; background:var(--gh-ink); color:#faf8f3; box-shadow:0 4px 14px #38372b14; transition:background .2s,transform .2s; }
.gallery-hero .gh-contact { color:var(--gh-ink); border-bottom:1px solid #706d6255; }
.gallery-hero .icon { width:18px; height:18px; }
.gallery-hero .gh-work:hover { background:#3f5efb; transform:translateY(-2px); }
.gallery-hero .gh-contact:hover { border-color:currentColor; }
.gallery-hero a:focus-visible { outline:3px solid #2459ec; outline-offset:5px; }
body.gallery-edition .v-nav { border-radius:4px; background:rgba(247,245,239,.86); border-color:#7f7a6c26; box-shadow:none; }
@media (prefers-reduced-motion:no-preference) {
  .gallery-hero .gh-content { animation:gallery-enter .9s cubic-bezier(.2,.7,.2,1) both; }
  .gallery-hero .gh-scene { animation:gallery-arrive 1.6s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes gallery-enter { from {opacity:0;transform:translateY(12px)} to {opacity:1;transform:none} }
  @keyframes gallery-arrive { from {opacity:.5;transform:scale(1.025)} to {opacity:1;transform:scale(1)} }
}
@media (min-width:1600px) { .gallery-hero .gh-intro { margin-top:38px; } }
@media (max-width:900px) {
  .study-on body.gallery-edition .gallery-hero { height:850px; min-height:760px; padding-top:116px; }
  .study-on body.gallery-edition .gallery-hero h1 { font-size:6.7vw; }
  .gallery-hero .gh-scene { object-position:53% bottom; }
}
@media (max-width:600px) {
  .study-on body.gallery-edition .gallery-hero { padding:105px 24px 30px; height:820px; min-height:740px; max-height:none; }
  .gallery-hero .gh-eyebrow { font-size:10px; letter-spacing:.07em; margin-bottom:25px; max-width:270px; }
  .study-on body.gallery-edition .gallery-hero h1 { font-size:clamp(40px,11vw,66px); line-height:1.02; letter-spacing:-.06em; }
  .gallery-hero h1 > span { white-space:normal; max-width:10em; }
  .gallery-hero h1 > em { font-size:1.18em; margin-top:10px; }
  .gallery-hero .gh-intro { margin-top:26px; max-width:340px; }
  .gallery-hero .gh-intro p { font-size:14px; line-height:1.6; }
  .gallery-hero .gh-intro p br { display:none; }
  .gallery-hero .gh-actions { gap:18px; margin-top:22px; }
  .gallery-hero .gh-work { padding:0 16px; font-size:12px; }
  .gallery-hero .gh-contact { font-size:12px; gap:8px; }
  .gallery-hero .gh-scene { object-fit:cover; object-position:51% bottom; }
  .gallery-hero::after { background:linear-gradient(180deg,#eee9e0eb,#eee9e0cf 39%,transparent 70%); }
  body.gallery-edition .v-nav { width:calc(100% - 32px); }
}
@media (max-width:360px) { .gallery-hero .gh-actions { gap:12px; } .gallery-hero .gh-contact .icon {display:none;} }
@media (prefers-reduced-motion:reduce) { .gallery-hero *, .gallery-hero *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;} }

.study-on body.gallery-edition .gallery-hero + #work { margin-top:0; }

/* Hero typography: Archivo semibold with tight tracking. */
.gallery-hero::after { background:linear-gradient(180deg,rgba(29,32,35,.49),rgba(29,32,35,.48) 44%,rgba(29,32,35,.18) 76%,rgba(29,32,35,.12)); }
.study-on body.gallery-edition .gallery-hero h1 {
  font-family:Archivo,Arial,sans-serif; font-weight:600; font-style:normal;
  font-size:clamp(80px,12.4vw,205px); line-height:1.04; letter-spacing:-.06em;
  color:#fff; text-shadow:0 0 2px #fff8,0 0 24px #fff2,0 2px 18px #12182012;
}
.gallery-hero .gh-eyebrow,.gallery-hero .gh-intro p {color:#fff;}
.gallery-hero .gh-intro {margin-top:32px;}
.gallery-hero .gh-contact {color:#fff;border-color:#fff8;}
.gallery-hero .gh-work {background:#fff;color:#282c30;box-shadow:0 2px 16px #fff2;}
.gallery-hero .gh-work:hover {background:#e9edf9;color:#202631;}
.gallery-hero .gh-scene {object-position:center center;}
@media(max-width:600px) {
  .study-on body.gallery-edition .gallery-hero h1 {font-size:clamp(65px,19vw,114px);line-height:1.02;max-width:6em;letter-spacing:-.065em;}
  .gallery-hero::after {background:linear-gradient(180deg,rgba(29,32,35,.51),rgba(29,32,35,.50) 48%,rgba(29,32,35,.15) 82%);}
  .gallery-hero .gh-scene {object-position:55% center;}
}
/* Transparent foreground WebGL stage sits above the image scrim and below copy. */
body.gallery-edition .gallery-hero .gh-content {z-index:3;pointer-events:none;}
body.gallery-edition .gallery-hero .gh-content a {pointer-events:auto;}
body.gallery-edition .gallery-hero .gh-terrain {
 position:absolute;inset:auto 0 4% 0;width:100%;height:44%;z-index:1;
 margin:0;transform:none;opacity:1;pointer-events:none;background:none;overflow:visible;
 mask-image:none;-webkit-mask-image:none;filter:none;mix-blend-mode:normal;
}
body.gallery-edition .gallery-hero .gh-terrain::before,
body.gallery-edition .gallery-hero .gh-terrain::after {display:none;}
body.gallery-edition .gallery-hero .gh-terrain canvas {
 display:block;width:100%;height:100%;opacity:1;mask-image:none;-webkit-mask-image:none;
 filter:none;mix-blend-mode:normal;
}
.gh-terrain-shadow {position:absolute;z-index:0;left:16%;right:16%;bottom:9%;height:7%;border-radius:50%;background:radial-gradient(ellipse,#24293c35,transparent 68%);filter:blur(14px);pointer-events:none;}
.gh-motion {position:absolute;z-index:4;right:4.3%;bottom:30px;}
body.gallery-edition .gh-motion .motion-toggle {color:#333945;background:#f5f6f4db;border:1px solid #ffffff70;border-radius:4px;padding:10px 14px;min-height:40px;}
@media(max-width:600px) {
 body.gallery-edition .gallery-hero .gh-terrain {height:36%;width:160%;left:-30%;right:auto;bottom:5%;}
 .gh-terrain-shadow {left:3%;right:3%;bottom:12%;}
 .gh-motion {right:24px;bottom:30px;}
}
body.gallery-edition .gh-motion .motion-toggle {position:static;inset:auto;display:inline-flex;align-items:center;gap:8px;width:auto;height:40px;margin:0;white-space:nowrap;}
body.gallery-edition .gh-motion .motion-toggle .icon {width:16px;height:16px;}
body.gallery-edition .gh-motion .motion-toggle [hidden] {display:none;}
/* Keep the complete copy group inside the navigation bounds and center it vertically. */
.study-on body.gallery-edition .gallery-hero {
  display:flex;flex-direction:column;justify-content:center;
  padding-block:0;padding-inline:0;
}
body.gallery-edition .gallery-hero .gh-content {
  box-sizing:border-box;width:min(1380px,calc(100% - 48px));max-width:1380px;
  margin:0 auto;padding:0 26px;
}
@media(max-width:600px) {
  body.gallery-edition .gallery-hero .gh-content {
    width:calc(100% - 32px);padding-inline:16px;
  }
}
/* Optical centering: raise the copy group by 6% of its hero container. */
.study-on body.gallery-edition .gallery-hero {container-type:size;}
body.gallery-edition .gallery-hero .gh-content {top:-6cqh;}
/* Nested corners follow the navigation's 8px inset; cobalt uses a satin finish. */
html.study-on body.gallery-edition.redesign-v3 .v-nav {border-radius:14px;}
body.portfolio-open-layout.redesign-v3.gallery-edition .v-nav .nav-email {
 border-radius:6px;border:1px solid #2946cd;
 background:linear-gradient(180deg,#4261ec,#3454db);
 box-shadow:inset 0 1px 0 #ffffff20,0 2px 4px #20232b0c;
 text-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
 transition:background .2s ease,box-shadow .2s ease;
}
body.portfolio-open-layout.redesign-v3.gallery-edition .v-nav .nav-email:hover {
 background:linear-gradient(180deg,#3957df,#2e4bca);
 box-shadow:inset 0 1px 0 #ffffff18,0 2px 5px #20232b12;
}
@media (prefers-reduced-motion:reduce) {
 body.portfolio-open-layout.redesign-v3.gallery-edition .v-nav .nav-email {transition:none;}
}
/* Equal CTA inset: outer radius = inner radius + navigation padding. */
html.study-on body.gallery-edition.redesign-v3 .v-nav {
 --nav-inset:8px;--nav-button-radius:6px;
 border-radius:calc(var(--nav-button-radius) + var(--nav-inset));
 padding-block:var(--nav-inset);padding-right:var(--nav-inset);
}
body.portfolio-open-layout.redesign-v3.gallery-edition .v-nav .nav-email,
body.portfolio-open-layout.redesign-v3.gallery-edition .v-nav .nav-email:is(:hover,:active,:focus) {
 border-radius:var(--nav-button-radius);transform:none!important;translate:none!important;
 --mx:0px!important;--my:0px!important;
}
body.gallery-edition .v-nav .nav-email .nm-ch {transform:none!important;}
body.gallery-edition .v-nav .nav-email .nm-ch::after {display:none;}
body.gallery-edition .gallery-hero .gh-contact {
 padding:0 22px;border:1px solid rgba(255,255,255,.64);border-radius:3px;
 background:linear-gradient(135deg,rgba(255,255,255,.62),rgba(255,255,255,.28));color:#24292f;
 backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);
 box-shadow:inset 0 1px 0 #ffffff70,inset 0 -1px 0 #ffffff18,0 4px 14px #141b2412;
 text-decoration:none;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
body.gallery-edition .gallery-hero .gh-contact:hover {
 background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(255,255,255,.40));border-color:#ffffffd9;
 box-shadow:inset 0 1px 0 #ffffff90,inset 0 -1px 0 #ffffff20,0 5px 16px #141b2418;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
 body.gallery-edition .gallery-hero .gh-contact {background:rgba(255,255,255,.84);}
}
body.gallery-edition .gallery-hero .gh-work {
 padding:0;border:0;border-bottom:1px solid #fff8;border-radius:0;
 background:transparent;color:#fff;box-shadow:none;transform:none;
}
body.gallery-edition .gallery-hero .gh-work:hover {background:transparent;color:#fff;border-bottom-color:#fff;transform:none;}
