/* Cross-device layout safeguards */
.hero-copy,.portrait-wrap{min-width:0}
.hero-shell{grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr)}
.portrait-wrap{width:100%;max-width:455px;justify-self:center;margin-inline:auto}
.portrait-wrap figcaption{flex-wrap:wrap}
.hero h1{overflow-wrap:break-word}

/* Small laptops and landscape tablets */
@media (min-width:901px) and (max-width:1180px){
  .nav-shell{margin-inline:18px;gap:15px}
  nav{gap:2px}
  nav a{padding-inline:8px}
  .hero-shell{grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:38px;padding:58px 42px 50px}
  .hero h1{font-size:clamp(42px,5.2vw,58px);letter-spacing:-2.5px}
  .portrait-wrap{max-width:390px}
  .proof{gap:7px}
  .section{padding-inline:42px}
}

/* Tablet portrait */
@media (min-width:901px) and (max-width:1100px) and (orientation:portrait){
  .hero-shell{grid-template-columns:1fr;gap:52px;padding-inline:68px}
  .hero-copy{max-width:760px}
  .portrait-wrap{max-width:560px}
  .portrait-frame{aspect-ratio:4/5}
}

/* Phones and tablets: collapsed glass navigation */
@media (max-width:900px){
  :root{scroll-padding-top:90px}
  .site-header{height:88px;padding-top:10px}
  .nav-shell{height:62px;margin:0 10px;padding:0 10px;border-radius:21px;gap:9px}
  .identity img{width:42px;height:42px;border-radius:13px}
  .identity span{display:none}
  .menu-toggle{display:block;border:0;background:rgba(231,238,247,.86);border-radius:11px;padding:7px 10px;font-size:12px;color:#34465e}
  .language{padding:3px}
  .site-header nav{display:none;position:absolute;top:81px;left:10px;right:10px;padding:9px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.96);border-radius:22px;box-shadow:0 20px 48px rgba(30,57,91,.18);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}
  .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:2px}
  .site-header nav a{padding:11px 13px;border-radius:12px}
  .hero{padding-inline:10px}
  .hero-shell{grid-template-columns:1fr;gap:46px;min-height:auto;padding:50px 30px 28px;border-radius:30px}
  .hero-copy{width:100%}
  .hero h1{font-size:clamp(38px,7vw,54px);line-height:1.04;letter-spacing:-2px}
  .portrait-wrap{width:min(100%,560px);max-width:560px;justify-self:center}
  .portrait-frame{width:100%;aspect-ratio:4/5}
  .section{margin-inline:10px;padding-inline:30px}
  .intro{grid-template-columns:1fr}
  .section-intro{margin-left:0}
  .impact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .experience-layout{grid-template-columns:1fr;gap:48px}
  .credential-grid{grid-template-columns:1fr;gap:42px}
  .contact-shell{grid-template-columns:1fr;gap:45px}
}

/* Compact landscape phones and tablets */
@media (max-width:900px) and (min-width:680px) and (orientation:landscape){
  .hero-shell{grid-template-columns:minmax(0,1.12fr) minmax(260px,.88fr);gap:27px;padding:40px 30px 30px;align-items:center}
  .hero h1{font-size:clamp(32px,4.7vw,43px);letter-spacing:-1.7px;margin-block:18px}
  .hero-lead{font-size:14px;line-height:1.58}
  .hero-actions{margin-top:22px}
  .button{min-height:44px;padding:10px 15px}
  .proof{margin-top:25px;grid-template-columns:repeat(3,minmax(0,1fr))}
  .proof>div{min-width:0;padding:8px;min-height:62px}
  .proof strong{font-size:20px}
  .proof span{font-size:8px}
  .portrait-wrap{width:100%;max-width:330px;justify-self:center}
  .portrait-frame{aspect-ratio:4/5;max-height:440px}
  .portrait-wrap figcaption{gap:4px}
  .portrait-wrap figcaption span{font-size:7px;padding:4px 7px}
  .section{padding-block:58px}
}

/* Standard phones in portrait */
@media (max-width:679px){
  .hero-shell{padding-inline:21px}
  .hero h1{font-size:clamp(36px,11vw,45px)}
  .hero-lead{font-size:16px}
  .proof{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .proof>div{display:block;min-width:0;padding:10px}
  .proof strong{display:block}
  .portrait-wrap{width:100%;max-width:480px}
  .section{padding-inline:21px}
  .impact-grid,.project-grid{grid-template-columns:1fr}
  .project:last-child{grid-column:auto}
  .two-column-copy,.degrees{grid-template-columns:1fr}
}

/* Narrow phones */
@media (max-width:390px){
  .hero h1{font-size:34px}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .button{width:100%}
  .proof{grid-template-columns:1fr}
  .proof>div{display:flex}
  .email{font-size:14px}
}

/* Large and ultrawide displays */
@media (min-width:1500px){
  .nav-shell{max-width:1320px}
  .hero-shell,.section{max-width:1400px}
  .hero-shell{grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);padding-inline:78px}
  .portrait-wrap{max-width:470px}
}
