:root {
  --bg: #070b14;
  --bg-2: #0a0f1c;
  --panel: rgba(17, 24, 39, 0.72);
  --panel-solid: #101827;
  --panel-2: #111722;
  --text: rgba(245, 249, 255, 0.96);
  --muted: rgba(224, 233, 247, 0.62);
  --dim: rgba(199, 214, 236, 0.42);
  --line: rgba(255, 255, 255, 0.085);
  --line-strong: rgba(120, 185, 255, 0.2);
  --blue: #4f8eff;
  --blue-2: #65c7ff;
  --cyan: #18c5c9;
  --radius: 22px;
  --radius-sm: 14px;
  --shadow: 0 28px 90px rgba(0, 0, 0, 0.34);
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 82% 12%, rgba(36, 118, 255, 0.11), transparent 34rem),
    radial-gradient(circle at 8% 44%, rgba(19, 197, 201, 0.055), transparent 30rem),
    var(--bg);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
::selection { background: rgba(79, 142, 255, 0.35); color: #fff; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 999;
  transform: translateY(-160%); padding: .7rem 1rem; border-radius: 10px;
  background: #fff; color: #07101e; font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }

.page-grid {
  position: fixed; inset: 0; pointer-events: none; z-index: -1; opacity: .42;
  background-image:
    linear-gradient(rgba(125, 170, 227, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(125, 170, 227, .025) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, black 0%, transparent 92%);
}

.cursor-glow {
  position: fixed; width: 420px; height: 420px; border-radius: 50%; z-index: -1;
  pointer-events: none; transform: translate(-50%, -50%); opacity: .16;
  background: radial-gradient(circle, rgba(48, 132, 255, .22), transparent 64%);
  filter: blur(16px);
}

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: 116px 0; }
.section-head { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1rem 4rem; align-items: end; margin-bottom: 58px; }
.section-head .section-index { grid-column: 1 / -1; }
.section-head h2 { margin: 0; font-size: clamp(2.5rem, 5vw, 4.5rem); letter-spacing: -.055em; line-height: .98; }
.section-head p { margin: 0 0 .35rem; color: var(--muted); max-width: 44rem; font-size: 1.03rem; }
.section-index { font-size: .72rem; letter-spacing: .16em; color: var(--blue-2); font-weight: 700; }

.site-header { position: fixed; inset: 18px 0 auto; z-index: 100; transition: .3s ease; }
.nav-shell {
  width: min(calc(100% - 34px), 1240px); margin: auto; min-height: 68px;
  display: flex; align-items: center; justify-content: space-between; gap: 1.4rem;
  padding: 10px 12px 10px 16px; border: 1px solid transparent; border-radius: 18px;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}
.site-header.scrolled .nav-shell {
  background: rgba(7, 11, 20, .78); border-color: var(--line); backdrop-filter: blur(18px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .22);
}
.brand { display: flex; gap: .75rem; align-items: center; min-width: max-content; }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 11px; font-weight: 900; letter-spacing: -.05em; color: #fff; background: linear-gradient(145deg, rgba(79,142,255,.16), rgba(24,197,201,.04)); }
.brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.brand-copy strong { font-size: .88rem; }
.brand-copy small { margin-top: 4px; font-size: .54rem; letter-spacing: .16em; color: var(--dim); }
.nav-links { display: flex; align-items: center; gap: 1.1rem; margin-left: auto; }
.nav-links a { color: var(--muted); font-size: .82rem; transition: color .2s ease; }
.nav-links a:hover, .nav-links a.active { color: #fff; }
.nav-actions { display: flex; align-items: center; gap: .5rem; }
.icon-link { width: 38px; height: 38px; display: grid; place-items: center; color: var(--muted); border: 1px solid var(--line); border-radius: 11px; transition: .2s ease; }
.icon-link:hover { color: #fff; border-color: var(--line-strong); transform: translateY(-1px); }
.icon-link svg { width: 17px; fill: currentColor; }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 11px; background: transparent; color: #fff; padding: 12px 10px; }
.menu-toggle span { display: block; height: 1px; background: currentColor; margin: 5px 0; transition: .25s ease; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 50px; padding: 0 1.25rem; border-radius: 13px; border: 1px solid var(--line); font-size: .88rem; font-weight: 700; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.btn svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: white; border-color: rgba(100, 169, 255, .38); background: linear-gradient(135deg, #2f71e9, #367edc 62%, #23759c); box-shadow: 0 16px 40px rgba(48, 122, 229, .18); }
.btn-primary:hover { border-color: rgba(127, 199, 255, .7); }
.btn-secondary { background: rgba(255,255,255,.025); color: rgba(245,249,255,.88); }
.btn-secondary:hover { border-color: var(--line-strong); background: rgba(255,255,255,.045); }
.btn-small { min-height: 38px; padding: 0 .85rem; font-size: .76rem; border-radius: 10px; }

.hero { min-height: 100vh; padding-top: 158px; padding-bottom: 70px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.hero::before { content:""; position: absolute; width: 620px; height: 620px; border-radius: 50%; right: -180px; top: 70px; background: radial-gradient(circle, rgba(56,125,255,.12), transparent 68%); filter: blur(16px); }
.hero-atmosphere { position: absolute; inset: 0; pointer-events: none; opacity: .56; }
.network-map { width: 100%; height: 100%; }
.network-lines path { fill: none; stroke: rgba(76,147,255,.12); stroke-width: 1; }
.network-nodes circle { fill: rgba(101,199,255,.55); filter: drop-shadow(0 0 8px rgba(101,199,255,.3)); }
.hero-grid { display: grid; grid-template-columns: 1.05fr .86fr; align-items: center; gap: 7vw; position: relative; z-index: 2; }
.eyebrow { display: inline-flex; align-items: center; gap: .65rem; padding: .4rem .65rem; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.02); color: rgba(219,229,244,.72); font-size: .71rem; letter-spacing: .035em; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 5px rgba(24,197,201,.08), 0 0 16px rgba(24,197,201,.5); }
.hero h1 { margin: 24px 0 24px; font-size: clamp(4rem, 8.2vw, 7.1rem); line-height: .82; letter-spacing: -.075em; font-weight: 820; }
.hero h1 span { color: transparent; -webkit-text-stroke: 1px rgba(225,238,255,.58); text-shadow: 0 0 60px rgba(79,142,255,.08); }
.hero-statement { margin: 0; max-width: 700px; font-size: clamp(1.25rem, 2.2vw, 1.85rem); line-height: 1.4; letter-spacing: -.028em; color: rgba(239,245,255,.9); }
.hero-statement strong { color: var(--blue-2); font-weight: 640; }
.hero-support { max-width: 650px; margin: 22px 0 0; color: var(--muted); font-size: .98rem; }
.hero-cta { display: flex; gap: .8rem; margin-top: 32px; flex-wrap: wrap; }
.hero-socials { display: flex; gap: 1.25rem; margin-top: 25px; flex-wrap: wrap; }
.hero-socials a { color: var(--dim); font-size: .76rem; }
.hero-socials a span { color: var(--blue-2); margin-left: .18rem; }
.hero-socials a:hover { color: #fff; }

.portrait-stage { position: relative; width: min(100%, 440px); justify-self: end; margin-right: 1vw; }
.portrait-card { position: relative; z-index: 3; border: 1px solid rgba(128,181,255,.18); border-radius: 26px; padding: 10px; background: linear-gradient(145deg, rgba(21,30,48,.9), rgba(7,13,24,.95)); box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.035); overflow: hidden; }
.portrait-card::before { content:""; position:absolute; inset:0; pointer-events:none; background: linear-gradient(120deg, rgba(83,155,255,.1), transparent 26%, transparent 74%, rgba(23,197,201,.05)); }
.portrait-topbar, .portrait-footer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 4px 6px 12px; color: rgba(194,215,241,.45); font-size: .58rem; letter-spacing: .14em; }
.portrait-footer { padding: 12px 6px 4px; }
.signal { color: #72e5d2; }
.portrait-frame { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 18px; background: #0c1220; }
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 39%; filter: saturate(.82) contrast(1.04) brightness(.91); }
.portrait-vignette { position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,9,18,.5), transparent 33%), radial-gradient(circle at 50% 40%, transparent 48%, rgba(5,9,18,.22)); }
.portrait-scan { position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 40%, rgba(79,142,255,.055) 49%, rgba(101,199,255,.12) 50%, rgba(79,142,255,.055) 51%, transparent 60%); transform: translateY(-55%); animation: scan 7s linear infinite; opacity: .6; }
.portrait-orbit { position: absolute; border: 1px solid rgba(85,154,255,.12); border-radius: 50%; z-index: 0; }
.orbit-one { width: 520px; height: 520px; left: -76px; top: 58px; }
.orbit-two { width: 580px; height: 580px; left: -106px; top: 28px; border-style: dashed; opacity: .5; animation: rotate 42s linear infinite; }
.tech-chip { position: absolute; z-index: 5; padding: .48rem .63rem; border: 1px solid rgba(112,177,255,.2); border-radius: 9px; background: rgba(7,12,23,.88); backdrop-filter: blur(10px); color: rgba(218,232,249,.78); font-size: .58rem; letter-spacing: .13em; box-shadow: 0 14px 30px rgba(0,0,0,.22); }
.chip-ai { left: -54px; top: 23%; }
.chip-med { right: -50px; top: 45%; }
.chip-re { left: -28px; bottom: 14%; }
.micro-readout { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: .25rem; color: rgba(105,182,255,.3); font: 600 .58rem/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.micro-readout small { color: rgba(193,214,241,.24); }
.readout-a { right: -98px; top: 18%; }
.readout-b { right: -80px; bottom: 10%; }

.hero-metrics { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 70px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.metric { display: flex; align-items: center; gap: 1rem; min-height: 86px; padding: 12px 24px; border-right: 1px solid var(--line); }
.metric:first-child { padding-left: 0; }
.metric:last-child { border-right: 0; }
.metric span { color: var(--blue-2); font: 700 1.2rem/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.metric p { margin: 0; color: var(--dim); font-size: .76rem; }

.about { border-top: 1px solid rgba(255,255,255,.03); }
.about-grid { display: grid; grid-template-columns: 1.3fr .8fr; gap: 9vw; align-items: start; }
.about-copy { max-width: 720px; }
.about-copy p { color: var(--muted); font-size: 1rem; }
.about-copy .lead { margin-top: 0; color: rgba(238,245,255,.86); font-size: clamp(1.3rem, 2.3vw, 1.85rem); letter-spacing: -.025em; line-height: 1.5; }
.about-copy strong { color: #fff; font-weight: 620; }
.profile-facts { border-top: 1px solid var(--line); }
.fact-row { display: grid; grid-template-columns: .72fr 1.28fr; gap: 1rem; padding: 18px 0; border-bottom: 1px solid var(--line); }
.fact-row span { color: var(--dim); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.fact-row strong { font-size: .88rem; font-weight: 600; }

.expertise { background: linear-gradient(to bottom, transparent, rgba(9,16,29,.72), transparent); }
.expertise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.expertise-card { position: relative; min-height: 360px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(17,24,39,.7), rgba(10,15,28,.58)); overflow: hidden; transition: transform .28s ease, border-color .28s ease, background .28s ease; }
.expertise-card:hover { transform: translateY(-4px); border-color: rgba(105,174,255,.22); background: linear-gradient(145deg, rgba(19,29,49,.84), rgba(10,15,28,.62)); }
.expertise-card::after { content:""; position:absolute; width: 260px; height:260px; border-radius:50%; right:-130px; top:-130px; background: radial-gradient(circle, rgba(79,142,255,.09), transparent 65%); }
.expertise-number { color: rgba(118,184,255,.46); font: 700 .65rem/1 ui-monospace, monospace; letter-spacing:.15em; }
.expertise-icon { width: 46px; height:46px; margin: 52px 0 22px; color: rgba(123,196,255,.85); }
.expertise-icon svg { fill:none; stroke:currentColor; stroke-width:1.4; }
.expertise-card h3 { margin:0 0 12px; font-size:1.45rem; letter-spacing:-.025em; }
.expertise-card p { margin:0; color:var(--muted); max-width: 32rem; }
.expertise-card ul { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:24px 0 0; }
.expertise-card li { padding:.38rem .58rem; border:1px solid var(--line); border-radius:8px; color:rgba(214,227,245,.62); font-size:.68rem; }

.projects { overflow:hidden; }
.project-row { display:grid; grid-template-columns:1.1fr .9fr; gap:6vw; align-items:center; padding:54px 0 92px; border-top:1px solid var(--line); }
.project-row-reverse { grid-template-columns:.9fr 1.1fr; }
.project-visual { position:relative; min-height:460px; border:1px solid var(--line); border-radius:24px; background:linear-gradient(145deg,#0f1727,#0a111e); overflow:hidden; box-shadow:0 25px 70px rgba(0,0,0,.24); transition:transform .35s ease,border-color .35s ease; }
.project-row:hover .project-visual { transform:scale(1.012); border-color:rgba(94,169,255,.21); }
.project-visual::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(120,175,235,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(120,175,235,.04) 1px,transparent 1px); background-size:30px 30px; }
.visual-label,.visual-bottom { position:absolute; left:20px; right:20px; z-index:3; display:flex; justify-content:space-between; color:rgba(193,215,242,.36); font:600 .58rem/1 ui-monospace,monospace; letter-spacing:.14em; }
.visual-label { top:20px; }
.visual-bottom { bottom:20px; }
.medical-visual svg { position:absolute; inset:38px 0 36px; width:100%; height:calc(100% - 74px); }
.scan-ring { fill:none; stroke:rgba(101,199,255,.22); stroke-width:1.2; stroke-dasharray:7 9; transform-origin:center; animation:rotate 26s linear infinite; }
.lung-line { fill:rgba(70,145,255,.06); stroke:rgba(118,199,255,.7); stroke-width:1.6; filter:drop-shadow(0 0 10px rgba(80,160,255,.14)); }
.ecg-line { fill:none; stroke:rgba(24,197,201,.5); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:12 8; animation:dash 9s linear infinite; }
.scan-dots circle { fill:#69c8ff; opacity:.8; filter:drop-shadow(0 0 8px rgba(105,200,255,.75)); }
.scan-text { fill:rgba(203,224,247,.32); font:600 12px ui-monospace,monospace; letter-spacing:1.5px; }
.project-info { padding:20px 0; }
.project-kicker { color:var(--blue-2); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; }
.project-info h3 { margin:17px 0 20px; font-size:clamp(2.1rem,4vw,3.65rem); line-height:1.02; letter-spacing:-.055em; }
.project-info>p { color:var(--muted); font-size:1rem; max-width:42rem; }
.project-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin:25px 0 32px; }
.project-tags span { border:1px solid var(--line); border-radius:999px; padding:.4rem .65rem; color:rgba(216,229,247,.65); font-size:.68rem; }
.project-notes { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; border-top:1px solid var(--line); padding-top:18px; }
.project-notes div { display:flex; flex-direction:column; gap:.3rem; }
.project-notes small { color:var(--dim); font-size:.6rem; letter-spacing:.13em; }
.project-notes strong { font-size:.8rem; font-weight:600; }
.reverse-visual { padding:72px 32px 86px; }
.assembly-panel { position:relative; z-index:2; border:1px solid rgba(135,183,235,.1); border-radius:14px; background:rgba(4,9,17,.7); padding:16px 0; font:500 .66rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; box-shadow:inset 0 0 40px rgba(58,122,210,.04); }
.asm-line { display:grid; grid-template-columns:112px 52px 1fr; gap:.55rem; padding:7px 14px; color:rgba(202,216,236,.46); }
.asm-line span { color:rgba(98,174,255,.38); }
.asm-line b { color:rgba(127,206,255,.72); font-weight:600; }
.asm-line i { font-style:normal; }
.asm-line.active { background:rgba(60,135,255,.08); color:rgba(230,239,250,.72); border-left:2px solid #4f8eff; }
.callgraph { position:absolute; right:20px; bottom:48px; width:270px; opacity:.56; }
.callgraph path,.callgraph rect { fill:rgba(25,48,78,.55); stroke:rgba(104,180,255,.38); stroke-width:1; }

.experience { background:rgba(9,14,25,.42); }
.timeline { position:relative; margin-top:12px; }
.timeline::before { content:""; position:absolute; left:18px; top:5px; bottom:5px; width:1px; background:linear-gradient(#4f8eff,rgba(79,142,255,.06)); }
.timeline-item { position:relative; display:grid; grid-template-columns:230px 1fr; gap:5vw; padding:0 0 72px 68px; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-marker { position:absolute; left:11px; top:8px; width:15px; height:15px; border-radius:50%; background:#0c1321; border:1px solid rgba(130,183,245,.35); box-shadow:0 0 0 7px rgba(66,129,213,.05); }
.timeline-marker.current { background:#4f8eff; box-shadow:0 0 0 7px rgba(79,142,255,.08),0 0 24px rgba(79,142,255,.5); }
.timeline-meta { display:flex; flex-direction:column; gap:.45rem; padding-top:.1rem; }
.timeline-meta span:first-child { color:var(--blue-2); font:.72rem/1.4 ui-monospace,monospace; letter-spacing:.06em; }
.timeline-meta span:last-child { color:var(--dim); font-size:.65rem; letter-spacing:.12em; }
.timeline-content { max-width:700px; }
.timeline-content h3 { margin:0 0 10px; font-size:1.75rem; letter-spacing:-.035em; }
.timeline-content h3 span { color:var(--dim); font-weight:500; font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; margin-left:.5rem; }
.timeline-content p { margin:0 0 20px; color:var(--muted); }
.timeline-content ul { margin:0; padding:0; list-style:none; }
.timeline-content li { position:relative; padding:5px 0 5px 18px; color:rgba(218,229,244,.72); font-size:.88rem; }
.timeline-content li::before { content:""; position:absolute; left:0; top:15px; width:7px; height:1px; background:var(--blue-2); }

.research-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; align-items:start; }
.sticky-head { position:sticky; top:130px; display:block; margin:0; }
.sticky-head h2 { margin:18px 0; }
.sticky-head p { max-width:28rem; }
.research-list { border-top:1px solid var(--line); }
.research-item { display:grid; grid-template-columns:54px .8fr 1.2fr; gap:1rem 2rem; align-items:center; min-height:112px; border-bottom:1px solid var(--line); transition:padding .25s ease,background .25s ease; }
.research-item:hover { padding-inline:12px; background:rgba(255,255,255,.012); }
.research-item>span { color:rgba(101,199,255,.42); font:.68rem/1 ui-monospace,monospace; }
.research-item h3 { margin:0; font-size:1.05rem; }
.research-item p { margin:0; color:var(--muted); font-size:.83rem; }

.stack { background:linear-gradient(180deg,transparent,rgba(10,16,29,.75),transparent); }
.stack-layout { border-top:1px solid var(--line); }
.stack-group { display:grid; grid-template-columns:220px 1fr; gap:2rem; padding:25px 0; border-bottom:1px solid var(--line); }
.stack-label { color:rgba(107,186,255,.62); font:.68rem/1.5 ui-monospace,monospace; letter-spacing:.13em; padding-top:.3rem; }
.stack-items { display:flex; gap:.6rem 1.3rem; flex-wrap:wrap; }
.stack-items strong { font-size:1rem; font-weight:530; color:rgba(236,244,255,.82); }

.education-grid { display:grid; grid-template-columns:1.15fr .75fr .95fr; gap:22px; }
.education-column { border-top:1px solid rgba(121,182,255,.24); padding-top:20px; }
.education-column>h3 { margin:0 0 30px; font-size:.74rem; color:var(--blue-2); letter-spacing:.12em; text-transform:uppercase; }
.credential { padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.credential:last-child { margin-bottom:0; }
.credential span { color:var(--dim); font:.63rem/1.4 ui-monospace,monospace; letter-spacing:.08em; }
.credential h4 { margin:8px 0 7px; font-size:1.05rem; letter-spacing:-.02em; }
.credential p { margin:0; color:var(--muted); font-size:.82rem; }
.credential small { display:block; margin-top:8px; color:rgba(105,199,255,.64); font-size:.68rem; }
.credential.compact { padding-bottom:18px; margin-bottom:18px; }
.credential.compact h4 { margin:0; }

.contact { padding-bottom:90px; }
.contact-shell { position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:7vw; padding:64px; border:1px solid rgba(111,177,255,.14); border-radius:28px; background:linear-gradient(145deg,rgba(16,25,42,.84),rgba(8,13,23,.86)); overflow:hidden; box-shadow:0 35px 100px rgba(0,0,0,.25); }
.contact-shell::before { content:""; position:absolute; width:600px; height:600px; border-radius:50%; left:-250px; bottom:-360px; background:radial-gradient(circle,rgba(56,131,255,.14),transparent 66%); }
.contact-copy,.contact-details { position:relative; z-index:2; }
.contact-copy h2 { margin:18px 0 24px; font-size:clamp(3rem,6vw,5.4rem); line-height:.95; letter-spacing:-.065em; }
.contact-copy h2 span { color:var(--blue-2); }
.contact-copy p { color:var(--muted); max-width:580px; }
.contact-actions { display:flex; gap:.75rem; margin-top:30px; flex-wrap:wrap; }
.contact-details { border-top:1px solid var(--line); align-self:center; }
.contact-details a { display:grid; grid-template-columns:75px 1fr 20px; gap:1rem; align-items:center; min-height:76px; border-bottom:1px solid var(--line); transition:padding .2s ease,background .2s ease; }
.contact-details a:hover { padding-inline:10px; background:rgba(255,255,255,.012); }
.contact-details small { color:var(--dim); font-size:.58rem; letter-spacing:.12em; }
.contact-details strong { font-size:.78rem; font-weight:560; overflow-wrap:anywhere; }
.contact-details span { color:var(--blue-2); }

.site-footer { padding:28px 0 38px; border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:1fr 1.5fr auto; gap:2rem; align-items:center; }
.footer-grid>div { display:flex; flex-direction:column; }
.footer-grid strong { font-size:.82rem; }
.footer-grid span,.footer-grid p,.footer-grid a { color:var(--dim); font-size:.67rem; }
.footer-grid p { margin:0; text-align:center; }
.footer-grid a:hover { color:#fff; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .72s cubic-bezier(.2,.65,.25,1),transform .72s cubic-bezier(.2,.65,.25,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.08s; }
.reveal-delay-2 { transition-delay:.15s; }
.reveal-delay-3 { transition-delay:.22s; }

@keyframes scan { from { transform:translateY(-65%); } to { transform:translateY(65%); } }
@keyframes rotate { to { transform:rotate(360deg); } }
@keyframes dash { to { stroke-dashoffset:-160; } }

@media (max-width: 1080px) {
  .nav-links { gap:.7rem; }
  .nav-links a { font-size:.75rem; }
  .nav-cv { display:none; }
  .hero-grid { grid-template-columns:1fr .78fr; gap:5vw; }
  .readout-a,.readout-b { display:none; }
  .project-row,.project-row-reverse { grid-template-columns:1fr; gap:35px; }
  .project-row-reverse .project-info { order:2; }
  .project-row-reverse .project-visual { order:1; }
  .project-visual { min-height:500px; }
  .education-grid { grid-template-columns:1fr 1fr; }
  .education-column:last-child { grid-column:1 / -1; }
}

@media (max-width: 860px) {
  .site-header { inset:10px 0 auto; }
  .nav-shell { width:min(calc(100% - 20px),1240px); }
  .nav-links { position:fixed; inset:88px 10px auto; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:14px; border:1px solid var(--line); border-radius:18px; background:rgba(7,11,20,.96); backdrop-filter:blur(20px); box-shadow:0 28px 80px rgba(0,0,0,.4); opacity:0; visibility:hidden; transform:translateY(-10px); transition:.25s ease; }
  .nav-links.open { opacity:1; visibility:visible; transform:none; }
  .nav-links a { padding:13px 10px; border-bottom:1px solid var(--line); font-size:.9rem; }
  .nav-links a:last-child { border-bottom:0; }
  .menu-toggle { display:block; }
  .icon-link { display:none; }
  .hero { padding-top:130px; }
  .hero-grid { grid-template-columns:1fr; gap:55px; }
  .portrait-stage { justify-self:center; margin-right:0; width:min(86vw,420px); }
  .hero h1 { font-size:clamp(4.2rem,17vw,7.2rem); }
  .hero-metrics { grid-template-columns:repeat(2,1fr); }
  .metric:nth-child(2) { border-right:0; }
  .metric:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .section { padding:90px 0; }
  .section-head { grid-template-columns:1fr; gap:18px; margin-bottom:42px; }
  .about-grid { grid-template-columns:1fr; gap:50px; }
  .expertise-grid { grid-template-columns:1fr; }
  .timeline-item { grid-template-columns:1fr; gap:14px; }
  .research-grid { grid-template-columns:1fr; gap:46px; }
  .sticky-head { position:static; }
  .research-item { grid-template-columns:45px 1fr; padding:18px 0; }
  .research-item p { grid-column:2; }
  .stack-group { grid-template-columns:1fr; gap:14px; }
  .contact-shell { grid-template-columns:1fr; padding:42px; }
  .footer-grid { grid-template-columns:1fr; text-align:center; }
  .footer-grid>div { align-items:center; }
}

@media (max-width: 620px) {
  .container { width:min(calc(100% - 28px),var(--container)); }
  .brand-copy { display:none; }
  .hero { padding-top:118px; }
  .eyebrow { border-radius:12px; line-height:1.45; }
  .hero-statement { font-size:1.24rem; }
  .hero-support { font-size:.9rem; }
  .hero-cta .btn { flex:1 1 150px; }
  .hero-socials { gap:.85rem; }
  .hero-metrics { margin-top:48px; }
  .metric { min-height:76px; padding:12px 14px; gap:.7rem; }
  .metric:first-child { padding-left:14px; }
  .metric span { font-size:1rem; }
  .metric p { font-size:.65rem; }
  .portrait-stage { width:min(88vw,380px); }
  .chip-ai { left:-7px; top:19%; }
  .chip-med { right:-8px; top:50%; }
  .chip-re { left:0; bottom:10%; }
  .orbit-one,.orbit-two { display:none; }
  .section { padding:76px 0; }
  .section-head h2 { font-size:2.65rem; }
  .expertise-card { min-height:auto; padding:24px; }
  .expertise-icon { margin-top:38px; }
  .project-row { padding:36px 0 72px; }
  .project-visual { min-height:360px; border-radius:18px; }
  .reverse-visual { padding:65px 15px 76px; }
  .assembly-panel { font-size:.55rem; overflow:hidden; }
  .asm-line { grid-template-columns:90px 40px 1fr; padding-inline:10px; }
  .callgraph { width:200px; }
  .project-info h3 { font-size:2.35rem; }
  .project-notes { grid-template-columns:1fr; }
  .timeline::before { left:10px; }
  .timeline-item { padding-left:42px; }
  .timeline-marker { left:3px; }
  .research-item { gap:1rem; }
  .education-grid { grid-template-columns:1fr; }
  .education-column:last-child { grid-column:auto; }
  .contact-shell { padding:28px 22px; border-radius:20px; }
  .contact-copy h2 { font-size:3.2rem; }
  .contact-details a { grid-template-columns:60px 1fr 15px; gap:.7rem; }
  .contact-details strong { font-size:.68rem; }
}

@media (pointer: coarse), (max-width: 860px) { .cursor-glow { display:none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}
