:root{--bg:#ffffff;--panel:#f7f9fa;--line:#dfe4e7;--text:#111820;--muted:#66717a;--accent:#087f5b;--mono:"JetBrains Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif}.noise{position:fixed;inset:0;pointer-events:none;opacity:.012;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);z-index:10}.brand{font:600 14px var(--mono);color:var(--text);text-decoration:none;display:flex;gap:10px;align-items:center}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}nav{display:flex;gap:30px}nav a{font:400 12px var(--mono);color:var(--muted);text-decoration:none}nav a:hover{color:var(--text)}main{max-width:1500px;margin:auto}.hero{min-height:calc(100vh - 72px);padding:11vh 7vw 6vh;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line)}.eyebrow{font:500 11px var(--mono);letter-spacing:.12em;color:var(--accent);display:flex;gap:12px}.sep{color:#a8b0b6}.hero h1{font-size:clamp(48px,7vw,106px);line-height:.94;letter-spacing:-.06em;margin:26px 0 30px;max-width:1250px}.hero h1 span{color:#7b858d}.lead{font-size:clamp(16px,1.35vw,21px);line-height:1.65;color:#59656e;max-width:700px}.actions{display:flex;gap:10px;margin-top:25px}.button{border:1px solid var(--line);padding:14px 17px;color:var(--text);text-decoration:none;font:500 12px var(--mono);display:flex;gap:30px}.button.primary{background:#111820;color:#ffffff;border-color:#111820}.hero-metrics{display:flex;gap:55px;margin-top:8vh}.hero-metrics div{display:flex;flex-direction:column;gap:5px}.hero-metrics strong{font:500 24px var(--mono)}.hero-metrics span{font:400 10px var(--mono);color:var(--muted);text-transform:uppercase}.topology{position:absolute;right:5vw;bottom:5vh;opacity:.55;display:flex;align-items:center}.node{border:1px solid #cbd3d8;padding:8px 10px;font:9px var(--mono);color:#66717a}.line{width:30px;height:1px;background:#cbd3d8}.node.live{color:var(--accent);border-color:#8bcbb5}.node.live i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:5px}.section{padding:110px 7vw;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:60px 1fr 1fr;align-items:end;margin-bottom:55px}.section-head>span{font:400 11px var(--mono);color:var(--accent)}.section-head h2{font-size:34px;letter-spacing:-.04em;margin:0}.section-head p{margin:0;color:var(--muted);font-size:13px;justify-self:end}.projects{display:grid;grid-template-columns:1fr;border:1px solid var(--line)}.project{padding:38px;min-height:520px;position:relative;background:var(--panel);overflow:hidden}.project+ .project{border-left:1px solid var(--line)}.project.featured{background:linear-gradient(145deg,#f8fbfa,#f2f6f4)}.project-top{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--muted)}.project-state{color:#e0c16d}.project-state.done{color:var(--accent)}.project h3{font-size:clamp(32px,4vw,58px);letter-spacing:-.055em;line-height:1;margin:55px 0 25px}.project p{color:#5f6b74;line-height:1.7;font-size:14px;max-width:650px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:25px}.tags span{font:9px var(--mono);padding:6px 8px;border:1px solid #d6dde1;color:#59656e}.architecture{position:absolute;bottom:35px;left:38px;right:38px;display:flex;align-items:center;justify-content:center;gap:10px;font:9px var(--mono);color:#748089}.architecture div{padding:9px;border:1px solid #d5dde1}.architecture b{font-weight:400;color:#a1aab0}.split{display:flex!important;gap:5px}.split span{color:var(--accent)}.mini-terminal{position:absolute;bottom:35px;left:38px;right:38px;background:#f3f6f7;border:1px solid #d7dee2;padding:17px;font:10px/1.8 var(--mono);color:#6d7880}.mini-terminal span{color:#37434b}.mini-terminal em{font-style:normal;color:#087f5b}.timeline{border-top:1px solid var(--line)}.role{display:grid;grid-template-columns:28% 72%;padding:42px 0;border-bottom:1px solid var(--line)}.role-date{font:10px var(--mono);color:var(--muted);padding-top:6px}.role-body{max-width:850px}.role-title{display:flex;justify-content:space-between;align-items:baseline}.role-title h3{font-size:24px;margin:0}.role-title span{font:11px var(--mono);color:var(--accent)}.role-body>p{color:#65717a;line-height:1.75;font-size:14px;margin:20px 0}.role-proof{display:flex;gap:7px;flex-wrap:wrap}.role-proof span{font:9px var(--mono);border:1px solid #d5dce0;padding:6px 8px;color:#55616a}.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.stack-grid>div{padding:32px;min-height:180px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.stack-grid>div:nth-child(3n){border-right:0}.stack-grid>div:nth-last-child(-n+3){border-bottom:0}.stack-grid small,.edu>span,.cert>span{font:9px var(--mono);color:var(--accent)}.stack-grid h3{font-size:21px;margin:25px 0 12px}.stack-grid p{font:11px/1.7 var(--mono);color:var(--muted);margin:0}.credential-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.credential-grid>div{padding:28px;min-height:190px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.credential-grid h3{font-size:18px;line-height:1.35;margin:30px 0 10px}.credential-grid p{font-size:12px;color:var(--muted)}.edu small{font:9px var(--mono);color:var(--accent)}.contact{display:grid;grid-template-columns:1.1fr .9fr;min-height:500px;align-items:center}.contact h2{font-size:clamp(36px,4vw,62px);letter-spacing:-.055em;line-height:1.02;margin:22px 0}.contact-links{border-top:1px solid var(--line)}.contact-links a{display:flex;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);font-size:12px}.contact-links a span{font:10px var(--mono);color:var(--muted)}footer{max-width:1500px;margin:auto;padding:28px 7vw;display:flex;justify-content:space-between;font:9px var(--mono);color:#7b858d}@media(max-width:850px){.nav nav{gap:14px}.nav nav a:nth-child(2),.nav nav a:nth-child(3){display:none}.hero{padding-top:80px}.hero-metrics{gap:25px;flex-wrap:wrap}.topology{display:none}.section{padding:75px 6vw}.section-head{grid-template-columns:35px 1fr}.section-head p{display:none}.projects{grid-template-columns:1fr}.project+.project{border-left:0;border-top:1px solid var(--line)}.project{min-height:500px;padding:28px}.role{grid-template-columns:1fr;gap:18px}.role-title{display:block}.role-title span{display:block;margin-top:7px}.stack-grid{grid-template-columns:1fr}.stack-grid>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.credential-grid{grid-template-columns:1fr 1fr}.contact{grid-template-columns:1fr;gap:50px}.actions{flex-wrap:wrap}footer{gap:20px}.architecture{left:28px;right:28px;overflow:hidden}.hero h1{font-size:52px}}

/* Circular hero portrait */
.hero{padding-right:29vw}
.hero h1{max-width:920px}
.hero-photo{
  position:absolute;
  right:8vw;
  top:50%;
  transform:translateY(-50%);
  width:clamp(190px,18vw,285px);
  aspect-ratio:1/1;
  border-radius:50%;
  overflow:hidden;
  border:5px solid #fff;
  box-shadow:0 10px 30px rgba(17,24,32,.12);
  background:#f4f6f7;
}
.hero-photo:before{display:none}
.hero-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 25%;
}
@media(max-width:1000px){
  .hero{padding-right:7vw}
  .hero-photo{
    position:relative;
    right:auto;
    top:auto;
    transform:none;
    width:220px;
    margin-top:38px;
  }
  .topology{display:none}
}
@media(max-width:600px){
  .hero{padding-right:6vw}
  .hero-photo{width:180px}
}
