:root{
  --black:#050505;
  --white:#f3f0e8;
  --muted:#9b9b95;
  --line:rgba(255,255,255,.16);
  --accent:#e5482d;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:Inter,Arial,Helvetica,sans-serif;overflow-x:hidden;
}
a{color:inherit}
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
}
.site-header{
  position:absolute;z-index:10;left:0;right:0;top:0;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:24px 4vw;font-size:.82rem;text-transform:uppercase;letter-spacing:.09em;
}
.wordmark,.resume-link,.site-header nav a{text-decoration:none}
.site-header nav{display:flex;gap:26px}
.resume-link{justify-self:end}

.hero{
  min-height:100svh;padding:128px 4vw 46px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:4vw;align-items:center;position:relative;
}
.kicker{
  margin:0 0 18px;color:var(--muted);font-size:.74rem;
  text-transform:uppercase;letter-spacing:.16em;
}
.hero h1{
  font-size:clamp(3.7rem,7.9vw,8rem);line-height:.87;letter-spacing:-.065em;
  font-weight:500;margin:0;max-width:1050px;
}
.hero-description{
  max-width:660px;margin:32px 0 0;color:#c8c6c0;
  font-size:clamp(1.02rem,1.7vw,1.32rem);line-height:1.52;
}
.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.primary-action,.secondary-action{
  padding:14px 18px;border:1px solid var(--line);text-decoration:none;
  text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;
}
.primary-action{background:var(--white);color:var(--black)}

.hero-visual{
  width:min(35vw,500px);aspect-ratio:.82;justify-self:end;position:relative;
}
.portrait-mask{
  position:absolute;inset:5% 4% 0;overflow:hidden;border-radius:48% 48% 18% 18% / 36% 36% 10% 10%;
}
.portrait-mask img{
  width:100%;height:100%;object-fit:cover;object-position:50% 35%;
  filter:grayscale(100%) contrast(1.08);
}
.portrait-fade{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 58%,rgba(5,5,5,.9) 100%);
}
.orbit{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%}
.orbit-one{inset:10% -4% 5%}
.orbit-two{inset:2% -13% -4%;border-style:dashed;animation:spin 28s linear infinite}
.datum{position:absolute;background:rgba(255,255,255,.14)}
.datum-x{left:-11%;right:-11%;height:1px;top:54%}
.datum-y{top:-5%;bottom:-5%;width:1px;left:50%}
.coordinate{
  position:absolute;font-size:.61rem;letter-spacing:.14em;color:var(--muted)
}
.coordinate-a{left:-9%;bottom:18%}.coordinate-b{right:-12%;top:18%;transform:rotate(90deg)}

.hero-meta{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);padding-top:20px;margin-top:20px;
}
.hero-meta span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.hero-meta strong{display:block;margin-top:5px;font-size:.9rem;font-weight:500}

.signal-strip{
  display:flex;justify-content:space-between;gap:24px;white-space:nowrap;
  padding:20px 4vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  color:#d3d0c8;text-transform:uppercase;letter-spacing:.11em;font-size:.7rem;overflow:auto;
}

.experience-section{
  padding:130px 4vw;border-bottom:1px solid var(--line);
}
.experience-heading{
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-bottom:58px;
}
.experience-heading h2{
  font-size:clamp(4rem,10vw,9.5rem);line-height:.82;letter-spacing:-.07em;font-weight:500;margin:0;
}
.experience-title{text-align:right;padding-bottom:8px}
.experience-title span{
  display:block;color:var(--muted);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;
}
.experience-title strong{font-size:clamp(1rem,2vw,1.35rem);font-weight:500}
.experience-stage{
  background:var(--white);color:var(--black);display:grid;grid-template-columns:1fr 1fr;gap:5vw;
  min-height:720px;padding:5vw;align-items:center;
}
.experience-lead{
  font-size:clamp(1.35rem,2.6vw,2.25rem);line-height:1.28;letter-spacing:-.025em;margin:0 0 42px;
}
.experience-pillars{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(0,0,0,.2)}
.experience-pillars article{padding:24px 22px 28px 0;border-bottom:1px solid rgba(0,0,0,.2)}
.experience-pillars article:nth-child(odd){border-right:1px solid rgba(0,0,0,.2);padding-right:28px}
.experience-pillars article:nth-child(even){padding-left:28px}
.experience-pillars span{font-size:.66rem;color:#777}
.experience-pillars h3{font-size:1.45rem;font-weight:500;margin:16px 0 8px}
.experience-pillars p{font-size:.9rem;line-height:1.55;color:#5e5e59;margin:0}
.manufacturing-visual{position:relative;aspect-ratio:1;overflow:hidden}
.manufacturing-visual svg{position:absolute;inset:0;width:100%;height:100%}
.manufacturing-visual svg *{fill:none;stroke:rgba(0,0,0,.17);stroke-width:1.2}
.machine-frame{
  position:absolute;width:50%;height:58%;left:26%;top:19%;border:3px solid #111;z-index:2;
}
.machine-head{
  position:absolute;width:24%;height:18%;left:39%;top:26%;background:#111;z-index:3;
}
.workpiece{
  position:absolute;width:42%;height:11%;left:30%;top:63%;background:var(--accent);z-index:3;
}
.spring{
  position:absolute;width:12%;height:34%;top:35%;z-index:4;
  background:repeating-linear-gradient(180deg,#111 0 4px,transparent 4px 11px);
  border-left:2px solid #111;border-right:2px solid #111;
}
.spring-a{left:18%;transform:rotate(-8deg)}.spring-b{right:13%;transform:rotate(8deg)}
.inspection-line{position:absolute;background:#111;opacity:.5;z-index:4}
.line-a{width:1px;height:72%;left:50%;top:14%}
.line-b{height:1px;width:76%;left:12%;top:51%}
.line-c{height:1px;width:56%;left:22%;top:79%}
.machine-note{position:absolute;font-size:.57rem;letter-spacing:.13em;z-index:5}
.note-a{left:5%;top:18%}.note-b{right:4%;top:26%}.note-c{left:6%;bottom:18%}.note-d{right:8%;bottom:9%}
.experience-flow{
  display:flex;align-items:center;gap:16px;overflow:auto;padding:24px 0 0;
  text-transform:uppercase;letter-spacing:.09em;font-size:.65rem;white-space:nowrap;color:#bbb;
}
.experience-flow i{font-style:normal;color:var(--accent)}

.work-section{padding:130px 4vw}
.section-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:70px}
.section-intro h2,.profile-heading h2,.education-section h2,.contact-section h2{
  font-size:clamp(2.8rem,6vw,6rem);line-height:.95;letter-spacing:-.055em;font-weight:500;margin:0;
}
.case-study{
  min-height:690px;margin-bottom:28px;padding:5vw;
  display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;
}
.solar-case{background:var(--white);color:var(--black)}
.propulsion-case{background:#111;overflow:hidden}
.case-number{font-size:.72rem;letter-spacing:.12em;color:#777}
.case-label{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;margin:24px 0 14px}
.case-copy h3{font-size:clamp(2.8rem,5vw,5rem);line-height:.95;letter-spacing:-.055em;margin:0;font-weight:500}
.case-summary{font-size:1.08rem;line-height:1.62;max-width:610px;margin:26px 0 0;opacity:.72}
.case-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:34px 0 0}
.case-stats div{padding-top:14px;border-top:1px solid currentColor}
.case-stats dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;opacity:.55}
.case-stats dd{margin:6px 0 0;font-size:.88rem}

.solar-blueprint{position:relative;aspect-ratio:1;overflow:hidden}
.solar-blueprint svg{position:absolute;inset:0;width:100%;height:100%}
.solar-blueprint svg *{fill:none;stroke:rgba(0,0,0,.18);stroke-width:1.2}
.sun{width:28%;aspect-ratio:1;border-radius:50%;background:var(--accent);position:absolute;right:3%;top:7%}
.panel{
  position:absolute;width:49%;height:25%;background:#171717;
  transform:skewY(-12deg) rotate(-8deg);z-index:2;
}
.assembly-one{left:7%;top:38%}.assembly-two{left:37%;top:54%}
.panel:before{
  content:"";position:absolute;inset:8%;border:1px solid rgba(255,255,255,.35);
  background:repeating-linear-gradient(90deg,transparent 0 19%,rgba(255,255,255,.18) 20%);
}
.axis{position:absolute;background:#111;opacity:.38}
.axis-x{width:78%;height:1px;left:6%;bottom:19%}
.axis-y{width:1px;height:68%;left:51%;top:15%}
.measurement{position:absolute;font-size:.58rem;letter-spacing:.13em;z-index:3}
.m1{bottom:14%;left:5%}.m2{right:5%;top:45%;transform:rotate(90deg)}.m3{left:5%;top:8%}

.propulsion-visual{position:relative;min-height:540px}
.engine-core{
  position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);
  width:24%;height:30%;border:2px solid var(--white);border-radius:44% 44% 16% 16%;
}
.nozzle{
  position:absolute;left:50%;top:56%;transform:translateX(-50%);
  width:29%;height:18%;border:2px solid var(--white);
  clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);
}
.plume{
  position:absolute;left:50%;top:70%;transform:translateX(-50%);
  width:28%;height:25%;clip-path:polygon(34% 0,66% 0,100% 100%,0 100%);
  background:linear-gradient(var(--white),transparent);opacity:.65;
}
.ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.25);border-radius:50%}
.ring-a{width:42%;aspect-ratio:1}.ring-b{width:68%;aspect-ratio:1}.ring-c{width:94%;aspect-ratio:1;border-style:dashed}
.telemetry{position:absolute;font-size:.6rem;letter-spacing:.14em;color:#777}
.t1{left:5%;top:18%}.t2{right:5%;top:40%}.t3{left:12%;bottom:10%}.t4{right:12%;bottom:14%}

.secondary-projects{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.secondary-projects article{padding:34px 26px;border-right:1px solid var(--line)}
.secondary-projects article:last-child{border-right:0}
.secondary-projects span{font-size:.7rem;color:var(--muted)}
.secondary-projects p{text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:var(--muted);margin:28px 0 12px}
.secondary-projects h3{font-size:1.5rem;font-weight:500;margin:0 0 14px}
.secondary-projects small{color:#aaa;line-height:1.56}

.profile-section{padding:120px 4vw;background:var(--white);color:var(--black)}
.profile-heading{margin-bottom:70px}
.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(0,0,0,.2)}
.profile-card{padding:34px 20px 50px 0;border-bottom:1px solid rgba(0,0,0,.2)}
.profile-card:nth-child(odd){border-right:1px solid rgba(0,0,0,.2);padding-right:35px}
.profile-card:nth-child(even){padding-left:35px}
.profile-card span{font-size:.7rem;color:#777}
.profile-card h3{font-size:2rem;font-weight:500;margin:25px 0 12px}
.profile-card p{max-width:540px;color:#5b5b57;line-height:1.62}
.tool-line{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:42px;
}
.tool-line span{
  border:1px solid rgba(0,0,0,.23);padding:9px 11px;
  font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;
}

.education-section{
  padding:100px 4vw;display:grid;grid-template-columns:1fr 1fr;gap:6vw;border-bottom:1px solid var(--line);
}
.education-details{align-self:end}
.education-details p{margin:0;padding:16px 0;border-bottom:1px solid var(--line);color:#c3c1bb}
.contact-section{padding:140px 4vw;text-align:center}
.contact-section h2{font-size:clamp(3.2rem,8vw,8rem)}
.contact-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:48px}
.contact-row a{
  padding:14px 18px;border:1px solid var(--line);text-decoration:none;
  text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;
}
footer{
  display:flex;justify-content:space-between;padding:24px 4vw;color:var(--muted);
  font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;
}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:850px){
  .site-header{grid-template-columns:1fr auto;padding:18px 16px}
  .site-header nav{display:none}
  .hero{grid-template-columns:1fr;padding:105px 16px 34px;gap:22px}
  .hero h1{font-size:clamp(3.25rem,15vw,5.4rem)}
  .hero-description{font-size:1rem;line-height:1.5}
  .hero-actions{display:grid;grid-template-columns:1fr;max-width:370px}
  .primary-action,.secondary-action{text-align:center}
  .hero-visual{width:min(78vw,360px);aspect-ratio:.9;justify-self:center;margin-top:8px}
  .portrait-mask{inset:6% 8% 0}
  .orbit-one{inset:12% 0 4%}.orbit-two{inset:4% -7% -4%}
  .coordinate-a{left:-2%}.coordinate-b{right:-7%}
  .hero-meta{grid-template-columns:1fr;gap:14px;margin-top:5px}
  .signal-strip{padding-left:16px;padding-right:16px}
  .work-section,.experience-section,.profile-section,.education-section,.contact-section{padding-left:16px;padding-right:16px}
  .experience-section{padding-top:96px}
  .experience-heading{grid-template-columns:1fr;gap:22px}
  .experience-title{text-align:left}
  .experience-stage{grid-template-columns:1fr;min-height:auto;padding:32px 22px}
  .experience-pillars{grid-template-columns:1fr}
  .experience-pillars article,.experience-pillars article:nth-child(odd),.experience-pillars article:nth-child(even){
    border-right:0;padding-left:0;padding-right:0
  }
  .manufacturing-visual{min-height:390px}

  .work-section{padding-top:96px}
  .section-intro{display:block;margin-bottom:46px}
  .section-intro h2{margin-top:18px}
  .case-study{grid-template-columns:1fr;min-height:auto;padding:32px 22px}
  .case-stats{grid-template-columns:1fr}
  .solar-blueprint,.propulsion-visual{min-height:390px}
  .propulsion-case .propulsion-visual{order:2}
  .secondary-projects{grid-template-columns:1fr}
  .secondary-projects article{border-right:0;border-bottom:1px solid var(--line)}
  .profile-grid{grid-template-columns:1fr}
  .profile-card,.profile-card:nth-child(odd),.profile-card:nth-child(even){border-right:0;padding-left:0;padding-right:0}
  .education-section{grid-template-columns:1fr}
  footer{display:block;text-align:center}
  footer span{display:block;margin:5px 0}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .orbit-two{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}
