@import url("/foundation.css?v=20260911h");

/* Final portfolio layer: readable scale, disciplined spacing and progressive responsiveness. */
body{font-size:18px}
.hero h1{max-width:940px;font-size:clamp(58px,6.15vw,90px);line-height:.96}
.hero-copy{font-size:20px;line-height:1.72}
.section-head h2,.case-head h2{font-size:clamp(44px,4.7vw,68px)}
.contact h2{font-size:clamp(46px,4.8vw,70px)}
.case-title h1{font-size:clamp(50px,5.4vw,78px)}
.system-name h3{font-size:28px}
.feature-project p{font-size:18px}

/* Stronger header hierarchy: name is the visual anchor, supporting text stays clearly secondary. */
.header-inner{min-height:96px}
.identity strong{font-size:34px;font-weight:760;letter-spacing:-.04em}
.identity span{font-size:20px;line-height:1.3}
.nav a,.header-actions a{font-size:18px}

/* Keep long-form copy readable without stretching compact profile content. */
.hero-copy,.proof-row p,.section-head>p,.system-body>p,.feature-project p,.lab-row>p,.oss-entry p,.timeline-row>p,.depth p,.contact p,.case-title .lede,.case-head>p,.record-row p,.callout{text-align:left;text-align-last:auto;hyphens:none}

/* Hero profile ledger: clean left alignment and consistent content column. */
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(500px,540px);gap:clamp(54px,5vw,78px)}
.hero-side{width:100%;max-width:540px;justify-self:end;border-top:1px solid var(--ink)}
.hero-side dl{margin:0}
.meta-row{grid-template-columns:110px minmax(0,1fr);gap:28px;align-items:start;padding:22px 0}
.meta-row dt{padding-top:3px;line-height:1.45;white-space:nowrap}
.meta-row dd{margin:0;font-size:17px;line-height:1.58;letter-spacing:0;text-align:left!important;text-align-last:auto!important;text-wrap:pretty;overflow-wrap:normal;hyphens:none;word-spacing:normal}
.meta-row dd strong{display:block;margin-bottom:2px;line-height:1.45;text-align:left!important;text-align-last:auto!important;word-spacing:normal;letter-spacing:0}
.meta-row:nth-child(2) dd strong{white-space:nowrap}
.meta-row:nth-child(n+3) dd strong{line-height:1.6}
.meta-row dd strong+br{display:none}
.quick-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:12px 26px;padding-top:20px}
.quick-links a{font-size:14px;white-space:nowrap}

/* Evidence reads as a ledger rather than a dashboard-card grid. */
.proof-ledger{display:block;margin-top:68px;border-top:1px solid var(--ink);border-bottom:0}
.proof-row{display:grid;grid-template-columns:140px 180px minmax(0,1fr) 120px;gap:28px;align-items:baseline;min-height:0;padding:20px 0;border-right:0;border-bottom:1px solid var(--line)}
.proof-row .label{order:initial;font-size:12px}
.proof-row strong{order:initial;font-size:27px}
.proof-row p{order:initial;margin:0;font-size:16px;line-height:1.68}
.proof-row .source{order:initial;margin:0;padding:0;text-align:right;font-size:11px}

/* Laptop/tablet: profile becomes a balanced 2x2 ledger below the hero. */
@media(max-width:1180px){
  .hero-grid{grid-template-columns:1fr;gap:46px}
  .hero-side{max-width:none;justify-self:stretch}
  .hero-side dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .meta-row{grid-template-columns:90px minmax(0,1fr);gap:22px;padding:20px 0}
  .meta-row:nth-child(odd){padding-right:28px;border-right:1px solid var(--line)}
  .meta-row:nth-child(even){padding-left:28px}
  .meta-row:nth-child(2) dd strong{white-space:normal}
  .quick-links{max-width:none;padding-top:18px}
  .proof-row{grid-template-columns:120px 155px minmax(0,1fr) 95px;gap:22px}
}

/* Mobile navigation remains visible without JS; JS upgrades it to the compact menu. */
@media(max-width:820px){
  .header-inner{height:auto;min-height:82px;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .identity strong{font-size:29px}
  .identity span{font-size:17px}
  .header-actions{display:none}
  .nav{display:flex;position:static;grid-column:1/-1;flex-wrap:wrap;gap:0 20px;padding:0 0 12px;background:transparent;border:0;box-shadow:none}
  .nav a{padding:8px 0;border:0;font-size:17px}
  .nav a::after{display:none}
  .js .menu-toggle{display:inline-flex;align-items:center;justify-content:center;border-radius:0}
  .js .nav{display:none;position:absolute;top:100%;left:0;right:0;grid-column:auto;flex-direction:column;gap:0;padding:8px var(--gutter) 16px;background:rgba(244,244,240,.99);border-bottom:1px solid var(--line-strong);box-shadow:0 18px 34px rgba(16,17,18,.07)}
  .js .nav.nav-open{display:flex}
  .js .nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
  .js .nav a:last-child{border-bottom:0}
}

@media(max-width:900px){
  body{font-size:17px}
  .hero h1{font-size:clamp(50px,8.2vw,72px)}
  .section-head h2,.case-head h2{font-size:clamp(40px,7vw,58px)}
  .proof-row{grid-template-columns:110px 150px minmax(0,1fr);gap:18px}
  .proof-row .source{display:none}
}

/* Phone: labels become captions above full-width values. */
@media(max-width:700px){
  .hero-grid{gap:38px}
  .hero-side{border-top:1px solid var(--ink)}
  .hero-side dl{display:block}
  .meta-row{display:block;padding:18px 0 20px;border-bottom:1px solid var(--line)}
  .meta-row:nth-child(odd),.meta-row:nth-child(even){padding-left:0;padding-right:0;border-right:0}
  .meta-row dt{padding:0 0 7px;font-size:11px;line-height:1.3;letter-spacing:.1em}
  .meta-row dd{margin:0;font-size:16px;line-height:1.58;text-align:left!important;text-align-last:auto!important;text-wrap:pretty}
  .meta-row dd strong{display:block;margin:0 0 3px;font-size:17px;line-height:1.4;white-space:normal;text-align:left!important;text-align-last:auto!important}
  .quick-links{display:flex;width:100%;max-width:none;justify-content:flex-start;gap:12px 24px;padding-top:18px}
  .quick-links a{font-size:14px}
}

@media(max-width:620px){
  body{font-size:16px}
  .identity{gap:10px}
  .identity strong{font-size:26px}
  .identity span{font-size:15px}
  .hero h1{font-size:clamp(42px,12.5vw,56px);line-height:.99}
  .hero-copy{font-size:18px}
  .section-head h2,.case-head h2{font-size:clamp(38px,11vw,50px)}
  .case-title h1{font-size:clamp(42px,12vw,56px)}
  .proof-ledger{margin-top:50px}
  .proof-row{grid-template-columns:1fr auto;gap:8px 16px;padding:18px 0}
  .proof-row .label{grid-column:1}
  .proof-row strong{grid-column:2;grid-row:1;font-size:23px;text-align:right}
  .proof-row p{grid-column:1/-1;font-size:15px}
}

@media(max-width:390px){
  .identity strong{font-size:24px}
  .identity span{font-size:14px}
  .meta-row{padding:16px 0 18px}
  .meta-row dd{font-size:15px}
  .meta-row dd strong{font-size:16px}
  .quick-links{gap:10px 18px}
  .quick-links a{font-size:13px}
}

/* Editorial rebuild: tighter hierarchy, less empty space, no forced justification. */
.hero-copy,.proof-row p,.section-head>p,.system-body>p,.feature-project p,.lab-row>p,.oss-entry p,.timeline-row>p,.depth p,.contact p,
.case-title .lede,.case-head>p,.record-row p,.callout{
  text-align:left!important;
  text-align-last:auto!important;
  text-justify:auto!important;
  hyphens:none!important;
  word-spacing:normal!important;
}

@media(min-width:901px){
  .section-head{
    grid-template-columns:116px minmax(0,1fr);
    column-gap:clamp(30px,3vw,46px);
    row-gap:20px;
    align-items:start;
    margin-bottom:clamp(44px,4.6vw,60px);
  }
  .section-head .section-no{grid-column:1;grid-row:1 / span 2}
  .section-head h2{grid-column:2;max-width:none;width:100%;text-wrap:pretty}
  .section-head>p{
    grid-column:2;
    max-width:1100px;
    width:100%;
    margin:0;
    font-size:18px;
    line-height:1.66;
  }

  .system-row{
    grid-template-columns:42px minmax(320px,360px) minmax(0,1fr) minmax(170px,195px);
    gap:clamp(24px,2.4vw,38px);
    padding:36px 0;
  }
  .system-name h3{
    max-width:350px;
    font-size:clamp(28px,2vw,32px);
    line-height:1.12;
    letter-spacing:-.035em;
  }
  .system-body{max-width:620px}

  .depth-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-top:1px solid var(--line-strong);
  }
  .depth{
    min-height:190px;
    padding:30px 40px 34px 0;
    border-bottom:1px solid var(--line);
    border-left:0;
  }
  .depth+.depth{padding-left:40px}
  .depth:nth-child(even){border-left:1px solid var(--line)}
  .depth:nth-child(3){padding-left:0;border-left:0}
  .depth h3{font-size:20px;margin-bottom:16px}
  .depth p{max-width:560px;font-size:16px;line-height:1.72}

  /* Career copy: proper justification on full lines only; never stretch the final line. */
  .timeline-row>p{
    width:100%;
    max-width:none;
    text-align:justify!important;
    text-align-last:left!important;
    text-justify:inter-word!important;
    hyphens:auto!important;
    text-wrap:wrap;
    overflow-wrap:normal;
    word-spacing:normal!important;
  }

  /* Contact copy: justify full lines while keeping the final line natural. */
  .contact p{
    text-align:justify!important;
    text-align-last:left!important;
    text-justify:inter-word!important;
    hyphens:auto!important;
    word-spacing:normal!important;
  }
}

/* Career header: use the available desktop width instead of leaving a dead right column. */
@media(min-width:1280px){
  #career .section-head h2{
    max-width:none;
    width:100%;
    font-size:54px;
    line-height:1.02;
    letter-spacing:-.048em;
    white-space:nowrap;
    text-wrap:nowrap;
  }
  #career .section-head>p{
    max-width:none;
    width:100%;
  }
}

@media(max-width:1279px) and (min-width:901px){
  #career .section-head h2{
    max-width:none;
    width:100%;
    font-size:clamp(46px,4.4vw,56px);
    text-wrap:balance;
  }
  #career .section-head>p{max-width:980px}
}

@media(max-width:1180px) and (min-width:901px){
  .system-row{
    grid-template-columns:42px minmax(280px,320px) minmax(0,1fr);
  }
  .system-evidence{
    grid-column:2 / -1;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px 24px;
    margin-top:4px;
  }
  .row-link{grid-column:1/-1}
}

@media(max-width:900px){
  .section-head{
    grid-template-columns:1fr;
    gap:14px;
    margin-bottom:38px;
  }
  .section-head .section-no,.section-head h2,.section-head>p{grid-column:1}
  .section-head .section-no{padding-top:0;margin-bottom:4px}
  .section-head>p{max-width:680px;margin:0;font-size:17px;line-height:1.65}

  .system-row{
    grid-template-columns:38px minmax(0,1fr);
    gap:14px 20px;
    padding:28px 0;
  }
  .system-name,.system-body,.system-evidence{grid-column:2}
  .system-name h3{max-width:680px;font-size:clamp(27px,5vw,34px);line-height:1.12}
  .system-body{max-width:720px}
  .system-evidence{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}
  .row-link{grid-column:1/-1}

  .depth-grid{grid-template-columns:1fr}
  .depth,.depth+.depth{
    padding:24px 0 28px;
    border-left:0;
    border-bottom:1px solid var(--line);
  }
  .depth h3{font-size:19px}
  .depth p{font-size:16px;max-width:680px}
}
