:root{--paper:#f6f3eb;--ink:#18232d;--blue:#1f5d87;--grid:rgba(59,116,153,.055);--line:rgba(24,35,45,.16);--muted:#65717a;--accent:#d29a38}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),linear-gradient(rgba(59,116,153,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(59,116,153,.022) 1px,transparent 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px}.sheet-progress{position:fixed;inset:0 0 auto;z-index:50;height:3px;background:rgba(255,255,255,.4)}.sheet-progress span{display:block;height:100%;width:0;background:var(--blue)}.site-header{position:fixed;z-index:40;top:3px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,64px);backdrop-filter:blur(14px);background:rgba(246,243,235,.82);border-bottom:1px solid var(--line)}.brand{display:grid;color:inherit;text-decoration:none;letter-spacing:.08em}.brand strong{font-size:13px}.brand small{font-size:9px;color:var(--muted);margin-top:3px}.site-header nav{display:flex;gap:28px}.site-header nav a{color:inherit;text-decoration:none;font-size:13px}.site-header nav a:hover{color:var(--blue)}.menu-btn{display:none;background:none;border:0;font-size:22px}.scene{position:relative;min-height:100vh;padding:150px clamp(24px,7vw,110px) 90px;border-bottom:1px solid var(--line);overflow:hidden}.station{position:absolute;right:clamp(18px,3vw,46px);top:120px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--blue);writing-mode:vertical-rl}.eyebrow,.micro{font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,7.7vw,112px);line-height:.92;max-width:1200px;letter-spacing:-.055em;margin-bottom:34px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--blue)}h2{font-size:clamp(38px,5vw,74px);line-height:1;letter-spacing:-.045em;max-width:940px}.lede{font-size:clamp(17px,2vw,24px);line-height:1.55;max-width:710px;color:#3c4851}.hero{display:grid;align-content:center}.hero-copy{position:relative;z-index:2}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;padding:13px 18px;border:1px solid var(--ink);color:inherit;text-decoration:none;font-size:13px;background:rgba(246,243,235,.74)}.btn.primary{background:var(--ink);color:white}.hero-drawing{position:absolute;right:-8%;bottom:-6%;width:58%;height:60%;opacity:.52;transform:rotate(-4deg)}.road{position:absolute;width:110%;height:95px;border-top:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-16deg);border-radius:50%}.road-a{top:34%;left:0}.road-b{top:49%;left:5%;border-style:dashed}.dimension{position:absolute;font:11px ui-monospace;color:var(--blue);border-top:1px solid var(--blue);padding-top:5px}.d1{top:22%;left:18%;width:120px}.d2{top:70%;right:19%;width:180px}.titleblock{position:absolute;right:4%;bottom:3%;display:grid;grid-template-columns:auto auto;border:1px solid var(--ink);font:9px ui-monospace;background:var(--paper)}.titleblock>*{padding:6px 9px;border:1px solid var(--line)}.section-head{margin-bottom:70px}.engineering-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.capability{background:rgba(246,243,235,.92);padding:34px;min-height:230px}.capability.large{grid-row:span 2}.capability span{font:10px ui-monospace;color:var(--blue)}.capability h3{font-size:27px;margin:55px 0 12px}.capability p{color:var(--muted);line-height:1.65}.current-work,.credential{margin-top:38px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1.3fr;gap:50px;padding:25px 0}.muted{color:var(--muted)}.work-list>div{display:grid;grid-template-columns:110px 1fr;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.work-list b{font-family:ui-monospace}.credential dl{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0}.credential dl div{border-left:1px solid var(--line);padding-left:14px}.credential dt{font:9px ui-monospace;color:var(--muted);text-transform:uppercase}.credential dd{margin:8px 0 0;font-weight:700}.projects{background:rgba(255,255,255,.18)}.project-card{border:1px solid var(--line);background:rgba(246,243,235,.88);padding:28px}.project-card h3{font-size:30px;margin:30px 0 12px}.project-card p{line-height:1.6;color:#4b5862}.flagship{padding:clamp(28px,4vw,60px);margin-bottom:20px}.flagship h3{font-size:clamp(42px,6vw,78px);max-width:800px}.project-meta{display:flex;justify-content:space-between;font:10px ui-monospace;color:var(--blue);letter-spacing:.1em}.fake-ui{margin:35px 0;min-height:290px;border:1px solid var(--line);display:grid;grid-template-columns:155px 1fr;background:#e8edf0;box-shadow:0 28px 60px rgba(24,35,45,.12)}.fake-sidebar{border-right:1px solid var(--line);background:#202c36}.fake-canvas{padding:28px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.fake-canvas i{display:block;background:rgba(255,255,255,.8);border:1px solid rgba(24,35,45,.08)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.text-link{color:var(--blue);background:none;border:0;padding:0;text-decoration:none;font:600 13px inherit;cursor:pointer}.journal .entries{border-top:2px solid var(--ink)}.entries article{display:grid;grid-template-columns:110px 150px 1.2fr 1fr;gap:25px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}.entries time,.entries span{font:10px ui-monospace;color:var(--muted)}.entries h3{font-family:Georgia,serif;font-size:24px;font-weight:400}.entries p{color:var(--muted);line-height:1.55}.speaking{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:7vw}.speaking-copy h2{max-width:760px}.speaking-copy>p:not(.eyebrow){font-size:18px;line-height:1.7;max-width:680px}.speaking-facts{border-top:1px solid var(--ink);margin-top:40px}.speaking-facts div{display:grid;grid-template-columns:130px 1fr;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.speaking-facts span{color:var(--muted)}.podium{height:430px;position:relative;border-bottom:14px solid var(--ink);background:linear-gradient(130deg,transparent 50%,rgba(31,93,135,.12) 50%)}.mic{position:absolute;left:50%;top:5%;width:6px;height:200px;background:var(--ink);transform:rotate(-18deg);transform-origin:bottom}.mic:before{content:"";position:absolute;top:-15px;left:-9px;width:25px;height:35px;border-radius:50%;background:var(--ink)}.speech-lines{position:absolute;right:5%;top:25%;display:grid;gap:20px;transform:rotate(4deg)}.speech-lines i{width:220px;border-top:2px solid var(--blue)}.speech-lines i:nth-child(2){width:150px}.about-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:10vw}.about .big{font-family:Georgia,serif;font-size:clamp(30px,4vw,58px);line-height:1.15}.about-notes{font-size:17px;line-height:1.75;color:#4a5660;padding-top:12px}footer{padding:35px clamp(24px,7vw,110px);display:flex;justify-content:space-between;gap:20px;font-size:11px;border-top:1px solid var(--line)}dialog{max-width:760px;border:1px solid var(--ink);padding:40px;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(10,18,24,.62);backdrop-filter:blur(4px)}dialog .close{float:right;border:0;background:none;font-size:28px}.dex-demo{margin-top:30px;background:#0b1117;color:white;padding:30px;display:grid;grid-template-columns:140px 1fr;gap:30px;align-items:end}.glucose{font-size:76px;font-weight:700}.glucose small{font-size:35px;margin-left:8px}.chart{height:130px;display:flex;align-items:end;gap:11px;border-bottom:1px solid #70808c}.chart i{width:10px;border-radius:50%;height:10px;background:#7fd3ff;transform:translateY(var(--y,0))}.chart i:nth-child(1){--y:-20px}.chart i:nth-child(2){--y:-26px}.chart i:nth-child(3){--y:-30px}.chart i:nth-child(4){--y:-33px}.chart i:nth-child(5){--y:-35px}.chart i:nth-child(6){--y:-35px}.chart i:nth-child(7){--y:-36px}@media(max-width:900px){.site-header nav{display:none;position:absolute;top:65px;left:0;right:0;padding:20px 24px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column}.site-header nav.open{display:flex}.menu-btn{display:block}.scene{padding-top:125px}.station{top:95px}.engineering-grid{grid-template-columns:1fr 1fr}.capability.large{grid-row:auto;grid-column:1/-1}.current-work,.credential,.speaking,.about-grid{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.entries article{grid-template-columns:85px 1fr}.entries article>span{grid-column:2}.entries h3,.entries p{grid-column:2}.credential dl{grid-template-columns:1fr 1fr}.podium{height:300px}.hero-drawing{width:90%;opacity:.26}.fake-ui{grid-template-columns:70px 1fr}}@media(max-width:560px){h1{font-size:52px}.scene{padding-left:20px;padding-right:34px;min-height:auto;padding-bottom:80px}.hero{min-height:100svh}.engineering-grid{grid-template-columns:1fr}.capability.large{grid-column:auto}.credential dl{grid-template-columns:1fr}.current-work{gap:20px}.entries article{display:block}.entries article>*{display:block;margin-bottom:10px}.speaking-facts div{grid-template-columns:1fr}.station{right:10px}.fake-canvas{grid-template-columns:1fr}.dex-demo{grid-template-columns:1fr}footer{flex-direction:column}.project-card{padding:22px}}

/* v0.3.0 hero portrait */
.hero{isolation:isolate;min-height:100svh;align-content:center;background:#eef0eb}
.hero-image{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center}
.hero-image-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(246,243,235,.98) 0%,rgba(246,243,235,.93) 27%,rgba(246,243,235,.58) 47%,rgba(246,243,235,.06) 69%,rgba(246,243,235,0) 100%)}
.hero:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(246,243,235,.18),transparent 25%,transparent 78%,rgba(246,243,235,.34))}
.hero-copy{max-width:min(700px,49vw);text-shadow:0 1px 0 rgba(246,243,235,.45)}
.hero .lede{max-width:650px;color:#34424d}
.hero .btn{backdrop-filter:blur(7px)}
@media(max-width:900px){.hero-image{object-position:65% center}.hero-image-shade{background:linear-gradient(90deg,rgba(246,243,235,.98) 0%,rgba(246,243,235,.88) 45%,rgba(246,243,235,.3) 72%,rgba(246,243,235,.05) 100%)}.hero-copy{max-width:62vw}}
@media(max-width:560px){.hero{padding-top:104px;align-content:end;padding-bottom:64px}.hero-image{height:58%;object-position:63% top;object-fit:cover}.hero-image-shade{background:linear-gradient(180deg,rgba(246,243,235,.02) 0%,rgba(246,243,235,.12) 40%,rgba(246,243,235,.92) 64%,rgba(246,243,235,1) 82%)}.hero-copy{max-width:none;padding-top:48vh}.hero .eyebrow{font-size:9px}.hero h1{font-size:46px}.hero .lede{font-size:16px}}

/* v0.3.1 mobile-first polish */
@media(max-width:700px){
  html{scroll-padding-top:76px}
  body{background-size:64px 64px,64px 64px,16px 16px,16px 16px}
  .site-header{padding:13px 16px;min-height:64px;gap:12px}
  .brand strong{font-size:12px}.brand small{font-size:8px;letter-spacing:.04em}
  .menu-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(24,35,45,.12);border-radius:50%;font-size:20px;color:var(--ink)}
  .site-header nav{top:64px;padding:12px 16px 18px;gap:0;background:rgba(246,243,235,.98);backdrop-filter:blur(18px)}
  .site-header nav a{padding:14px 4px;border-bottom:1px solid var(--line);font-size:15px}
  .scene{padding:104px 22px 72px;overflow:hidden}
  .section-head{margin-bottom:42px}.eyebrow,.micro{font-size:9px;letter-spacing:.12em}
  h2{font-size:clamp(36px,11vw,54px);line-height:.98}
  .lede{font-size:17px;line-height:1.55}
  .station{display:none}
  .hero{min-height:100svh;padding:82px 20px calc(32px + env(safe-area-inset-bottom));align-content:end}
  .hero-image{height:61%;object-position:66% top}
  .hero-image-shade{background:linear-gradient(180deg,rgba(246,243,235,0) 0%,rgba(246,243,235,.06) 38%,rgba(246,243,235,.66) 58%,rgba(246,243,235,.97) 73%,rgba(246,243,235,1) 84%)}
  .hero-copy{max-width:none;padding-top:50svh;text-shadow:none}
  .hero h1{font-size:clamp(46px,14vw,64px);line-height:.92;margin-bottom:20px}
  .hero .lede{font-size:16px;max-width:34ch}
  .hero-actions{gap:8px}.hero .btn{flex:1;justify-content:center;min-height:46px;padding:13px 12px}
  .engineering-grid{border-left:0;border-right:0;margin-left:-22px;margin-right:-22px}
  .capability{padding:25px 22px;min-height:auto}.capability h3{font-size:25px;margin:32px 0 9px}
  .current-work,.credential{margin-top:28px;gap:20px;padding:20px 0}
  .work-list>div{grid-template-columns:86px 1fr;gap:8px;font-size:13px}
  .credential dl{grid-template-columns:1fr 1fr;gap:18px 8px}.credential dl div{padding-left:10px}
  .flagship{padding:24px 20px}.flagship h3{font-size:40px}.project-meta{gap:8px;flex-wrap:wrap}
  .fake-ui{min-height:220px;margin:24px 0;grid-template-columns:52px 1fr}.fake-canvas{padding:14px;gap:10px}
  .project-grid{gap:12px}.project-card h3{font-size:27px;margin-top:22px}
  .entries article{padding:22px 0}.entries h3{font-size:25px;line-height:1.15}
  .speaking{gap:38px}.podium{height:250px}.speech-lines i{width:150px}.speech-lines i:nth-child(2){width:105px}
  .about-grid{gap:26px}.about .big{font-size:34px}.about-notes{font-size:16px}
  footer{padding:28px 22px calc(28px + env(safe-area-inset-bottom));gap:8px;font-size:10px}
  dialog{width:calc(100vw - 24px);max-width:none;padding:24px;margin:auto;border-radius:16px}
}
@media(max-width:390px){
  .hero h1{font-size:43px}.hero .lede{font-size:15px}.hero-actions{display:grid;grid-template-columns:1fr}
  .credential dl{grid-template-columns:1fr}
}


/* v0.3.4 transportation hero composition */
@media (min-width:901px){
  .hero-image{object-fit:cover;object-position:center center}
  .hero-image-shade{background:linear-gradient(90deg,#f7f6f1 0%,rgba(247,246,241,.99) 31%,rgba(247,246,241,.94) 40%,rgba(247,246,241,.56) 49%,rgba(247,246,241,.08) 61%,rgba(247,246,241,0) 72%)}
  .hero-copy{max-width:min(660px,39vw)}
}
@media (max-width:900px){
  .hero-image{object-position:68% center}
}

/* v0.3.4 shallower desktop hero — tuned for 100% browser zoom */
@media (min-width:901px){
  .hero.scene{
    min-height:0;
    height:clamp(560px,68vh,650px);
    padding-top:118px;
    padding-bottom:42px;
    align-content:center;
  }
  .hero-copy{max-width:min(700px,42vw)}
  .hero .eyebrow{margin-bottom:16px}
  .hero h1{
    font-size:clamp(58px,5.65vw,88px);
    line-height:.91;
    margin-bottom:22px;
    max-width:760px;
  }
  .hero h1 em{font-size:.88em;line-height:.9}
  .hero .lede{font-size:clamp(16px,1.25vw,20px);line-height:1.48;max-width:620px;margin-bottom:18px}
  .hero-actions{gap:10px}
  .hero .btn{padding:11px 16px}
  .hero-image{object-position:center 46%}
  .hero-image-shade{background:linear-gradient(90deg,#f7f6f1 0%,rgba(247,246,241,.99) 29%,rgba(247,246,241,.94) 39%,rgba(247,246,241,.52) 49%,rgba(247,246,241,.07) 61%,rgba(247,246,241,0) 72%)}
  .hero .station{top:105px}
}
@media (min-width:1500px) and (min-height:900px){
  .hero.scene{height:650px}
}

/* next release: hero-to-engineering spacing refinement */
@media (min-width:901px){
  .hero.scene{
    padding-bottom:64px;
  }
  .hero-copy{
    transform:translateY(-12px);
  }
  #engineering.scene{
    padding-top:112px;
  }
}

/* v0.3.4 mobile hero composition — portrait + headline share the artwork */
@media (max-width:700px){
  .hero.scene{
    min-height:0;
    padding:0 0 calc(30px + env(safe-area-inset-bottom));
    display:block;
    background:var(--paper);
    overflow:hidden;
  }
  .hero-image{
    position:relative;
    z-index:0;
    display:block;
    width:100%;
    height:clamp(520px,72svh,650px);
    object-fit:cover;
    /* Pull the portrait inward instead of pinning him against the right edge. */
    object-position:73% center;
  }
  .hero-image-shade{
    z-index:1;
    height:clamp(520px,72svh,650px);
    bottom:auto;
    background:
      linear-gradient(90deg,rgba(247,246,241,.96) 0%,rgba(247,246,241,.83) 34%,rgba(247,246,241,.28) 55%,rgba(247,246,241,0) 73%),
      linear-gradient(180deg,rgba(247,246,241,.02) 0%,rgba(247,246,241,.02) 68%,rgba(247,246,241,.88) 91%,var(--paper) 100%);
  }
  .hero:after{z-index:1;height:clamp(520px,72svh,650px);bottom:auto;background:linear-gradient(180deg,transparent 70%,var(--paper) 100%)}
  .hero-copy{
    position:relative;
    z-index:2;
    max-width:none;
    padding:0 22px;
    margin-top:calc(-1 * clamp(520px,72svh,650px));
    min-height:clamp(520px,72svh,650px);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    transform:none;
  }
  .hero .eyebrow{
    position:absolute;
    left:22px;
    top:56%;
    width:52%;
    margin:0;
    font-size:8px;
    line-height:1.5;
  }
  .hero h1{
    position:absolute;
    left:22px;
    top:61%;
    width:55%;
    margin:0;
    font-size:clamp(36px,10.6vw,52px);
    line-height:.9;
    letter-spacing:-.055em;
  }
  .hero h1 em{
    display:block;
    margin-top:8px;
    font-size:.78em;
    line-height:.92;
  }
  .hero .lede{
    margin:22px 0 0;
    padding-top:clamp(520px,72svh,650px);
    max-width:none;
    font-size:16px;
    line-height:1.55;
  }
  .hero-actions{margin-top:20px;padding-bottom:4px}
}
@media (max-width:420px){
  .hero-image{object-position:71% center}
  .hero .eyebrow{top:55%;width:56%}
  .hero h1{top:60%;width:58%;font-size:clamp(34px,10.2vw,45px)}
}

/* v0.4 — matte-blue home banner and a deliberately composed mobile experience */
:root{--blue:#205f8c;--matte-blue:#193a54;--matte-blue-deep:#102b42;--paper-blue:#eaf0f3}
.sheet-progress{z-index:41;background:transparent}
.sheet-progress span{background:#b5dced}
.site-header{top:0;background:var(--matte-blue);border-bottom-color:rgba(255,255,255,.22);color:#f7f7f2;backdrop-filter:none}
.site-header.project-header{background:var(--matte-blue);border-bottom-color:rgba(255,255,255,.22)}
.brand{color:#fff}.brand small{color:#b8d2df}
.site-header nav a{color:#f7f7f2}.site-header nav a:hover{color:#b5dced}
.site-header nav a:first-child{color:#b5dced;font-weight:700}
.menu-btn{color:#fff;border-color:rgba(255,255,255,.45)}
@media (min-width:701px){
  .site-header{padding-left:clamp(24px,7vw,110px);padding-right:clamp(24px,7vw,110px)}
  .hero.scene{height:auto;min-height:clamp(640px,72vh,720px);padding-top:124px;align-content:start}
  .hero-image{filter:none;object-position:right 46%}
  .hero-image-shade{background:linear-gradient(90deg,#f7f6f1 0%,rgba(247,246,241,.99) 29%,rgba(247,246,241,.94) 39%,rgba(247,246,241,.52) 49%,rgba(247,246,241,.07) 61%,rgba(247,246,241,0) 72%)}
  .hero:after{background:linear-gradient(180deg,rgba(246,243,235,.18),transparent 25%,transparent 78%,rgba(246,243,235,.34))}
  .hero-copy{color:var(--ink);text-shadow:0 1px 0 rgba(246,243,235,.45)}
  .hero .eyebrow{color:var(--blue)}
  .hero h1 em{color:var(--blue)}
  .hero .lede{color:#34424d}
  .hero .btn{border-color:var(--ink);background:rgba(246,243,235,.74);color:inherit}
  .hero .btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
  .hero .station{color:var(--blue)}
}
@media (max-width:700px){
  .site-header nav{background:var(--matte-blue);box-shadow:0 14px 30px rgba(13,34,50,.2)}
  .site-header nav a{color:#f7f7f2;border-color:rgba(255,255,255,.16)}
  .site-header nav a:first-child{color:#acd9f1}
  .hero.scene{--mobile-hero-height:clamp(290px,74vw,330px);display:block;padding:0 0 calc(30px + env(safe-area-inset-bottom));background:var(--matte-blue);color:#f8f7f1}
  .hero-image{position:relative;display:block;width:100%;height:var(--mobile-hero-height);object-position:72% center;filter:none}
  .hero-image-shade{inset:0 0 auto;height:var(--mobile-hero-height);background:linear-gradient(180deg,transparent 56%,rgba(25,58,84,.16) 82%,var(--matte-blue) 100%)}
  .hero:after{inset:0 0 auto;height:var(--mobile-hero-height);background:linear-gradient(180deg,transparent 65%,var(--matte-blue) 100%)}
  .hero-copy{position:relative;display:block;min-height:0;margin:0;padding:28px 22px 0;transform:none}
  .hero .eyebrow,.hero h1{position:static;width:auto;margin:0}
  .hero .eyebrow{font-size:9px;line-height:1.55;color:#acd9f1}
  .hero h1{font-size:clamp(42px,12.5vw,58px);line-height:.91;letter-spacing:-.055em;margin-top:15px;color:#fff}
  .hero h1 em{margin-top:9px;color:#acd9f1;font-size:.76em;line-height:.95}
  .hero .lede{margin:21px 0 0;padding:0;max-width:35ch;color:#dce8ee;font-size:16px;line-height:1.58}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:24px;padding-bottom:0}
  .hero .btn{display:flex;justify-content:center;width:100%;min-height:48px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.54);color:#fff}
  .hero .btn.primary{background:#f6f3eb;border-color:#f6f3eb;color:var(--matte-blue)}
  .section-head{margin-bottom:34px}
  .project-card,.flagship{border-radius:2px}
  .entries article{padding:24px 0}
  .entries article time,.entries article>span{letter-spacing:.09em}
  .speaking-facts div{gap:4px;padding:16px 0}
}

/* Roadway assembly scrollytelling */
.roadway-build{--base:0;--binder:0;--wearing:0;--finish:0;--dimensions:0;position:relative;height:255vh;background:#112f46;color:#f6f3eb;border-bottom:1px solid rgba(255,255,255,.18)}
.roadway-stage{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:minmax(280px,.78fr) minmax(500px,1.22fr);align-items:center;gap:4vw;padding:112px clamp(24px,7vw,110px) 64px;overflow:hidden}.roadway-copy{position:relative;z-index:2;max-width:540px}.roadway-copy .eyebrow{color:#a9d5ee;margin-bottom:30px}.roadway-step{display:flex;gap:12px;align-items:baseline;margin-bottom:18px;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;text-transform:uppercase;color:#d9eaf2}.roadway-step-number{color:#72bddf}.roadway-copy h2{color:#fff;font-size:clamp(40px,4.4vw,70px);margin-bottom:24px}.roadway-copy>p:not(.eyebrow):not(.roadway-step){color:#d3e1e8;font-size:17px;line-height:1.65;max-width:45ch}.roadway-key{display:grid;gap:13px;margin-top:28px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.roadway-key span{display:grid;grid-template-columns:11px 1fr;column-gap:10px;align-items:start}.roadway-key span:before{content:"";grid-row:1/3;width:11px;height:11px;margin-top:2px}.roadway-key b{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f4f7f8}.roadway-key small{grid-column:2;font:10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:#aec3cd}.key-base:before{background:#b5a47c}.key-binder:before{background:#5c6b72}.key-wearing:before{background:#1e252b}
.roadway-visual{position:relative;min-height:500px;align-self:stretch;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 53% 23%,rgba(236,193,116,.4),transparent 18%),linear-gradient(180deg,#c6e0e7 0%,#93bed0 42%,#4f8392 43%,#345c66 100%);clip-path:polygon(0 7%,100% 0,100% 94%,74% 100%,0 92%)}.roadway-section{position:relative;z-index:1;width:min(100%,930px);overflow:visible}.roadway-section path,.roadway-section g{transform-box:fill-box;transform-origin:center;transition:opacity .08s linear,transform .08s linear}.section-ground{fill:#785f4b}.section-foreslopes{fill:#aa825d;stroke:#d1a672;stroke-width:2;opacity:var(--wearing);transform:translateY(calc((1 - var(--wearing))*70px))}.section-subgrade{fill:#9b7252;stroke:#d1a672;stroke-width:1}.section-base{fill:url(#aggregate);stroke:#e3d5aa;stroke-width:2;opacity:var(--base);transform:translateY(calc((1 - var(--base))*125px))}.section-shoulders{fill:#d1c091;opacity:var(--base);transform:translateY(calc((1 - var(--base))*105px))}.section-binder{fill:#59666d;opacity:var(--binder);transform:translateY(calc((1 - var(--binder))*110px))}.section-wearing{fill:#293339;opacity:var(--wearing);transform:translateY(calc((1 - var(--wearing))*110px))}.section-road-finish{fill:#202a30;opacity:var(--finish);transform:scaleX(calc(.55 + var(--finish)*.45))}.centerline,.lane-mark{stroke:#e7d789;stroke-width:5;opacity:var(--finish)}.measure,.callout,.grade-line{fill:#d8edf4;font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;opacity:var(--base)}.measure path,.callout path,.grade-line path{stroke:#d8edf4;fill:none;stroke-width:2}.grade-line path{stroke-dasharray:7 6}.measure-lanes{text-anchor:middle}.measure-lanes{opacity:var(--wearing)}.measure-shoulders{opacity:var(--binder)}.measure-slope{opacity:var(--base)}.callout-base{opacity:var(--base)}.callout-binder{opacity:var(--binder)}.callout-wearing{opacity:var(--wearing)}.callout-finish{opacity:var(--finish)}.roadway-status{position:absolute;z-index:2;bottom:28px;right:0;left:0;display:flex;justify-content:space-between;border-top:1px solid rgba(222,241,247,.46);padding-top:12px;color:#d6e8ee;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
.roadway-visual{clip-path:none;border:1px solid rgba(218,238,245,.28);background:radial-gradient(ellipse at 53% 23%,rgba(236,193,116,.3),transparent 18%),linear-gradient(180deg,#c6e0e7 0%,#93bed0 42%,#4f8392 43%,#345c66 100%)}.roadway-section .measure,.roadway-section .measure-lanes,.roadway-section .measure-shoulders{opacity:var(--dimensions)}
@media(max-width:900px){.roadway-build{height:210vh}.roadway-stage{grid-template-columns:1fr;padding:94px 22px 34px;gap:12px}.roadway-copy{max-width:620px}.roadway-copy .eyebrow{margin-bottom:13px}.roadway-copy h2{font-size:clamp(36px,10vw,54px);margin-bottom:14px}.roadway-copy>p:not(.eyebrow):not(.roadway-step){font-size:15px;margin-bottom:0}.roadway-key{margin-top:16px}.roadway-visual{min-height:0;height:min(48svh,430px)}.roadway-status{bottom:4px}.roadway-section{width:calc(100% + 44px)}.measure{font-size:9px}}
@media(prefers-reduced-motion:reduce){.roadway-build{height:auto;--base:1;--binder:1;--wearing:1;--finish:1;--dimensions:1}.roadway-stage{position:relative;height:auto;min-height:720px}.roadway-section path,.roadway-section g{transition:none}}

/* Applied visual-editor layout revisions — desktop only */
@media(min-width:901px){.hero-copy{width:min(635px,42vw);height:513px}.projects .fake-ui{width:min(1178px,100%);height:80px;min-height:0}.projects .flagship{width:min(1300px,100%);height:580px}}

/* Shared local visual editor */
.site-edit{position:fixed;z-index:100;right:22px;bottom:22px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.site-edit-toggle{min-height:44px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:11px 17px;background:var(--matte-blue);color:#fff;font-weight:750;cursor:pointer;box-shadow:0 14px 40px rgba(16,43,66,.28)}.site-edit-panel{position:absolute;right:0;bottom:56px;width:min(450px,calc(100vw - 32px));max-height:min(720px,calc(100svh - 96px));overflow:auto;padding:20px;background:rgba(249,247,240,.98);border:1px solid var(--line);color:var(--ink);box-shadow:0 28px 90px rgba(16,43,66,.3);backdrop-filter:blur(18px)}.site-edit-panel[hidden]{display:none}.site-edit-panel header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:13px;border-bottom:1px solid var(--line)}.site-edit-panel header small{display:block;color:var(--blue);font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em}.site-edit-panel header strong{display:block;max-width:340px;margin-top:5px;font-size:18px}.site-edit-close{border:0;background:transparent;color:var(--muted);font-size:26px;line-height:1;cursor:pointer}.site-edit-panel>p{font-size:13px;line-height:1.5;color:var(--muted)}.site-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.site-edit-actions button{min-height:40px;border:1px solid var(--line);background:transparent;color:var(--ink);padding:9px 10px;cursor:pointer;font-weight:700}.site-edit-actions .primary{grid-column:1/-1;background:var(--matte-blue);border-color:var(--matte-blue);color:#fff}.site-edit-image-tools{display:grid;gap:10px;margin-top:16px;padding:14px;background:#edf2f4;border:1px solid var(--line)}.site-edit-image-tools[hidden]{display:none}.site-edit-image-tools label{display:grid;gap:6px;color:var(--muted);font-size:11px}.site-edit-image-tools select{width:100%;min-height:38px;border:1px solid var(--line);background:#fff;padding:7px;color:var(--ink)}.site-edit-file-label{min-height:40px;place-items:center;padding:10px;border:1px dashed var(--blue);color:var(--blue)!important;font-weight:700;cursor:pointer}.site-edit-file{position:absolute;width:1px;height:1px;opacity:0}.site-edit-count{margin:17px 0 8px;color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.site-edit-log{display:block;width:100%;min-height:220px;resize:vertical;border:1px solid var(--line);background:#fffdf7;padding:12px;color:#26323a;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.site-edit-status{margin-top:9px;color:var(--blue);font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}body.site-editing [data-site-editable="text"]{outline:1px dashed rgba(31,93,135,.55);outline-offset:5px;border-radius:2px;cursor:text}body.site-editing [data-site-editable="text"]:hover,body.site-editing [data-site-editable="text"]:focus{outline:2px solid #63acd0;background:rgba(112,184,217,.1)}body.site-editing [data-site-editable="image"]{outline:3px dashed #63acd0;outline-offset:-4px;cursor:pointer;filter:saturate(.82)}[data-site-edited="true"]{box-shadow:0 0 0 2px rgba(99,172,208,.55)}
.site-edit-box-tools{display:grid;gap:10px;margin-top:16px;padding:14px;background:#edf2f4;border:1px solid var(--line)}.site-edit-box-tools[hidden]{display:none}.site-edit-box-tools label{display:grid;gap:6px;color:var(--muted);font-size:11px}.site-edit-box-tools select{width:100%;min-height:38px;border:1px solid var(--line);background:#fff;padding:7px;color:var(--ink)}.site-edit-box-tools p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.site-edit-box-reset{min-height:36px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:700;cursor:pointer}body.site-editing [data-site-resizable="true"]{resize:both;overflow:auto;outline:1px dotted rgba(99,172,208,.5);min-width:80px;min-height:50px}body.site-editing [data-site-resizable="true"].site-box-selected{outline:3px solid #63acd0;outline-offset:3px}
@media(max-width:700px){.site-edit{left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));display:flex;justify-content:flex-end}.site-edit-panel{position:fixed;left:10px;right:10px;bottom:calc(68px + env(safe-area-inset-bottom));width:auto;max-height:72svh;border-radius:16px}.site-edit-toggle{min-height:46px}}

/* Journal row interaction */
.entries article{padding-left:18px;padding-right:18px;margin-left:-18px;margin-right:-18px;transition:background-color .22s ease,box-shadow .22s ease}.entries article h3{transition:color .22s ease}.entries article:hover,.entries article:focus-within{background:rgba(31,93,135,.065);box-shadow:inset 3px 0 0 rgba(31,93,135,.5)}.entries article:hover h3,.entries article:focus-within h3{color:var(--blue)}

/* Shared footer action */
.back-to-top{appearance:none;border:1px solid rgba(255,255,255,.38);background:transparent;color:inherit;cursor:pointer;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;padding:9px 11px;text-transform:uppercase;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.back-to-top:hover,.back-to-top:focus-visible{background:#fff;border-color:#fff;color:var(--blue);outline:none;transform:translateY(-2px)}
@media(max-width:700px){.back-to-top{margin:4px 0}}

/* Let desktop chapters follow their content instead of reserving a full viewport. */
@media (min-width:901px){
  main > .scene:not(.hero){
    min-height:0;
    padding-top:88px;
    padding-bottom:88px;
  }
  #engineering.scene{padding-top:88px}
}

/* Projects index: compact introduction and readable horizontal project panels. */
.projects-intro{min-height:0!important;padding-bottom:28px!important}
.project-panels{min-height:0!important;padding-top:28px!important}
.project-thumbnail{display:block;width:100%;height:132px;object-fit:cover;border:1px solid rgba(31,93,135,.22);background:#dce8ed}
@media (min-width:901px){
  .projects-intro{padding-top:104px!important}
  .projects-intro h1{max-width:none;font-size:clamp(54px,4.45vw,78px);line-height:1;letter-spacing:-.052em;margin-bottom:0;white-space:nowrap}
  .project-panels .flagship{width:100%;height:auto!important;margin-bottom:12px;padding:24px 28px;display:grid;grid-template-columns:190px minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);align-items:center;gap:24px}
  .project-panels .project-grid{grid-template-columns:1fr;gap:12px}
  .project-panels .project-card:not(.flagship){display:grid;grid-template-columns:190px minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);align-items:center;gap:24px;padding:24px 28px}
  .project-panels .project-thumbnail{height:112px}
  .project-panels .project-card h3,.project-panels .flagship h3{font-size:clamp(25px,2vw,34px);line-height:1.05;margin:0;max-width:none}
  .project-panels .project-card p{margin:0;font-size:15px;line-height:1.45}
  .project-panels .text-link{min-width:0;overflow-wrap:anywhere;text-align:left}
}
@media (max-width:900px){
  .projects-intro{padding-bottom:30px!important}
  .project-panels{padding-top:30px!important}
  .project-panels .project-thumbnail{margin-bottom:22px}
}
.project-panels .project-card{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.project-panels .project-card:hover,.project-panels .project-card:focus-within{background:rgba(220,232,237,.72);border-color:rgba(31,93,135,.45);box-shadow:inset 4px 0 0 var(--blue),0 12px 28px rgba(24,35,45,.08);transform:translateY(-2px)}
.project-actions{display:grid;gap:8px;align-self:center;min-width:0}
.project-action{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--blue);text-align:center;text-decoration:none;font-family:inherit;font-size:13px;font-weight:750;line-height:1.2;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.project-action-primary{background:var(--blue);color:#fff}
.project-action-blog{background:#dce8ee;color:#174a6d;border-color:#8eb4c9}
a.project-action:hover,a.project-action:focus-visible{transform:translateY(-1px);outline:none}
a.project-action-primary:hover,a.project-action-primary:focus-visible{background:#174a6d;border-color:#174a6d}
a.project-action-blog:hover,a.project-action-blog:focus-visible{background:#c8dde7;border-color:#6e9eb8}
.project-action.is-disabled{cursor:not-allowed;opacity:.62}
@media(max-width:900px){.project-actions{width:100%;margin-top:20px}}

/* v0.4.1 browser visual editor */
.site-edit-group{margin-top:14px;border:1px solid var(--line);background:rgba(255,255,255,.48)}.site-edit-group>summary{cursor:pointer;padding:11px 13px;color:var(--ink);font-weight:800;font-size:12px;letter-spacing:.03em}.site-edit-group[open]>summary{border-bottom:1px solid var(--line);background:#edf2f4}.site-edit-image-tools,.site-edit-box-tools,.site-edit-section-tools,.site-edit-reorder-tools{display:grid;gap:10px;padding:13px}.site-edit-image-tools label,.site-edit-box-tools label,.site-edit-section-tools label,.site-edit-reorder-tools label{display:grid;gap:5px;color:var(--muted);font-size:11px}.site-edit-image-tools select,.site-edit-box-tools select,.site-edit-section-tools select,.site-edit-reorder-tools select,.site-edit-image-tools input[type=text],.site-edit-box-tools input[type=text]{width:100%;min-height:36px;border:1px solid var(--line);background:#fff;padding:7px;color:var(--ink)}.site-edit-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.site-edit-group button{min-height:37px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 10px;font-weight:750;cursor:pointer}.site-edit-group p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.site-edit-file-label{min-height:40px;place-items:center;padding:10px;border:1px dashed var(--blue)!important;color:var(--blue)!important;font-weight:800;cursor:pointer}.site-edit-file{position:absolute;width:1px;height:1px;opacity:0}.site-editing main section{position:relative}.site-editing main section::after{content:"SECTION";position:absolute;top:8px;right:8px;padding:3px 6px;background:rgba(31,93,135,.08);color:rgba(31,93,135,.75);font:8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;pointer-events:none}.editor-added-section{background:linear-gradient(90deg,rgba(255,255,255,.72),rgba(255,255,255,.36));border-top:1px dashed rgba(31,93,135,.25);border-bottom:1px dashed rgba(31,93,135,.25)}.editor-added-inner{display:grid;gap:24px;max-width:1200px;margin:0 auto}.editor-added-split .editor-added-inner{grid-template-columns:1fr 1fr;align-items:center}.editor-added-section figure{margin:0}.editor-added-section img,.gallery-grid img{display:block;width:100%;min-height:220px;max-height:520px;object-fit:cover;border:1px solid var(--line)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1200px;margin:24px auto 0}.gallery-grid figcaption{padding:8px 0;color:var(--muted);font-size:12px}.site-editing [data-site-editable="image"]{outline:3px dashed #63acd0;outline-offset:-4px;cursor:pointer}.site-editing [data-site-resizable="true"]{resize:both;overflow:auto;outline:1px dotted rgba(99,172,208,.55);min-width:80px;min-height:40px}.site-editing [data-site-resizable="true"].site-box-selected{outline:3px solid #63acd0;outline-offset:3px}
@media(max-width:760px){.site-edit-grid2{grid-template-columns:1fr}.editor-added-split .editor-added-inner,.gallery-grid{grid-template-columns:1fr}.editor-added-section img,.gallery-grid img{min-height:180px}}

/* Editable projects index: one reorderable stream */
.editor-project-list{display:grid;grid-template-columns:1fr;gap:12px}.editor-project-list>.project-card{margin:0!important;width:100%!important;height:auto!important}.editor-project-list>.project-card:not(.flagship){display:grid;grid-template-columns:190px minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);align-items:center;gap:24px;padding:24px 28px}.editor-project-list>.project-card:not(.flagship) .project-thumbnail{height:112px}.editor-project-list>.project-card:not(.flagship) h3{font-size:clamp(25px,2vw,34px);line-height:1.05;margin:0}.editor-project-list>.project-card:not(.flagship) p{margin:0;font-size:15px;line-height:1.45}@media(max-width:900px){.editor-project-list>.project-card:not(.flagship){display:block;padding:22px}.editor-project-list>.project-card:not(.flagship) .project-thumbnail{height:auto;margin-bottom:18px}}

/* v0.4.5 visual-editor expansion: typography + replaceable visual canvases */
.site-edit-type-tools{display:grid;gap:10px;padding:13px}.site-edit-type-tools label{display:grid;gap:5px;color:var(--muted);font-size:11px}.site-edit-type-tools select,.site-edit-type-tools input[type=text],.site-edit-type-tools input[type=color]{width:100%;min-height:36px;border:1px solid var(--line);background:#fff;padding:7px;color:var(--ink);box-sizing:border-box}.site-edit-type-tools input[type=color]{padding:3px;height:38px}.site-edit-type-tools p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
body.site-editing [data-site-editable="text"].site-type-selected{outline:3px solid #63acd0!important;outline-offset:5px}
body.site-editing [data-site-editable="image"]{position:relative}
[data-site-visual-replaced="true"]{background-repeat:no-repeat!important}
[data-site-visual-replaced="true"]>*{visibility:hidden!important}
[data-site-visual-replaced="true"]::before,[data-site-visual-replaced="true"]::after{content:none!important;display:none!important}

/* v0.4.5 project-post navigation */
.project-title-link{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:color .18s ease,background-size .18s ease}.project-title-link:hover,.project-title-link:focus-visible{color:var(--blue);background-size:100% 1px;outline:none}.project-post-hero{padding-top:150px;min-height:62svh}.project-post-hero h1{font-size:clamp(58px,8vw,120px);max-width:1100px;line-height:.92;letter-spacing:-.06em}.project-post-hero .lede{max-width:850px;font-size:clamp(18px,1.8vw,26px);line-height:1.55}.project-post-section{min-height:0}.project-post-section .editor-added-inner{max-width:900px;margin:35px 0 0;font-size:18px;line-height:1.7}

/* Rev 2 — Homepage narrative / Why I Chose Engineering */
.why-engineering{background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(31,93,135,.025))}
.why-engineering .section-head{max-width:1080px}.why-engineering .section-head h2{max-width:1000px}
.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(45px,8vw,120px);align-items:start;margin-top:54px;padding-top:30px;border-top:1px solid var(--ink)}
.why-lead p{font-family:Georgia,serif;font-size:clamp(25px,2.5vw,39px);line-height:1.3;color:var(--blue);margin:0}
.why-copy{max-width:720px}.why-copy p{font-size:clamp(17px,1.4vw,21px);line-height:1.75;color:#3d4a53;margin:0 0 24px}.why-copy .why-turn{margin-top:42px;padding-top:26px;border-top:1px solid var(--line)}
.why-link{display:inline-block;margin-top:8px}.why-notes{margin-top:70px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.why-notes span{padding:18px 18px 18px 0;border-right:1px solid var(--line)}.why-notes span+span{padding-left:18px}.why-notes span:last-child{border-right:0}.why-notes b,.why-notes small{display:block}.why-notes b{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:var(--blue)}.why-notes small{margin-top:7px;color:var(--muted)}
.about-origin{scroll-margin-top:100px}.about-origin .about-notes strong{color:var(--blue);font-family:Georgia,serif;font-size:1.1em;font-weight:500}
@media(max-width:800px){.why-grid{grid-template-columns:1fr;gap:32px}.why-notes{grid-template-columns:1fr 1fr}.why-notes span:nth-child(2){border-right:0}.why-notes span:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* v0.5.6 — project thumbnail fidelity and cache-safe project mapping */
.project-thumbnail{aspect-ratio:7/5;height:auto!important;object-fit:cover;object-position:center}
@media (min-width:901px){
  .project-panels .flagship,
  .project-panels .project-card:not(.flagship),
  .editor-project-list>.project-card:not(.flagship){
    grid-template-columns:220px minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);
  }
  .project-panels .project-thumbnail,
  .editor-project-list>.project-card:not(.flagship) .project-thumbnail{
    width:220px;
    height:auto!important;
    aspect-ratio:7/5;
    object-fit:cover;
  }
}
@media (max-width:900px){
  .project-panels .project-thumbnail,
  .editor-project-list>.project-card:not(.flagship) .project-thumbnail{
    width:100%;
    height:auto!important;
    aspect-ratio:7/5;
    object-fit:cover;
  }
}

/* Transportation Workbench project story */
.twb-story-grid,.twb-news-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,7vw,100px);align-items:start;max-width:1120px;margin:42px 0 0;padding-top:30px;border-top:1px solid var(--line)}
.twb-story-lead{margin:0;color:var(--blue);font:clamp(25px,3vw,42px)/1.3 Georgia,serif}
.twb-story-copy{max-width:740px;color:#3c4851;font-size:clamp(16px,1.35vw,20px);line-height:1.75}.twb-story-copy p{margin:0 0 22px}.twb-story-copy .text-link{display:inline-block;margin-top:8px}
.twb-article-visual{width:100%;max-width:1120px;margin:64px 0 0}.twb-article-visual img{display:block;box-sizing:border-box;width:100%;max-width:100%;height:auto;object-fit:contain;object-position:center;border:1px solid var(--line);box-shadow:0 24px 60px rgba(24,35,45,.14)}.twb-article-visual figcaption{margin-top:12px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.twb-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line);max-width:1120px}.twb-flow article,.twb-feature-grid article{background:rgba(255,255,255,.42);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(20px,3vw,34px);min-width:0}.twb-flow article small,.twb-feature-grid article small{color:var(--blue);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}.twb-flow h3,.twb-feature-grid h3{margin:30px 0 10px;font-size:clamp(21px,2vw,30px);letter-spacing:-.03em}.twb-flow p,.twb-feature-grid p{margin:0;color:#4b5862;font-size:15px;line-height:1.65}
.twb-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1120px;border-top:1px solid var(--ink);border-left:1px solid var(--line)}.twb-feature-grid h3{margin-top:38px}
.twb-tools-carousel{max-width:1120px;margin:60px 0 0;border:1px solid var(--line);background:rgba(255,255,255,.56);box-shadow:0 16px 40px rgba(24,35,45,.07)}.twb-carousel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;border-bottom:1px solid var(--line)}.twb-carousel-head small,.twb-quick-tools-intro>small{color:var(--blue);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.twb-carousel-head h3,.twb-quick-tools-intro h3{margin:8px 0 0;font-size:clamp(22px,2.4vw,32px)}.twb-carousel-controls{display:flex;align-items:center;gap:12px;flex:none}.twb-carousel-controls button{width:42px;height:42px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:20px;cursor:pointer}.twb-carousel-controls button:hover,.twb-carousel-controls button:focus-visible{background:#dce8ee;border-color:var(--blue)}.twb-carousel-controls span{min-width:48px;text-align:center;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.twb-tool-slide{min-height:220px;padding:clamp(24px,4vw,44px);background:linear-gradient(115deg,rgba(31,93,135,.09),transparent 60%)}.twb-tool-slide[hidden]{display:none}.twb-tool-slide>small{color:var(--blue);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.twb-tool-slide h4{font-size:clamp(30px,4vw,48px);letter-spacing:-.04em;margin:18px 0 10px}.twb-tool-slide p{max-width:690px;color:#4b5862;font-size:16px;line-height:1.65}.twb-tool-slide a{display:inline-block;margin-top:4px;color:var(--blue);font-weight:800;text-decoration-thickness:1px;text-underline-offset:4px}
.twb-quick-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1120px;margin:26px 0 0}.twb-quick-tools-intro{grid-column:1/-1;max-width:730px;margin:0 0 8px}.twb-quick-tools-intro p{color:var(--muted);line-height:1.6;margin:10px 0 0}.twb-quick-calc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:10px;padding:22px;border:1px solid var(--line);background:rgba(255,255,255,.6)}.twb-quick-calc h4{grid-column:1/-1;margin:0 0 6px;font-size:19px}.twb-quick-calc label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.twb-quick-calc input{width:100%;min-width:0;min-height:40px;padding:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font:15px inherit}.twb-quick-calc output{grid-column:1/-1;padding:12px;background:#e5eef1;color:var(--ink);font-size:20px;font-weight:800}.twb-quick-calc>small{grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.5}
.twb-purpose-copy{max-width:900px;margin:35px 0 0;font-size:clamp(17px,1.5vw,22px);line-height:1.75;color:#3c4851}.twb-purpose-copy .btn{margin-top:14px}
@media(max-width:760px){.twb-story-grid,.twb-news-grid{grid-template-columns:1fr;gap:22px;margin-top:26px;padding-top:22px}.twb-flow{grid-template-columns:1fr}.twb-flow h3{margin-top:18px}.twb-feature-grid{grid-template-columns:1fr}.twb-feature-grid h3{margin-top:20px}.twb-article-visual{margin-top:36px}.twb-purpose-copy{margin-top:24px}.twb-quick-tools{grid-template-columns:1fr}.twb-quick-tools-intro{grid-column:auto}.twb-quick-calc{grid-template-columns:1fr 1fr}.twb-carousel-head{padding:18px;align-items:flex-start}.twb-carousel-controls{gap:6px}.twb-carousel-controls button{width:38px;height:38px}.twb-tool-slide{min-height:240px}}

/* Transportation Workbench story rhythm */
.twb-project-page .project-post-hero{min-height:0;padding-top:128px;padding-bottom:66px}
.twb-project-page .project-post-hero h1{max-width:1080px;margin-bottom:20px;font-size:clamp(56px,7vw,104px)}
.twb-hero-hook{max-width:960px;margin:0 0 16px;color:var(--blue);font:clamp(28px,3.25vw,48px)/1.15 Georgia,serif}
.twb-project-page .project-post-hero .lede{max-width:760px;margin-bottom:0;font-size:clamp(17px,1.55vw,21px)}
.twb-hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:30px}
.twb-hero-actions .btn,.twb-purpose-copy .btn{font-weight:700;min-height:46px;align-items:center}
.twb-story-link{color:var(--blue);font-size:14px;font-weight:700;text-underline-offset:5px}
.twb-story-nav{display:flex;gap:0;flex-wrap:wrap;max-width:1120px;margin-top:50px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.twb-story-nav a{padding:16px 22px 16px 0;margin-right:28px;color:var(--blue);font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;text-decoration:none}
.twb-story-nav a:hover,.twb-story-nav a:focus-visible,.twb-news-links a:hover,.twb-news-links a:focus-visible{text-decoration:underline;text-underline-offset:5px}
.twb-project-page .project-post-section{padding-top:clamp(82px,8vw,116px);padding-bottom:clamp(82px,8vw,116px)}
.twb-project-page .project-post-section .section-head{margin-bottom:38px}
.twb-project-page .project-post-section .section-head h2{max-width:1050px}
.twb-project-page .project-post-section .section-head .lede{max-width:780px}
.twb-project-page .twb-story-grid,.twb-project-page .twb-news-grid{margin-top:0;padding-top:24px}
.twb-project-page .twb-article-visual{margin-top:42px}
.twb-article-visual>a{display:block}
.twb-article-visual img{transition:box-shadow .2s ease}
.twb-article-visual a:hover img,.twb-article-visual a:focus-visible img{box-shadow:0 25px 64px rgba(24,35,45,.24)}
.twb-article-visual figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;line-height:1.5}
.twb-article-visual figcaption a{color:var(--blue);font-weight:700;white-space:nowrap}
.twb-project-page .twb-tools-carousel{margin-top:0}
.twb-news-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1120px;margin-top:32px}
.twb-news-list article{display:flex;flex-direction:column;min-width:0;padding:25px;border:1px solid var(--line);border-top:3px solid var(--blue);background:rgba(255,255,255,.6)}
.twb-news-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--blue);font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.twb-news-meta time{color:var(--muted);white-space:nowrap}
.twb-news-list h3{margin:28px 0 12px;font-size:clamp(21px,1.7vw,26px);line-height:1.13;letter-spacing:-.025em}
.twb-news-list p{margin:0 0 24px;color:#4b5862;font-size:14px;line-height:1.6}
.twb-news-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}
.twb-news-links a,.twb-news-note a{color:var(--blue);font-size:12px;font-weight:750;text-decoration:none}
.twb-news-note{max-width:1120px;margin:16px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.twb-news-note a{text-decoration:underline;text-underline-offset:3px}
.twb-project-page .twb-purpose-copy{margin-top:0}
@media(max-width:900px){.twb-news-list{grid-template-columns:1fr 1fr}.twb-news-list article:last-child{grid-column:1/-1}}
@media(max-width:700px){
  .twb-project-page .project-post-hero{padding:104px 22px 38px}
  .twb-project-page .project-post-hero h1{font-size:clamp(46px,11.5vw,68px);line-height:.96;overflow-wrap:anywhere}
  .twb-hero-hook{font-size:clamp(27px,7.6vw,36px)}
  .twb-project-page .project-post-hero .lede{font-size:16px;line-height:1.55}
  .twb-hero-actions{gap:16px;margin-top:26px}
  .twb-story-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:36px}
  .twb-story-nav a{margin:0;padding:13px 6px 13px 0;border-bottom:1px solid var(--line)}
  .twb-project-page .project-post-section{padding:78px 22px 82px}
  .twb-project-page .project-post-section .section-head{margin-bottom:28px}
  .twb-project-page .twb-story-grid,.twb-project-page .twb-news-grid{padding-top:20px}
  .twb-project-page .twb-article-visual{margin-top:32px}
  .twb-article-visual figcaption{font-size:10px}
  .twb-carousel-head{flex-wrap:wrap}
  .twb-carousel-controls{width:100%;justify-content:flex-start}
  .twb-news-list{grid-template-columns:1fr;gap:12px;margin-top:26px}
  .twb-news-list article:last-child{grid-column:auto}
  .twb-news-list h3{margin-top:20px}
}

/* PE Transportation Prep project story */
.petp-project-page .petp-hero{min-height:0;padding-top:128px;padding-bottom:78px}
.petp-project-page .petp-hero h1{max-width:1000px;margin-bottom:18px;font-size:clamp(58px,6.8vw,94px);line-height:.98}
.petp-hero-answer{max-width:920px;margin:0 0 16px;color:var(--blue);font:clamp(27px,3vw,42px)/1.2 Georgia,serif}
.petp-project-page .petp-hero .lede{max-width:720px;margin-bottom:0;font-size:clamp(17px,1.5vw,21px)}
.petp-hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:28px}
.petp-hero-actions .btn,.petp-intent-copy .btn{min-height:46px;align-items:center;font-weight:700}
.petp-secondary-link{color:var(--blue);font-size:14px;font-weight:700;text-underline-offset:5px}
.petp-story-nav{display:flex;gap:0;flex-wrap:wrap;max-width:1120px;margin-top:40px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.petp-story-nav a{padding:15px 24px 15px 0;margin-right:28px;color:var(--blue);font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;text-decoration:none}
.petp-story-nav a:hover,.petp-story-nav a:focus-visible{ text-decoration:underline;text-underline-offset:5px }
.petp-project-page .petp-section{min-height:0;padding-top:clamp(82px,8vw,116px);padding-bottom:clamp(82px,8vw,116px)}
.petp-project-page .petp-section .section-head{max-width:1060px;margin-bottom:36px}
.petp-project-page .petp-section .section-head h2{max-width:1000px}
.petp-story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,7vw,100px);align-items:start;max-width:1120px;margin:0;padding-top:26px;border-top:1px solid var(--line)}
.petp-story-lead{margin:0;color:var(--blue);font:clamp(25px,3vw,42px)/1.3 Georgia,serif}
.petp-story-copy{max-width:740px;color:#3c4851;font-size:clamp(16px,1.35vw,20px);line-height:1.75}
.petp-story-copy p{margin:0 0 22px}
.petp-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1120px;border-top:1px solid var(--ink);border-left:1px solid var(--line)}
.petp-feature-grid article{min-width:0;padding:clamp(20px,2.6vw,32px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.42)}
.petp-feature-grid small{color:var(--blue);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}
.petp-feature-grid h3{margin:34px 0 10px;font-size:clamp(20px,1.8vw,27px);line-height:1.1;letter-spacing:-.03em}
.petp-feature-grid p{margin:0;color:#4b5862;font-size:14px;line-height:1.65}
.petp-hero-visual{box-sizing:border-box;width:100%;max-width:1120px;margin:36px auto 0;padding:clamp(12px,2vw,24px);scroll-margin-top:90px;background:#102638;box-shadow:0 24px 60px rgba(24,35,45,.16)}
.petp-visual-kicker{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;color:#b6d7e8;font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
.petp-hero-visual>a{display:block;overflow:hidden;aspect-ratio:14/9;background:#081723}
.petp-hero-visual img{display:block;width:100%;max-width:100%;height:100%;object-fit:cover;object-position:center;transition:filter .2s ease}
.petp-hero-visual a:hover img,.petp-hero-visual a:focus-visible img{filter:brightness(1.07)}
.petp-hero-visual figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:14px;color:#d7e5ec;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.petp-hero-visual figcaption a{color:#b6d7e8;font-weight:700;white-space:nowrap}
.petp-intent-copy{max-width:900px;font-size:clamp(17px,1.5vw,22px);line-height:1.75;color:#3c4851}
.petp-intent-copy .btn{margin-top:12px}
@media(max-width:900px){.petp-feature-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
  .petp-project-page .petp-hero{padding:104px 22px 54px}
  .petp-project-page .petp-hero h1{font-size:clamp(45px,10.5vw,64px);line-height:.98;overflow-wrap:anywhere}
  .petp-hero-answer{font-size:clamp(25px,7.3vw,34px)}
  .petp-project-page .petp-hero .lede{font-size:16px;line-height:1.55}
  .petp-hero-actions{gap:16px;margin-top:24px}
  .petp-story-nav{display:grid;grid-template-columns:1fr;margin-top:32px}
  .petp-story-nav a{margin:0;padding:12px 0;border-bottom:1px solid var(--line)}
  .petp-project-page .petp-section{padding:78px 22px 82px}
  .petp-project-page .petp-section .section-head{margin-bottom:28px}
  .petp-story-grid{grid-template-columns:1fr;gap:20px;padding-top:20px}
  .petp-feature-grid{grid-template-columns:1fr 1fr}
  .petp-feature-grid article{padding:18px}
  .petp-feature-grid h3{margin-top:22px;font-size:20px}
  .petp-hero-visual{margin-top:28px}
  .petp-hero-visual>a{aspect-ratio:auto}
  .petp-hero-visual img{height:auto;object-fit:contain}
  .petp-hero-visual figcaption{font-size:10px}
  .petp-visual-kicker{font-size:9px}
}

/* Public-speaking section links to the club using its own site banner. */
.speaking-visual{display:block;min-width:0;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 24px 60px rgba(24,35,45,.14)}
.speaking-visual img{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;object-position:center;transition:transform .25s ease,filter .25s ease}
.speaking-visual:hover img,.speaking-visual:focus-visible img{transform:scale(1.015);filter:saturate(1.06)}
.speaking-visual:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.speaking-site-cta{display:inline-flex;margin-top:20px;font-size:14px}
.project-grid .project-card>.text-link{display:inline-block;margin-top:8px}

/* Standalone public-speaking story */
.speaking-article{padding-top:0}
.speaking-article-hero{padding:clamp(132px,15vw,190px) clamp(22px,7vw,110px) 72px;border-bottom:1px solid var(--line)}
.speaking-hero-copy{max-width:1050px;margin:0 auto 46px}
.speaking-hero-copy .crumb{display:inline-block;margin-bottom:30px}
.speaking-hero-copy h1{max-width:980px;margin-bottom:24px;font-size:clamp(54px,8.5vw,112px);line-height:.94}
.speaking-deck{max-width:760px;color:#3c4851;font-size:clamp(19px,2.1vw,27px);line-height:1.5}
.speaking-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.speaking-hero-image{display:block;max-width:1320px;margin:auto;overflow:hidden;border:1px solid var(--line);background:#102638;box-shadow:0 28px 70px rgba(24,35,45,.16)}
.speaking-hero-image img{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;transition:transform .3s ease}
.speaking-hero-image:hover img,.speaking-hero-image:focus-visible img{transform:scale(1.01)}
.speaking-image-caption{max-width:1320px;margin:12px auto 0;color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.speaking-article-section{max-width:1440px;margin:0 auto;padding:clamp(72px,9vw,124px) clamp(22px,7vw,110px)}
.speaking-opening-grid,.speaking-engineers-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,8vw,120px);align-items:start}
.speaking-opening h2,.speaking-engineers h2,.speaking-leadership h2,.speaking-build h2,.speaking-article-close h2{font-size:clamp(36px,5vw,66px);line-height:1.02;letter-spacing:-.045em}
.speaking-prose{max-width:740px;color:#3c4851;font-size:clamp(16px,1.25vw,19px);line-height:1.8}
.speaking-prose p{margin:0 0 22px}
.speaking-engineers{max-width:none;background:#193a54;color:#f6f3eb}
.speaking-engineers-heading,.speaking-engineers-grid{max-width:1220px;margin-right:auto;margin-left:auto}
.speaking-engineers .eyebrow{color:#9fd2eb}
.speaking-engineers .speaking-prose{color:#d7e5ec}
.speaking-pullquote{max-width:540px;margin:0;color:#b9e1f3;font:clamp(27px,3.5vw,45px)/1.2 Georgia,serif}
.speaking-engineers-grid{margin-top:44px}
.speaking-practice-strip{display:flex;justify-content:center;align-items:center;gap:clamp(12px,3vw,38px);flex-wrap:wrap;margin:70px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.25);color:#a9d9ee;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
.speaking-practice-strip b{color:#e5b050;font-size:18px}
.speaking-leadership-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin:28px 0 48px}
.speaking-leadership-heading h2{max-width:650px;margin:0}
.speaking-leadership-heading .lede{margin:0;font-size:clamp(17px,1.55vw,22px)}
.speaking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line)}
.speaking-steps article{min-height:240px;padding:clamp(20px,3vw,36px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.4)}
.speaking-steps article>span{color:var(--blue);font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
.speaking-steps h3{margin:54px 0 12px;font-size:clamp(23px,2.4vw,32px)}
.speaking-steps p{max-width:340px;margin:0;color:#4b5862;line-height:1.65}
.speaking-build{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:clamp(40px,9vw,140px);align-items:center;border-top:1px solid var(--line)}
.speaking-build-copy h2{max-width:700px}
.speaking-build-copy .speaking-prose{max-width:730px}
.speaking-build-card{min-height:340px;padding:clamp(26px,4vw,50px);display:flex;flex-direction:column;justify-content:space-between;background:#102638;color:#f6f3eb;box-shadow:0 22px 50px rgba(24,35,45,.16)}
.speaking-build-card .eyebrow{color:#a9d9ee}
.speaking-build-card strong{font-size:clamp(34px,4vw,54px);line-height:.98;letter-spacing:-.04em}
.speaking-build-card em{color:#9fd2eb;font-family:Georgia,serif;font-weight:400}
.speaking-build-card>span:last-child{color:#b6d7e8;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.speaking-article-close{padding:clamp(78px,10vw,140px) 22px;text-align:center;background:rgba(31,93,135,.08);border-top:1px solid var(--line)}
.speaking-article-close .eyebrow{margin-bottom:24px}
.speaking-article-close h2{max-width:900px;margin:0 auto 22px}
.speaking-article-close>p:not(.eyebrow){max-width:740px;margin:0 auto 28px;color:#3c4851;font-size:18px;line-height:1.7}
@media(max-width:760px){
  .speaking-article-hero{padding:112px 22px 54px}
  .speaking-hero-copy{margin-bottom:32px}
  .speaking-hero-copy h1{font-size:clamp(48px,12vw,70px)}
  .speaking-hero-image img{aspect-ratio:2/1}
  .speaking-article-section{padding:72px 22px}
  .speaking-opening-grid,.speaking-engineers-grid,.speaking-leadership-heading,.speaking-build{grid-template-columns:1fr;gap:24px}
  .speaking-engineers-grid{margin-top:28px}
  .speaking-steps{grid-template-columns:1fr}
  .speaking-steps article{min-height:0}
  .speaking-steps h3{margin-top:28px}
  .speaking-practice-strip{margin-top:44px;gap:12px;font-size:9px}
  .speaking-build-card{min-height:280px}
  .speaking-article-close{padding:76px 24px}
}

/* About page: a concise personal story with project links instead of placeholders. */
.about-page main>.scene{min-height:0;padding:clamp(82px,9vw,120px) clamp(22px,7vw,110px);}
.about-page .about-page-intro{min-height:74svh;display:flex;flex-direction:column;justify-content:center;padding-top:150px}
.about-page-intro h1{max-width:1080px;font-size:clamp(52px,8vw,104px);line-height:.96}
.about-page-intro .lede{max-width:780px}
.about-page .section-head{max-width:1040px;margin-bottom:42px}
.about-page .section-head h2,.about-communication h2,.about-connect h2{max-width:1000px;font-size:clamp(36px,5vw,68px);line-height:1.02}
.about-page .about-grid{max-width:1200px;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,8vw,110px);margin-top:34px;padding-top:28px;border-top:1px solid var(--ink)}
.about-page .big{margin:0;color:var(--blue);font:clamp(27px,3.2vw,44px)/1.25 Georgia,serif}
.about-page .about-notes{max-width:760px;padding-top:0;color:#3d4a53;font-size:clamp(16px,1.25vw,19px);line-height:1.75}
.about-page .about-notes p{margin:0 0 20px}
.about-page .about-origin{background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(31,93,135,.025))}
.about-page .about-origin .about-notes strong{color:var(--blue)}
.about-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line)}
.about-project{display:flex;flex-direction:column;min-height:300px;padding:clamp(20px,2.8vw,34px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.42);color:inherit;text-decoration:none;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}
.about-project:hover,.about-project:focus-visible{background:rgba(220,232,237,.72);box-shadow:inset 4px 0 0 var(--blue),0 12px 28px rgba(24,35,45,.08);transform:translateY(-2px);outline:none}
.about-project>span{color:var(--blue);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}
.about-project strong{margin-top:48px;font-size:clamp(21px,2.2vw,30px);line-height:1.1}
.about-project p{margin:14px 0 24px;color:#4b5862;line-height:1.6}
.about-project b{margin-top:auto;color:var(--blue);font-size:13px}
.about-page .about-communication{background:#193a54;color:#f6f3eb}
.about-communication-copy{max-width:1060px;margin:auto}
.about-communication .eyebrow{color:#9fd2eb}
.about-communication-copy>p:not(.eyebrow){max-width:780px;color:#d7e5ec;font-size:clamp(17px,1.45vw,21px);line-height:1.75}
.about-communication .btn{border-color:#d7e5ec;color:#f6f3eb;background:transparent}
.about-communication .btn.primary{border-color:#f6f3eb;background:#f6f3eb;color:#193a54}
.about-connect{min-height:58svh!important;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:rgba(31,93,135,.07)}
.about-connect .lede{margin-bottom:26px}
@media(max-width:760px){
  .about-page main>.scene{padding:74px 22px}
  .about-page .about-page-intro{min-height:0;padding-top:125px}
  .about-page-intro h1{font-size:clamp(46px,12vw,66px)}
  .about-page .about-grid{grid-template-columns:1fr;gap:22px;margin-top:24px;padding-top:22px}
  .about-page .section-head{margin-bottom:28px}
  .about-project-grid{grid-template-columns:1fr}
  .about-project{min-height:0}
  .about-project strong{margin-top:28px}
  .about-connect{min-height:0!important}
}
