/* Oswald for the engineering identity; body copy stays easy to read. */
.identity-name{font-size:22px;font-weight:500}
nav{font-family:var(--display);font-size:17px}
.button,.text-link,.project-link,.menu-toggle,.back-top,.dialog-close{font-family:var(--display);font-size:17px;font-weight:400;letter-spacing:.25px}
.footer-name{font-size:20px;font-weight:500}
.project-card h3,.skill-row h3,.learning-heading h3{letter-spacing:0}
.project-grid>*,.about-layout>*,.contact-layout>*,.skill-row>*{min-width:0}
.about-intro .eyebrow{font-family:var(--display);font-size:16px;letter-spacing:.6px}
.about-signature{font-family:var(--display);font-size:20px;font-weight:500;letter-spacing:.6px}
.education-school,.affiliations>span{font-family:var(--display);font-size:22px;font-weight:400;line-height:1.4;letter-spacing:.2px}
.about-signature small,.affiliations small{font-family:var(--sans);font-weight:400;letter-spacing:.2px}

/* Native disclosure keeps the phone controls short and keyboard accessible. */
.engine-interact{display:none!important}
.engine-adjustments{grid-column:1/-1;min-width:0}
.engine-adjustments summary{display:none}
.engine-adjustment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.engine-controls button{font-family:var(--display);font-size:16px;letter-spacing:.2px;min-height:46px}
.engine-setting label{font-size:14px}
.engine-setting output{font-size:13px}
.engine-setting input{height:48px}
.engine-zoom-slider button{flex-basis:46px;font-size:22px}
#engine-canvas.is-ready{touch-action:pan-y pinch-zoom}
#engine-canvas.is-ready.is-interactive{touch-action:none}
.engine-stage{overflow:hidden}

@media(min-width:901px) and (max-width:1180px){
  .engine-adjustment-fields{grid-template-columns:minmax(0,1fr)}
  h1{font-size:clamp(58px,6.6vw,78px);line-height:1.1}
}

/* One consistent navigation and content breakpoint for phones and tablets. */
@media(max-width:900px){
  :root{--header-height:80px}
  html{scroll-padding-top:calc(var(--header-height) + 16px)}
  .wrap{width:calc(100% - 48px)}
  .nav-wrap{height:var(--header-height);gap:12px}
  .brand-mark{width:44px;height:44px}
  .identity{gap:11px}
  .identity-name{font-size:22px;letter-spacing:.8px}
  .identity-sub{font:10px/1.4 var(--sans);letter-spacing:.75px;margin-top:5px}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:76px;min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:3px;font:400 16px/1.4 var(--display)}
  .menu-toggle span{font-size:24px;line-height:1;color:var(--accent)}
  nav{display:none;position:absolute;top:var(--header-height);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px max(24px,env(safe-area-inset-right)) 20px max(24px,env(safe-area-inset-left));max-height:calc(100vh - var(--header-height));max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain;background:#0c1420;border-bottom:1px solid var(--line)}
  nav.is-open{display:flex}
  nav>a{display:flex;align-items:center;min-height:54px;padding:12px 8px;font:400 20px/1.4 var(--display);border-bottom:1px solid var(--line)}
  nav .nav-contact{margin-top:12px;padding:12px 14px;justify-content:space-between;border:1px solid #2784ed}
  .section{padding-block:64px}
  .section-top{margin-bottom:24px;gap:14px}
  .section-heading{display:block;margin-bottom:32px}
  .section-heading>p{font-size:16px;max-width:640px;line-height:1.75;margin-top:20px}
  .small-note{display:none}
  .eyebrow,.hero .eyebrow,.about-intro .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.4px;gap:10px}
  .eyebrow .section-no,.hero .eyebrow .small-line{flex:none}
  .hero-content{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:32px;min-height:0;padding-block:38px 28px}
  .hero-copy{width:100%;max-width:680px}
  .hero .eyebrow{white-space:normal;max-width:560px;margin-bottom:20px}
  h1{font-size:clamp(60px,11vw,88px);line-height:1.08;letter-spacing:-.01em}
  .hero-description{font-size:16px;line-height:1.75;max-width:620px;margin-top:24px}
  .hero-actions{gap:12px 20px;margin-top:26px;align-items:stretch}
  .button{min-height:50px;padding:12px 20px;font-size:17px}
  .text-link{min-height:50px;padding:12px 8px;font-size:17px;justify-content:center}
  .availability{min-height:44px;font:12px/1.65 var(--sans);letter-spacing:.25px;margin-top:20px;max-width:100%}
  .hero-visual{width:100%;max-width:640px;min-height:0;justify-self:center;align-self:start;padding:0;margin:0}
  .visual-heading{position:static;display:flex;font-size:11px;line-height:1.6;gap:12px;padding:0 0 10px}
  .visual-heading span{display:block}
  .engine-stage{aspect-ratio:1.25;min-height:0}
  .engine-overlay{font-size:10px;letter-spacing:.5px;inset:auto 8px 14px;gap:10px}
  .engine-controls{grid-template-columns:minmax(0,1fr);padding:14px;gap:12px}
  .engine-controls .engine-interact{display:flex!important;grid-column:1/-1;width:100%;justify-content:space-between;border-color:#2784ed;background:#145ab8;color:#fff;min-height:48px;padding:12px 15px}
  .engine-controls .engine-interact[aria-pressed=true]{background:#102b4d}
  .engine-interact[aria-pressed=true]::after{content:'✓';color:var(--accent)}
  .engine-toolbar{gap:10px;flex-wrap:nowrap}
  .engine-controls button{min-height:48px;padding:10px 14px;font-size:16px}
  .engine-modes button{min-width:68px}
  .engine-adjustments{border-top:1px solid var(--line)}
  .engine-adjustments summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:12px 2px;list-style:none;cursor:pointer;font:400 16px/1.4 var(--display);letter-spacing:.25px;color:var(--muted)}
  .engine-adjustments summary::-webkit-details-marker{display:none}
  .engine-adjustments summary span{font:24px/1 var(--sans);color:var(--accent);transition:transform .2s}
  .engine-adjustments[open] summary span{transform:rotate(45deg)}
  .engine-adjustments summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
  .engine-adjustments summary:active{color:var(--accent);box-shadow:var(--glow)}
  .engine-adjustment-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-top:6px}
  .engine-setting label{font-size:14px;line-height:1.6}
  .engine-setting output{font-size:13px}
  .engine-setting input{height:48px}
  .engine-zoom-slider{gap:10px}
  .engine-zoom-slider button{padding:0;flex-basis:48px;font-size:24px}
  .hero-visual figcaption{position:static;gap:10px;margin-top:14px;font:13px/1.65 var(--sans);align-items:flex-start}
  .hero-visual figcaption small{font-size:12px;color:var(--muted)}
  .visual-bracket{font-size:24px;line-height:1.4}
  .hero-footer{grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding-block:20px;margin-top:0;font-size:12px;line-height:1.7;letter-spacing:.25px}
  .hero-footer>p:nth-child(2){grid-column:1;grid-row:2;font:13px/1.7 var(--sans);letter-spacing:0;max-width:none}
  .hero-footer>a{grid-column:2;grid-row:1/3;font:400 14px/1.5 var(--display);letter-spacing:.2px;gap:12px;max-width:100px;min-height:48px}
  .section-heading h2{font-size:clamp(34px,5.5vw,46px);line-height:1.18}
  .project-grid{grid-template-columns:minmax(0,1fr);gap:44px;max-width:640px;margin-inline:auto}
  .project-image{aspect-ratio:1.5}
  .project-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;font-size:12px;line-height:1.6;margin-top:18px;letter-spacing:0}
  .project-meta span{display:inline}
  .project-card h3{font-size:32px;line-height:1.2;margin-top:12px}
  .project-role{font-size:15px;margin-top:10px}
  .project-description{font-size:16px;line-height:1.75;min-height:0;margin-top:14px;max-width:none}
  .tags{gap:8px;margin-top:18px;min-height:0;margin-bottom:10px}
  .tags span{font-size:13px;padding:5px 9px;line-height:1.5}
  .project-link{min-height:50px;margin-top:12px;padding:14px 4px;font-size:18px}
  .illustration-note,.image-credit{font-size:13px;line-height:1.75;max-width:640px;margin-inline:auto}
  .illustration-note{margin-top:30px}
  .image-credit{margin-top:12px}
  .about-layout{grid-template-columns:minmax(0,1fr);gap:30px}
  .about-intro .eyebrow{font-size:16px;line-height:1.5;margin-bottom:24px}
  .about-intro h2{font-size:clamp(36px,6vw,48px);line-height:1.15}
  .about-intro h2 br:nth-of-type(3){display:initial}
  .about-signature{font-size:20px;gap:16px;line-height:1.75;margin-top:24px}
  .about-signature small{font-size:12px}
  .about-body{padding-top:0}
  .about-body>p{font-size:16px;line-height:1.8}
  .about-body .large-copy{font-size:21px;line-height:1.65;letter-spacing:0}
  .education{gap:14px;line-height:1.6}
  .education-school{font-size:22px}
  .education div>p:nth-child(2){font-size:16px;line-height:1.7}
  .education .mono{font-size:12px}
  .affiliations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));font-size:16px;gap:24px;line-height:1.6}
  .affiliations small{font-size:14px}
  .skill-row{grid-template-columns:24px minmax(0,1fr);gap:16px 16px;padding-block:26px}
  .skill-index{grid-column:1;grid-row:1/4;font-size:13px}
  .skill-row h3{grid-column:2;grid-row:1;font-size:30px;line-height:1.2}
  .skill-row h3 br{display:none}
  .skill-row>p{grid-column:2;font-size:16px;line-height:1.75;max-width:640px}
  .skill-tools{grid-column:2;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;line-height:1.6}
  .learning-panel{grid-template-columns:minmax(0,1fr);gap:24px;padding:26px;margin-top:36px}
  .learning-heading .eyebrow{font-size:12px;line-height:1.6;margin-bottom:18px}
  .learning-heading h3{font-size:34px;line-height:1.2}
  .learning-copy p{font-size:16px;line-height:1.8}
  .experience-label{font-size:12px;line-height:1.7;letter-spacing:.15px}
  .contact-section .section-top{display:block}
  .contact-status{font-size:12px;line-height:1.6;margin-top:16px}
  .contact-layout{grid-template-columns:minmax(0,1fr);gap:30px;margin-top:28px}
  .contact-layout h2{font-size:clamp(44px,8vw,60px);line-height:1.15}
  .contact-layout>div>p{font-size:16px;line-height:1.8;max-width:640px}
  .contact-links{padding-top:0}
  .contact-links>a{padding:10px 2px 18px;margin-bottom:18px;min-height:76px;overflow-wrap:anywhere}
  .contact-links .mono{font-size:12px}
  .contact-value{font-size:17px;line-height:1.65;gap:12px;letter-spacing:0}
  .contact-value>span{flex:none}
  .copy-email{font-size:15px;min-height:48px;padding:10px 2px}
  .footer-content{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px 16px;padding-block:30px;padding-bottom:max(30px,env(safe-area-inset-bottom))}
  .footer-name{font-size:20px}
  .footer-name span{font-size:13px}
  .back-top{grid-column:2;grid-row:1;font-size:14px;gap:10px;min-height:48px;margin:0}
  .launch-badge{grid-column:1/-1;grid-row:2;max-width:min(255px,100%);order:initial}
  .launch-badge img{max-width:100%;height:auto}
  .footer-content>p{grid-column:1/-1;grid-row:3;font-size:13px;order:initial;margin:0;padding-top:18px;border-top:1px solid var(--line)}
  dialog{width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);margin:auto;border-radius:5px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .dialog-toolbar{padding:12px 18px;gap:12px}
  .dialog-toolbar .mono,.dialog-eyebrow{font-size:12px;line-height:1.6;letter-spacing:.3px}
  .dialog-close{font-size:17px;min-height:48px;min-width:74px;justify-content:center;padding:8px;gap:12px}
  #dialog-content{padding:24px 20px 28px}
  .dialog-title{font-size:34px;line-height:1.2}
  .dialog-intro{font-size:16px;line-height:1.8}
  .dialog-facts{gap:18px 24px;margin-block:24px;padding-block:18px}
  .dialog-facts>div{min-width:0;max-width:100%}
  .dialog-facts span{font-size:12px;line-height:1.6}
  .dialog-facts strong{font-size:15px;line-height:1.6}
  .dialog-project-image,.dialog-project-image[data-image-kind=photo]{max-height:50vh;max-height:50dvh}
  .case-sections{grid-template-columns:minmax(0,1fr);gap:24px}
  .case-sections h3{font-size:25px;line-height:1.25}
  .case-sections p,.case-sections li{font-size:16px;line-height:1.8}
  .case-insight{grid-column:1;padding:18px}
  .case-insight h3{font-size:12px;line-height:1.6}
}

@media(max-width:600px){
  .wrap{width:calc(100% - 40px)}
  .section{padding-block:54px}
  .hero-actions .button{width:100%}
  .hero-actions .text-link{width:100%}
  .engine-adjustment-fields{grid-template-columns:minmax(0,1fr);gap:14px}
  .engine-setting{column-gap:16px}
  .engine-stage{aspect-ratio:1.15}
  .hero-footer{grid-template-columns:minmax(0,1fr)}
  .hero-footer>p:nth-child(2){grid-row:2}
  .hero-footer>a{grid-column:1;grid-row:3;max-width:none;justify-content:space-between;font-size:15px}
  .affiliations{grid-template-columns:minmax(0,1fr);gap:20px}
  .learning-panel{padding:22px 20px}
  .contact-mail{width:100%}
}

@media(max-width:360px){
  :root{--header-height:76px}
  .wrap{width:calc(100% - 32px)}
  .brand-mark{width:38px;height:38px}
  .identity{gap:9px}
  .identity-name{font-size:20px}
  .identity-sub{font-size:9px;letter-spacing:.5px}
  .menu-toggle{min-width:66px;padding-inline:8px;gap:8px}
  h1{font-size:56px}
  .engine-controls{padding:12px}
  .engine-controls button{padding-inline:12px}
  .engine-modes button{min-width:60px}
  .engine-overlay{font-size:9px}
  .contact-value{font-size:16px}
}
