@import url("https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&family=Oswald:wght@500;600;700&family=Roboto+Condensed:wght@700;800&display=swap");

:root {
  --black:#0B0B0B; --panel:#171614; --gold:#8D783C; --signal:#C9A85C;
  --highlight:#F4D387; --bone:#F5F3EE; --slate:#B8B2A4; --line:#2b2925;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{margin:0;background:var(--black);color:var(--bone);font-family:Lato,"Open Sans",Arial,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,11,11,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(141,120,60,.35)}
.header-inner{height:82px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:260px}
.brand img{height:58px;width:auto}
.brand-copy{line-height:1.05}
.brand-copy strong{font-family:"Roboto Condensed",Arial Narrow,sans-serif;font-size:14px;letter-spacing:.11em;text-transform:uppercase}
.brand-copy span{display:block;color:var(--signal);font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-top:5px}
nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav-group{position:relative}
.nav-link,.nav-top{display:flex;align-items:center;gap:6px;padding:11px 10px;font:700 13px/1 "Roboto Condensed",Arial Narrow,sans-serif;letter-spacing:.02em;border-radius:4px}
.nav-link:hover,.nav-top:hover{background:var(--panel);color:var(--highlight)}
.chev{font-size:9px;color:var(--signal)}
.dropdown{display:none;position:absolute;top:100%;left:0;min-width:235px;background:#12110f;border:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.4);padding:8px}
.nav-group:hover .dropdown,.nav-group:focus-within .dropdown{display:block}
.dropdown a{display:block;padding:10px 11px;color:var(--slate);font-size:13px;border-radius:3px}
.dropdown a:hover{background:var(--panel);color:var(--bone)}
.header-apply{margin-left:8px;background:var(--highlight);color:var(--black);padding:11px 15px;border-radius:3px;font-weight:900;font-family:"Roboto Condensed",Arial Narrow,sans-serif}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--gold);color:var(--bone);padding:9px 12px;border-radius:3px}
.home-hero,.page-hero{background-size:cover;background-position:center;min-height:650px;display:flex;align-items:center;border-bottom:1px solid var(--gold)}
.page-hero{min-height:410px;background-color:#0e0d0c}
.hero-inner{padding:90px 0;max-width:760px;margin-left:max(20px,calc((100vw - var(--max))/2))}
.eyebrow,.section-kicker{color:var(--signal);font:800 12px/1.2 "Roboto Condensed",Arial Narrow,sans-serif;letter-spacing:.18em;text-transform:uppercase}
h1,h2,h3{font-family:Oswald,"Roboto Condensed",Arial Narrow,sans-serif;margin:0;line-height:1.04}
h1{font-size:clamp(54px,8vw,102px);text-transform:uppercase;letter-spacing:-.025em;margin:15px 0 22px}
.page-hero h1{font-size:clamp(44px,6vw,76px)}
h2{font-size:clamp(34px,4.7vw,57px);letter-spacing:-.02em;margin:13px 0 22px}
h3{font-size:24px}
.lede{font-size:clamp(17px,2vw,21px);max-width:700px;color:#dedad0;margin:0 0 30px}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.actions.center{justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--highlight);color:var(--black);font-weight:900;padding:14px 20px;border:1px solid var(--highlight);border-radius:3px}
.btn.secondary{background:transparent;color:var(--bone);border-color:var(--signal)}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.stats-band{background:var(--panel);border-bottom:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(5,1fr)}
.stat{padding:30px 18px;border-right:1px solid var(--line);text-align:center}
.stat:first-child{border-left:1px solid var(--line)}
.stat strong{display:block;color:var(--highlight);font:800 clamp(25px,3vw,40px)/1 "Roboto Condensed",Arial Narrow,sans-serif}
.stat span{display:block;color:var(--slate);font-size:12px;margin-top:9px;text-transform:uppercase;letter-spacing:.06em}
.section,.page-pad{padding:82px 0}
.home-grid,.feature-grid,.people-grid,.alumni-grid,.path-grid{display:grid;gap:18px}
.home-grid{grid-template-columns:repeat(3,1fr);margin-top:38px}
.home-card,.feature-card,.person-card,.alumni-card,.path-card,.identifier,.contact-panel{background:var(--panel);border:1px solid var(--line)}
.home-card{padding:28px;min-height:280px;display:flex;flex-direction:column}
.home-card .rule{width:42px;height:2px;background:var(--gold);margin-bottom:22px}
.home-card h3{font-size:29px}
.home-card p{color:var(--slate);font-size:15px;flex:1}
.home-card a,.arrow{color:var(--signal);font-weight:800;font-size:14px}
.closing{background:#11100e;border-top:1px solid var(--line);border-bottom:1px solid var(--gold)}
.closing-inner{padding:80px 0;display:grid;grid-template-columns:1.6fr .7fr;gap:50px;align-items:end}
.feature-grid{grid-template-columns:repeat(3,1fr)}
.feature-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.feature-card{overflow:hidden}
.feature-card>img{width:100%;height:210px;object-fit:cover;filter:saturate(.85) contrast(1.03)}
.card-body{padding:26px}
.card-body p{color:var(--slate);margin:12px 0 0}
.facts{border-top:1px solid var(--gold);margin-top:20px;padding-top:14px;color:var(--highlight);font-size:13px;font-weight:800}
.path-grid{grid-template-columns:repeat(3,1fr)}
.path-card{display:block;padding:30px;min-height:240px}
.path-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.path-card h3{font-size:30px;margin:13px 0}
.path-card p{color:var(--slate)}
.people-grid{grid-template-columns:repeat(2,1fr)}
.person-card{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:300px}
.portrait-placeholder{background:#0f0e0c;border-right:1px solid var(--line);display:flex;align-items:stretch;justify-content:center;padding:0;min-width:0}
.portrait-placeholder img{width:100%;height:auto;object-fit:contain;opacity:.72}
.person-body{padding:25px}
.person-body h3{margin:8px 0 12px}
.person-body p{color:var(--slate)}
.training{margin:16px 0 0;padding:15px 0 0 18px;border-top:1px solid var(--line);color:var(--slate);font-size:13px}
.alumni-grid{grid-template-columns:repeat(3,1fr)}
.alumni-card{padding:24px}
.alumni-card p{color:var(--slate);margin:7px 0}
.alumni-card span{color:var(--signal);font-size:13px}
.notice{border-left:3px solid var(--highlight);background:var(--panel);padding:25px 28px;margin-bottom:18px}
.notice.soft{border-color:var(--gold)}
.notice p{color:var(--slate);margin-bottom:0}
.subsection{margin-top:75px;padding-top:55px;border-top:1px solid var(--line)}
.subsection.compact{margin-top:0}
blockquote{margin:0}
.lead-quote{font:700 clamp(26px,4vw,46px)/1.2 Oswald,"Roboto Condensed",Arial Narrow,sans-serif;max-width:980px;color:var(--bone);padding:25px 0}
.quote-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.quote-row blockquote{background:var(--panel);padding:25px;color:var(--highlight);font-size:24px}
.gallery-labels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery-labels span{border:1px solid var(--gold);padding:18px;text-align:center;color:var(--signal)}
.rotation-block{margin-top:24px}
.rotation-grid{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line)}
.rotation-grid div{padding:17px;border-right:1px solid var(--line);background:var(--panel)}
.rotation-grid strong,.rotation-grid span{display:block}
.rotation-grid span{color:var(--slate);font-size:12px;margin-top:5px}
.video-placeholder{min-height:430px;border:1px solid var(--gold);background:radial-gradient(circle at 50% 40%,#24211a,#0f0e0c 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.play{width:72px;height:72px;border:2px solid var(--highlight);border-radius:50%;display:grid;place-items:center;color:var(--highlight);font-size:24px;padding-left:4px;margin-bottom:18px}
.letter{max-width:800px;margin:auto;background:var(--panel);border:1px solid var(--line);padding:42px}
.letter p{color:#ddd8ce;font-size:17px}
.signature{margin-top:28px;padding-top:22px;border-top:1px solid var(--gold)}
.signature span{display:block;color:var(--slate);font-size:13px}
.identifier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.identifier{padding:25px}
.identifier span,.identifier small{display:block;color:var(--slate)}
.identifier strong{display:block;color:var(--highlight);font-size:24px;margin:7px 0}
.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:20px}
.contact-panel{padding:35px}
.contact-panel a,.contact-panel p{display:block;margin:15px 0;color:var(--bone)}
.application-paths{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.muted{color:var(--slate)!important;font-style:italic}
.site-footer{border-top:1px solid var(--gold);background:#090909}
.footer-grid{padding:55px 0;display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:35px}
.footer-brand img{width:86px}
.footer-col h4{font:800 13px/1 "Roboto Condensed",Arial Narrow,sans-serif;color:var(--signal);letter-spacing:.12em;text-transform:uppercase}
.footer-col a,.footer-col span{display:block;color:var(--slate);font-size:13px;margin:9px 0}
.footer-bottom{border-top:1px solid var(--line);padding:18px 0;color:#7f7a70;font-size:11px}
@media(max-width:980px){
  .brand-copy{display:none} nav{display:none;position:absolute;top:82px;left:0;right:0;background:#0b0b0b;padding:12px 20px 20px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--gold)}
  nav.open{display:flex} .menu-btn{display:block} .nav-group{width:100%} .nav-top,.nav-link{justify-content:space-between;padding:13px 8px}
  .dropdown{position:static;display:block;background:transparent;border:0;box-shadow:none;padding:0 0 5px 14px} .dropdown a{padding:8px}
  .header-apply{margin:5px 0 0;text-align:center}
  .home-grid,.feature-grid,.feature-grid.cols-2,.people-grid,.alumni-grid,.path-grid{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(3,1fr)} .stat:nth-child(4),.stat:nth-child(5){border-top:1px solid var(--line)}
  .closing-inner,.contact-layout{grid-template-columns:1fr} .rotation-grid{grid-template-columns:repeat(3,1fr)} .footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .wrap{width:min(var(--max),calc(100% - 28px))} .header-inner{height:72px} .brand img{height:50px} nav{top:72px}
  .home-hero{min-height:580px;background-position:66% center} .hero-inner{padding:70px 0;margin-left:14px;margin-right:14px} h1{font-size:52px}
  .stats{grid-template-columns:1fr 1fr} .stat{border-top:1px solid var(--line)} .stat:last-child{grid-column:1/-1}
  .home-grid,.feature-grid,.feature-grid.cols-2,.people-grid,.alumni-grid,.path-grid,.application-paths,.identifier-grid,.quote-row,.gallery-labels{grid-template-columns:1fr}
  .section,.page-pad{padding:58px 0} .person-card{grid-template-columns:180px minmax(0,1fr)} .portrait-placeholder{padding:0}
  .rotation-grid{grid-template-columns:1fr 1fr} .footer-grid{grid-template-columns:1fr 1fr}
}

/* V2.2 — editorial content system */
.page-intro {
  max-width: 820px;
  margin: 0 auto 52px;
  color: var(--slate);
  font-size: 18px;
}
.content-flow {
  border-top: 1px solid var(--gold);
}
.flow-section {
  display: grid;
  grid-template-columns: minmax(210px, .75fr) minmax(0, 1.6fr);
  gap: 50px;
  padding: 50px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.flow-section:nth-child(even) {
  background: linear-gradient(90deg, transparent 0%, rgba(23,22,20,.55) 12%, rgba(23,22,20,.55) 88%, transparent 100%);
}
.flow-heading {
  position: sticky;
  top: 110px;
}
.flow-index {
  display: block;
  color: var(--gold);
  font: 800 12px/1 "Roboto Condensed",Arial Narrow,sans-serif;
  letter-spacing: .14em;
  margin-bottom: 13px;
}
.flow-heading h2 {
  font-size: clamp(30px, 3.6vw, 46px);
  margin: 0;
}
.flow-copy > p:first-child {
  margin-top: 0;
}
.flow-copy p {
  color: #d7d2c8;
  font-size: 17px;
  max-width: 780px;
}
.flow-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.flow-facts span {
  border: 1px solid rgba(201,168,92,.5);
  color: var(--highlight);
  padding: 8px 11px;
  font: 800 12px/1.25 "Roboto Condensed",Arial Narrow,sans-serif;
  letter-spacing: .02em;
}
.detail-list {
  border-top: 1px solid var(--line);
  margin-top: 24px;
}
.detail-row {
  display: grid;
  grid-template-columns: minmax(185px,.65fr) minmax(0,1.35fr);
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.detail-row h3 {
  font-size: 21px;
  line-height: 1.15;
}
.detail-row p {
  margin: 0;
  color: var(--slate);
  font-size: 15px;
}
.detail-row .mini-fact {
  display: block;
  margin-top: 8px;
  color: var(--signal);
  font: 800 12px/1.3 "Roboto Condensed",Arial Narrow,sans-serif;
}
.editorial-band {
  background: var(--panel);
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--line);
  margin: 54px 0;
}
.editorial-band .wrap {
  padding-top: 38px;
  padding-bottom: 38px;
}
.quick-stats {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.quick-stat {
  min-height: 130px;
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.quick-stat strong {
  display: block;
  color: var(--highlight);
  font: 800 30px/1 "Roboto Condensed",Arial Narrow,sans-serif;
}
.quick-stat span {
  display: block;
  margin-top: 10px;
  color: var(--slate);
  font-size: 13px;
}
.section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 48px;
}
.section-nav a {
  border: 1px solid var(--line);
  padding: 9px 12px;
  color: var(--signal);
  font: 800 12px/1 "Roboto Condensed",Arial Narrow,sans-serif;
}
.section-nav a:hover {
  border-color: var(--gold);
  color: var(--highlight);
}
.site-entry {
  display: grid;
  grid-template-columns: minmax(220px,.75fr) minmax(0,1.45fr);
  gap: 46px;
  padding: 46px 0;
  border-bottom: 1px solid var(--line);
}
.site-entry:first-child {
  border-top: 1px solid var(--gold);
}
.site-entry h2 {
  font-size: clamp(30px,3.5vw,45px);
  margin-top: 8px;
}
.site-entry p {
  color: #d7d2c8;
  font-size: 17px;
}
.site-type {
  color: var(--signal);
  font: 800 11px/1.2 "Roboto Condensed",Arial Narrow,sans-serif;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.nested-training {
  margin-top: 26px;
  border-top: 1px solid var(--line);
}
.nested-training .detail-row:last-child {
  border-bottom: 0;
}
.timeline {
  position: relative;
  margin-top: 24px;
}
.timeline:before {
  content:"";
  position:absolute;
  left: 23px;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background: var(--gold);
}
.timeline-step {
  position: relative;
  padding: 0 0 42px 72px;
}
.timeline-step:last-child { padding-bottom: 0; }
.timeline-dot {
  position:absolute;
  left: 12px;
  top: 4px;
  width: 23px;
  height: 23px;
  border: 1px solid var(--highlight);
  border-radius: 50%;
  background: var(--black);
  display:grid;
  place-items:center;
  color: var(--highlight);
  font: 800 10px/1 "Roboto Condensed",Arial Narrow,sans-serif;
}
.timeline-step h3 {
  font-size: 28px;
  margin-bottom: 10px;
}
.timeline-step p {
  color: var(--slate);
  max-width: 820px;
  margin: 0;
}
.timeline-step .flow-facts { margin-top: 14px; }
.benefit-group {
  display: grid;
  grid-template-columns: minmax(220px,.7fr) minmax(0,1.5fr);
  gap: 48px;
  padding: 52px 0;
  border-top: 1px solid var(--line);
}
.benefit-group:first-of-type { border-top: 1px solid var(--gold); }
.benefit-group h2 {
  font-size: clamp(31px,3.6vw,46px);
  margin-top: 8px;
}
.benefit-group-intro {
  color: var(--slate);
  max-width: 330px;
}
.journey {
  max-width: 900px;
  margin: 0 auto;
}
.journey-block {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 24px;
  padding: 34px 0;
  border-bottom: 1px solid var(--line);
}
.journey-block:first-child { border-top: 1px solid var(--gold); }
.journey-number {
  color: var(--gold);
  font: 800 34px/1 Oswald,"Roboto Condensed",Arial Narrow,sans-serif;
}
.journey-block h2 {
  font-size: 33px;
  margin: 0 0 12px;
}
.journey-block p {
  margin: 0;
  color: #d7d2c8;
  font-size: 17px;
}
.journey-block .flow-facts { margin-top: 16px; }

@media(max-width: 860px) {
  .flow-section,.site-entry,.benefit-group {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .flow-heading { position: static; }
  .detail-row { grid-template-columns: 1fr; gap: 8px; }
  .quick-stats { grid-template-columns: 1fr 1fr; }
}
@media(max-width: 560px) {
  .quick-stats { grid-template-columns: 1fr; }
  .journey-block { grid-template-columns: 55px 1fr; gap: 12px; }
  .journey-number { font-size: 27px; }
}


.mobile-menu{display:none;margin-left:auto;position:relative}
.mobile-menu summary{list-style:none;cursor:pointer;border:1px solid var(--gold);padding:9px 12px;border-radius:3px;font:700 13px/1 "Roboto Condensed",Arial Narrow,sans-serif}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu-panel{position:absolute;right:0;top:44px;min-width:220px;background:#0b0b0b;border:1px solid var(--gold);padding:8px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.mobile-menu-panel a{display:block;padding:11px;color:var(--bone);border-bottom:1px solid var(--line)}
.mobile-menu-panel a:last-child{border-bottom:0;background:var(--highlight);color:var(--black);margin-top:5px;font-weight:900}
@media(max-width:980px){
  #nav{display:none!important}
  .mobile-menu{display:block}
}


/* ===== V2.4 FRAMER-READY PHOTO SLOTS =====
   Additive only: the underlying V2.3 layout and typography remain intact.
*/
.photo-slot{
  position:relative;
  overflow:hidden;
  min-height:260px;
  border:1px solid rgba(141,120,60,.72);
  background:
    linear-gradient(135deg,rgba(201,168,92,.035),rgba(201,168,92,0) 42%),
    #11100e;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  isolation:isolate;
}
.photo-slot::before,
.photo-slot::after{
  content:"";
  position:absolute;
  inset:auto;
  width:140%;
  height:1px;
  background:#28251f;
  z-index:-1;
}
.photo-slot::before{transform:rotate(31deg)}
.photo-slot::after{transform:rotate(-31deg)}
.photo-slot-inner{
  max-width:75%;
  padding:22px 24px;
  background:rgba(11,11,11,.90);
  border:1px solid rgba(141,120,60,.35);
}
.photo-slot-label{
  display:block;
  color:var(--highlight);
  font:800 12px/1.25 "Roboto Condensed",Arial Narrow,sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.photo-slot-note{
  display:block;
  margin-top:8px;
  color:var(--slate);
  font-size:12px;
  line-height:1.4;
}
.photo-slot-wide{
  width:100%;
  min-height:360px;
  aspect-ratio:16/7;
}
.photo-slot-editorial{
  margin:42px 0 10px;
  min-height:340px;
  aspect-ratio:16/8;
}
.photo-slot-headshot{
  width:100%;
  min-height:300px;
  height:100%;
  aspect-ratio:auto;
  border:0;
}
.photo-slot-headshot .photo-slot-inner{
  max-width:90%;
  padding:12px 8px;
  background:rgba(11,11,11,.86);
}
.photo-slot-headshot .photo-slot-label{
  font-size:9px;
  letter-spacing:.10em;
}
.photo-slot-headshot .photo-slot-note{
  font-size:9px;
  margin-top:5px;
}
.photo-pair{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:16px;
  margin:42px 0;
}
.photo-pair .photo-slot{min-height:320px}
.photo-gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:24px;
}
.photo-gallery .photo-slot{
  aspect-ratio:4/3;
  min-height:0;
}
.photo-gallery .photo-slot:nth-child(1),
.photo-gallery .photo-slot:nth-child(6){
  grid-column:span 2;
  aspect-ratio:2/1;
}
.photo-gallery .photo-slot-inner{
  max-width:90%;
  padding:14px;
}
.photo-gallery .photo-slot-label{font-size:10px}
.photo-gallery .photo-slot-note{font-size:10px}
.photo-break-caption{
  margin:10px 0 0;
  color:#817b70;
  font-size:11px;
  text-align:right;
}
.site-entry.with-photo{
  grid-template-columns:minmax(200px,.72fr) minmax(0,1.2fr) minmax(260px,.82fr);
}
.site-entry.with-photo .site-photo .photo-slot{
  min-height:230px;
  aspect-ratio:4/3;
}
.site-entry.with-photo .site-photo .photo-slot-inner{max-width:90%}
.letter-signature-row{
  display:grid;
  grid-template-columns:1fr 155px;
  gap:24px;
  align-items:end;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--gold);
}
.letter-signature-row .signature{
  margin:0;
  padding:0;
  border:0;
}
.letter-signature-row .photo-slot{
  min-height:0;
  width:155px;
  aspect-ratio:3/4;
}
.letter-signature-row .photo-slot-inner{
  max-width:92%;
  padding:9px 6px;
}
.letter-signature-row .photo-slot-label{font-size:8px}
.letter-signature-row .photo-slot-note{font-size:8px}
.visual-breath{
  margin:44px 0;
}
@media(max-width:980px){
  .site-entry.with-photo{
    grid-template-columns:1fr 1.35fr;
  }
  .site-entry.with-photo .site-photo{
    grid-column:1/-1;
  }
  .site-entry.with-photo .site-photo .photo-slot{
    aspect-ratio:16/7;
  }
  .photo-gallery{grid-template-columns:repeat(2,1fr)}
  .photo-pair{grid-template-columns:1fr}
}
@media(max-width:640px){
  .photo-slot-wide,.photo-slot-editorial{min-height:260px;aspect-ratio:auto}
  .photo-pair{margin:30px 0}
  .photo-gallery{grid-template-columns:1fr 1fr}
  .photo-gallery .photo-slot:nth-child(1),
  .photo-gallery .photo-slot:nth-child(6){
    grid-column:1/-1;
  }
  .site-entry.with-photo{grid-template-columns:1fr}
  .site-entry.with-photo .site-photo{grid-column:auto}
  .letter-signature-row{
    grid-template-columns:1fr 120px;
    gap:16px;
  }
  .letter-signature-row .photo-slot{width:120px}
}

/* Filled photo slots */
.photo-slot.has-image{
  background-color:#11100e;
  background-repeat:no-repeat;
  background-size:cover;
  overflow:hidden;
}
.photo-slot.has-image::before,.photo-slot.has-image::after{display:none}
.photo-slot.has-image .photo-slot-inner{display:none}


/* Current resident profile system */
.resident-class-section{margin-top:68px}
.resident-class-section:first-of-type{margin-top:46px}
.resident-class-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--gold)}
.resident-class-heading h2{margin:0;font-size:clamp(32px,4vw,50px)}
.resident-roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.resident-card{background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:transform .18s ease,border-color .18s ease}
.resident-card:hover{transform:translateY(-2px);border-color:var(--gold)}
.resident-photo{aspect-ratio:3/4;background:#11100e;overflow:hidden}
.resident-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 24%}
.resident-card-body{padding:18px 18px 20px}
.resident-card-body h3{margin:0;font-size:21px;line-height:1.15;color:var(--bone)}
@media(max-width:980px){.resident-roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.resident-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.resident-card-body{padding:14px}.resident-card-body h3{font-size:18px}.resident-class-section{margin-top:54px}}
@media(max-width:430px){.resident-roster-grid{grid-template-columns:1fr 1fr}.resident-card-body h3{font-size:16px}}



/* ===== FINAL PHOTO + PROFILE POLISH ===== */
.photo-slot.has-image{
  background-size:cover;
  background-repeat:no-repeat;
  background-color:#11100e;
}
.photo-slot.has-image::before,.photo-slot.has-image::after{display:none}
.photo-slot.has-image .photo-slot-inner{display:none}

.resident-bio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}
.resident-bio-card{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:start;background:var(--panel);border:1px solid var(--line);overflow:hidden;min-height:350px}
.resident-bio-photo{background:#11100e;overflow:hidden;aspect-ratio:3/4;align-self:start}
.resident-bio-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.resident-bio-body{padding:22px}
.resident-bio-body h3{font-size:25px;margin:0 0 8px}
.resident-hometown{color:var(--signal);font:800 12px/1.3 "Roboto Condensed",Arial Narrow,sans-serif;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px}
.resident-bio-body p{color:#d7d2c8;font-size:14px;margin:10px 0}
.resident-bio-body strong{color:var(--bone)}
.class-note{color:var(--slate);max-width:760px;margin:0 0 24px}

.people-landing-grid{margin-top:32px}
.people-landing-grid .path-card{min-height:210px}

.photo-gallery.final-gallery{grid-template-columns:repeat(3,1fr)}
.photo-gallery.final-gallery .photo-slot{min-height:260px;aspect-ratio:4/3}
.photo-gallery.final-gallery .photo-slot:first-child{grid-column:span 2;aspect-ratio:16/9}
.photo-gallery.final-gallery .photo-slot:nth-child(5){grid-column:span 2;aspect-ratio:16/9}

.letter-signature-row .photo-slot.has-image{background-size:cover;background-position:50% 18%}

@media(max-width:980px){
  .resident-bio-grid{grid-template-columns:1fr}
  .photo-gallery.final-gallery{grid-template-columns:repeat(2,1fr)}
  .photo-gallery.final-gallery .photo-slot:first-child,.photo-gallery.final-gallery .photo-slot:nth-child(5){grid-column:span 2}
}
@media(max-width:640px){
  .resident-bio-card{grid-template-columns:145px minmax(0,1fr);min-height:300px}
  .resident-bio-photo{aspect-ratio:3/4}
  .resident-bio-body{padding:16px}
  .resident-bio-body h3{font-size:21px}
  .photo-gallery.final-gallery{grid-template-columns:1fr}
  .photo-gallery.final-gallery .photo-slot:first-child,.photo-gallery.final-gallery .photo-slot:nth-child(5){grid-column:auto;aspect-ratio:4/3}
}


/* 2026-08-15 visual QA revisions */
.program-action-photo{
  aspect-ratio:4/3;
  min-height:0;
  background-size:cover;
  background-position:50% 50% !important;
}
.instagram-link{
  display:inline-flex !important;
  align-items:center;
  gap:7px;
  color:var(--slate);
}
.instagram-link:hover{color:var(--highlight)}
.instagram-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
}
.contact-panel .instagram-link{
  color:var(--bone);
  width:max-content;
}
@media(max-width:760px){
  .people-grid{grid-template-columns:1fr}
  .person-card{grid-template-columns:170px minmax(0,1fr)}
  .photo-slot-headshot{min-height:230px}
}
@media(max-width:520px){
  .person-card{grid-template-columns:135px minmax(0,1fr)}
  .photo-slot-headshot{min-height:185px}
}


/* ===== 2026-08-15 V3 requested refinements ===== */
/* Portraits: preserve natural proportions inside a framed photo well instead of stretching with long bios. */
.person-card{
  grid-template-columns:260px minmax(0,1fr);
  align-items:stretch;
  min-height:0;
}
.portrait-placeholder{
  padding:14px;
  align-items:flex-start;
  justify-content:center;
  border-right:1px solid var(--gold);
  background:#0f0e0c;
}
.portrait-placeholder .photo-slot-headshot{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:3/4;
  border:1px solid var(--line);
  background-size:contain;
  background-repeat:no-repeat;
  background-color:#151412;
}

/* Resident portraits: a deliberate framed photo well with a visible partition from biography/info. */
.resident-bio-photo{
  aspect-ratio:auto;
  align-self:stretch;
  padding:14px;
  border-right:1px solid var(--gold);
  background:#0f0e0c;
}
.resident-bio-photo img{
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:50% 18%;
  border:1px solid var(--line);
}
.resident-photo{
  aspect-ratio:auto;
  padding:12px;
  border-bottom:1px solid var(--gold);
  background:#0f0e0c;
}
.resident-photo img{
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:50% 20%;
  border:1px solid var(--line);
}

/* Program overview tiles now behave as full-card links. */
.feature-link-card{
  display:block;
  color:inherit;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background-color .18s ease;
}
.feature-link-card:hover{
  transform:translateY(-2px);
  border-color:var(--gold);
  background:#1b1916;
}
.feature-link-card h3::after{
  content:"  →";
  color:var(--signal);
  font-size:.72em;
}

/* Photo-backed internal heroes. */
.page-hero.hero-photo{
  background-size:cover;
  background-repeat:no-repeat;
  position:relative;
}
.page-hero.hero-photo .hero-inner{
  position:relative;
  z-index:1;
}
.page-hero.hero-photo h1,.page-hero.hero-photo .lede,.page-hero.hero-photo .eyebrow{
  text-shadow:0 2px 18px rgba(0,0,0,.42);
}

/* Footer Instagram: remove nested generic span margins and close the address-to-social gap. */
.footer-col .instagram-link{
  display:inline-flex !important;
  width:max-content;
  margin:6px 0 9px !important;
  gap:7px;
}
.footer-col .instagram-link span{
  display:inline !important;
  margin:0 !important;
  color:inherit;
}
.footer-col > span + .instagram-link{margin-top:4px !important;}

@media(max-width:760px){
  .person-card{grid-template-columns:190px minmax(0,1fr)}
  .portrait-placeholder .photo-slot-headshot{min-height:0;aspect-ratio:3/4}
}
@media(max-width:520px){
  .person-card{grid-template-columns:145px minmax(0,1fr)}
  .portrait-placeholder{padding:9px}
  .portrait-placeholder .photo-slot-headshot{min-height:0;aspect-ratio:3/4}
  .resident-bio-photo{padding:9px}
  .resident-photo{padding:8px}
}


/* 2026-08-29 content revisions */
.footer-identifiers{margin-top:16px;padding-top:13px;border-top:1px solid var(--line);max-width:230px}
.footer-identifiers span{display:block;margin:5px 0;color:#9d978c;font-size:11px;line-height:1.4}
.path-card-static{cursor:default}
.path-card-static:hover{border-color:var(--line);transform:none}

/* Tablet/touch navigation: the first tap anywhere on a dropdown parent opens the menu. */
@media (hover: none), (pointer: coarse) {
  #nav .nav-group:hover > .dropdown,
  #nav .nav-group:focus-within > .dropdown {
    display:none;
  }
  #nav .nav-group.touch-open > .dropdown {
    display:block;
  }
}
