:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", Menlo, Consolas, monospace;--scroll-progress: 0%;line-height:1.5;color:#ecf2ff;background:#070a12}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;scroll-behavior:smooth}body{background:radial-gradient(1000px 380px at 100% -10%,rgba(79,120,255,.28) 0%,transparent 60%),radial-gradient(850px 420px at -10% 5%,rgba(54,216,182,.2) 0%,transparent 55%),#070a12;color:#ecf2ff;letter-spacing:.01em;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.15;background-image:linear-gradient(rgba(140,255,226,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(140,255,226,.15) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at 50% 25%,black 40%,transparent 90%);mask-image:radial-gradient(circle at 50% 25%,black 40%,transparent 90%)}a{color:inherit;text-decoration:none}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:var(--scroll-progress);z-index:50;background:linear-gradient(90deg,#78ffd7,#7ea8ff,#78ffd7);background-size:200% 100%;animation:gradientShift 2.6s linear infinite;box-shadow:0 0 14px #7ea8ff73}.site-header,.portfolio,.site-footer{width:min(1120px,calc(100% - 2rem));margin-inline:auto}.site-header{position:sticky;top:1rem;z-index:20;display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:.95rem 1.2rem;border:1px solid rgba(173,191,255,.18);border-radius:12px;background:#0c1221b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-wrap:wrap}.brand{font-weight:700;letter-spacing:.02em;font-family:var(--font-mono);color:#8fffe2;font-size:clamp(.7rem,4vw,.94rem);white-space:normal;word-break:break-word;max-width:100%;text-align:center}@media(max-width:400px){.brand{font-size:clamp(.6rem,5vw,.82rem)}}.top-nav{display:none;flex-direction:column;gap:.9rem;background:#0c1221e6;position:absolute;top:100%;right:1rem;padding:.8rem 1rem;border-radius:8px;z-index:30;box-shadow:0 8px 16px #0000004d}.top-nav.open{display:flex}.hamburger{background:none;border:none;color:#8fffe2;font-size:1.4rem;cursor:pointer;padding:.2rem .4rem}.hamburger:focus{outline:2px solid #8fffe2;outline-offset:2px}.top-nav a{color:#b3c3ea;font-size:.92rem;padding:.36rem .65rem;border-radius:8px;border:1px solid transparent;transition:background-color .2s ease,color .2s ease;position:relative}.top-nav a:after{content:"";position:absolute;left:.55rem;right:.55rem;bottom:.2rem;height:1.5px;background:linear-gradient(90deg,#84ffe0,#8ca8ff);transform:scaleX(0);transform-origin:left;transition:transform .26s ease}.top-nav a:hover{color:#fff;border-color:#91aaff59;background:#91aaff1f}.top-nav a:hover:after{transform:scaleX(1)}.portfolio{padding:3.2rem 0 4.2rem;animation:pageFade .7s ease-out both}.section{margin-top:2.2rem;border:1px solid rgba(130,182,255,.24);border-radius:14px;background:linear-gradient(155deg,#141d32f2,#090e1af5);padding:2rem;box-shadow:inset 0 1px #ffffff0a}.reveal{opacity:0;transform:translateY(14px)}.reveal.in-view{animation:revealUp .62s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.hero{margin-top:0;padding:2.6rem;position:relative;overflow:hidden}.terminal-shell{position:relative;border:1px solid rgba(143,255,226,.32);border-radius:12px;background:linear-gradient(180deg,#030812f2,#070d19eb);box-shadow:inset 0 0 0 1px #8fffe20f,0 18px 28px #03081280;padding:0 1rem 1rem}.terminal-bar{display:flex;align-items:center;gap:.45rem;border-bottom:1px solid rgba(143,255,226,.16);margin:0 -1rem 1rem;padding:.7rem 1rem;background:#0d1526db;border-top-left-radius:12px;border-top-right-radius:12px}.terminal-bar p{margin:0 0 0 .4rem;color:#9fb4e6;font-family:var(--font-mono);font-size:.78rem}.hero-profile{position:absolute;top:9.1rem;bottom:1rem;right:1rem;display:flex;width:220px}.profile-photo{width:100%;height:100%;object-fit:cover;object-position:center 0%;border:0;border-radius:8px;background:transparent;transform:none;box-shadow:none;transition:none}.terminal-shell .kicker,.terminal-shell .hero-title,.terminal-shell .lead,.terminal-shell .terminal-card{max-width:calc(100% - 244px)}.dot{width:10px;height:10px;border-radius:999px;display:inline-block}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.hero:after{content:"";position:absolute;inset:-40% 35% auto -30%;height:210px;background:radial-gradient(circle,rgba(128,255,217,.14),transparent 70%);filter:blur(8px);animation:floatAura 7s ease-in-out infinite;pointer-events:none}.kicker{margin:0;color:#80ffd9;font-family:var(--font-mono);letter-spacing:.04em;font-size:.83rem}.typing-effect{display:inline-block;white-space:nowrap;overflow:hidden;width:0;border-right:2px solid #8fffe2;animation:typingLine 1.5s steps(10,end) .3s forwards,caretBlink .9s step-end infinite}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.06;margin:.8rem 0 1rem;max-width:14ch}.hero-title{font-family:var(--font-mono);font-size:.88rem;line-height:1.6;letter-spacing:0;max-width:none;font-weight:400;color:#b8c9f0}.hero-typing{display:block;white-space:nowrap;overflow:hidden;text-align:left;width:34ch;max-width:34ch;width:0;animation:typingName 2.1s steps(34,end) .45s forwards,glowPulse 5s ease-in-out 2.4s infinite}@media(max-width:500px){.hero-typing{white-space:normal;overflow:visible;width:auto;max-width:90%}}h2{font-size:clamp(1.45rem,2.8vw,2.1rem);margin-bottom:1.25rem;background:linear-gradient(90deg,#f0f4ff,#91ffd9,#9eb7ff,#f0f4ff);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradientShift 7s ease-in-out infinite}.section-label{display:inline-block;margin-right:.55rem;color:#8fffe2;font-family:var(--font-mono);font-size:.82em}.lead{max-width:66ch;color:#a9bbdf;opacity:0;animation:fadeLead .9s ease-out 1.05s forwards,softFloat 4.2s ease-in-out 2.1s infinite;font-family:var(--font-mono);font-size:.92rem;line-height:1.7;border-left:2px solid rgba(127,169,255,.42);padding-left:.9rem}.hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem}.terminal-card{margin-top:1.2rem;border:0;border-radius:0;background:transparent;padding:0;font-family:var(--font-mono);font-size:.88rem;animation:none}.terminal-card p{margin:0}.terminal-card p+p{margin-top:.3rem}.prompt{color:#8fffe2;margin-right:.45rem}.output{color:#b8c9f0;padding-left:1rem}.prompt:after{content:"_";margin-left:.25rem;color:#8fffe2;animation:blink 1s step-end infinite}.btn{display:inline-block;padding:.75rem 1.15rem;border-radius:8px;border:1px solid rgba(170,191,255,.3);background:#889ddb1a;color:#eaf1ff;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transition:left .38s ease}.btn:hover:after{left:140%}.btn.primary{border-color:transparent;background:linear-gradient(130deg,#6ae4c2,#7fa9ff);color:#081222}.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #21345f59}.grid{display:grid;gap:1rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.skills-terminal{margin-top:.3rem}.skills-stream{display:grid;gap:1rem}.skill-command{opacity:0;transform:translateY(8px);animation:revealUp .56s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.skill-line{margin:0;font-family:var(--font-mono);font-size:.84rem;color:#9fd0ff}.skill-toggle-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.7rem;background:transparent;border:0;border-radius:8px;padding:.35rem .5rem;text-align:left;cursor:pointer;transition:background-color .2s ease}.skill-toggle-row:hover{background:#8fffe21a}.skill-all-header{margin-bottom:.2rem}.skill-all-header .group-toggle{min-width:30px;height:30px;font-size:1.15rem;font-weight:700;border-color:#8fffe28c;background:#8fffe224;box-shadow:0 0 0 1px #8fffe238}.symbol{color:#8fffe2;font-weight:700}.skill-group-title{margin:0;font-family:var(--font-mono);font-size:.95rem;color:#8fffe2}.group-toggle{border:1px solid rgba(129,157,231,.28);background:#5f7bcc24;color:#8fffe2;border-radius:6px;min-width:24px;height:24px;display:inline-grid;place-items:center;line-height:1;font-family:var(--font-mono);font-size:.95rem}.group-toggle:hover{border-color:#8fffe280}.skill-tags{display:flex;flex-wrap:wrap;gap:.45rem}.skill-tag,.skill-more{font-family:var(--font-mono);font-size:.78rem;border:1px solid rgba(129,157,231,.28);border-radius:6px;padding:.2rem .45rem;color:#cfe0ff;background:#5f7bcc29}.skill-more{color:#8fffe2;border-color:#8fffe259;background:#8fffe214}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.projects-terminal{margin-top:.3rem}.project-list{margin-top:.7rem;display:grid;gap:.6rem}.project-row{display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:.55rem .65rem;border-radius:8px;background:#5f7bcc14;border:1px solid rgba(129,157,231,.22);opacity:0;transform:translateY(8px);animation:revealUp .56s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.project-row:hover{border-color:#8fffe273;background:#8fffe214}.project-meta h3{margin:0;font-family:var(--font-mono);font-size:.91rem;color:#d8e6ff}.project-meta p{margin:.2rem 0 0;font-family:var(--font-mono);font-size:.78rem;color:#9fb4e6}.project-row a{font-family:var(--font-mono);font-size:.82rem;color:#8fffe2;border:1px solid rgba(143,255,226,.35);border-radius:6px;padding:.25rem .45rem;white-space:nowrap}.project-row a:hover{background:#8fffe221}.view-all-projects{display:inline-flex;margin-top:.85rem;font-family:var(--font-mono);font-size:.84rem;color:#8fffe2;border:1px solid rgba(143,255,226,.35);border-radius:7px;padding:.35rem .55rem}.view-all-projects:hover{background:#8fffe21f}.metrics-strip{padding-top:1.8rem}.metrics-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.metric-item{border:1px solid rgba(129,157,231,.24);border-radius:10px;background:#5f7bcc14;padding:.75rem .85rem;opacity:0;transform:translateY(8px);animation:revealUp .56s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.metric-item:hover{border-color:#8fffe273;background:#8fffe214}@media(max-width:500px){.hero{padding:1.8rem .8rem}.hero-title{font-size:clamp(1.6rem,6vw,3.2rem)}.lead{font-size:.84rem;max-width:100%}.terminal-bar p{font-size:.7rem}.metric-item{padding:.5rem .6rem}.metrics-grid{gap:.6rem}.site-header{padding:.6rem .8rem}.top-nav a{font-size:.75rem;padding:.25rem .45rem}.footer-links{font-size:.78rem}}font-family: var(--font-mono); font-size: .9rem; font-weight: 700; white-space: nowrap; } .metric-label{margin:.28rem 0 0;color:#b8c9f0;font-family:var(--font-mono);font-size:.82rem;line-height:1.5}.cert-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.cert-card h3{margin:0;font-size:1rem}.cert-card a{color:#dff0ff;text-decoration:none}.cert-card a:hover{color:#83ffd5}.cert-card a:focus-visible{outline:2px solid #83ffd5;outline-offset:2px;border-radius:6px}.timeline{position:relative;display:grid;gap:1rem;margin-top:.6rem}.timeline:before{content:"";position:absolute;left:12px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,#7fa9ff80,#80ffd9a6)}.timeline-item{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:.9rem}.timeline-marker{position:relative;z-index:1;display:grid;place-items:center;min-height:100%}.timeline-marker span{width:11px;height:11px;border-radius:999px;border:2px solid #8fffe2;background:#10192d;box-shadow:0 0 0 4px #8fffe221;animation:pulseNode 2.3s ease-in-out infinite}.timeline-card{padding-top:.85rem}.employment-comment{font-family:var(--font-mono);font-size:.84rem;color:#7ec7a3;background:#7ec7a314;border:1px dashed rgba(126,199,163,.35);border-radius:8px;padding:.55rem .7rem;opacity:0;transform:translateY(8px);animation:revealUp .56s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.company-logo-wrap{width:132px;height:38px;border-radius:8px;border:1px solid rgba(165,186,255,.22);background:#fffffff2;display:grid;place-items:center;margin-bottom:.75rem;overflow:hidden}.company-logo{max-width:92%;max-height:75%;object-fit:contain}.employment-card p{margin:.1rem 0 .35rem;color:#afc1e5}.employment-card span{display:inline-block;color:#83ffd5;font-size:.9rem;font-weight:600}.work-subheading{margin:1.5rem 0 .9rem;font-size:1rem;color:#c5d6ff;letter-spacing:.04em;text-transform:uppercase}.card{background:#121b30d9;border:1px solid rgba(165,186,255,.16);border-radius:10px;padding:1.05rem;transition:transform .25s ease,border-color .25s ease;opacity:0;transform:translateY(10px);animation:revealUp .56s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--delay, 0ms)}.card:hover{transform:translateY(-3px);border-color:#7ae0c299}.card h3{margin-bottom:.68rem;font-family:var(--font-mono);font-size:.98rem}.card ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}.card li{padding:.28rem .58rem;border-radius:6px;font-size:.82rem;background:#5f7bcc33;color:#d8e6ff;border:1px solid rgba(126,157,236,.18)}.project-card p{color:#afc1e5;margin-bottom:.9rem}.project-card a{color:#83ffd5;font-weight:600}.contact-form{display:grid;gap:.9rem;max-width:620px}.contact-form label{display:grid;gap:.4rem;color:#d6e1fb}.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(165,186,255,.22);border-radius:8px;background:#0d1425f2;color:#edf2ff;padding:.7rem .8rem;font:inherit}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:#7ad8c6;box-shadow:0 0 0 3px #7ad8c633}.social-links{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1rem}.social-card{display:flex;align-items:center;gap:.65rem;font-family:var(--font-mono);font-size:.84rem;border:1px solid rgba(165,186,255,.25);border-radius:8px;padding:.48rem .6rem;background:#889ddb14;transition:transform .2s ease,border-color .2s ease,color .2s ease,background-color .2s ease}.social-card:hover{border-color:#7ae0c2b3;color:#dff8ef;background:#7ae0c21a;transform:translateY(-2px)}.social-icon{width:18px;height:18px;flex-shrink:0}.social-copy{display:grid;line-height:1.2}.social-label{color:#e6f4ff;font-size:.84rem}.social-handle{color:#9eb4dd;font-size:.73rem}.social-arrow{margin-left:auto;color:#8fffe2;font-size:.9rem}.hobby-list{display:flex;flex-wrap:wrap;gap:.55rem}.hobby-item{font-family:var(--font-mono);font-size:.82rem;color:#d9e6ff;border:1px solid rgba(165,186,255,.28);border-radius:7px;padding:.28rem .55rem;background:#5f7bcc24}.site-credit{margin:.45rem 0 0;font-family:var(--font-mono);font-size:.84rem;color:#8fffe2;text-shadow:0 0 10px rgba(143,255,226,.35)}.site-footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(160,183,255,.2);padding:1.5rem 0 2rem;color:#9fb0d4;animation:revealUp .7s ease-out both;animation-delay:.42s}.site-footer p{margin:.1rem 0}.footer-links{display:flex;gap:.75rem;flex-wrap:wrap}.footer-links a{font-family:var(--font-mono);font-size:.84rem}@keyframes revealUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pageFade{0%{opacity:0}to{opacity:1}}@keyframes floatAura{0%,to{transform:translateY(0) translate(0)}50%{transform:translateY(8px) translate(8px)}}@keyframes terminalBreath{0%,to{box-shadow:0 0 #7ad8c600}50%{box-shadow:0 0 0 1px #7ad8c640,0 0 16px #7ad8c614}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes glowPulse{0%,to{text-shadow:0 0 0 rgba(127,169,255,0)}50%{text-shadow:0 0 18px rgba(127,169,255,.18)}}@keyframes typingLine{0%{width:0}to{width:10ch}}@keyframes typingName{0%{width:0}to{width:34ch}}@keyframes caretBlink{0%,49%{border-color:#8fffe2}50%,to{border-color:transparent}}@keyframes fadeTitle{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeLead{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes pulseNode{0%,to{box-shadow:0 0 0 4px #8fffe221}50%{box-shadow:0 0 0 7px #8fffe214}}@keyframes softFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:760px){.site-header{position:static;border-radius:14px}.site-footer{flex-direction:column}.section,.hero{padding:1.4rem}.timeline-item{gap:.7rem}.company-logo-wrap{width:118px;height:34px}.profile-photo{width:120px;height:160px}.hero-profile{position:static;justify-content:center;margin-bottom:.8rem}.terminal-shell .kicker,.terminal-shell .hero-title,.terminal-shell .lead,.terminal-shell .terminal-card{max-width:100%}.top-nav{gap:.6rem}.top-nav a{font-size:.8rem;padding:.3rem .5rem}.hero{padding:2rem 1rem}.hero-profile{width:160px;top:7rem}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-item{padding:.6rem .7rem}.footer-links{justify-content:center}}
