/* Dark engineering studio — self-contained, no external dependencies. */
:root{color-scheme:dark;--paper:#090d14;--ink:#edf3ff;--muted:#94a2b8;--line:#243044;--blue:#80a5ff;--mint:#75f0c3}
body{background:radial-gradient(ellipse at 75% 7%,#1a285046,transparent 35%),var(--paper)}
::selection{background:#80a5ff;color:#090d14}
.header{position:sticky;top:0;z-index:15;max-width:none;background:#090d14df;backdrop-filter:blur(20px);border-color:#25304780}
.header:after{content:'';position:absolute;bottom:-1px;left:0;height:2px;width:var(--scroll,0%);background:linear-gradient(90deg,var(--blue),var(--mint));box-shadow:0 0 12px #80a5ff88}
nav a{position:relative;color:#acb8cc;transition:color .2s}nav a:hover,nav a.current{color:#fff}nav a.current:after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:2px;background:var(--mint)}
.resume-link{border:1px solid #35435c;border-radius:7px;padding:9px 15px;transition:border-color .2s,background .2s}.resume-link:hover{background:#17243a;border-color:var(--blue)}
.brand{letter-spacing:-3px}.brand span{color:var(--mint)}
.hero{padding-top:85px;padding-bottom:80px;position:relative}.hero .eyebrow{color:var(--mint)}.hero .eyebrow .muted{color:#92a2be}.status-dot{background:var(--mint);box-shadow:0 0 15px #75f0c399}
h1{font-weight:600;letter-spacing:-4.5px}h1 em,h2 em{background:linear-gradient(110deg,#9db3ff 5%,#80a5ff 45%,#75f0c3 95%);background-clip:text;-webkit-text-fill-color:transparent}
.intro{color:#a6b2c7}.hero-location{color:#8798b2}.hero-location>span:first-child{color:var(--mint)}
.button{border-radius:8px;font-weight:600;transition:transform .25s,box-shadow .25s}.primary{background:#a0b8ff;color:#0a1121;box-shadow:0 4px 30px #7196ff20}.primary:hover{background:#b7c9ff;transform:translateY(-3px);box-shadow:0 8px 35px #7196ff40}.text-link{color:#d8e2f4}.text-link span{display:inline-block;transition:transform .2s}.text-link:hover span{transform:translateX(5px)}
.engineering-art{position:relative;background:radial-gradient(circle at 50% 40%,#20355299,transparent 64%),#0d1420;border:1px solid #324764;border-radius:18px;transform:perspective(1000px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));box-shadow:0 35px 90px #0005,0 0 70px #526cf00d;overflow:hidden;transition:transform .2s,border-color .3s}.engineering-art:hover{border-color:#80a5ffaa}.engineering-art:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,40%),#7da5ff14,transparent 55%)}
.art-top,.art-bottom{position:relative;border-color:#29364c;color:#a5b7d2}.art-top{font-size:8px;padding:20px}.art-top span:last-child{color:var(--mint)}.art-bottom{padding:17px}.art-bottom i{background:var(--mint);box-shadow:0 0 8px #75f0c366}
.engineering-art svg [stroke='#d8dcd9']{stroke:#26374e}.engineering-art svg [stroke='#b9c2c3']{stroke:#344867}.engineering-art svg [stroke='#2d4ded']{stroke:#88abff}.engineering-art svg [fill='#2d4ded']{fill:#88abff}.engineering-art svg [stroke='#e1e6fb']{stroke:#293c5a}.engineering-art svg [fill='#f4f3ed']{fill:#111c30}
.engineering-art svg ellipse{transform-box:fill-box;transform-origin:center;animation:rotor 6s linear infinite}.engineering-art[data-mode='software'] svg ellipse,.engineering-art[data-mode='hardware'] svg ellipse{animation-play-state:paused}.engineering-art[data-mode='hardware'] svg{filter:hue-rotate(300deg)}.engineering-art[data-mode='software'] svg{filter:hue-rotate(35deg)}
.system-controls{position:relative;padding:0 18px 18px}.system-tabs{display:flex;gap:6px;margin-bottom:12px}.system-tabs button{flex:1;border:1px solid #2b3e59;border-radius:6px;background:#101c2e;color:#9db0cb;font:10px Consolas,monospace;padding:9px 5px;transition:background .2s,color .2s}.system-tabs button[aria-pressed='true']{background:#203854;color:var(--mint);border-color:#537593}.system-description{color:#a3b5d0;font:11px/1.7 Consolas,monospace;min-height:38px;margin:0}.system-label{font:8px Consolas,monospace;letter-spacing:1px;color:#7186a6;margin:0 0 10px}
.focus-strip{background:#10172280;border-color:#263144}.focus-strip>div{color:#94a5c0}.focus-strip b{color:var(--mint)}
.eyebrow{color:#93a9cc}.section-heading>p{color:#98a9c2}.filters button{color:#a7b6cc;transition:all .2s}.filters button:hover{border-color:#7086ab;color:#fff}.filters button.active{color:#09111b;background:var(--mint);border-color:var(--mint)}
.project{border:1px solid #253148;background:#101722;border-radius:14px;padding:10px;transition:transform .3s,border-color .3s,box-shadow .3s;position:relative}.project:hover{transform:translateY(-6px);border-color:#526b94;box-shadow:0 16px 45px #0004}.project-art{border-radius:8px;height:260px}.project-content{padding:22px 14px 15px}.project-content .eyebrow{color:#92a6c3}.project-content>p:not(.eyebrow){color:#9aaac2}.project h3{font-size:21px}.project h3 button{color:#b8cbef;border-color:#3a4c68;background:#172335;transition:transform .2s,background .2s}.project h3 button:hover{color:#07121a;background:var(--mint);border-color:var(--mint);transform:rotate(45deg)}.tags span{border-color:#2b3b52;background:#152032;color:#a7bbda;font-size:9px}.project-note{color:#788da9}
.chain-art{background:radial-gradient(ellipse at top,#204b3d,#112820);color:#a5f3ce}.chain>span{border-color:#426f5c;background:#183c30;box-shadow:4px 4px 0 #0d211a;color:#c1f9df}.chain i{color:#8fbd9e}.robot-art{background:radial-gradient(ellipse at top,#253c66,#121f37);color:#acc8ff}.control-art{background:radial-gradient(ellipse at top,#234f50,#112c2f);color:#9cf0e7}.circuit-art{background:radial-gradient(ellipse at top,#4f3658,#281c32);color:#e3b8f0}.project-art .art-label{opacity:.8}.art-caption{font-weight:500}
.robot-art svg [stroke='#c4ceda']{stroke:#56739f}.robot-art svg [stroke='#2d4ded']{stroke:#94b8ff}.robot-art svg [fill='#2d4ded']{fill:#94b8ff}.control-art svg [stroke='#c5cdc5']{stroke:#376367}.control-art svg [stroke='#39684a']{stroke:#79e1d3}.control-art svg [fill='#39684a']{fill:#79e1d3}.circuit-art svg{stroke:#d4a3ea}.circuit-art svg [fill='#765b3e']{fill:#d4a3ea}.circuit-art svg [fill='#efe4d4']{fill:#2e203b}.robot-art svg>path{animation:flow 3s linear infinite}.project:hover .control-art svg>path{stroke-dasharray:650;animation:draw 1.5s ease both}
.about{background:linear-gradient(130deg,#111c2b,#0d141f);border-color:#26344a}.about p:not(.eyebrow){color:#9aabc3}.education,.skills>div:not(.participation){border-color:#2b3c53}.education strong{color:var(--mint)}.skills>div>span{color:var(--mint)}.skills>div:not(.participation){transition:padding .25s,background .25s}.skills>div:not(.participation):hover{padding-left:12px;background:#172438}.skills .participation{border-color:#35455e;background:linear-gradient(120deg,#1b2c40,#101c2c);border-radius:10px}.participation h3{color:#c3d7fa}
.contact{position:relative}.contact:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 65% 50%,#243f642e,transparent 60%)}.contact-arrow{background:var(--mint);color:#071a15;box-shadow:0 0 40px #75f0c315;transition:transform .25s,box-shadow .25s}.contact-arrow:hover{transform:translate(4px,-4px);box-shadow:0 0 50px #75f0c333}.contact-details a:hover{color:var(--mint)}.copy-email{color:#a8bde0}.copy-email:hover{color:var(--mint)}#copy-status{color:var(--mint)}
dialog{background:linear-gradient(145deg,#17263b,#101824);border-color:#476184;box-shadow:0 30px 120px #000a;border-radius:18px}dialog::backdrop{background:#030812c9;backdrop-filter:blur(9px)}dialog p,dialog li{color:#afbed5}dialog h3{color:var(--mint)}.dialog-close{color:#bccce4}dialog[open]{animation:dialog-in .25s ease}
.motion-toggle{background:transparent;border:1px solid #35465e;border-radius:20px;color:#a4b6d1;padding:6px 11px;font:9px Consolas,monospace}.motion-toggle:hover{color:var(--mint);border-color:var(--mint)}footer{gap:18px;flex-wrap:wrap}footer p{margin-right:auto}footer .brand{margin-right:12px}
.reveal-ready{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal-ready.is-visible{opacity:1;transform:translateY(0)}.project.reveal-ready.is-visible:hover{transform:translateY(-6px)}
@keyframes rotor{to{rotate:360deg}}@keyframes flow{to{stroke-dashoffset:-48}}@keyframes draw{from{stroke-dashoffset:650}to{stroke-dashoffset:0}}@keyframes dialog-in{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
body.motion-off *,body.motion-off *:before,body.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.motion-off .reveal-ready{opacity:1;transform:none}
@media(max-width:900px){h1{letter-spacing:-3px}.project h3{font-size:19px}.project-content{padding:18px 8px 12px}.art-caption{font-size:20px}.hero{padding-top:55px}}
@media(max-width:640px){.header{gap:12px;padding:15px 5%}.resume-link{padding:7px 8px;font-size:9px}nav{gap:12px}.hero{padding-top:38px;padding-bottom:45px}h1{font-size:58px;letter-spacing:-3px}.engineering-art{width:100%;border-radius:14px}.project-art{height:245px}.project-content{padding:18px 10px 14px}.project-grid{gap:22px}.project h3{font-size:20px}.art-caption span{font-size:6px}.system-description{min-height:40px}.contact h2{font-size:38px}.section-heading>p{font-size:12px}footer p{margin-right:0}footer{gap:16px}.motion-toggle{font-size:8px;padding:6px 8px}.hero-location{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}html{scroll-behavior:auto}}

