/* ─────────────────────────────────────────────────────────
   GT USA — visual system
   ───────────────────────────────────────────────────────── */

:root{
  --ink:        #0E1E2A;
  --ink-2:      #16293A;
  --ink-3:      #1F384C;
  --cream:      #F4EEE2;
  --cream-1:    #FAF6EE;
  --cream-2:    #EDE5D3;
  --gold:       #B08D57;
  --gold-2:     #C9A961;
  --rule:       #D8CCB4;
  --rule-soft:  rgba(14,30,42,.10);
  --text:       #16181C;
  --text-mute:  #6B6359;
  --shadow-1:   0 1px 0 rgba(14,30,42,.04), 0 8px 24px rgba(14,30,42,.06);
  --shadow-2:   0 30px 60px -20px rgba(14,30,42,.30);
  --maxw:       1320px;
  --gut:        clamp(20px, 4vw, 56px);
  --serif:      "Fraunces", "Times New Roman", serif;
  --sans:       "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --ease:       cubic-bezier(.2,.7,.2,1);
}

/* ─── reset ─── */
*,*::before,*::after{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  color:var(--text);
  background:var(--cream-1);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto }
a{ color:inherit; text-decoration:none }
button{ font:inherit; cursor:pointer; background:none; border:0; color:inherit }
::selection{ background:var(--ink); color:var(--cream-1) }

/* ─── type ─── */
.display{
  font-family:var(--serif);
  font-weight:400;
  font-variation-settings:"opsz" 144, "SOFT" 30;
  letter-spacing:-.022em;
  line-height:.96;
  margin:0;
  font-size:clamp(40px, 7vw, 92px);
}
.display em{
  font-style:italic;
  font-weight:300;
  color:var(--gold);
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:var(--sans);
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--text);
}
.eyebrow .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 3px rgba(176,141,87,.18);
}
.eyebrow-light{ color:var(--cream-1) }
.eyebrow-light .dot{ background:var(--gold-2); box-shadow:0 0 0 3px rgba(201,169,97,.22) }

/* ─── buttons ─── */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.65em;
  padding:14px 22px 13px;
  font-size:13.5px;
  font-weight:500;
  letter-spacing:.04em;
  border-radius:999px;
  transition:transform .35s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  white-space:nowrap;
  will-change:transform;
}
.btn .arrow{ transition:transform .4s var(--ease); display:inline-block }
.btn:hover .arrow{ transform:translateX(4px) }
.btn-gold{
  background:var(--gold);
  color:#1A1814;
  border:1px solid var(--gold);
}
.btn-gold:hover{ background:#a07e48; border-color:#a07e48 }
.btn-line-light{
  background:transparent;
  color:var(--cream-1);
  border:1px solid rgba(245,239,228,.4);
}
.btn-line-light:hover{ background:rgba(245,239,228,.08); border-color:rgba(245,239,228,.7) }
.btn-ink{
  background:var(--ink);
  color:var(--cream-1);
  border:1px solid var(--ink);
}
.btn-ink:hover{ background:#000 }
.btn-ghost{
  background:transparent;
  color:var(--cream-1);
  border:1px solid rgba(245,239,228,.35);
  padding:11px 18px 10px;
  font-size:12.5px;
}
.btn-ghost:hover{ background:rgba(245,239,228,.08) }
.nav.scrolled .btn-ghost{
  color:var(--ink);
  border-color:rgba(14,30,42,.25);
}
.nav.scrolled .btn-ghost:hover{ background:rgba(14,30,42,.05) }

/* ─── preloader ─── */
.preloader{
  position:fixed; inset:0;
  background:var(--ink);
  z-index:9999;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column;
  gap:32px;
  transition:opacity .8s var(--ease) .2s, visibility 0s linear 1s;
}
.preloader.done{ opacity:0; visibility:hidden }
.pl-mark{
  display:flex; align-items:center; gap:18px;
  color:var(--cream-1);
}
.pl-svg{ width:54px; height:54px }
.pl-word{
  font-family:var(--sans);
  font-size:22px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1;
}
.pl-bar{
  width:140px; height:1px;
  background:rgba(245,239,228,.18);
  overflow:hidden; position:relative;
}
.pl-bar i{
  position:absolute; left:0; top:0; bottom:0;
  width:0; background:var(--gold-2);
  animation:plFill 1.2s var(--ease) forwards;
}
@keyframes plFill{ from{ width:0 } to{ width:100% } }

/* ─── nav ─── */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  padding:18px 0;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(250,246,238,.86);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  padding:12px 0;
  border-bottom-color:var(--rule-soft);
}
.nav-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:32px;
}
.brand{
  display:inline-flex; align-items:center; gap:12px;
  color:var(--cream-1);
  transition:color .4s var(--ease);
}
.nav.scrolled .brand{ color:var(--ink) }
.brand-mark{
  width:32px; height:32px;
  display:block; flex-shrink:0;
  transition:width .4s var(--ease), height .4s var(--ease);
}
.nav.scrolled .brand-mark{ width:30px; height:30px }
.brand-word{
  font-family:var(--sans);
  font-size:15px;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1;
  text-transform:none;
  opacity:1;
}
.brand-foot .brand-mark{ width:38px; height:38px }
.brand-foot .brand-word{ font-size:17px }
.nav-links{
  display:flex; gap:34px;
  justify-content:center;
}
.nav-links a{
  font-size:13.5px;
  font-weight:400;
  letter-spacing:.02em;
  color:rgba(245,239,228,.85);
  position:relative;
  padding:6px 0;
  transition:color .25s var(--ease);
}
.nav-links a:hover{ color:var(--cream-1) }
.nav-links a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:1px;
  background:currentColor;
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav-links a:hover::after{ transform:scaleX(1) }
.nav.scrolled .nav-links a{ color:rgba(20,24,28,.72) }
.nav.scrolled .nav-links a:hover{ color:var(--ink) }
.nav-cta{ justify-self:end }

.nav-toggle{ display:none; width:40px; height:40px; flex-direction:column; gap:5px; align-items:center; justify-content:center }
.nav-toggle span{ width:22px; height:1.5px; background:var(--cream-1); transition:.3s var(--ease) }
.nav.scrolled .nav-toggle span{ background:var(--ink) }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0 }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }

.nav-mobile{
  position:fixed; top:0; right:0; bottom:0;
  width:min(82%, 380px);
  background:var(--ink);
  z-index:49;
  padding:96px 36px 36px;
  display:flex; flex-direction:column; gap:6px;
  transform:translateX(100%);
  transition:transform .5s var(--ease);
}
.nav-mobile.open{ transform:translateX(0) }
.nav-mobile a{
  font-family:var(--serif);
  color:var(--cream-1);
  font-size:24px;
  padding:14px 0;
  border-bottom:1px solid rgba(245,239,228,.12);
}
.nav-mobile a.m-cta{
  margin-top:24px;
  background:var(--gold);
  color:#1A1814;
  border:0;
  border-radius:999px;
  text-align:center;
  font-family:var(--sans);
  font-size:14px;
  letter-spacing:.04em;
  padding:14px 22px;
}

/* ─── reveal ─── */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s var(--ease) var(--d, 0s), transform .9s var(--ease) var(--d, 0s);
}
.reveal.in{ opacity:1; transform:none }

/* ─── HERO ─── */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:flex-end;
  padding:140px var(--gut) 96px;
  color:var(--cream-1);
  overflow:hidden;
  isolation:isolate;
}
.hero-img{
  position:absolute; inset:0;
  z-index:-2;
}
.hero-img img{
  width:100%; height:100%;
  object-fit:cover; object-position:center 38%;
  transform:scale(1.06);
  animation:heroDrift 14s var(--ease) forwards;
}
@keyframes heroDrift{ to{ transform:scale(1.0) } }
.hero-veil{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(14,30,42,.55) 0%, rgba(14,30,42,.25) 38%, rgba(14,30,42,.10) 56%, rgba(14,30,42,.78) 100%),
    linear-gradient(90deg, rgba(14,30,42,.45) 0%, rgba(14,30,42,0) 60%);
}
.hero-content{
  position:relative;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
}
.hero h1.display{
  margin-top:18px;
  max-width:13ch;
  font-size:clamp(48px, 9.2vw, 132px);
  letter-spacing:-.028em;
  line-height:.95;
  color:var(--cream-1);
}
.hero h1 em{ color:var(--cream-1); font-weight:300 }
.hero-lede{
  font-size:clamp(15px, 1.4vw, 18px);
  line-height:1.55;
  max-width:48ch;
  margin:24px 0 36px;
  color:rgba(245,239,228,.86);
}
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap }

.hero-meta{
  position:absolute;
  bottom:32px; left:0; right:0;
  padding:0 var(--gut);
  display:flex; justify-content:space-between; align-items:flex-end;
  font-size:11.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(245,239,228,.7);
  pointer-events:none;
}
.meta-num{
  font-family:var(--serif);
  font-size:14px;
  letter-spacing:.04em;
  text-transform:none;
  font-weight:400;
  color:var(--cream-1);
  margin-right:14px;
}
.meta-l, .meta-r{ display:flex; align-items:center; gap:14px }
.meta-line{
  width:64px; height:1px;
  background:rgba(245,239,228,.6);
  position:relative; overflow:hidden;
}
.meta-line::after{
  content:""; position:absolute; inset:0;
  background:var(--gold-2);
  animation:metaScroll 2.4s var(--ease) infinite;
}
@keyframes metaScroll{
  0%{ transform:translateX(-100%) } 60%{ transform:translateX(100%) } 100%{ transform:translateX(100%) }
}

/* ─── stats ─── */
.stats{
  background:var(--cream);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.stats-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:64px var(--gut);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:48px;
}
.stat{ position:relative; padding-left:24px }
.stat::before{
  content:""; position:absolute;
  left:0; top:6px; bottom:6px;
  width:1px; background:var(--gold);
}
.stat-num{
  font-family:var(--serif);
  font-size:clamp(40px, 5vw, 64px);
  font-weight:400;
  letter-spacing:-.02em;
  line-height:1;
  color:var(--ink);
}
.stat-num i{
  font-style:normal;
  color:var(--gold);
  font-weight:300;
  margin-left:.05em;
}
.stat-lbl{
  margin-top:14px;
  font-size:13.5px;
  line-height:1.5;
  color:var(--text);
}
.stat-lbl em{
  font-style:italic;
  color:var(--text-mute);
  font-family:var(--serif);
}

/* ─── story ─── */
.story{
  background:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.story-grid{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:center;
}
.story-text .display{ margin:18px 0 28px; max-width:11ch }
.story-text p{
  font-size:16.5px;
  line-height:1.7;
  margin:0 0 18px;
  color:#26262C;
  max-width:50ch;
}
.story-text p strong{ font-weight:500; color:var(--ink) }
.story-pillars{
  display:grid;
  grid-template-columns:repeat(3, auto);
  gap:36px;
  margin:38px 0 32px;
  padding:24px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.story-pillars > div{ display:flex; flex-direction:column; gap:4px }
.story-pillars strong{
  font-family:var(--serif);
  font-size:30px;
  font-weight:400;
  letter-spacing:-.02em;
  color:var(--ink);
  line-height:1;
}
.story-pillars span{
  font-size:11.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-mute);
}
.story-figure{
  position:relative;
  aspect-ratio: 4/5;
  overflow:hidden;
  box-shadow:var(--shadow-2);
}
.story-figure img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.story-figure:hover img{ transform:scale(1.04) }
.story-figure figcaption{
  position:absolute; bottom:18px; left:18px; right:18px;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--cream-1);
  padding:6px 12px;
  background:rgba(14,30,42,.62);
  backdrop-filter:blur(4px);
  display:inline-block;
  width:auto;
  align-self:flex-start;
  max-width:max-content;
}

/* ─── section heads ─── */
.section-head{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px 80px;
  align-items:end;
  margin-bottom:64px;
}
.section-head .eyebrow{ grid-column:1; align-self:start }
.section-head .display{ grid-column:1; grid-row:2; max-width:14ch }
.section-head .section-sub{
  grid-column:2; grid-row:2;
  font-size:16px;
  line-height:1.7;
  color:var(--text-mute);
  max-width:48ch;
  margin:0;
}
.section-head-dark, .section-head-dark .display{ color:var(--cream-1) }
.section-head-dark .section-sub{ color:rgba(245,239,228,.7) }

/* ─── communities ─── */
.communities{
  background:var(--ink);
  color:var(--cream-1);
  padding:clamp(96px, 11vw, 160px) 0;
  position:relative;
}
.communities::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(800px 400px at 90% 0%, rgba(176,141,87,.12), transparent 60%),
    radial-gradient(600px 300px at 0% 100%, rgba(176,141,87,.07), transparent 60%);
}
.communities .display{ color:var(--cream-1) }
.communities .display em{ color:var(--gold-2) }

.comm-grid{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:24px;
}
.comm-card{ position:relative }
.comm-link{ display:block; height:100% }
.comm-img{
  position:relative;
  aspect-ratio: 4/5;
  overflow:hidden;
  background:var(--ink-2);
}
.comm-1 .comm-img{ aspect-ratio: 4/5.4 }
.comm-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,30,42,0) 50%, rgba(14,30,42,.55) 100%);
}
.comm-img img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 1.6s var(--ease), filter .6s var(--ease);
  filter:saturate(.95) contrast(1.02);
}
.comm-card:hover .comm-img img{ transform:scale(1.06) }
.comm-body{ padding:22px 4px 0 }
.comm-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:14px;
}
.pill{
  font-size:10.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  border:1px solid rgba(245,239,228,.3);
  padding:6px 12px;
  border-radius:999px;
  color:rgba(245,239,228,.85);
}
.status{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-2);
}
.comm-name{
  font-family:var(--serif);
  font-size:clamp(28px, 3vw, 38px);
  font-weight:400;
  letter-spacing:-.02em;
  line-height:1.05;
  margin:0 0 12px;
  color:var(--cream-1);
}
.comm-tag{
  font-size:14.5px;
  line-height:1.6;
  color:rgba(245,239,228,.72);
  margin:0 0 18px;
  max-width:36ch;
}
.comm-cta{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-2);
  padding-bottom:4px;
  border-bottom:1px solid rgba(201,169,97,.3);
  transition:border-color .3s var(--ease), gap .3s var(--ease);
}
.comm-cta i{ font-style:normal; transition:transform .35s var(--ease) }
.comm-card:hover .comm-cta{ border-color:var(--gold-2) }
.comm-card:hover .comm-cta i{ transform:translateX(4px) }

/* ─── capabilities ─── */
.capabilities{
  background:linear-gradient(180deg, var(--ink) 0%, #0A1722 100%);
  color:var(--cream-1);
  padding:clamp(96px, 11vw, 160px) 0;
  border-top:1px solid rgba(245,239,228,.06);
}
.cap-grid{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border-top:1px solid rgba(245,239,228,.10);
}
.cap{
  padding:48px 28px 56px;
  border-right:1px solid rgba(245,239,228,.10);
  border-bottom:1px solid rgba(245,239,228,.10);
  position:relative;
  transition:background .35s var(--ease);
}
.cap:last-child{ border-right:0 }
.cap:hover{ background:rgba(245,239,228,.025) }
.cap-icon{
  width:44px; height:44px;
  color:var(--gold-2);
  margin-bottom:32px;
}
.cap-icon svg{ width:100%; height:100% }
.cap h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:26px;
  letter-spacing:-.01em;
  margin:0 0 14px;
  color:var(--cream-1);
}
.cap p{
  font-size:14.5px;
  line-height:1.65;
  color:rgba(245,239,228,.7);
  margin:0;
  max-width:34ch;
}

/* ─── design ─── */
.design{
  background:var(--cream-1);
  padding:clamp(96px, 11vw, 160px) var(--gut);
}
.design-grid{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:center;
}
.design-img{
  margin:0;
  aspect-ratio: 5/6;
  overflow:hidden;
  box-shadow:var(--shadow-2);
}
.design-img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.design-img:hover img{ transform:scale(1.04) }
.design-text .display{ margin:18px 0 28px; max-width:11ch }
.design-text p{
  font-size:16.5px;
  line-height:1.7;
  color:#26262C;
  max-width:46ch;
  margin:0 0 28px;
}
.design-list{
  list-style:none; padding:0; margin:0 0 36px;
  border-top:1px solid var(--rule);
}
.design-list li{
  display:flex; gap:18px; align-items:baseline;
  padding:18px 0;
  border-bottom:1px solid var(--rule);
  font-size:15.5px;
}
.design-list li span{
  font-family:var(--serif);
  color:var(--gold);
  font-size:13px;
  letter-spacing:.04em;
  font-style:italic;
  min-width:28px;
}

/* ─── news ─── */
.news{
  background:var(--cream);
  padding:clamp(96px, 11vw, 160px) 0;
  border-top:1px solid var(--rule);
}
.news-grid{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.news-card{
  background:var(--cream-1);
  padding:32px 28px;
  border:1px solid var(--rule);
  display:flex; flex-direction:column;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .3s var(--ease);
}
.news-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-1);
  border-color:rgba(176,141,87,.4);
}
.news-meta{
  display:flex; justify-content:space-between;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-mute);
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:1px solid var(--rule);
}
.news-meta span{ color:var(--gold) }
.news-card h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:22px;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:0 0 14px;
  color:var(--ink);
}
.news-card p{
  font-size:14.5px;
  line-height:1.6;
  color:#3D3D44;
  margin:0 0 20px;
  flex:1;
}
.news-link{
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex; gap:8px;
}
.news-link i{ font-style:normal; transition:transform .35s var(--ease) }
.news-card:hover .news-link i{ transform:translateX(4px) }

/* ─── CTA ─── */
.cta{
  position:relative;
  padding:clamp(120px, 14vw, 200px) var(--gut);
  color:var(--cream-1);
  overflow:hidden;
  isolation:isolate;
}
.cta-bg{ position:absolute; inset:0; z-index:-1 }
.cta-bg img{
  width:100%; height:100%; object-fit:cover; object-position:center 60%;
}
.cta-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,30,42,.78) 0%, rgba(14,30,42,.7) 60%, rgba(14,30,42,.92) 100%);
}
.cta-inner{
  position:relative;
  max-width:780px;
  margin:0 auto;
  text-align:center;
}
.cta .display{ margin:18px auto 24px; max-width:18ch }
.cta-sub{
  font-size:16.5px; line-height:1.65;
  color:rgba(245,239,228,.78);
  max-width:54ch; margin:0 auto 48px;
}
.cta-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
  text-align:left;
  background:rgba(245,239,228,.04);
  border:1px solid rgba(245,239,228,.12);
  padding:32px;
  backdrop-filter:blur(6px);
}
.cta-form .full{ grid-column:1/-1 }
.cta-form label{
  display:flex; flex-direction:column; gap:8px;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(245,239,228,.72);
}
.cta-form input,
.cta-form select{
  font:inherit;
  font-size:15px;
  text-transform:none;
  letter-spacing:0;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(245,239,228,.3);
  color:var(--cream-1);
  padding:8px 0 10px;
  outline:0;
  transition:border-color .25s var(--ease);
}
.cta-form input:focus, .cta-form select:focus{ border-color:var(--gold-2) }
.cta-form select option{ color:var(--ink) }
.cta-form button.full{ justify-self:start; margin-top:8px }
.form-fine{
  font-size:11.5px; letter-spacing:.04em;
  color:rgba(245,239,228,.55);
  margin:6px 0 0;
}

/* ─── footer ─── */
.foot{
  background:var(--ink);
  color:rgba(245,239,228,.7);
  padding:80px var(--gut) 32px;
  border-top:1px solid rgba(245,239,228,.06);
}
.foot-top{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 2fr;
  gap:64px;
  margin-bottom:56px;
}
.brand-foot{ color:var(--cream-1) }
.foot-brand p{
  font-size:14.5px; line-height:1.65;
  max-width:36ch;
  margin:18px 0 0;
}
.foot-cols{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
}
.foot-col h4{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-2);
  font-weight:500;
  margin:0 0 16px;
}
.foot-col a{
  display:block;
  font-size:14px;
  padding:5px 0;
  color:rgba(245,239,228,.7);
  transition:color .25s var(--ease);
}
.foot-col a:hover{ color:var(--cream-1) }

.foot-rule{
  max-width:var(--maxw);
  margin:0 auto 24px;
  height:1px;
  background:rgba(245,239,228,.08);
}
.foot-bottom{
  max-width:var(--maxw);
  margin:0 auto;
  display:flex; justify-content:space-between; gap:24px;
  font-size:12px;
  flex-wrap:wrap;
}
.foot-bottom a{ color:rgba(245,239,228,.7); transition:color .25s var(--ease) }
.foot-bottom a:hover{ color:var(--cream-1) }
.foot-trust{
  font-style:italic;
  font-family:var(--serif);
  color:rgba(245,239,228,.5);
}

.foot-veydros{
  max-width:var(--maxw);
  margin:40px auto 0;
  padding:32px 24px;
  border-top:1px solid rgba(245,239,228,.14);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(245,239,228,.72);
  background:rgba(245,239,228,.025);
}
.foot-veydros .veydros-mark{
  font-family:var(--serif);
  font-style:italic;
  font-size:22px;
  font-weight:400;
  color:var(--gold-2);
  letter-spacing:-.005em;
  text-transform:none;
  border-bottom:1px solid rgba(201,169,97,.35);
  padding-bottom:2px;
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.foot-veydros .veydros-mark:hover{
  color:var(--cream-1);
  border-bottom-color:var(--cream-1);
}

/* ─────────────────────────────────────────────────────────
   Inner pages
   ───────────────────────────────────────────────────────── */

/* nav: always solid on inner pages */
body.inner .nav{
  background:rgba(250,246,238,.86);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  padding:12px 0;
  border-bottom-color:var(--rule-soft);
}
body.inner .brand{ color:var(--ink) }
body.inner .nav-links a{ color:rgba(20,24,28,.72) }
body.inner .nav-links a:hover{ color:var(--ink) }
body.inner .nav-links a.active{ color:var(--ink) }
body.inner .nav-links a.active::after{ transform:scaleX(1) }
body.inner .btn-ghost{
  color:var(--ink);
  border-color:rgba(14,30,42,.25);
}
body.inner .btn-ghost:hover{ background:rgba(14,30,42,.05) }
body.inner .nav-toggle span{ background:var(--ink) }
body.inner main{ padding-top:0 }

/* page hero */
.page-hero{
  position:relative;
  min-height:62vh;
  padding:160px var(--gut) 88px;
  display:flex;
  align-items:flex-end;
  color:var(--cream-1);
  isolation:isolate;
  overflow:hidden;
}
.page-hero-img{
  position:absolute; inset:0; z-index:-2;
}
.page-hero-img img{
  width:100%; height:100%;
  object-fit:cover; object-position:center 42%;
  transform:scale(1.04);
  animation:heroDrift 18s var(--ease) forwards;
}
.page-hero-veil{
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg,
    rgba(14,30,42,.50) 0%,
    rgba(14,30,42,.35) 40%,
    rgba(14,30,42,.65) 100%);
}
.page-hero-content{
  position:relative;
  max-width:var(--maxw);
  margin:0 auto;
  width:100%;
}
.page-hero h1.display{
  font-size:clamp(40px, 7vw, 88px);
  margin:18px 0 20px;
  max-width:18ch;
  color:var(--cream-1);
}
.page-hero h1.display em{ color:var(--cream-1); font-weight:300 }
.page-hero-lede{
  font-size:clamp(15px, 1.4vw, 18px);
  line-height:1.6;
  max-width:56ch;
  color:rgba(245,239,228,.85);
  margin:0;
}
.page-hero-crumbs{
  display:flex; gap:10px; align-items:center;
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(245,239,228,.72);
  margin-bottom:18px;
}
.page-hero-crumbs a{ color:inherit; opacity:.7; transition:opacity .2s var(--ease) }
.page-hero-crumbs a:hover{ opacity:1 }
.page-hero-crumbs span{ opacity:.5 }

/* prose / long-form sections on inner pages */
.prose-section{
  background:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.prose-section.cream{ background:var(--cream) }
.prose{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:start;
}
.prose-aside{
  position:sticky; top:120px;
}
.prose-aside .eyebrow{ margin-bottom:18px }
.prose-aside h2.display{
  font-size:clamp(38px, 5vw, 64px);
  max-width:12ch;
}
.prose-body p{
  font-size:16.5px;
  line-height:1.75;
  color:#26262C;
  margin:0 0 22px;
  max-width:62ch;
}
.prose-body p strong{ color:var(--ink); font-weight:500 }
.prose-body p:first-of-type{
  font-size:19px;
  line-height:1.7;
  color:var(--ink);
}
.prose-body h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:28px;
  letter-spacing:-.01em;
  margin:48px 0 16px;
  color:var(--ink);
}

/* leadership / team grid */
.leaders{
  background:var(--cream);
  padding:clamp(80px, 10vw, 140px) var(--gut);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.leaders-inner{
  max-width:var(--maxw);
  margin:0 auto;
}
.leaders-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  margin-top:48px;
}
.leader{
  padding:32px;
  background:var(--cream-1);
  border:1px solid var(--rule);
  display:flex; flex-direction:column; gap:14px;
}
.leader-avatar{
  width:72px; height:72px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-2) 100%);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif);
  font-size:30px;
  color:var(--cream-1);
  letter-spacing:-.01em;
  margin-bottom:8px;
}
.leader h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:30px;
  letter-spacing:-.01em;
  margin:0;
  color:var(--ink);
}
.leader-role{
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold);
}
.leader p{
  font-size:14.5px;
  line-height:1.65;
  color:#3D3D44;
  margin:8px 0 0;
}

/* timeline */
.timeline{
  background:var(--ink);
  color:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.timeline-inner{
  max-width:var(--maxw);
  margin:0 auto;
}
.timeline-list{
  margin-top:64px;
  border-top:1px solid rgba(245,239,228,.1);
}
.timeline-item{
  display:grid;
  grid-template-columns:140px 1fr 2fr;
  gap:48px;
  padding:32px 0;
  border-bottom:1px solid rgba(245,239,228,.1);
  align-items:baseline;
}
.timeline-year{
  font-family:var(--serif);
  font-size:42px;
  font-weight:400;
  letter-spacing:-.02em;
  color:var(--gold-2);
  line-height:1;
}
.timeline-title{
  font-family:var(--serif);
  font-size:22px;
  font-weight:400;
  letter-spacing:-.01em;
  color:var(--cream-1);
  margin:0;
}
.timeline-desc{
  font-size:14.5px;
  line-height:1.65;
  color:rgba(245,239,228,.7);
  margin:0;
}

/* community detail page */
.detail-overview{
  background:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.detail-overview-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:start;
}
.detail-side{
  display:flex; flex-direction:column; gap:18px;
  padding:32px;
  background:var(--cream);
  border:1px solid var(--rule);
}
.detail-side h3{
  font-family:var(--serif); font-weight:400;
  font-size:24px; margin:0 0 10px;
}
.detail-fact{
  display:flex; justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid var(--rule);
  font-size:14px;
}
.detail-fact:last-child{ border-bottom:0 }
.detail-fact .lbl{
  color:var(--text-mute);
  letter-spacing:.05em;
}
.detail-fact .val{
  font-weight:500;
  color:var(--ink);
  font-family:var(--serif);
  font-size:15px;
}
.detail-body h2.display{
  margin:0 0 28px;
  max-width:14ch;
}
.detail-body p{
  font-size:16.5px;
  line-height:1.75;
  color:#26262C;
  margin:0 0 22px;
  max-width:62ch;
}
.detail-body p:first-of-type{
  font-size:19px;
  color:var(--ink);
  line-height:1.65;
}

.feature-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:24px;
  margin-top:36px;
}
.feature-grid li{
  list-style:none;
  padding:20px 22px;
  background:var(--cream);
  border:1px solid var(--rule);
  font-size:14.5px;
  display:flex; align-items:flex-start; gap:14px;
  line-height:1.5;
}
.feature-grid li::before{
  content:""; flex-shrink:0;
  width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  margin-top:7px;
}

.gallery{
  background:var(--cream);
  padding:clamp(80px, 10vw, 140px) 0;
  border-top:1px solid var(--rule);
}
.gallery-grid{
  max-width:var(--maxw);
  margin:48px auto 0;
  padding:0 var(--gut);
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:240px 240px;
  gap:18px;
}
.gallery-grid figure{
  margin:0; overflow:hidden;
  background:var(--ink-2);
}
.gallery-grid figure:nth-child(1){ grid-row:1/3 }
.gallery-grid figure img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.gallery-grid figure:hover img{ transform:scale(1.06) }

/* news listing */
.news-listing{
  background:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.news-listing-inner{ max-width:var(--maxw); margin:0 auto }
.news-list{
  margin-top:48px;
  border-top:1px solid var(--rule);
}
.news-item{
  display:grid;
  grid-template-columns:200px 1fr auto;
  gap:48px;
  padding:36px 0;
  border-bottom:1px solid var(--rule);
  align-items:start;
  transition:background .25s var(--ease);
}
.news-item:hover{ background:rgba(176,141,87,.04) }
.news-item-meta{
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-mute);
  display:flex; flex-direction:column; gap:6px;
}
.news-item-meta strong{ color:var(--gold); font-weight:500 }
.news-item h3{
  font-family:var(--serif); font-weight:400;
  font-size:26px; line-height:1.2; letter-spacing:-.01em;
  margin:0 0 10px;
  color:var(--ink);
  max-width:36ch;
}
.news-item p{
  font-size:14.5px; line-height:1.65;
  color:#3D3D44;
  margin:0;
  max-width:50ch;
}
.news-item-arrow{
  font-family:var(--serif);
  font-size:32px;
  color:var(--gold);
  font-style:italic;
  align-self:center;
  transition:transform .35s var(--ease);
}
.news-item:hover .news-item-arrow{ transform:translateX(8px) }

/* contact page */
.contact-grid{
  background:var(--cream-1);
  padding:clamp(80px, 10vw, 140px) var(--gut);
}
.contact-grid-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:start;
}
.contact-info{
  display:flex; flex-direction:column; gap:32px;
}
.contact-info-block h3{
  font-family:var(--sans);
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); font-weight:500;
  margin:0 0 12px;
}
.contact-info-block p{
  font-family:var(--serif);
  font-weight:400;
  font-size:22px;
  line-height:1.4;
  letter-spacing:-.01em;
  color:var(--ink);
  margin:0 0 6px;
}
.contact-info-block .small{
  font-family:var(--sans);
  font-size:14px;
  color:var(--text-mute);
  margin:0;
}
.contact-info-block a{
  color:var(--ink);
  border-bottom:1px solid transparent;
  transition:border-color .2s var(--ease);
}
.contact-info-block a:hover{ border-bottom-color:var(--gold) }
.contact-form{
  background:var(--cream);
  border:1px solid var(--rule);
  padding:36px;
}
.contact-form .display{
  font-size:32px; margin:0 0 24px;
}
.contact-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
}
.contact-form-row.full{ grid-template-columns:1fr }
.contact-form label{
  display:flex; flex-direction:column; gap:6px;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-mute);
  margin-bottom:14px;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  font:inherit;
  font-size:15px; text-transform:none; letter-spacing:0;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--rule);
  color:var(--ink);
  padding:6px 0 8px;
  outline:0;
  resize:none;
  font-family:var(--sans);
  transition:border-color .2s var(--ease);
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{ border-color:var(--gold) }
.contact-form textarea{ min-height:80px }
.contact-form button{
  margin-top:8px;
  align-self:flex-start;
}
.contact-form-fine{
  font-size:11.5px;
  color:var(--text-mute);
  margin:14px 0 0;
}

/* community filter pills (on /communities) */
.comm-filter{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-bottom:48px;
}
.comm-filter button{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.18em; text-transform:uppercase;
  padding:10px 18px;
  border:1px solid var(--rule);
  border-radius:999px;
  color:var(--text);
  background:transparent;
  transition:background .2s var(--ease), border-color .2s var(--ease);
}
.comm-filter button.active,
.comm-filter button:hover{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--cream-1);
}

/* shared CTA band (used on inner pages) */
.cta-band{
  background:var(--ink);
  color:var(--cream-1);
  padding:clamp(80px, 10vw, 120px) var(--gut);
  text-align:center;
}
.cta-band-inner{ max-width:740px; margin:0 auto }
.cta-band .display{
  color:var(--cream-1);
  margin:18px 0 24px;
  font-size:clamp(32px, 4.5vw, 56px);
  max-width:18ch;
  margin-left:auto; margin-right:auto;
}
.cta-band p{
  font-size:16px;
  line-height:1.6;
  color:rgba(245,239,228,.78);
  max-width:48ch;
  margin:0 auto 32px;
}

/* Design Studio specific */
.ds-process{
  background:var(--cream);
  padding:clamp(80px, 10vw, 140px) var(--gut);
  border-top:1px solid var(--rule);
}
.ds-process-inner{ max-width:var(--maxw); margin:0 auto }
.ds-steps{
  margin-top:64px;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  border-top:1px solid var(--rule);
  padding-top:48px;
}
.ds-step{ position:relative; padding-right:24px }
.ds-step-num{
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--gold);
  letter-spacing:.04em;
  margin-bottom:14px;
}
.ds-step h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:24px;
  letter-spacing:-.01em;
  margin:0 0 12px;
  color:var(--ink);
}
.ds-step p{
  font-size:14.5px;
  line-height:1.6;
  color:#3D3D44;
  margin:0;
}

/* curated palette (decorative) */
.palette-row{
  display:grid;
  grid-template-columns:repeat(8, 1fr);
  height:80px;
  margin-top:12px;
  border:1px solid var(--rule);
}
.palette-row span{ display:block }

/* ─── responsive ─── */
@media (max-width: 1080px){
  .nav-links{ display:none }
  .nav-cta{ display:none }
  .nav-toggle{ display:flex }
  .nav-inner{ grid-template-columns:auto 1fr auto }

  .stats-inner{ grid-template-columns:repeat(2, 1fr); gap:36px }
  .story-grid, .design-grid{ grid-template-columns:1fr; gap:48px }
  .design-grid > .design-img{ order:1 }
  .design-grid > .design-text{ order:2 }
  .section-head{ grid-template-columns:1fr; gap:20px }
  .section-head .display, .section-head .section-sub{ grid-column:1; grid-row:auto }
  .comm-grid{ grid-template-columns:1fr 1fr; gap:24px }
  .comm-1{ grid-column:1/-1 }
  .comm-1 .comm-img{ aspect-ratio: 16/10 }
  .cap-grid{ grid-template-columns:repeat(2, 1fr) }
  .cap:nth-child(2){ border-right:0 }
  .news-grid{ grid-template-columns:1fr; gap:18px }
  .foot-top{ grid-template-columns:1fr; gap:48px }

  .prose{ grid-template-columns:1fr; gap:32px }
  .prose-aside{ position:static }
  .leaders-grid{ grid-template-columns:1fr; gap:24px }
  .timeline-item{ grid-template-columns:80px 1fr; gap:24px }
  .timeline-desc{ grid-column:2 }
  .timeline-year{ font-size:30px }
  .detail-overview-inner{ grid-template-columns:1fr; gap:32px }
  .detail-side{ order:2 }
  .feature-grid{ grid-template-columns:1fr }
  .gallery-grid{ grid-template-columns:1fr; grid-template-rows:auto; gap:14px }
  .gallery-grid figure:nth-child(1){ grid-row:auto; aspect-ratio:4/3 }
  .gallery-grid figure{ aspect-ratio:4/3 }
  .news-item{ grid-template-columns:1fr; gap:14px }
  .news-item-arrow{ display:none }
  .contact-grid-inner{ grid-template-columns:1fr; gap:48px }
  .ds-steps{ grid-template-columns:repeat(2, 1fr); gap:24px }
}

@media (max-width: 640px){
  .hero{ padding:120px 24px 88px; align-items:center }
  .hero-meta{ display:none }
  .stats-inner{ grid-template-columns:1fr; gap:28px; padding:48px var(--gut) }
  .story-pillars{ grid-template-columns:1fr 1fr 1fr; gap:18px }
  .story-pillars strong{ font-size:24px }
  .comm-grid{ grid-template-columns:1fr }
  .comm-1 .comm-img, .comm-img{ aspect-ratio: 4/5 }
  .cap-grid{ grid-template-columns:1fr }
  .cap{ border-right:0 }
  .cta-form{ grid-template-columns:1fr; padding:24px }
  .foot-cols{ grid-template-columns:1fr 1fr; gap:32px 20px }
  .foot-bottom{ flex-direction:column; gap:8px }

  .page-hero{ padding:130px 24px 64px; min-height:50vh }
  .page-hero h1.display{ font-size:42px }
  .ds-steps{ grid-template-columns:1fr }
  .contact-form{ padding:24px }
  .contact-form-row{ grid-template-columns:1fr }
}

/* ─── reduced motion ─── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none }
}
