*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --ink: #0a120e;
  --muted: #5c7263;
  --faint: #d4e6da;
  --paper: #f3f8f5;
  --accent: #2d6a4f;
  --accent-light: #c8e6d4;
  --accent-bright: #52b788;
  --white: #fff;
  --display: 'Bebas Neue', 'Arial Black', sans-serif;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --ui: 'Syne', system-ui, sans-serif;
}

html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--ui);
  background: var(--paper);
  color: var(--ink);
  overflow-x: hidden;
  cursor: none;
}

/* CURSOR */
.cursor {
  position: fixed; width: 8px; height: 8px;
  background: var(--ink); border-radius: 50%;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%,-50%);
  transition: width .18s, height .18s, background .18s;
}
.cursor-ring {
  position: fixed; width: 38px; height: 38px;
  border: 1px solid rgba(14,14,14,.35); border-radius: 50%;
  pointer-events: none; z-index: 9998;
  transform: translate(-50%,-50%);
  transition: width .25s, height .25s, opacity .2s, border-color .2s;
}
body.hov .cursor { width: 5px; height: 5px; background: var(--accent); }
body.hov .cursor-ring { width: 54px; height: 54px; opacity: .2; border-color: var(--accent); }
body.cursor-light .cursor { width: 6px; height: 6px; background: var(--white); }
body.cursor-light .cursor-ring {
  width: 56px; height: 56px;
  opacity: .85;
  border-color: rgba(255,255,255,.85);
  box-shadow: 0 0 18px rgba(255,255,255,.22);
}

/* NAV */
nav {
  position: fixed; inset: 0 0 auto 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.6rem 3.5rem;
  transition: transform .35s ease, background .3s;
}
nav.scrolled { background: rgba(243,248,245,.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--faint); }
.nav-logo {
  font-family: var(--display);
  font-size: 1.3rem; letter-spacing: .12em;
  color: var(--ink); text-decoration: none;
  cursor: none;
}
.nav-links { display: flex; gap: 2.5rem; list-style: none; }
.nav-links a {
  font-family: var(--ui); font-size: .7rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted); text-decoration: none;
  transition: color .2s; cursor: none;
}
.nav-links a:hover { color: var(--ink); }

/* HERO */
.hero {
  min-height: 100vh;
  display: grid; grid-template-columns: 55% 45%;
  overflow: hidden;
}
.hero-left {
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 9rem 3.5rem 5rem;
  position: relative; z-index: 2;
}
.hero-eyebrow {
  font-family: var(--ui); font-size: .65rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.2rem;
  display: flex; align-items: center; gap: .75rem;
}
.hero-eyebrow::before {
  content: ''; display: block;
  width: 32px; height: 1px; background: var(--accent);
}
.hero-name {
  font-family: var(--display);
  font-size: clamp(5.5rem, 10vw, 11rem);
  line-height: .88; letter-spacing: .02em;
  color: var(--ink); margin-bottom: .4rem;
}
.hero-name-italic {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.1vw, 3.8rem);
  font-style: italic; font-weight: 300;
  color: var(--accent); line-height: 1;
  display: block; margin-bottom: 2.5rem;
  letter-spacing: .01em;
}
.hero-tagline {
  font-family: var(--serif);
  font-size: 1.2rem; font-style: italic; font-weight: 400;
  color: var(--muted); line-height: 1.65;
  max-width: 340px; margin-bottom: 3.5rem;
}
.hero-available {
  font-family: var(--ui);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--accent);
  max-width: 440px;
  line-height: 1.7;
  margin: -2rem 0 2.8rem;
}
.hero-actions {
  display: flex; align-items: center; gap: 1.3rem;
  flex-wrap: wrap;
}
.hero-cta {
  display: inline-flex; align-items: center; gap: 1rem;
  font-family: var(--ui); font-size: .65rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: .35rem; width: fit-content;
  transition: color .2s, border-color .2s; cursor: none;
}
.hero-cta:hover { color: var(--accent); border-color: var(--accent); }
.hero-cta span { font-size: 1.1rem; transition: transform .2s; }
.hero-cta:hover span { transform: translateX(5px); }
.resume-cta {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 40px; padding: .85rem 1rem .78rem;
  border: 1px solid var(--ink);
  background: var(--ink); color: var(--white);
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; cursor: none;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.resume-cta:hover {
  background: var(--accent); border-color: var(--accent);
  color: var(--white); transform: translateY(-2px);
}
.resume-cta.ghost {
  background: transparent; color: var(--ink);
}
.resume-cta.ghost:hover {
  background: var(--ink); border-color: var(--ink); color: var(--white);
}
.resume-cta.light {
  border-color: rgba(255,255,255,.22);
  background: var(--accent-bright); color: var(--ink);
}
.resume-cta.light:hover {
  background: var(--white); border-color: var(--white); color: var(--ink);
}

.hero-right {
  position: relative; overflow: hidden;
  background: var(--ink);
  margin-left: -7rem;
  width: calc(100% + 7rem);
}
.hero-right::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(110deg, var(--paper) 0%, transparent 28%);
  z-index: 2; pointer-events: none;
}
.hero-collage {
  position: absolute; inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 55% 45%;
  gap: 3px;
}
.hc-img { overflow: hidden; }
.hc-img:nth-child(1) { grid-column: 1/3; grid-row: 2; }
.hc-img:nth-child(2) { grid-column: 2; grid-row: 1; }
.hc-img:nth-child(3) { grid-column: 1; grid-row: 1; }
.hc-img img {
  width: 100%; height: 100%; object-fit: cover;
  opacity: .82; filter: contrast(1.08) saturate(.88);
  transition: transform .7s ease, opacity .4s;
}
.hc-img:nth-child(1) img { object-position: center center; }
.hc-img:nth-child(3) img { object-position: center center; }
.hc-img:hover img { transform: scale(1.05); opacity: 1; filter: contrast(1.1) saturate(1); }

.hero-scroll {
  position: absolute; bottom: 2.5rem; left: 3.5rem; z-index: 3;
  display: flex; align-items: center; gap: .8rem;
  font-family: var(--ui); font-size: .58rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted);
}
.hero-scroll-line {
  width: 44px; height: 1px; background: var(--muted);
  transform-origin: left;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%,100%{transform:scaleX(1);opacity:1} 50%{transform:scaleX(.3);opacity:.3} }

/* MARQUEE */
.marquee-strip {
  overflow: hidden;
  background: var(--ink); padding: .85rem 0;
}
.marquee-track {
  display: flex; gap: 3rem; width: max-content;
  animation: marquee 28s linear infinite;
}
.marquee-track span {
  font-family: var(--ui); font-size: .58rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.4); white-space: nowrap;
}
.marquee-track .gem { color: var(--accent); font-size: .75rem; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* SECTION SHELLS */
.wrap { max-width: 1380px; margin: 0 auto; padding: 0 3.5rem; }
section { padding: 7rem 0; }

.sec-label {
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1rem;
  display: flex; align-items: center; gap: .75rem;
}
.sec-label::after { content: ''; flex: 1; max-width: 40px; height: 1px; background: var(--accent); }

.sec-heading {
  font-family: var(--display);
  font-size: clamp(3.5rem, 6vw, 7rem);
  line-height: .9; letter-spacing: .02em;
}
.sec-heading em {
  font-family: var(--serif);
  font-style: italic; font-weight: 300;
  font-size: .75em; letter-spacing: .01em;
  color: var(--accent);
}

/* ═══════════════════════════════
   PORTFOLIO SECTIONS (8 cards)
═══════════════════════════════ */
#portfolio { background: var(--white); }
.portfolio-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 4rem; padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--faint);
}
.portfolio-intro {
  font-family: var(--serif); font-size: 1.1rem; font-style: italic;
  color: var(--muted); max-width: 420px; line-height: 1.7;
}
.cred-strip {
  margin-top: 2.2rem;
  padding: 1rem 0;
  border-top: 1px solid var(--faint);
  border-bottom: 1px solid var(--faint);
  font-family: var(--ui);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.8;
}
.cred-strip span { color: var(--accent); }

/* 8-section card grid */
.section-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: 6px;
}

/* Card shapes - Featured leads across two card units, then two balanced rows */
.section-card {
  position: relative; overflow: hidden; cursor: none;
  aspect-ratio: 1 / 1;
}
.section-card[data-cat="featured"] { grid-column: 1/5; grid-row: 1/2; aspect-ratio: 2 / 1; }
.section-card[data-cat="brand"] { grid-column: 5/7; grid-row: 1/2; }
.section-card[data-cat="basketball"] { grid-column: 1/3; grid-row: 2/3; }
.section-card[data-cat="lax"] { grid-column: 3/5; grid-row: 2/3; }
.section-card[data-cat="wrestling"] { grid-column: 5/7; grid-row: 2/3; }
.section-card[data-cat="film"] { grid-column: 1/3; grid-row: 3/4; }
.section-card[data-cat="landscape"] { grid-column: 3/5; grid-row: 3/4; }
.section-card[data-cat="graphic"] { grid-column: 5/7; grid-row: 3/4; }

.section-card-bg {
  position: absolute; inset: 0;
  background: var(--ink);
  transition: transform .7s cubic-bezier(.16,1,.3,1);
}
.section-card:hover .section-card-bg { transform: scale(1.05); }

/* Big photo fills: use a solid gradient for placeholder (real photos go via src) */
.section-card-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: .72; filter: contrast(1.1) saturate(.8);
  transition: opacity .5s, filter .5s, transform .7s cubic-bezier(.16,1,.3,1);
}
.section-card:hover .section-card-img {
  opacity: .55; filter: contrast(1.12) saturate(.9);
  transform: scale(1.05);
}

/* Colour tint overlays per category */
.section-card[data-cat="featured"]   .section-card-bg { background: #12101a; }
.section-card[data-cat="brand"]      .section-card-bg { background: #1a1018; }
.section-card[data-cat="graphic"]    .section-card-bg { background: #0d1420; }
.section-card[data-cat="basketball"] .section-card-bg { background: #0f1e2a; }
.section-card[data-cat="lax"]        .section-card-bg { background: #0e1f18; }
.section-card[data-cat="wrestling"]  .section-card-bg { background: #1c1207; }
.section-card[data-cat="film"]       .section-card-bg { background: #1b1711; }
.section-card[data-cat="landscape"]  .section-card-bg { background: #091810; }

/* Gradient overlay */
.section-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 50%, transparent 100%);
  transition: background .4s;
}
.section-card:hover .section-card-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.35) 55%, transparent 100%);
}

/* Card text */
.section-card-body {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 2rem 2rem 2rem;
  z-index: 2;
}
.section-card-num {
  font-family: var(--display);
  font-size: .85rem; letter-spacing: .3em;
  color: rgba(255,255,255,.28); margin-bottom: .6rem;
}
.section-card-title {
  font-family: var(--display);
  font-size: clamp(2.2rem, 3.5vw, 3.5rem);
  line-height: .9; letter-spacing: .04em;
  color: #fff; margin-bottom: .5rem;
}

.section-card-sub {
  font-family: var(--serif); font-size: .95rem; font-style: italic;
  color: rgba(255,255,255,.5); line-height: 1.4;
  margin-bottom: 1.2rem;
}
.section-card-desc {
  font-family: var(--ui); font-size: .56rem; line-height: 1.5;
  letter-spacing: .09em; text-transform: uppercase;
  color: rgba(255,255,255,.38);
  max-width: 94%; margin: -.65rem 0 1.05rem;
}
.section-card-cta {
  display: inline-flex; align-items: center; gap: .7rem;
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
  transform: translateY(6px); opacity: 0;
  transition: opacity .3s .05s, transform .35s .05s, color .2s;
}
.section-card:hover .section-card-cta { opacity: 1; transform: translateY(0); color: var(--accent-bright); }
.section-card-cta-arrow { font-size: 1rem; transition: transform .25s; }
.section-card:hover .section-card-cta-arrow { transform: translateX(4px); }

/* Accent line top */
.section-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px; z-index: 10;
  background: var(--accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.section-card:hover::before { transform: scaleX(1); }

/* Count badge */
.section-card-count {
  position: absolute; top: 1.4rem; right: 1.4rem; z-index: 5;
  font-family: var(--ui); font-size: .55rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.35);
  border: 1px solid rgba(255,255,255,.15);
  padding: .3rem .7rem;
  transition: color .3s, border-color .3s;
}
.section-card:hover .section-card-count { color: var(--accent-bright); border-color: var(--accent-bright); }

/* ═══════════════════════════════
   GALLERY PAGES (views)
═══════════════════════════════ */
.gallery-page {
  display: none;
  min-height: 100vh;
  background: var(--paper);
  padding-top: 0;
}
.gallery-page.active { display: block; }

/* Gallery hero band */
.gallery-hero {
  position: relative;
  height: 52vh; min-height: 360px;
  overflow: hidden;
  background: var(--ink);
  display: flex; align-items: flex-end;
}
.gallery-hero-bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: .45; filter: contrast(1.12) saturate(.7);
}
.gallery-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.5) 100%);
}
.gallery-hero-content {
  position: relative; z-index: 2;
  padding: 3rem 3.5rem 3.5rem;
  width: 100%;
}
.gallery-back {
  display: inline-flex; align-items: center; gap: .7rem;
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.4); text-decoration: none;
  margin-bottom: 2rem; cursor: none;
  transition: color .2s;
}
.gallery-back:hover { color: var(--accent-bright); }
.gallery-back-arrow { transition: transform .2s; }
.gallery-back:hover .gallery-back-arrow { transform: translateX(-4px); }

.gallery-hero-label {
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .28em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .8rem;
  display: flex; align-items: center; gap: .75rem;
}
.gallery-hero-label::before { content: ''; display: block; width: 28px; height: 1px; background: var(--accent); }
.gallery-hero-title {
  font-family: var(--display);
  font-size: clamp(4rem, 8vw, 9rem);
  line-height: .88; letter-spacing: .03em;
  color: #fff;
}
.gallery-hero-sub {
  font-family: var(--serif); font-size: 1.3rem; font-style: italic;
  color: rgba(255,255,255,.5); margin-top: .6rem;
}

/* Photo mosaic inside gallery */
.gallery-body { padding: 4rem 3.5rem 7rem; }
.gallery-collection-block {
  margin-top: 4rem;
  padding-top: 3rem;
  border-top: 1px solid var(--faint);
}
.gallery-collection-kicker {
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .7rem;
}
.gallery-collection-title {
  font-family: var(--display);
  font-size: clamp(2.7rem, 5.2vw, 5.8rem);
  line-height: .9;
  letter-spacing: .03em;
  color: var(--ink);
}
.gallery-collection-copy {
  font-family: var(--serif);
  font-size: 1.02rem;
  font-style: italic;
  line-height: 1.75;
  color: var(--muted);
  max-width: 560px;
  margin: 1rem 0 2.2rem;
}

.gallery-mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 72px;
  gap: 5px;
  margin-bottom: 5px;
}
.gm-item {
  overflow: hidden; position: relative;
  background: var(--faint); cursor: none;
}
.gm-item img {
  width: 100%; height: 100%; object-fit: cover;
  filter: contrast(1.04) saturate(.88);
  transition: transform .55s ease, filter .3s;
}
.gm-item img[src*="cb-summer-portrait"] { object-position: 50% 28%; }
.gm-item img[src*="cb-summer-closeup"] { object-position: 44% 24%; }
.gm-item img[src*="cb-summer-collection"] { object-position: 50% 50%; }
.gm-item img[src*="cb-summer-destinations"],
.case-media img[src*="cb-summer-destinations"] { object-position: 42% 50%; }
#gallery-featured .gm-item img[src*="featured-waterfountain"] { object-position: 50% 58%; }
#gallery-featured .gm-item img[src*="featured-cornell-bench"] { object-position: 52% 46%; }
#gallery-featured .gm-item img[src*="featured-interview"] { object-position: 48% 24%; }
#gallery-featured .gm-item img[src*="featured-shooting"] { object-position: 50% 28%; }
#gallery-featured .gm-item img[src*="featured-huddle"] { object-position: 50% 34%; }
#gallery-featured .gm-item img[src*="featured-dunk-sequence"] { object-position: 50% 18%; }
.gm-item:hover img { transform: scale(1.07); filter: contrast(1.1) saturate(1.05); }

.gm-item-ov {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 50%);
  opacity: 0; transition: opacity .3s;
}
.gm-item:hover .gm-item-ov { opacity: 1; }

/* Mosaic layout patterns — each gallery gets a unique mosaic */
/* BASKETBALL mosaic */
#gallery-basketball .gm-item:nth-child(1)  { grid-column:1/6;   grid-row:1/6; }
#gallery-basketball .gm-item:nth-child(2)  { grid-column:6/9;   grid-row:1/4; }
#gallery-basketball .gm-item:nth-child(3)  { grid-column:9/13;  grid-row:1/5; }
#gallery-basketball .gm-item:nth-child(4)  { grid-column:6/10;  grid-row:4/7; }
#gallery-basketball .gm-item:nth-child(5)  { grid-column:10/13; grid-row:5/8; }
#gallery-basketball .gm-item:nth-child(6)  { grid-column:1/4;   grid-row:6/9; }
#gallery-basketball .gm-item:nth-child(7)  { grid-column:4/7;   grid-row:6/10;}
#gallery-basketball .gm-item:nth-child(8)  { grid-column:7/10;  grid-row:7/11;}
#gallery-basketball .gm-item:nth-child(9)  { grid-column:10/13; grid-row:8/11;}
#gallery-basketball .gm-item:nth-child(10) { grid-column:1/5;   grid-row:9/12;}
#gallery-basketball .gm-item:nth-child(11) { grid-column:5/8;   grid-row:10/13;}
#gallery-basketball .gm-item:nth-child(12) { grid-column:8/13;  grid-row:11/14;}

/* LAX mosaic */
#gallery-lax .gm-item:nth-child(1)  { grid-column:1/5;   grid-row:1/5; }
#gallery-lax .gm-item:nth-child(2)  { grid-column:5/9;   grid-row:1/3; }
#gallery-lax .gm-item:nth-child(3)  { grid-column:9/13;  grid-row:1/4; }
#gallery-lax .gm-item:nth-child(4)  { grid-column:5/8;   grid-row:3/6; }
#gallery-lax .gm-item:nth-child(5)  { grid-column:8/13;  grid-row:4/7; }
#gallery-lax .gm-item:nth-child(6)  { grid-column:1/5;   grid-row:5/8; }
#gallery-lax .gm-item:nth-child(7)  { grid-column:5/9;   grid-row:6/9; }
#gallery-lax .gm-item:nth-child(8)  { grid-column:9/13;  grid-row:7/11;}
#gallery-lax .gm-item:nth-child(9)  { grid-column:1/6;   grid-row:8/12;}
#gallery-lax .gm-item:nth-child(10) { grid-column:6/9;   grid-row:9/12;}
#gallery-lax .gm-item:nth-child(11) { grid-column:9/13;  grid-row:11/14;}
#gallery-lax .gm-item:nth-child(12) { grid-column:1/6;   grid-row:12/15;}
#gallery-lax .gm-item:nth-child(13) { grid-column:6/13;  grid-row:12/15;}

/* WRESTLING mosaic */
#gallery-wrestling .gm-item:nth-child(1)  { grid-column:1/7;   grid-row:1/6; }
#gallery-wrestling .gm-item:nth-child(2)  { grid-column:7/10;  grid-row:1/4; }
#gallery-wrestling .gm-item:nth-child(3)  { grid-column:10/13; grid-row:1/3; }
#gallery-wrestling .gm-item:nth-child(4)  { grid-column:7/13;  grid-row:4/7; }
#gallery-wrestling .gm-item:nth-child(5)  { grid-column:1/4;   grid-row:6/9; }
#gallery-wrestling .gm-item:nth-child(6)  { grid-column:4/8;   grid-row:6/10;}
#gallery-wrestling .gm-item:nth-child(7)  { grid-column:8/13;  grid-row:7/10;}
#gallery-wrestling .gm-item:nth-child(8)  { grid-column:1/5;   grid-row:9/12;}
#gallery-wrestling .gm-item:nth-child(9)  { grid-column:5/9;   grid-row:10/13;}
#gallery-wrestling .gm-item:nth-child(10) { grid-column:9/13;  grid-row:10/13;}

/* FEATURED full-frame previews */
#gallery-featured.gallery-mosaic {
  display: block;
  columns: 260px 3;
  column-gap: 7px;
}
#gallery-featured .gm-item {
  display: inline-block;
  width: 100%;
  margin: 0 0 7px;
  break-inside: avoid;
  background: #f5faf7;
  border: 1px solid rgba(45,113,80,.12);
}
#gallery-featured .gm-item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
#gallery-featured .gm-item:hover img {
  transform: none;
  filter: contrast(1.08) saturate(1.02);
}

#gallery-featured .gm-item img[src*="featured-artist-cutout"],
#gallery-featured .gallery-hero-bg[src*="featured-artist-cutout"] {
  object-position: 50% 50%;
}

/* 35MM FILM mosaic */
#gallery-film-mosaic .gm-item:nth-child(1)  { grid-column:1/5;   grid-row:1/5; }
#gallery-film-mosaic .gm-item:nth-child(2)  { grid-column:5/9;   grid-row:1/4; }
#gallery-film-mosaic .gm-item:nth-child(3)  { grid-column:9/13;  grid-row:1/5; }
#gallery-film-mosaic .gm-item:nth-child(4)  { grid-column:1/4;   grid-row:5/8; }
#gallery-film-mosaic .gm-item:nth-child(5)  { grid-column:4/8;   grid-row:4/8; }
#gallery-film-mosaic .gm-item:nth-child(6)  { grid-column:8/13;  grid-row:5/8; }
#gallery-film-mosaic .gm-item:nth-child(7)  { grid-column:1/6;   grid-row:8/12; }
#gallery-film-mosaic .gm-item:nth-child(8)  { grid-column:6/9;   grid-row:8/11; }
#gallery-film-mosaic .gm-item:nth-child(9)  { grid-column:9/13;  grid-row:8/12; }
#gallery-film-mosaic .gm-item:nth-child(10) { grid-column:1/4;   grid-row:12/15;}
#gallery-film-mosaic .gm-item:nth-child(11) { grid-column:4/7;   grid-row:12/15;}
#gallery-film-mosaic .gm-item:nth-child(12) { grid-column:7/13;  grid-row:12/15;}
#gallery-film-mosaic .gm-item:nth-child(13) { grid-column:1/5;   grid-row:15/18;}
#gallery-film-mosaic .gm-item:nth-child(14) { grid-column:5/9;   grid-row:15/18;}
#gallery-film-mosaic .gm-item:nth-child(15) { grid-column:9/11;  grid-row:15/18;}
#gallery-film-mosaic .gm-item:nth-child(16) { grid-column:11/13; grid-row:15/18;}

#gallery-film-maine-mosaic .gm-item:nth-child(1)  { grid-column:1/5;   grid-row:1/5; }
#gallery-film-maine-mosaic .gm-item:nth-child(2)  { grid-column:5/9;   grid-row:1/5; }
#gallery-film-maine-mosaic .gm-item:nth-child(3)  { grid-column:9/13;  grid-row:1/5; }
#gallery-film-maine-mosaic .gm-item:nth-child(4)  { grid-column:1/7;   grid-row:5/8; }
#gallery-film-maine-mosaic .gm-item:nth-child(5)  { grid-column:7/13;  grid-row:5/8; }
#gallery-film-maine-mosaic .gm-item:nth-child(6)  { grid-column:1/5;   grid-row:8/12; }
#gallery-film-maine-mosaic .gm-item:nth-child(7)  { grid-column:5/13;  grid-row:8/11; }
#gallery-film-maine-mosaic .gm-item:nth-child(8)  { grid-column:1/7;   grid-row:12/15;}
#gallery-film-maine-mosaic .gm-item:nth-child(9)  { grid-column:7/13;  grid-row:11/15;}
#gallery-film-maine-mosaic .gm-item:nth-child(10) { grid-column:1/7;   grid-row:15/18;}
#gallery-film-maine-mosaic .gm-item:nth-child(11) { grid-column:7/13;  grid-row:15/18;}
#gallery-film-maine-mosaic .gm-item:nth-child(12) { grid-column:1/5;   grid-row:18/22;}
#gallery-film-maine-mosaic .gm-item:nth-child(13) { grid-column:5/9;   grid-row:18/22;}
#gallery-film-maine-mosaic .gm-item:nth-child(14) { grid-column:9/13;  grid-row:18/22;}

#gallery-film-philly-mosaic .gm-item:nth-child(1) { grid-column:1/5;   grid-row:1/5; }
#gallery-film-philly-mosaic .gm-item:nth-child(2) { grid-column:5/9;   grid-row:1/5; }
#gallery-film-philly-mosaic .gm-item:nth-child(3) { grid-column:9/13;  grid-row:1/5; }
#gallery-film-philly-mosaic .gm-item:nth-child(4) { grid-column:1/7;   grid-row:5/9; }
#gallery-film-philly-mosaic .gm-item:nth-child(5) { grid-column:7/10;  grid-row:5/13;}
#gallery-film-philly-mosaic .gm-item:nth-child(6) { grid-column:10/13; grid-row:5/13;}
#gallery-film-philly-mosaic .gm-item:nth-child(7) { grid-column:1/7;   grid-row:9/13;}
#gallery-film-philly-mosaic .gm-item img[src*="city-hall-tower"] { object-position: 50% 18%; }
#gallery-film-philly-mosaic .gm-item img[src*="divine-lorraine"] { object-position: 50% 18%; }

.gallery-intro {
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-style: italic;
  line-height: 1.6;
  color: var(--muted);
  max-width: 760px;
  margin: 0 auto 1.4rem;
  text-align: center;
}
.gallery-tags {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem;
  margin: 0 auto 3rem;
}
.gallery-tag {
  font-family: var(--ui); font-size: .62rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
  border: 1px solid var(--faint); border-radius: 999px;
  padding: .55rem .75rem; background: rgba(255,255,255,.55);
}

/* LANDSCAPE & NATURE mosaic */
.section-card[data-cat="landscape"] .section-card-title { font-size: clamp(1.75rem, 2.9vw, 3.05rem); }
#gallery-landscape .gallery-hero-title { font-size: clamp(3.2rem, 7vw, 7.6rem); }
#gallery-landscape-grid .gm-item:nth-child(1)  { grid-column:1/7;   grid-row:1/5; }
#gallery-landscape-grid .gm-item:nth-child(2)  { grid-column:7/13;  grid-row:1/5; }
#gallery-landscape-grid .gm-item:nth-child(3)  { grid-column:1/5;   grid-row:5/10; }
#gallery-landscape-grid .gm-item:nth-child(4)  { grid-column:5/9;   grid-row:5/10; }
#gallery-landscape-grid .gm-item:nth-child(5)  { grid-column:9/13;  grid-row:5/10; }
#gallery-landscape-grid .gm-item:nth-child(6)  { grid-column:1/7;   grid-row:10/14; }
#gallery-landscape-grid .gm-item:nth-child(7)  { grid-column:7/10;  grid-row:10/13; }
#gallery-landscape-grid .gm-item:nth-child(8)  { grid-column:10/13; grid-row:10/13; }
#gallery-landscape-grid .gm-item:nth-child(9)  { grid-column:1/5;   grid-row:14/18; }
#gallery-landscape-grid .gm-item:nth-child(10) { grid-column:5/13;  grid-row:14/18; }

/* ── Photo upload prompt placeholder ── */
.placeholder-photo {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--faint) 0%, #e4f0ea 100%);
  gap: .5rem;
}
.placeholder-photo-icon {
  font-size: 1.8rem; opacity: .3;
}
.placeholder-photo-text {
  font-family: var(--ui); font-size: .5rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--muted); opacity: .5;
}

/* ── Gallery upload instructions ── */
.gallery-upload-tip {
  display: flex; align-items: flex-start; gap: 1.2rem;
  background: var(--accent-light); border-left: 3px solid var(--accent);
  padding: 1.2rem 1.5rem; margin-bottom: 3rem;
  border-radius: 0 2px 2px 0;
}
.gallery-upload-tip p {
  font-family: var(--ui); font-size: .7rem; font-weight: 500;
  letter-spacing: .05em; color: var(--accent); line-height: 1.7;
}
.gallery-upload-tip strong { font-weight: 700; }

/* ── Lightbox ── */
.lightbox {
  display: none; position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,.95);
  align-items: center; justify-content: center;
  cursor: none;
}
.lightbox.open { display: flex; }
.lightbox-img {
  max-width: 90vw; max-height: 88vh;
  object-fit: contain; border: 1px solid rgba(255,255,255,.08);
}
.lightbox-close {
  position: absolute; top: 2rem; right: 2rem;
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .25em; text-transform: uppercase;
  color: rgba(255,255,255,.4); cursor: none; transition: color .2s;
  background: none; border: none; padding: 0;
}
.lightbox-close:hover { color: #fff; }
.lightbox-prev, .lightbox-next {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  font-family: var(--display); font-size: 2.5rem;
  color: rgba(255,255,255,.3); cursor: none;
  background: none; border: none; padding: 1rem;
  transition: color .2s;
}
.lightbox-prev { left: 1.5rem; }
.lightbox-next { right: 1.5rem; }
.lightbox-prev:hover, .lightbox-next:hover { color: #fff; }

/* ═══════════════════════════════
   VALUE SECTION
═══════════════════════════════ */
.value-wrap { background: var(--ink); color: var(--white); }
.value-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 6rem; align-items: start;
}
.value-left .sec-label { color: var(--accent-bright); }
.value-left .sec-label::after { background: var(--accent-bright); }
.value-heading {
  font-family: var(--display);
  font-size: clamp(3.5rem, 5.5vw, 6.5rem);
  line-height: .9; letter-spacing: .02em;
  margin-bottom: 2rem; color: var(--white);
}
.value-heading em {
  font-family: var(--serif); font-style: italic;
  font-weight: 300; font-size: .8em; color: var(--accent-bright);
}
.value-body {
  font-family: var(--serif); font-size: 1.1rem; font-style: italic;
  line-height: 1.85; color: rgba(255,255,255,.6);
  margin-bottom: 1.5rem;
}
.metrics-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1px; margin-top: 4rem;
  border: 1px solid rgba(255,255,255,.08);
}
.metric {
  padding: 2rem;
  border: 1px solid rgba(255,255,255,.08);
  transition: background .25s; cursor: none;
}
.metric:hover { background: rgba(255,255,255,.04); }
.metric-num {
  font-family: var(--display);
  font-size: 3.5rem; line-height: 1;
  color: var(--accent-bright); margin-bottom: .4rem;
}
.metric-label {
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.38); margin-bottom: .5rem;
}
.metric-desc {
  font-family: var(--serif); font-size: .9rem; font-style: italic;
  color: rgba(255,255,255,.45); line-height: 1.5;
}
.value-right { padding-top: 2rem; }
.exp-list { display: flex; flex-direction: column; gap: 0; }
.exp-item {
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.exp-item:first-child { border-top: 1px solid rgba(255,255,255,.08); }
.exp-item.with-logos {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 176px;
  gap: 1.35rem;
  align-items: center;
}
.exp-logo-stack {
  display: flex;
  flex-direction: column;
  gap: .9rem;
  align-items: flex-end;
}
.exp-logo-card {
  width: 176px;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .75rem;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.055);
  border-radius: 8px;
}
.exp-logo-card.light {
  background: rgba(255,255,255,.9);
}
.exp-logo-card img {
  display: block;
  max-width: 100%;
  max-height: 42px;
  object-fit: contain;
}
.exp-logo-card.logo-wide img { max-height: 32px; }
.exp-logo-card.logo-extra-wide img { max-height: 28px; }
.exp-logo-card.logo-mark img { max-height: 50px; }
.exp-role {
  font-family: var(--display);
  font-size: 1.4rem; letter-spacing: .06em;
  color: var(--white); margin-bottom: .3rem;
}
.exp-place {
  font-family: var(--serif); font-style: italic;
  font-size: .95rem; color: var(--accent-bright); margin-bottom: .6rem;
}
.exp-date {
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.28); margin-bottom: .8rem;
}
.exp-detail {
  font-family: var(--ui); font-size: .78rem;
  color: rgba(255,255,255,.45); line-height: 1.7;
}

/* ═══════════════════════════════
   CASE STUDIES + SERVICES
═══════════════════════════════ */
.case-wrap { background: var(--paper); }
.case-header,
.services-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 2rem; margin-bottom: 3rem; padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--faint);
}
.case-intro,
.services-intro {
  font-family: var(--serif); font-size: 1.08rem; font-style: italic;
  color: var(--muted); max-width: 520px; line-height: 1.7;
}
.featured-results {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 1px; margin: 0 0 4rem;
  border: 1px solid var(--faint); background: var(--faint);
}
.results-label {
  font-family: var(--ui); font-size: .58rem; font-weight: 800;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent); margin: 0 0 1rem;
}
.result-item {
  background: rgba(255,255,255,.62);
  padding: 1.25rem;
}
.result-num {
  font-family: var(--display);
  font-size: 1.8rem; letter-spacing: .04em;
  color: var(--accent); line-height: 1;
  margin-bottom: .35rem;
}
.result-label {
  font-family: var(--ui); font-size: .52rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted); line-height: 1.5;
}
.case-list { display: flex; flex-direction: column; gap: 0; }
.case-card {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(330px, .95fr);
  gap: 3rem; align-items: center;
  padding: 3rem 0;
  border-top: 1px solid var(--faint);
}
.case-card:last-child { border-bottom: 1px solid var(--faint); }
.case-num {
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1rem;
}
.case-title {
  font-family: var(--display);
  font-size: clamp(2.7rem, 4.8vw, 5.8rem);
  line-height: .9; letter-spacing: .02em;
  color: var(--ink); margin-bottom: .7rem;
}
.case-category {
  font-family: var(--ui); font-size: .58rem; font-weight: 700;
  letter-spacing: .17em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.35rem;
}
.case-overview {
  font-family: var(--serif); font-style: italic;
  font-size: 1rem; line-height: 1.75;
  color: var(--muted); margin-bottom: 1.5rem;
}
.case-info {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1px; border: 1px solid var(--faint);
  background: var(--faint);
}
.case-info-item {
  background: rgba(255,255,255,.56);
  padding: 1rem;
}
.case-info-item.wide { grid-column: 1 / -1; }
.case-info-label {
  font-family: var(--ui); font-size: .52rem; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .45rem;
}
.case-info-value {
  font-family: var(--ui); font-size: .72rem;
  color: var(--muted); line-height: 1.55;
}
.case-media {
  display: grid; grid-template-columns: 1.1fr .9fr;
  grid-template-rows: 180px 180px;
  gap: 5px; min-height: 365px;
}
.case-media img {
  width: 100%; height: 100%; object-fit: cover;
  filter: contrast(1.04) saturate(.9);
}
.case-media img:first-child { grid-row: 1/3; }
.case-media img:nth-child(3) { object-position: 50% 25%; }
.case-media.cb-case-media {
  grid-template-columns: 1.08fr .46fr .46fr;
}
.case-media.cb-case-media img:nth-child(2) {
  grid-column: 2/4;
}
.case-media.cb-case-media img:nth-child(3) {
  grid-column: 2/4;
  object-fit: contain;
  object-position: center;
  background: rgba(255,255,255,.7);
}
.case-media.two-up {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 365px;
}
.case-media.two-up img:first-child { grid-row: auto; }
.case-media-stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 5px;
  min-height: 0;
}
.case-media.three-equal {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 365px;
}
.case-media.three-equal img:first-child { grid-row: auto; }
.case-media.three-equal img { object-position: center; }
.case-media.fith-case-media {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 175px 185px;
}
.case-media.fith-case-media img:first-child {
  grid-column: 1/2;
  grid-row: 2/3;
}
.case-media.fith-case-media img:nth-child(2) {
  grid-column: 2/3;
  grid-row: 2/3;
  object-position: center;
}
.case-media.fith-case-media img:nth-child(3) {
  grid-column: 1/3;
  grid-row: 1/2;
  object-position: 50% 48%;
}
.services-wrap { background: var(--white); }
.services-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; border: 1px solid var(--faint);
  background: var(--faint);
}
.service-card {
  background: var(--white);
  padding: 2.2rem;
  min-height: 270px;
  display: flex; flex-direction: column;
}
.service-num {
  font-family: var(--ui); font-size: .55rem; font-weight: 800;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.7rem;
}
.service-title {
  font-family: var(--display); font-size: 2.6rem;
  letter-spacing: .04em; line-height: .9;
  margin-bottom: 1.2rem; color: var(--ink);
}
.service-copy {
  font-family: var(--serif); font-size: 1rem; font-style: italic;
  color: var(--muted); line-height: 1.75;
}
.interest-wrap { background: var(--paper); }
.interest-collapsible {
  padding-top: 5rem;
}
.interest-disclosure {
  border-top: 1px solid var(--faint);
}
.interest-toggle {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--faint);
  cursor: none;
  transition: color .2s, border-color .2s;
}
.interest-toggle::-webkit-details-marker { display: none; }
.interest-toggle-meta {
  display: block;
  font-family: var(--ui);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: .55rem;
}
.interest-toggle-title {
  display: block;
  font-family: var(--display);
  font-size: clamp(2.8rem, 5vw, 5.8rem);
  line-height: .88;
  letter-spacing: .03em;
  color: var(--ink);
}
.interest-toggle-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  color: var(--accent);
}
.interest-toggle-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  padding: .78rem 1rem;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-family: var(--ui);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: background .2s, color .2s;
}
.interest-toggle:hover .interest-toggle-action,
.interest-disclosure[open] .interest-toggle-action {
  background: var(--accent);
  color: var(--white);
}
.interest-toggle-close { display: none; }
.interest-disclosure[open] .interest-toggle-open { display: none; }
.interest-disclosure[open] .interest-toggle-close { display: inline; }
.interest-panel {
  padding-top: 4rem;
}
.interest-inner {
  display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  gap: 3rem; align-items: start;
}
.interest-left { padding-top: 3.25rem; }
.interest-kicker {
  font-family: var(--ui); font-size: .58rem; font-weight: 800;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1rem;
}
.interest-title {
  font-family: var(--display);
  font-size: clamp(3.5rem, 6vw, 7rem);
  line-height: .9; letter-spacing: .02em;
  color: var(--ink);
}
.interest-title em {
  display: block;
  font-family: var(--serif); font-style: italic; font-weight: 300;
  font-size: .72em; color: var(--accent);
}
.interest-visuals {
  display: grid; gap: .7rem;
  margin-top: 2.2rem;
}
.interest-visual-card {
  border: 1px solid var(--faint);
  background: rgba(255,255,255,.5);
  padding: .8rem;
  overflow: hidden;
}
.interest-visual-card svg {
  display: block;
  width: 100%; height: auto;
}
.interest-visual-card img {
  display: block;
  width: 100%; height: auto;
}
.interest-visual-label {
  font-family: var(--ui); font-size: .5rem; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-top: .65rem;
}
.interest-intro {
  font-family: var(--serif); font-size: 1.1rem; font-style: italic;
  color: var(--muted); line-height: 1.75;
  margin-bottom: 1.6rem;
}
.interest-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; border: 1px solid var(--faint);
  background: var(--faint); margin-bottom: 2rem;
}
.interest-card {
  background: rgba(255,255,255,.58);
  padding: 1.45rem;
  min-height: 190px;
}
.interest-card-title {
  font-family: var(--display); font-size: 1.85rem;
  line-height: .95; letter-spacing: .04em;
  color: var(--ink); margin-bottom: 1rem;
}
.interest-card-copy,
.looking-copy {
  font-family: var(--serif); font-size: .98rem; font-style: italic;
  color: var(--muted); line-height: 1.7;
}
.looking-block {
  border: 1px solid var(--faint);
  background: rgba(255,255,255,.5);
  padding: 1.55rem;
}
.looking-title {
  font-family: var(--display); font-size: 2.1rem;
  letter-spacing: .05em; color: var(--ink);
  margin-bottom: .8rem;
}
.support-list {
  display: flex; flex-wrap: wrap; gap: .45rem;
  margin-top: 1.3rem;
}
.support-pill {
  font-family: var(--ui); font-size: .52rem; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
  border: 1px solid var(--faint);
  background: var(--white);
  padding: .42rem .68rem;
}

/* ═══════════════════════════════
   ABOUT SECTION
═══════════════════════════════ */
.about-wrap { background: var(--paper); padding: 3.75rem 0 3.5rem; }
.about-inner {
  display: grid; grid-template-columns: 205px minmax(0, 1fr) minmax(300px, .65fr);
  gap: 1.75rem; align-items: start;
  padding-top: 1.6rem;
}
.about-left {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: .35rem;
}
.about-left .sec-label,
.about-left .sec-heading { width: 100%; }
.about-left .sec-heading {
  font-size: clamp(2.55rem, 3.7vw, 4.25rem);
  margin-bottom: 1.35rem;
}
.about-left .sec-heading em { font-size: .68em; }
.about-copy {
  grid-column: 2;
  padding-top: .35rem;
}
.about-right { grid-column: 3; }
.about-right-img {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 4px;
}
.a-img { overflow: hidden; background: var(--faint); }
.a-img:nth-child(1) { grid-column: 1/3; height: 225px; }
.a-img:nth-child(2),
.a-img:nth-child(3) { height: 140px; }
.a-img img { width:100%; height:100%; object-fit:cover; transition: transform .5s; filter: contrast(1.04); }
.a-img:nth-child(1) img { object-position: 50% 55%; }
.a-img:nth-child(2) img { object-position: 48% 36%; }
.a-img:nth-child(3) img { object-position: 50% 34%; }
.a-img:hover img { transform: scale(1.06); }
.background-tags {
  display: flex; flex-wrap: wrap; gap: .42rem; margin: .2rem 0 0;
}
.tag {
  font-family: var(--ui); font-size: .5rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  padding: .32rem .58rem;
  border: 1px solid var(--faint);
  color: var(--muted);
}
.tag.accent { border-color: var(--accent-light); color: var(--accent); background: var(--accent-light); }
.edu-block { margin-top: 1.25rem; }
.edu-item {
  display: grid; grid-template-columns: auto minmax(0, 1fr) 108px;
  gap: .9rem; align-items: center;
  padding: .78rem 0;
  border-bottom: 1px solid var(--faint);
}
.edu-item:first-child { border-top: 1px solid var(--faint); }
.edu-year {
  font-family: var(--display);
  font-size: 1.1rem; letter-spacing: .05em;
  color: var(--accent); white-space: nowrap; padding-top: .15rem;
}
.edu-name {
  font-family: var(--display);
  font-size: .96rem; letter-spacing: .06em;
  color: var(--ink); margin-bottom: .2rem;
}
.edu-deg {
  font-family: var(--serif); font-style: italic;
  font-size: .82rem; color: var(--muted);
}
.edu-note {
  font-family: var(--ui); font-size: .54rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-top: .35rem;
}
.edu-logo-card {
  width: 108px;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  padding: .75rem;
  border: 1px solid var(--faint);
  background: rgba(255,255,255,.62);
  border-radius: 8px;
}
.edu-logo-card img {
  display: block;
  max-width: 100%;
  max-height: 44px;
  object-fit: contain;
}
.edu-logo-card.logo-wide img { max-height: 31px; }
.edu-logo-card.logo-tall img { max-height: 46px; }
.about-body {
  font-family: var(--serif); font-size: .98rem; font-style: italic;
  line-height: 1.52; color: var(--muted); margin-bottom: .7rem;
}
.about-portfolio {
  margin: 0 0 2.5rem;
  padding: 1.5rem 0;
  border-top: 1px solid var(--faint);
  border-bottom: 1px solid var(--faint);
}
.about-portfolio-title {
  font-family: var(--display);
  font-size: 1.05rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: .3rem;
}
.about-portfolio-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: .95rem;
  color: var(--accent);
  margin-bottom: 1.1rem;
}
.about-collection-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.about-collection-list span {
  font-family: var(--ui);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--faint);
  padding: .38rem .75rem;
}

/* ═══════════════════════════════
   CONTACT SECTION
═══════════════════════════════ */
.contact-wrap { background: var(--white); }
.contact-inner {
  display: grid; grid-template-columns: 1.2fr 1fr;
  gap: 5rem; align-items: center;
}
.contact-big {
  font-family: var(--display);
  font-size: clamp(4rem, 8vw, 9rem);
  line-height: .85; letter-spacing: .02em;
  margin-bottom: 2rem;
}
.contact-big em {
  font-family: var(--serif); font-style: italic;
  font-weight: 300; font-size: .7em; color: var(--accent);
  display: block;
}
.contact-sub {
  font-family: var(--serif); font-style: italic;
  font-size: 1rem; color: var(--muted);
  line-height: 1.8; max-width: 380px; margin-bottom: 2.5rem;
}
.contact-email {
  font-family: var(--display);
  font-size: 1.6rem; letter-spacing: .06em;
  color: var(--ink); text-decoration: none;
  border-bottom: 2px solid var(--ink);
  padding-bottom: .2rem;
  display: inline-block; transition: color .2s, border-color .2s; cursor: none;
}
.contact-email:hover { color: var(--accent); border-color: var(--accent); }
.social-row {
  display: flex; gap: 2rem; margin-top: 2rem;
}
.contact-actions {
  display: flex; margin-top: 2rem;
}
.soc {
  font-family: var(--ui); font-size: .6rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted); text-decoration: none; transition: color .2s; cursor: none;
}
.soc:hover { color: var(--ink); }
.contact-right-block {
  background: var(--ink); padding: 3rem;
}
.contact-right-block p {
  font-family: var(--serif); font-size: 1rem; font-style: italic;
  color: rgba(255,255,255,.5); line-height: 1.85;
  margin-bottom: 2rem;
}
.contact-right-block .sec-label { color: var(--accent-bright); margin-bottom: 1.5rem; }
.contact-right-block .sec-label::after { background: var(--accent-bright); }
.contact-detail-item {
  display: flex; gap: 1rem; align-items: flex-start;
  padding: 1.2rem 0; border-bottom: 1px solid rgba(255,255,255,.08);
}
.contact-detail-item:first-of-type { border-top: 1px solid rgba(255,255,255,.08); }
.contact-detail-label {
  font-family: var(--ui); font-size: .55rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.28); min-width: 80px; padding-top: .1rem;
}
.contact-detail-val {
  font-family: var(--ui); font-size: .72rem; font-weight: 500;
  color: rgba(255,255,255,.65); line-height: 1.5;
}

/* FOOTER */
footer {
  background: var(--ink); color: rgba(255,255,255,.25);
  display: flex; align-items: center; justify-content: space-between;
  padding: 2.2rem 3.5rem;
  font-family: var(--ui); font-size: .58rem;
  font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
}
.foot-logo {
  font-family: var(--display); font-size: 1.1rem;
  letter-spacing: .12em; color: rgba(255,255,255,.55);
}

/* Reveal animation */
.r { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
.r.vis { opacity: 1; transform: translateY(0); }

/* RESPONSIVE */
@media(max-width:900px){
  nav { padding: 1.4rem 1.5rem; }
  .nav-links {
    max-width: calc(100vw - 8.5rem);
    overflow-x: auto;
    gap: 1.35rem;
    padding-bottom: .25rem;
    scrollbar-width: none;
  }
  .nav-links::-webkit-scrollbar { display: none; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-left { padding: 8rem 1.5rem 3rem; }
  .hero-right { height: 55vw; margin-left: 0; width: 100%; }
  .wrap { padding: 0 1.5rem; }
  section { padding: 5rem 0; }
  .section-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; }
  .section-card[data-cat="featured"] { grid-column: 1/3; grid-row: 1; aspect-ratio: 16/7; }
  .section-card[data-cat="brand"] { grid-column: 1/2; grid-row: 2; aspect-ratio: auto; min-height: 200px; }
  .section-card[data-cat="basketball"] { grid-column: 2/3; grid-row: 2; }
  .section-card[data-cat="lax"] { grid-column: 1/3; grid-row: 3; aspect-ratio: auto; min-height: 200px; }
  .section-card[data-cat="wrestling"] { grid-column: 1/2; grid-row: 4; }
  .section-card[data-cat="film"] { grid-column: 2/3; grid-row: 4; }
  .section-card[data-cat="landscape"] { grid-column: 1/2; grid-row: 5; }
  .section-card[data-cat="graphic"] { grid-column: 2/3; grid-row: 5; aspect-ratio: auto; min-height: 200px; }
  .exp-item.with-logos {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .exp-logo-stack {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
  }
  .edu-item {
    grid-template-columns: auto 1fr;
  }
  .edu-logo-card {
    grid-column: 2;
    justify-self: start;
    width: 150px;
    margin-top: .3rem;
  }
  .gallery-body { padding: 2rem 1.5rem 5rem; }
  .gallery-hero-content { padding: 2rem 1.5rem 2.5rem; }
  .gallery-mosaic { grid-template-columns: repeat(6,1fr); grid-auto-rows: 80px; }
  .case-header,
  .services-header { display: block; }
  .case-intro,
  .services-intro { margin-top: 1.5rem; }
  .featured-results { grid-template-columns: 1fr 1fr; }
  .case-card { grid-template-columns: 1fr; gap: 1.8rem; padding: 2.4rem 0; }
  .case-info { grid-template-columns: 1fr; }
  .case-media { grid-template-rows: 210px 150px; min-height: auto; }
  .case-media.cb-case-media {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 220px 150px 170px;
  }
  .case-media.cb-case-media img:first-child {
    grid-column: 1/3;
    grid-row: 1/2;
  }
  .case-media.cb-case-media img:nth-child(2) {
    grid-column: 1/3;
    grid-row: 2/3;
  }
  .case-media.cb-case-media img:nth-child(3) {
    grid-column: 1/3;
    grid-row: 3/4;
  }
  .case-media.two-up { grid-template-columns: 1fr; grid-template-rows: 210px 320px; }
  .case-media.three-equal { grid-template-columns: 1fr; grid-template-rows: repeat(3, 240px); }
  .case-media.fith-case-media {
    grid-template-columns: 1fr;
    grid-template-rows: 190px 220px 220px;
  }
  .case-media.fith-case-media img:first-child,
  .case-media.fith-case-media img:nth-child(2),
  .case-media.fith-case-media img:nth-child(3) {
    grid-column: 1/2;
  }
  .case-media.fith-case-media img:nth-child(3) { grid-row: 1/2; }
  .case-media.fith-case-media img:first-child { grid-row: 2/3; }
  .case-media.fith-case-media img:nth-child(2) { grid-row: 3/4; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; padding: 1.8rem; }
  .interest-inner { grid-template-columns: 1fr; gap: 2rem; }
  .interest-left { padding-top: 0; }
  .interest-toggle {
    align-items: flex-start;
    flex-direction: column;
    gap: 1.25rem;
  }
  .interest-toggle-action {
    min-width: 0;
  }
  .interest-panel {
    padding-top: 3rem;
  }
  .interest-visuals { grid-template-columns: 1fr 1fr; }
  .interest-grid { grid-template-columns: 1fr; }
  .interest-card { min-height: auto; }
  .value-inner, .about-inner, .contact-inner { grid-template-columns: 1fr; gap: 3rem; }
  .about-left,
  .about-copy,
  .about-right { grid-column: 1; }
  .about-left { display: block; }
  .background-tags { max-width: 520px; margin-top: 1rem; }
  .about-wrap { padding: 5rem 0; }
  .metrics-grid { grid-template-columns: 1fr 1fr; }
  footer { flex-direction: column; gap: 1rem; text-align: center; }
}

@media(max-width:520px){
  .interest-visuals { grid-template-columns: 1fr; }
}

/* BRAND mosaic */
#gallery-brand-mosaic .gm-item:nth-child(1) { grid-column:1/7;  grid-row:1/6; }
#gallery-brand-mosaic .gm-item:nth-child(2) { grid-column:7/13; grid-row:1/5; }
#gallery-brand-mosaic .gm-item:nth-child(3) { grid-column:7/10; grid-row:5/8; }
#gallery-brand-mosaic .gm-item:nth-child(4) { grid-column:10/13;grid-row:5/8; }
#gallery-brand-mosaic .gm-item:nth-child(5) { grid-column:1/4;  grid-row:6/9; }
#gallery-brand-mosaic .gm-item:nth-child(6) { grid-column:4/8;  grid-row:6/10;}
#gallery-brand-mosaic .gm-item:nth-child(7) { grid-column:8/13; grid-row:8/11;}
#gallery-brand-mosaic .gm-item:nth-child(8) { grid-column:1/5;  grid-row:9/12;}
#gallery-brand-mosaic .gm-item:nth-child(9) { grid-column:5/8;  grid-row:10/13;}

#gallery-latri-mosaic .gm-item:nth-child(1)  { grid-column:1/5;   grid-row:1/7; }
#gallery-latri-mosaic .gm-item:nth-child(2)  { grid-column:5/9;   grid-row:1/7; }
#gallery-latri-mosaic .gm-item:nth-child(3)  { grid-column:9/13;  grid-row:1/7; }
#gallery-latri-mosaic .gm-item:nth-child(4)  { grid-column:1/7;   grid-row:7/11; }
#gallery-latri-mosaic .gm-item:nth-child(5)  { grid-column:7/13;  grid-row:7/11; }
#gallery-latri-mosaic .gm-item:nth-child(6)  { grid-column:1/7;   grid-row:11/15; }
#gallery-latri-mosaic .gm-item:nth-child(7)  { grid-column:7/10;  grid-row:11/17; }
#gallery-latri-mosaic .gm-item:nth-child(8)  { grid-column:10/13; grid-row:11/17; }
#gallery-latri-mosaic .gm-item:nth-child(9)  { grid-column:1/5;   grid-row:15/19; }
#gallery-latri-mosaic .gm-item:nth-child(10) { grid-column:5/9;   grid-row:17/21; }
#gallery-latri-mosaic .gm-item:nth-child(11) { grid-column:9/13;  grid-row:17/21; }
#gallery-latri-mosaic .gm-item:nth-child(12) { grid-column:1/7;   grid-row:21/25; }
#gallery-latri-mosaic .gm-item:nth-child(13) { grid-column:7/13;  grid-row:21/25; }

#gallery-fith-saint-mosaic .gm-item:nth-child(1)  { grid-column:1/7;   grid-row:1/5; }
#gallery-fith-saint-mosaic .gm-item:nth-child(2)  { grid-column:7/13;  grid-row:1/5; }
#gallery-fith-saint-mosaic .gm-item:nth-child(3)  { grid-column:1/5;   grid-row:5/9; }
#gallery-fith-saint-mosaic .gm-item:nth-child(4)  { grid-column:5/9;   grid-row:5/10; }
#gallery-fith-saint-mosaic .gm-item:nth-child(5)  { grid-column:9/13;  grid-row:5/10; }
#gallery-fith-saint-mosaic .gm-item:nth-child(6)  { grid-column:1/7;   grid-row:9/13; }
#gallery-fith-saint-mosaic .gm-item:nth-child(7)  { grid-column:7/13;  grid-row:10/13; }
#gallery-fith-saint-mosaic .gm-item:nth-child(8)  { grid-column:1/4;   grid-row:13/18; }
#gallery-fith-saint-mosaic .gm-item:nth-child(9)  { grid-column:4/8;   grid-row:13/18; }
#gallery-fith-saint-mosaic .gm-item:nth-child(10) { grid-column:8/13;  grid-row:13/18; }
#gallery-fith-saint-mosaic .gm-item:nth-child(11) { grid-column:1/5;   grid-row:18/23; }
#gallery-fith-saint-mosaic .gm-item:nth-child(12) { grid-column:5/13;  grid-row:18/22; }
#gallery-fith-saint-mosaic .gm-item:nth-child(13) { grid-column:1/5;   grid-row:23/28; }
#gallery-fith-saint-mosaic .gm-item:nth-child(14) { grid-column:5/9;   grid-row:22/28; }
#gallery-fith-saint-mosaic .gm-item:nth-child(15) { grid-column:9/13;  grid-row:22/28; }

@media(max-width:900px){
  #gallery-latri-mosaic,
  #gallery-fith-saint-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  #gallery-latri-mosaic .gm-item,
  #gallery-fith-saint-mosaic .gm-item {
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 260px;
  }
}

@media(max-width:520px){
  #gallery-latri-mosaic,
  #gallery-fith-saint-mosaic { grid-template-columns: 1fr; }
}

/* GRAPHIC mosaic */
#gallery-graphic-mosaic .gm-item:nth-child(1)  { grid-column:1/5;  grid-row:1/5; }
#gallery-graphic-mosaic .gm-item:nth-child(2)  { grid-column:5/9;  grid-row:1/4; }
#gallery-graphic-mosaic .gm-item:nth-child(3)  { grid-column:9/13; grid-row:1/4; }
#gallery-graphic-mosaic .gm-item:nth-child(4)  { grid-column:5/9;  grid-row:4/7; }
#gallery-graphic-mosaic .gm-item:nth-child(5)  { grid-column:9/13; grid-row:4/8; }
#gallery-graphic-mosaic .gm-item:nth-child(6)  { grid-column:1/5;  grid-row:5/8; }
#gallery-graphic-mosaic .gm-item:nth-child(7)  { grid-column:1/6;  grid-row:8/11;}
#gallery-graphic-mosaic .gm-item:nth-child(8)  { grid-column:6/9;  grid-row:7/10;}
#gallery-graphic-mosaic .gm-item:nth-child(9)  { grid-column:9/13; grid-row:8/11;}
#gallery-graphic-mosaic .gm-item:nth-child(10) { grid-column:6/13; grid-row:10/13;}

.headshot {
  position: fixed;
  top: 7.8rem;
  right: 3.5rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  border: 1.5px solid rgba(255,255,255,.18);
  z-index: 300;
  opacity: .72;
  transition: opacity .25s, transform .25s;
}
.headshot:hover { opacity: 1; transform: scale(1.06); }
