/* =========================================================
   DANIEL ADEYEMI — THINGS I'VE BUILT
   Core stylesheet
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=Fraunces:opsz,wght@9..144,340;9..144,400;9..144,480&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --ink:        #121110;
  --ink-soft:   #211f1c;
  --paper:      #F5F2EA;
  --paper-dim:  #EDE9DD;
  --grey:       #87837C;
  --grey-line:  #C9C4B7;
  --concrete:   #DAD6CD;
  --orange:     #D9531E;
  --orange-dim: #B8441A;
  --yellow:     #C9A227;
  --white:      #FFFFFF;

  --sans: 'Archivo', -apple-system, BlinkMacSystemFont, sans-serif;
  --serif: 'Fraunces', Georgia, serif;
  --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;

  --edge: 1px solid var(--grey-line);
  --edge-dark: 1px solid rgba(18,17,16,0.14);
  --edge-on-dark: 1px solid rgba(245,242,234,0.18);

  --gutter: clamp(20px, 4vw, 56px);
  --maxw: 1320px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,*::before,*::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
button{ font-family: inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }

:focus-visible{
  outline: 2px solid var(--orange);
  outline-offset: 3px;
}

.wrap{
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

/* ---------- utility type ---------- */
.eyebrow{
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--grey);
}
.eyebrow.on-dark{ color: rgba(245,242,234,0.62); }
.eyebrow em{ font-style:normal; color: var(--orange); }

.stat-num{ font-family: var(--mono); }

.section-pad{ padding: clamp(56px, 9vw, 128px) 0; }
.rule{ border:0; border-top: var(--edge); margin:0; }
.rule.dark{ border-top: var(--edge-on-dark); }

/* ============ NAV ============ */
.site-header{
  position: sticky; top:0; z-index: 200;
  background: rgba(245,242,234,0.92);
  backdrop-filter: blur(10px);
  border-bottom: var(--edge);
  transition: padding .35s ease;
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: 20px var(--gutter);
  max-width: var(--maxw); margin:0 auto;
  transition: padding .35s ease;
}
.site-header.compact .nav{ padding-top: 12px; padding-bottom: 12px; }

.brand{
  display:flex; flex-direction:column; line-height:1.05;
}
.brand .name{
  font-family: var(--sans); font-weight:700; font-size: 15.5px; letter-spacing: 0.01em;
}
.brand .role{
  font-family: var(--mono); font-size: 10px; letter-spacing:0.06em; color: var(--grey); text-transform:uppercase; margin-top:3px;
}

.nav-links{
  display:flex; gap: clamp(16px,2.4vw,34px); align-items:center;
}
.nav-links a{
  font-size: 13.5px; font-weight: 600; letter-spacing:0.01em;
  position:relative; padding: 6px 0; color: var(--ink-soft);
}
.nav-links a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--orange);
  transition: right .25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{ right:0; }
.nav-links a.active{ color: var(--orange); }

.nav-cta{
  font-family: var(--mono); font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase;
  border: 1.5px solid var(--ink); padding: 10px 16px;
  display:inline-flex; align-items:center; gap:8px;
  transition: background .2s ease, color .2s ease;
}
.nav-cta:hover{ background: var(--ink); color: var(--paper); }

.nav-toggle{
  display:none;
  width: 42px; height: 34px;
  border: 1.5px solid var(--ink);
  background: transparent;
  position: relative;
}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after{
  content:''; position:absolute; left:9px; right:9px; height:1.5px; background: var(--ink);
}
.nav-toggle::before{ top:11px; }
.nav-toggle span{ top:16px; }
.nav-toggle::after{ top:21px; }

.mobile-panel{
  display:none;
  position:fixed; inset:0; top: 0;
  background: var(--ink); color: var(--paper);
  z-index: 300;
  padding: 22px var(--gutter);
  transform: translateY(-100%);
  transition: transform .38s cubic-bezier(.6,0,.2,1);
}
.mobile-panel.open{ transform: translateY(0); }
.mobile-panel-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 40px;}
.mobile-close{ width:42px;height:34px;border:1.5px solid var(--paper); background:transparent; position:relative; }
.mobile-close::before,.mobile-close::after{ content:''; position:absolute; top:50%; left:9px; right:9px; height:1.5px; background:var(--paper); }
.mobile-close::before{ transform: rotate(45deg); }
.mobile-close::after{ transform: rotate(-45deg); }
.mobile-links{ display:flex; flex-direction:column; }
.mobile-links a{
  font-family: var(--serif); font-size: 32px; padding: 16px 0; border-bottom: var(--edge-on-dark);
  display:flex; justify-content:space-between; align-items:center;
}
.mobile-links a span{ font-family: var(--mono); font-size:12px; color: var(--orange); }
.mobile-meta{ margin-top: 36px; font-family: var(--mono); font-size:12px; color: rgba(245,242,234,0.6); line-height:1.9;}

@media (max-width: 880px){
  .nav-links{ display:none; }
  .nav-cta.desktop-only{ display:none; }
  .nav-toggle{ display:block; }
  .mobile-panel{ display:block; }
}

/* ============ BUTTONS / LINKS ============ */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--mono); font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase;
  padding: 15px 22px; border: 1.5px solid var(--ink);
  background: var(--ink); color: var(--paper);
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{ background: var(--orange); border-color:var(--orange); color: var(--white); transform: translateY(-2px); }
.btn.ghost{ background: transparent; color: var(--ink); }
.btn.ghost:hover{ background: var(--ink); color:var(--paper); border-color: var(--ink); }
.btn.on-dark{ border-color: var(--paper); background: var(--paper); color: var(--ink); }
.btn.on-dark:hover{ background: var(--orange); border-color: var(--orange); color: var(--white); }
.btn.ghost-dark{ border-color: rgba(245,242,234,0.5); background: transparent; color: var(--paper); }
.btn.ghost-dark:hover{ background: var(--paper); color: var(--ink); border-color: var(--paper); }

.text-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:14.5px; border-bottom: 1.5px solid var(--ink); padding-bottom:3px;
  transition: gap .2s ease, border-color .2s ease, color .2s ease;
}
.text-link:hover{ gap:13px; border-color: var(--orange); color: var(--orange-dim); }
.text-link.on-dark{ border-color: var(--paper); }
.text-link.on-dark:hover{ border-color: var(--orange); color: var(--orange); }

/* ============ HERO (shared inner-page header) ============ */
.page-hero{
  background: var(--ink); color: var(--paper);
  padding: 150px var(--gutter) 70px;
  position: relative;
  border-bottom: 6px solid var(--orange);
}
.page-hero .wrap{ padding-left:0; padding-right:0; }
.page-hero h1{
  font-family: var(--serif); font-weight:400; font-size: clamp(40px, 6.4vw, 84px);
  line-height: 1.02; letter-spacing: -0.01em; max-width: 15ch; margin-top:18px;
}
.page-hero .sub{
  max-width: 60ch; color: rgba(245,242,234,0.72); font-size: 17px; margin-top:22px; line-height:1.65;
}
.crosshair{
  position:absolute; width:22px; height:22px; opacity:.5;
}
.crosshair::before,.crosshair::after{ content:''; position:absolute; background: var(--orange); }
.crosshair::before{ left:50%; top:0; bottom:0; width:1px; transform:translateX(-50%); }
.crosshair::after{ top:50%; left:0; right:0; height:1px; transform:translateY(-50%); }

/* ============ FOOTER ============ */
.site-footer{
  background: var(--ink); color: var(--paper);
  padding: clamp(56px,8vw,96px) 0 28px;
}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;
  padding-bottom: 48px; border-bottom: var(--edge-on-dark);
}
.footer-statement{
  font-family: var(--serif); font-size: clamp(30px,4.4vw,58px); font-weight:400; line-height:1.05; max-width: 14ch;
}
.footer-cols{
  display:grid; grid-template-columns: repeat(3,minmax(140px,1fr)); gap: 40px;
  padding: 44px 0; border-bottom: var(--edge-on-dark);
}
@media (max-width: 560px){
  .footer-cols{ grid-template-columns: 1fr; gap: 32px; }
}
.footer-col h5{
  font-family: var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color: var(--orange); margin-bottom:16px;
}
.footer-col a, .footer-col p{ display:block; font-size: 14.5px; color: rgba(245,242,234,0.78); padding: 6px 0; }
.footer-col a:hover{ color: var(--orange); }
.footer-bottom{
  display:flex; justify-content:space-between; padding-top:24px; font-family:var(--mono); font-size:11.5px; color: rgba(245,242,234,0.5); flex-wrap:wrap; gap:10px;
}

/* ============ SPEC TABLE ============ */
.spec-table{ width:100%; border-collapse:collapse; }
.spec-table tr{ border-bottom: var(--edge); }
.spec-table tr:first-child{ border-top: var(--edge); }
.spec-table td{ padding: 15px 4px; font-size:14.5px; }
.spec-table td:first-child{ color:var(--grey); width:46%; }
.spec-table td:last-child{ font-family: var(--mono); font-weight:600; text-align:right; }
.spec-table.on-dark tr{ border-color: rgba(245,242,234,0.16); }
.spec-table.on-dark td:first-child{ color: rgba(245,242,234,0.56); }

/* ============ TAGS ============ */
.tag{
  font-family: var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
  border: 1px solid var(--ink); padding: 5px 10px; display:inline-block;
}
.tag.o{ border-color: var(--orange); color: var(--orange-dim); }

/* scrollbar-lite for horizontal mobile scrollers */
.hscroll{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type: x mandatory; padding-bottom:8px; -webkit-overflow-scrolling:touch; }
.hscroll::-webkit-scrollbar{ height:4px; }
.hscroll::-webkit-scrollbar-thumb{ background: var(--grey-line); }
.hscroll > *{ scroll-snap-align:start; flex-shrink:0; }

/* reveal-on-scroll (single orchestrated pattern, applied sparingly) */
.reveal{ opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ============ ABOUT PAGE ============ */
.about-grid{ display:grid; grid-template-columns: 360px 1fr; gap: 56px; }
.about-portrait{ width:100%; height: 460px; object-fit:cover; }
.about-lead{ font-family: var(--serif); font-size: 24px; line-height:1.4; margin-top:14px; }
.about-copy p{ margin-top:20px; font-size:15.5px; line-height:1.72; color: var(--ink-soft); max-width: 62ch; }
@media (max-width: 820px){ .about-grid{ grid-template-columns:1fr; gap:28px; } .about-portrait{ height:340px; } }

.think-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.quote-lg.on-dark{ color: var(--paper); }
.think-copy p{ margin-top:16px; color: rgba(245,242,234,.72); font-size:15.5px; line-height:1.72; }
@media (max-width:820px){ .think-grid{ grid-template-columns:1fr; gap:20px; } }

.howiwork-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 0; border-top:var(--edge); border-left:var(--edge); }
.hiw-item{ padding: 26px 22px; border-right:var(--edge); border-bottom:var(--edge); }
.hiw-num{ font-family:var(--mono); font-size:12px; color:var(--orange-dim); }
.hiw-item h3{ font-family:var(--serif); font-weight:400; font-size:21px; margin-top:14px; }
.hiw-item p{ margin-top:10px; font-size:14px; color:var(--grey); line-height:1.6; }
@media (max-width:820px){ .howiwork-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:480px){ .howiwork-grid{ grid-template-columns: 1fr; } }

.what-care{ background: var(--paper-dim); }

.life-grid{ display:grid; grid-template-columns: 380px 1fr; gap: 48px; }
.life-img{ width:100%; height:480px; object-fit:cover; }
.life-list li{ padding: 16px 0; border-bottom: var(--edge); }
.life-list li:first-child{ padding-top:0; }
.life-list h4{ font-size:15px; font-weight:700; }
.life-list p{ margin-top:6px; font-size:14px; color:var(--grey); line-height:1.6; max-width:56ch; }
@media (max-width:820px){ .life-grid{ grid-template-columns:1fr; gap:24px; } .life-img{ height:300px; } }

/* ============ SHARED PROJECT / DETAIL PAGE COMPONENTS ============ */
.case-header{ display:flex; flex-wrap:wrap; gap: 40px; justify-content:space-between; }
.case-meta-table{ display:flex; flex-direction:column; min-width:220px; }
.case-meta-row{ display:flex; justify-content:space-between; gap:24px; padding: 10px 0; border-bottom: var(--edge-on-dark); font-size:13.5px; }
.case-meta-row span:first-child{ color: rgba(245,242,234,.55); }
.case-meta-row span:last-child{ font-family: var(--mono); font-weight:600; }

.case-hero-img{ width:100%; height: clamp(280px,46vw,560px); object-fit:cover; margin-top: -1px; }

.two-col{ display:grid; grid-template-columns: 1fr 1fr; gap: 48px; }
@media (max-width:820px){ .two-col{ grid-template-columns:1fr; gap:24px; } }

.detail-label{ margin-bottom:14px; }
.detail-block p{ font-size:15.5px; line-height:1.72; color: var(--ink-soft); }
.detail-block p + p{ margin-top:14px; }

.condition-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:0; border-top:var(--edge); border-left:var(--edge); }
.condition-item{ padding:22px 18px; border-right:var(--edge); border-bottom:var(--edge); }
.condition-item .eyebrow{ margin-bottom:10px; }
.condition-item p{ font-size:14px; color:var(--ink-soft); line-height:1.55; }
@media (max-width:820px){ .condition-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:480px){ .condition-grid{ grid-template-columns: 1fr; } }

.drawing-frame{ border: var(--edge); background: var(--paper-dim); padding: clamp(20px,3vw,40px); }
.drawing-frame svg{ width:100%; height:auto; }
.drawing-frame .eyebrow{ margin-bottom: 18px; }

.problem-callout{
  border-left: 4px solid var(--orange); background: var(--paper-dim); padding: 26px 28px; margin: 8px 0;
}
.problem-callout p{ font-size:16px; line-height:1.65; }
.problem-callout .eyebrow{ margin-bottom:10px; }

.result-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background: var(--grey-line); border: var(--edge); }
.result-item{ background: var(--paper); padding: 26px 22px; }
.result-item .stat-num{ font-size: clamp(28px,3.4vw,40px); font-weight:600; display:block; color: var(--orange-dim); }
.result-item .stat-label{ margin-top:8px; font-size:13.5px; color:var(--grey); }
@media (max-width:760px){ .result-grid{ grid-template-columns:1fr; } }

.lesson-block{ background: var(--ink); color: var(--paper); padding: clamp(32px,5vw,56px); }
.lesson-block .eyebrow.on-dark{ margin-bottom:16px; }
.lesson-block p{ font-family: var(--serif); font-size: clamp(22px,3vw,32px); line-height:1.4; max-width: 30ch; }

.case-nav{ display:flex; justify-content:space-between; align-items:center; padding-top: 32px; border-top: var(--edge); flex-wrap:wrap; gap:16px; }

.gallery-strip{ display:grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.gallery-strip img{ width:100%; height: 260px; object-fit:cover; }
@media (max-width:760px){ .gallery-strip{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .gallery-strip{ grid-template-columns:1fr; } }

/* ============ SPEC TABLE VARIANT already in style.css ============ */

/* ============ TIMELINE (experience) ============ */
.timeline{ position:relative; padding-left: 32px; border-left: var(--edge); }
.tl-item{ position:relative; padding: 0 0 48px 28px; }
.tl-item::before{
  content:''; position:absolute; left: -37px; top:4px; width:11px; height:11px; border-radius:50%;
  background: var(--paper); border: 2px solid var(--orange);
}
.tl-year{ font-family: var(--mono); font-size:13px; color:var(--orange-dim); font-weight:600; }
.tl-item h3{ font-family: var(--serif); font-weight:400; font-size:24px; margin-top:8px; }
.tl-item p{ margin-top:8px; font-size:14.5px; color: var(--grey); max-width: 56ch; line-height:1.6; }
.tl-item img{ margin-top:16px; width:100%; max-width:420px; height:220px; object-fit:cover; }

/* ============ CERTIFICATIONS ============ */
.cert-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 22px; }
.cert-card{
  border: var(--edge); background: var(--paper); padding: 0; cursor:pointer; overflow:hidden;
  width:100%; text-align:left; font-family:inherit; display:block; transition: border-color .2s ease, transform .2s ease;
}
.cert-card:hover{ border-color: var(--orange); transform: translateY(-2px); }
.cert-card-top{ padding: 26px 26px 22px; border-bottom: 1px dashed var(--grey-line); }
.cert-card-top .eyebrow{ margin-bottom:10px; }
.cert-card-top h3{ font-family: var(--serif); font-weight:400; font-size:23px; line-height:1.25; }
.cert-card-bottom{ padding: 16px 26px 22px; display:flex; justify-content:space-between; font-family:var(--mono); font-size:12.5px; color:var(--grey); }
.cert-card-bottom b{ color: var(--ink); }
@media (max-width:700px){ .cert-grid{ grid-template-columns:1fr; } }

/* ============ PUBLICATIONS ============ */
.pub-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 36px; }
.pub-filter{
  font-family: var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em;
  border: 1px solid var(--ink); padding: 9px 15px; background:transparent; transition: background .2s ease, color .2s ease;
}
.pub-filter.active, .pub-filter:hover{ background: var(--ink); color: var(--paper); }

.pub-list{ display:flex; flex-direction:column; }
.pub-row{
  display:grid; grid-template-columns: 130px 1fr 130px; gap: 20px; align-items:baseline;
  padding: 26px 0; border-bottom: var(--edge);
  width:100%; background:transparent; border-left:none; border-right:none; border-top:none; text-align:left; cursor:pointer;
  font-family: inherit;
}
.pub-row:hover h3{ color: var(--orange-dim); }
.pub-row:hover .pub-time{ color: var(--ink); }
.pub-row .eyebrow{ font-size:11px; }
.pub-row h3{ font-family: var(--serif); font-weight:400; font-size: 22px; }
.pub-row .pub-time{ text-align:right; font-family:var(--mono); font-size:12.5px; color:var(--grey); }
@media (max-width:700px){ .pub-row{ grid-template-columns: 1fr; gap:8px; } .pub-row .pub-time{ text-align:left; } }

.notes-archive{ display:grid; grid-template-columns: repeat(2,1fr); gap:1px; background: var(--grey-line); border: var(--edge); margin-top: 20px; }
@media (max-width:700px){ .notes-archive{ grid-template-columns:1fr; } }

/* ============ CONTACT / INTAKE ============ */
.intake{ border: var(--edge); background: var(--paper); }
.intake-progress{ display:flex; border-bottom: var(--edge); }
.intake-progress span{
  flex:1; text-align:center; padding: 14px 6px; font-family:var(--mono); font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase;
  color: var(--grey); border-right: var(--edge); background: var(--paper-dim);
}
.intake-progress span:last-child{ border-right:none; }
.intake-progress span.active{ color: var(--paper); background: var(--ink); }
.intake-progress span.done{ color: var(--orange-dim); background: var(--paper); }

.intake-body{ padding: clamp(24px,4vw,48px); min-height: 340px; }
.intake-step{ display:none; }
.intake-step.active{ display:block; }
.intake-step h3{ font-family: var(--serif); font-weight:400; font-size: clamp(24px,3vw,32px); }
.intake-step .step-sub{ margin-top:8px; color:var(--grey); font-size:14.5px; }

.choice-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:12px; margin-top:28px; }
.choice{
  border: 1.5px solid var(--grey-line); padding: 18px 16px; text-align:left; background:transparent; font-size:14.5px; font-weight:600;
  transition: border-color .2s ease, background .2s ease;
}
.choice:hover{ border-color: var(--ink); }
.choice.selected{ border-color: var(--orange); background: rgba(217,83,30,.08); color: var(--orange-dim); }
@media (max-width:600px){ .choice-grid{ grid-template-columns: repeat(2,1fr); } }

.field-row{ margin-top:22px; }
.field-row label{ display:block; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--grey); margin-bottom:8px; }
.field-row input, .field-row textarea, .field-row select{
  width:100%; border: 1.5px solid var(--grey-line); background: var(--paper); padding: 13px 14px; font-family: var(--sans); font-size:15px; color:var(--ink);
}
.field-row input:focus, .field-row textarea:focus, .field-row select:focus{ border-color: var(--ink); outline:none; }
.field-row textarea{ min-height: 140px; resize: vertical; }
.field-2col{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .field-2col{ grid-template-columns:1fr; } }

.intake-nav{ display:flex; justify-content:space-between; padding: 20px clamp(24px,4vw,48px); border-top: var(--edge); background: var(--paper-dim); }
.intake-nav button{ font-family: var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:0.05em; }
.btn-nav-next{ display:inline-flex; align-items:center; gap:8px; padding: 13px 22px; background: var(--ink); color: var(--paper); border:1.5px solid var(--ink); transition: background .2s ease; }
.btn-nav-next:hover{ background: var(--orange); border-color:var(--orange); }
.btn-nav-back{ padding: 13px 18px; background: transparent; border: 1.5px solid transparent; color: var(--grey); }
.btn-nav-back:hover{ color: var(--ink); }
.btn-nav-back:disabled{ opacity:0; pointer-events:none; }

.intake-success{ display:none; text-align:center; padding: 70px clamp(20px,4vw,40px); }
.intake-success.active{ display:block; }
.intake-success h3{ font-family: var(--serif); font-weight:400; font-size: clamp(26px,3.4vw,38px); }
.intake-success p{ margin-top:14px; color: var(--grey); max-width:44ch; margin-left:auto; margin-right:auto; }

.contact-info-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--grey-line); border: var(--edge); margin-top: 56px; }
.contact-info-item{ background: var(--paper); padding: 26px 24px; }
.contact-info-item .eyebrow{ margin-bottom:12px; }
.contact-info-item a, .contact-info-item p{ display:block; font-size: 15px; padding: 4px 0; }
.contact-info-item a:hover{ color: var(--orange-dim); }
@media (max-width:760px){ .contact-info-grid{ grid-template-columns:1fr; } }

/* ============ EXPERTISE PAGE EXTRA ============ */
.expertise-detail{ display:grid; grid-template-columns: repeat(2,1fr); gap: 40px; margin-top: 20px;}
@media (max-width:760px){ .expertise-detail{ grid-template-columns: 1fr; } }
.expertise-block{ border-top: var(--edge); padding-top:22px; }
.expertise-block h3{ font-family: var(--serif); font-weight:400; font-size:26px; }
.expertise-block ul{ margin-top:16px; }
.expertise-block li{ padding: 10px 0; border-bottom: 1px dashed var(--grey-line); font-size:14.5px; display:flex; justify-content:space-between; }
.expertise-block li span{ font-family: var(--mono); font-size:11.5px; color: var(--grey); }

/* ============ PROJECTS ARCHIVE PAGE ============ */
.pf-bar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 40px; }
.archive-list{ display:flex; flex-direction:column; }
.arow{
  display:grid; grid-template-columns: 60px 1.6fr 1fr 1fr auto; gap:20px; align-items:center;
  padding: 26px 4px; border-bottom: var(--edge); transition: background .2s ease;
}
.arow:first-child{ border-top: var(--edge); }
.arow:hover{ background: var(--paper-dim); }
.arow-num{ font-family:var(--mono); color:var(--grey); font-size:13px; }
.arow-title{ font-family: var(--serif); font-size: 23px; }
.arow-type{ font-size:13.5px; color:var(--grey); }
.arow-meta{ font-family:var(--mono); font-size:12.5px; color:var(--grey); }
.arow-metric{ font-family:var(--mono); font-size:13px; font-weight:600; color: var(--orange-dim); white-space:nowrap; }
@media (max-width:820px){
  .arow{ grid-template-columns: 40px 1fr; row-gap:6px; }
  .arow-type, .arow-meta{ grid-column: 2; }
  .arow-metric{ grid-column:2; }
}

/* ============ MODAL / DOCUMENT VIEWER (publications, field notes, certifications) ============ */
.modal-scrim{
  position: fixed; inset:0; background: rgba(18,17,16,.72); z-index: 500;
  display:flex; align-items:flex-start; justify-content:center;
  padding: 6vh 20px; overflow-y:auto;
  opacity:0; visibility:hidden; transition: opacity .25s ease;
}
.modal-scrim.open{ opacity:1; visibility:visible; }
.modal-panel{
  background: var(--paper); max-width: 720px; width:100%; position:relative;
  border: 1px solid var(--grey-line);
  transform: translateY(18px); transition: transform .3s ease;
  margin-bottom: 6vh;
}
.modal-scrim.open .modal-panel{ transform: translateY(0); }
.modal-close{
  position:absolute; top:18px; right:18px; width:38px; height:38px;
  border: 1.5px solid var(--ink); background: var(--paper); z-index:2;
}
.modal-close::before,.modal-close::after{ content:''; position:absolute; top:50%; left:8px; right:8px; height:1.5px; background:var(--ink); }
.modal-close::before{ transform: rotate(45deg); }
.modal-close::after{ transform: rotate(-45deg); }
.modal-close:hover{ background: var(--ink); }
.modal-close:hover::before,.modal-close:hover::after{ background: var(--paper); }

.modal-body{ padding: clamp(28px,5vw,56px); }
.modal-body .eyebrow{ margin-bottom: 14px; }
.modal-body h2{ font-family: var(--serif); font-weight:400; font-size: clamp(26px,3.6vw,38px); line-height:1.15; padding-right: 40px; }
.modal-meta{ display:flex; gap:18px; margin-top:16px; padding-bottom:22px; border-bottom: var(--edge); flex-wrap:wrap; }
.modal-meta span{ font-family: var(--mono); font-size:12px; color: var(--grey); }
.modal-body-copy{ margin-top:24px; }
.modal-body-copy p{ font-size:15.5px; line-height:1.75; color: var(--ink-soft); }
.modal-body-copy p + p{ margin-top:16px; }
.modal-body-copy h4{ font-family: var(--serif); font-weight:400; font-size:19px; margin-top:26px; margin-bottom:10px; }

/* certificate-style modal variant */
.modal-panel.cert-doc{ max-width: 640px; }
.cert-doc-inner{
  padding: clamp(32px,5vw,56px); border: 1px solid var(--grey-line); margin: clamp(14px,2vw,20px);
  position:relative;
}
.cert-doc-inner::before{
  content:''; position:absolute; inset:8px; border: 1px solid var(--grey-line); pointer-events:none;
}
.cert-doc-seal{
  width:56px; height:56px; border: 1.5px solid var(--orange); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:24px;
  font-family: var(--mono); font-size:10px; color: var(--orange-dim); text-align:center; line-height:1.3;
}
.cert-doc-inner h2{ font-family: var(--serif); font-weight:400; font-size: clamp(24px,3.2vw,32px); line-height:1.2; margin-top:6px; }
.cert-doc-sub{ font-size:15px; color: var(--grey); margin-top:10px; }
.cert-doc-table{ margin-top:28px; }
.cert-doc-desc{ margin-top:24px; font-size:14.5px; line-height:1.7; color: var(--ink-soft); padding-top:20px; border-top: 1px dashed var(--grey-line); }
