@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap);:root{--bg:#080b10;--bg-panel:#0f151c;--bg-panel-2:#131a22;--radar:#2ee6a6;--radar-dim:rgba(46,230,166,.14);--amber:#ffb020;--cyan:#55d6ff;--text:#e7eef3;--text-dim:#8a97a5;--text-faint:#556270;--border:rgba(231,238,243,.09);--border-strong:rgba(231,238,243,.16);--mono:"JetBrains Mono",ui-monospace,monospace;--body:"Inter",system-ui,sans-serif;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:#080b10;background:var(--bg);color:#e7eef3;color:var(--text);font-family:Inter,system-ui,sans-serif;font-family:var(--body);line-height:1.6;overflow-x:hidden}body:before{background-image:linear-gradient(rgba(231,238,243,.09) 1px,transparent 0),linear-gradient(90deg,rgba(231,238,243,.09) 1px,transparent 0);background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;content:"";inset:0;opacity:.35;pointer-events:none;position:fixed;z-index:0}::selection{background:rgba(46,230,166,.14);background:var(--radar-dim);color:#2ee6a6;color:var(--radar)}a{color:inherit;text-decoration:none}.wrap{margin:0 auto;max-width:1120px;padding:0 32px;position:relative;z-index:1}.eyebrow{align-items:center;color:#2ee6a6;color:var(--radar);display:flex;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12px;gap:10px;letter-spacing:.18em;text-transform:uppercase}.eyebrow .dot{-webkit-animation:blink 1.6s ease-in-out infinite;animation:blink 1.6s ease-in-out infinite;background:#2ee6a6;background:var(--radar);border-radius:50%;box-shadow:0 0 8px #2ee6a6;box-shadow:0 0 8px var(--radar);height:6px;width:6px}@-webkit-keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(8,11,16,.72);border-bottom:1px solid rgba(231,238,243,.09);border-bottom:1px solid var(--border);left:0;position:fixed;right:0;top:0;z-index:50}nav .wrap{align-items:center;display:flex;height:64px;justify-content:space-between}.logo{color:#e7eef3;color:var(--text);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.02em}.logo span{color:#2ee6a6;color:var(--radar)}.logo .cursor{-webkit-animation:cursorblink 1s steps(1) infinite;animation:cursorblink 1s steps(1) infinite;background:#2ee6a6;background:var(--radar);display:inline-block;height:15px;margin-left:2px;vertical-align:-2px;width:8px}@-webkit-keyframes cursorblink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes cursorblink{0%,49%{opacity:1}50%,to{opacity:0}}.nav-links{align-items:center;display:flex;gap:28px}.nav-links a{color:#8a97a5;color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;position:relative;text-transform:uppercase;transition:color .2s ease}.nav-links a:hover{color:#2ee6a6;color:var(--radar)}.nav-cta{border:1px solid rgba(231,238,243,.16);border:1px solid var(--border-strong);border-radius:6px;color:#e7eef3;color:var(--text);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12px;padding:9px 16px;transition:all .2s ease}.nav-cta:hover{border-color:#2ee6a6;border-color:var(--radar);box-shadow:0 0 16px rgba(46,230,166,.14);box-shadow:0 0 16px var(--radar-dim);color:#2ee6a6;color:var(--radar)}.nav-toggle{display:none}header.hero{align-items:center;display:flex;min-height:92vh;overflow:hidden;padding:168px 0 120px;position:relative}.hero-grid{grid-gap:40px;align-items:center;display:grid;gap:40px;grid-template-columns:1.15fr .85fr;width:100%}.hero h1{color:#e7eef3;color:var(--text);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:clamp(34px,5vw,56px);font-weight:800;letter-spacing:-.01em;line-height:1.08;margin:18px 0 20px}.hero h1 .hl{color:#2ee6a6;color:var(--radar)}.hero .role-line{color:#55d6ff;color:var(--cyan);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:clamp(15px,2vw,19px);margin-bottom:22px;min-height:28px}.hero .role-line .cursor2{-webkit-animation:cursorblink .9s steps(1) infinite;animation:cursorblink .9s steps(1) infinite;background:#55d6ff;background:var(--cyan);display:inline-block;height:18px;margin-left:3px;vertical-align:-3px;width:9px}.hero p.lede{color:#8a97a5;color:var(--text-dim);font-size:16px;margin-bottom:34px;max-width:520px}.hero-meta{color:#556270;color:var(--text-faint);display:flex;flex-wrap:wrap;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12.5px;gap:18px;margin-bottom:36px}.hero-meta span{align-items:center;display:flex;gap:7px}.btn-row{display:flex;flex-wrap:wrap;gap:14px}.btn{align-items:center;border:1px solid transparent;border-radius:6px;cursor:pointer;display:inline-flex;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:13px;gap:8px;letter-spacing:.03em;padding:13px 22px;transition:all .2s ease}.btn-primary{background:#2ee6a6;background:var(--radar);color:#04150e;font-weight:700}.btn-primary:hover{box-shadow:0 0 24px rgba(46,230,166,.14);box-shadow:0 0 24px var(--radar-dim);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-ghost{border:1px solid rgba(231,238,243,.16);border:1px solid var(--border-strong);color:#e7eef3;color:var(--text)}.btn-ghost:hover{border-color:#2ee6a6;border-color:var(--radar);color:#2ee6a6;color:var(--radar)}.radar-wrap{aspect-ratio:1/1;margin:0 auto;max-width:460px;position:relative;width:100%}.radar-ring{border:1px solid rgba(231,238,243,.16);border:1px solid var(--border-strong);border-radius:50%;position:absolute}.radar-ring.r1{inset:0}.radar-ring.r2{inset:12.5%}.radar-ring.r3{inset:25%}.radar-ring.r4{border-style:dashed;inset:37.5%;opacity:.5}.radar-crosshair{inset:0;position:absolute}.radar-crosshair:after,.radar-crosshair:before{background:rgba(231,238,243,.09);background:var(--border);content:"";position:absolute}.radar-crosshair:before{height:1px;left:0;right:0;top:50%}.radar-crosshair:after{bottom:0;left:50%;top:0;width:1px}.radar-sweep{-webkit-animation:sweep 4.2s linear infinite;animation:sweep 4.2s linear infinite;background:conic-gradient(from 0deg,rgba(46,230,166,.14),transparent 28%);background:conic-gradient(from 0deg,var(--radar-dim),transparent 28%);border-radius:50%;inset:0;mix-blend-mode:screen;position:absolute}@-webkit-keyframes sweep{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes sweep{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.blip{align-items:center;display:flex;gap:7px;position:absolute;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.blip .pt{-webkit-animation:pulse 2.4s ease-in-out infinite;animation:pulse 2.4s ease-in-out infinite;background:#2ee6a6;background:var(--radar);border-radius:50%;box-shadow:0 0 10px #2ee6a6;box-shadow:0 0 10px var(--radar);height:9px;width:9px}.blip.amber .pt{background:#ffb020;background:var(--amber);box-shadow:0 0 10px #ffb020;box-shadow:0 0 10px var(--amber)}.blip.cyan .pt{background:#55d6ff;background:var(--cyan);box-shadow:0 0 10px #55d6ff;box-shadow:0 0 10px var(--cyan)}@-webkit-keyframes pulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.4;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes pulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.4;-webkit-transform:scale(.7);transform:scale(.7)}}.blip label{background:rgba(8,11,16,.7);border-radius:3px;color:#8a97a5;color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:11px;padding:1px 6px;white-space:nowrap}.radar-center{background:#e7eef3;background:var(--text);border-radius:50%;box-shadow:0 0 12px #e7eef3;box-shadow:0 0 12px var(--text);height:6px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:6px}section{padding:110px 0;position:relative}.section-head{margin-bottom:52px;max-width:640px}.section-head .eyebrow{margin-bottom:14px}.section-head h2{font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:clamp(26px,3.4vw,36px);font-weight:700;letter-spacing:-.01em}.section-head p{color:#8a97a5;color:var(--text-dim);font-size:15px;margin-top:14px}.reveal{opacity:0;-webkit-transform:translateY(24px);transform:translateY(24px);transition:opacity .7s ease,-webkit-transform .7s ease;transition:opacity .7s ease,transform .7s ease;transition:opacity .7s ease,transform .7s ease,-webkit-transform .7s ease}.reveal.in{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.terminal{background:#0f151c;background:var(--bg-panel);border:1px solid rgba(231,238,243,.09);border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);max-width:760px;overflow:hidden}.terminal-bar{align-items:center;background:#131a22;background:var(--bg-panel-2);border-bottom:1px solid rgba(231,238,243,.09);border-bottom:1px solid var(--border);display:flex;gap:8px;padding:11px 16px}.terminal-bar .tdot{border-radius:50%;height:10px;width:10px}.terminal-bar .tdot:first-child{background:#ff5f57}.terminal-bar .tdot:nth-child(2){background:#febc2e}.terminal-bar .tdot:nth-child(3){background:#28c840}.terminal-bar .tlabel{color:#556270;color:var(--text-faint);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:11.5px;margin-left:8px}.terminal-body{padding:26px 28px}.terminal-body .prompt{color:#2ee6a6;color:var(--radar);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:13px;margin-bottom:12px}.terminal-body .prompt:before{color:#556270;color:var(--text-faint);content:"$ "}.terminal-body p{color:#8a97a5;color:var(--text-dim);font-size:15.5px}.terminal-body p+p{margin-top:14px}.terminal-body strong{color:#e7eef3;color:var(--text);font-weight:600}.timeline{max-width:800px}.tl-item{border-left:1px solid rgba(231,238,243,.09);border-left:1px solid var(--border);padding:0 0 44px 34px;position:relative}.tl-item:last-child{border-left-color:transparent;padding-bottom:0}.tl-item:before{background:#080b10;background:var(--bg);border:2px solid #2ee6a6;border:2px solid var(--radar);border-radius:50%;content:"";height:11px;left:-5.5px;position:absolute;top:2px;width:11px}.tl-date{align-items:center;color:#2ee6a6;color:var(--radar);display:flex;flex-wrap:wrap;font-size:12px;gap:10px;letter-spacing:.04em;margin-bottom:6px}.tl-date,.tl-date .badge{font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono)}.tl-date .badge{border:1px solid rgba(231,238,243,.16);border:1px solid var(--border-strong);border-radius:4px;color:#556270;color:var(--text-faint);font-size:10.5px;padding:2px 7px;text-transform:uppercase}.tl-role{color:#e7eef3;color:var(--text);font-size:19px;font-weight:700;margin-bottom:2px}.tl-co{color:#ffb020;color:var(--amber);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:13px;margin-bottom:14px}.tl-item ul{list-style:none}.tl-item li{color:#8a97a5;color:var(--text-dim);font-size:14.5px;margin-bottom:9px;padding-left:20px;position:relative}.tl-item li:before{color:#55d6ff;color:var(--cyan);content:"▸";font-size:12px;left:0;position:absolute;top:2px}.edu-note{align-items:baseline;align-items:center;color:#556270;color:var(--text-faint);display:flex;flex-direction:row;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:13px;gap:10px;margin-top:8px}.edu-note strong{color:#8a97a5;color:var(--text-dim);font-family:Inter,system-ui,sans-serif;font-family:var(--body);font-weight:600}.projects{display:flex;flex-direction:column;gap:24px}.proj-card{background:#0f151c;background:var(--bg-panel);border:1px solid rgba(231,238,243,.09);border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);overflow:hidden;padding:34px;position:relative;transition:border-color .25s ease,-webkit-transform .25s ease;transition:border-color .25s ease,transform .25s ease;transition:border-color .25s ease,transform .25s ease,-webkit-transform .25s ease}.proj-card:hover{border-color:rgba(231,238,243,.16);border-color:var(--border-strong);-webkit-transform:translateY(-3px);transform:translateY(-3px)}.proj-card.featured{background:linear-gradient(160deg,rgba(46,230,166,.06),#0f151c 55%);background:linear-gradient(160deg,rgba(46,230,166,.06),var(--bg-panel) 55%);border-color:rgba(46,230,166,.25)}.proj-top{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:14px}.proj-status{align-items:center;border:1px solid rgba(46,230,166,.3);border-radius:20px;color:#2ee6a6;color:var(--radar);display:inline-flex;flex-shrink:0;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:11px;gap:7px;letter-spacing:.08em;padding:4px 12px;text-transform:uppercase}.proj-status .pt2{-webkit-animation:blink 1.6s infinite;animation:blink 1.6s infinite;background:#2ee6a6;background:var(--radar);border-radius:50%;height:6px;width:6px}.proj-card h3{font-size:22px;font-weight:700;margin-bottom:4px}.proj-sub{color:#556270;color:var(--text-faint);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12.5px}.proj-card p.desc{color:#8a97a5;color:var(--text-dim);font-size:15px;margin:16px 0 20px;max-width:640px}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag{background:rgba(85,214,255,.06);border:1px solid rgba(85,214,255,.25);border-radius:5px;color:#55d6ff;color:var(--cyan);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:11.5px;padding:5px 11px}.skill-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.skill-panel{background:#0f151c;background:var(--bg-panel);border:1px solid rgba(231,238,243,.09);border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);padding:22px 24px;transition:border-color .2s ease}.skill-panel:hover{border-color:rgba(231,238,243,.16);border-color:var(--border-strong)}.skill-panel h4{color:#ffb020;color:var(--amber);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12px;letter-spacing:.1em;margin-bottom:16px;text-transform:uppercase}.skill-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tags span{border:1px solid rgba(231,238,243,.16);border:1px solid var(--border-strong);border-radius:5px;color:#8a97a5;color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12.5px;padding:6px 10px;transition:all .2s ease}.skill-tags span:hover{border-color:#2ee6a6;border-color:var(--radar);box-shadow:0 0 10px rgba(46,230,166,.14);box-shadow:0 0 10px var(--radar-dim);color:#2ee6a6;color:var(--radar)}.contact-term{background:#0f151c;background:var(--bg-panel);border:1px solid rgba(231,238,243,.09);border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);max-width:640px;overflow:hidden}.contact-line{align-items:center;border-bottom:1px solid rgba(231,238,243,.09);border-bottom:1px solid var(--border);display:flex;font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:13.5px;gap:12px;padding:16px 24px}.contact-line:last-child{border-bottom:none}.contact-line .cmd{color:#556270;color:var(--text-faint);flex-shrink:0}.contact-line .val{color:#e7eef3;color:var(--text);word-break:break-all}.contact-line a.val:hover{color:#2ee6a6;color:var(--radar)}footer{border-top:1px solid rgba(231,238,243,.09);border-top:1px solid var(--border);margin-top:20px;padding:40px 0 60px}footer .wrap{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}footer p{color:#556270;color:var(--text-faint);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--mono);font-size:12px}@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.radar-wrap{margin-top:40px;max-width:340px}.nav-links{display:none}section{padding:76px 0}header.hero{min-height:auto;padding:140px 0 70px}}@media (prefers-reduced-motion:reduce){*{-webkit-animation-duration:.001ms!important;animation-duration:.001ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.proj-image{background:#0b0f14;border-bottom:1px solid var(--border);margin:-34px -34px 26px;overflow:hidden}.proj-image img{display:block;height:100%;object-fit:cover;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;width:100%}.proj-card:hover .proj-image img{-webkit-transform:scale(1.02);transform:scale(1.02)}
/*# sourceMappingURL=main.6620ef3b.css.map*/