 :root{--bg:#0b1220;--panel:#14243a;--text:#edf4ff;--muted:#9aabc2;--line:rgba(180,205,235,.15);--blue:#66b7ff;--cyan:#69e0d0;--display:'Space Grotesk',sans-serif;--font:'DM Sans',sans-serif;--max:1100px}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:85px}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.65}a{color:inherit;text-decoration:none}.wrap{width:min(var(--max),calc(100% - 44px));margin:auto}.progress{position:fixed;z-index:999;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--blue),var(--cyan))}
header{height:72px;position:sticky;top:0;z-index:99;background:#0b1220df;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.nav{height:100%;display:flex;justify-content:space-between;align-items:center}.brand{font:700 14px var(--display);letter-spacing:.08em}.brand b{display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#081321;border-radius:9px;width:34px;height:34px;margin-right:8px}.brand span{color:var(--blue)}.links{display:flex;gap:28px;align-items:center;color:var(--muted);font-size:13px}.links a:hover{color:white}.nav-cta{border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:white!important}#menuBtn{display:none;background:none;color:white;border:0;font-size:24px}
.hero{min-height:625px;padding-top:75px;padding-bottom:70px;display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center}.eyebrow,.heading small,.contact small{color:var(--cyan);font-weight:700;font-size:10px;letter-spacing:.16em}.hero h1,.heading h2,.contact h2{font:700 clamp(38px,5vw,63px)/1.08 var(--display);letter-spacing:-.05em;margin-top:17px}.hero em,.heading em,.contact em{font-style:normal;color:var(--blue);background:linear-gradient(90deg,var(--blue),var(--cyan));background-clip:text;-webkit-background-clip:text;color:transparent}.lead{color:var(--muted);font-size:15px;max-width:570px;margin-top:23px}.lead strong{color:white}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}.btn{padding:11px 17px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700;display:inline-block;transition:.2s}.btn:hover{transform:translateY(-3px);border-color:var(--cyan)}.primary{background:linear-gradient(110deg,var(--blue),var(--cyan));color:#071522;border:0}.meta{color:var(--muted);font-size:11px;margin-top:30px}.visual{min-height:420px;display:grid;place-items:center;position:relative}.orbit{position:absolute;width:390px;aspect-ratio:1;border:1px dashed #66b7ff33;border-radius:50%;animation:spin 50s linear infinite}.terminal{z-index:1;width:min(340px,90%);padding:23px;border:1px solid #8bbde044;border-radius:15px;background:linear-gradient(145deg,#1a304c,#0d192a);box-shadow:0 30px 80px #0007;transform:rotate(-2deg)}.terminal-top{font:10px monospace;color:#7d9ab6}.terminal-top span{margin-left:10px}.terminal-top small{float:right;color:var(--cyan)}.symbol{margin-top:28px;width:42px;height:42px;border-radius:11px;background:#66b7ff20;color:var(--blue);display:grid;place-items:center;font-size:22px}.terminal .cyan{display:block;color:var(--cyan);margin-top:15px;font:10px monospace;letter-spacing:.13em}.terminal h2{font:700 34px/1.1 var(--display);margin:8px 0 20px}.blink{color:var(--cyan);animation:blink 1s steps(2) infinite}.terminal p{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:9px 0;font-size:10px}.terminal p span{color:var(--muted)}.terminal footer{border-top:1px solid var(--line);padding-top:12px;color:var(--cyan);font:9px monospace}.terminal footer span{float:right}.float{position:absolute;background:#172a43;border:1px solid var(--line);border-radius:8px;padding:9px 13px;font-size:10px;box-shadow:0 12px 25px #0005}.one{top:60px;left:0;transform:rotate(-5deg)}.two{right:0;bottom:60px;transform:rotate(4deg)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);padding:24px 0;margin-bottom:35px}.stats div{padding:0 22px;border-right:1px solid var(--line)}.stats div:first-child{padding-left:0}.stats div:last-child{border:0}.stats b{display:block;font:700 27px var(--display);color:var(--blue)}.stats span{font-size:10px;color:var(--muted)}
.section{padding:90px 0}.heading{margin-bottom:38px}.heading h2{font-size:clamp(32px,4vw,47px)}.heading>p{color:var(--muted);font-size:13px;margin-top:12px}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:65px}.copy p{color:var(--muted);font-size:13px;margin-bottom:14px}.inline-link{display:inline-block;color:var(--cyan);font-size:12px;font-weight:700;margin-top:10px}.facts{display:grid;gap:12px}.facts article{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#14243a88}.facts i{font-style:normal;background:#66b7ff19;padding:11px;border-radius:9px}.facts small,.facts b,.facts span{display:block}.facts small{font-size:9px;color:var(--cyan);letter-spacing:.1em}.facts b{font-size:12px}.facts span{font-size:10px;color:var(--muted)}
.alt{background:#101c2e;border-block:1px solid var(--line)}.timeline{max-width:850px;border-left:1px solid #66b7ff55;margin-left:8px}.job{padding:0 0 30px 27px;position:relative}.job:before{content:"";position:absolute;left:-6px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px #69e0d01a}.job time,.certs time{font:10px monospace;letter-spacing:.1em;color:var(--cyan)}.job-card{background:#14243a;border:1px solid var(--line);border-radius:12px;padding:21px;margin-top:8px}.job-card h3{font:600 19px var(--display)}.job-card h3 small{float:right;color:#66b7ff66;font-size:22px}.job-card h4{font-size:11px;color:var(--muted);font-weight:500}.job-card ul{margin:15px 0 14px 17px;color:var(--muted);font-size:11px}.job-card li{padding:3px 0}.tags{display:flex;gap:6px;flex-wrap:wrap}.tags span{font-size:9px;color:#a9c7e5;padding:4px 8px;border-radius:5px;background:#66b7ff12;border:1px solid #66b7ff20}
.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.skill{padding:20px 17px;background:linear-gradient(145deg,#172a43,#101e31);border:1px solid var(--line);border-radius:12px;transition:.25s}.skill:hover,.project:hover{transform:translateY(-5px);border-color:#69e0d066}.skill i{font-style:normal;color:var(--cyan);font-size:22px}.skill h3,.project h3{font:600 16px var(--display);margin:12px 0 7px}.skill p,.project p{color:var(--muted);font-size:10px;margin-bottom:14px;min-height:76px}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.project{padding:18px;border:1px solid var(--line);border-radius:12px;background:#14243a;transition:.25s}.project>small{color:var(--cyan);font-size:8px;letter-spacing:.12em}.art{height:135px;margin-bottom:15px;border-radius:9px;background:linear-gradient(135deg,#1b3654,#0d1a2b);display:grid;place-items:center;position:relative;color:var(--cyan)}.database b{font:700 18px var(--display);border:2px solid var(--blue);border-radius:50%/18%;padding:22px 20px;background:#16334c}.nas b{font:700 17px var(--display);border:1px solid #77a8ca;padding:23px 40px;border-radius:8px;background:#193654}.nas span{position:absolute;top:26px;left:27%;font-size:9px}.cctv b{font:9px monospace}.cctv div{font-size:24px;line-height:1.3;color:#91b8d7}.project aside{font-size:9px;color:#8294ad;margin-top:12px}
.certs{border-top:1px solid var(--line)}.certs>div{display:grid;grid-template-columns:70px 1fr;gap:18px;padding:16px 8px;border-bottom:1px solid var(--line)}.certs p b,.certs p span{display:block}.certs p b{font-size:12px}.certs p span{font-size:10px;color:var(--muted)}.contact{padding:95px 0;text-align:center;background:radial-gradient(ellipse at 50% 100%,#29749733,transparent 60%),#0e1b2d;border-top:1px solid var(--line)}.contact h2{font-size:clamp(38px,5vw,58px)}.contact>div>p{max-width:530px;margin:18px auto 0;color:var(--muted);font-size:12px}.center{justify-content:center}.contact-info{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:10px;margin-top:28px}footer{border-top:1px solid var(--line);padding:20px 0}.foot{display:flex;align-items:center;justify-content:space-between;gap:15px}.foot>span,.foot>a:last-child{font-size:10px;color:var(--muted)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding-top:65px}.visual{min-height:410px}.stats{grid-template-columns:repeat(2,1fr);gap:18px}.stats div:nth-child(2){border:0}.stats div:nth-child(3){padding-left:0}.about-grid{gap:30px}.skill-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr 1fr}.project:last-child{grid-column:span 2}}
@media(max-width:600px){.wrap{width:calc(100% - 34px)}header{height:64px}#menuBtn{display:block}.links{display:none;position:absolute;top:64px;left:0;right:0;padding:18px;background:#101c2e;flex-direction:column;align-items:stretch}.links.open{display:flex}.nav-cta{text-align:center}.hero{padding-top:55px}.hero h1{font-size:42px}.lead{font-size:13px}.meta{line-height:2}.visual{min-height:370px}.orbit{width:310px}.terminal{width:290px;padding:18px}.one{top:30px}.two{bottom:30px}.stats{padding:20px 0}.stats div{padding:0 10px}.stats b{font-size:23px}.stats span{font-size:9px}.section{padding:68px 0}.heading h2{font-size:34px}.about-grid{grid-template-columns:1fr}.skill-grid,.project-grid{grid-template-columns:1fr}.project:last-child{grid-column:auto}.skill p,.project p{min-height:0}.job-card{padding:16px}.job-card ul{font-size:10px}.contact{padding:70px 0}.contact-info{flex-direction:column;gap:7px}.foot{flex-wrap:wrap}.foot>span{order:3;width:100%}}
