@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap";:root{--bg: #060c14;--bg-soft: #0d1622;--card: #111c2a;--text: #e6eef8;--muted: #9fb1c7;--line: #223246;--accent: #14b8a6;--accent-strong: #22d3ee;--container: 1180px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:IBM Plex Mono,JetBrains Mono,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;background:var(--bg);color:var(--text);line-height:1.7;font-size:16px}html[data-custom-cursor=on],html[data-custom-cursor=on] body,html[data-custom-cursor=on] a,html[data-custom-cursor=on] button,html[data-custom-cursor=on] input,html[data-custom-cursor=on] textarea,html[data-custom-cursor=on] select,html[data-custom-cursor=on] summary,html[data-custom-cursor=on] .btn{cursor:none!important}.cursor-layer{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:120}.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;transform:translate3d(-100px,-100px,0) translate(-50%,-50%);pointer-events:none}.cursor-dot{width:6px;height:6px;border-radius:50%;background:#22d3ee;box-shadow:0 0 16px #22d3eea6}.cursor-ring{width:28px;height:28px;border-radius:50%;border:1px solid rgba(34,211,238,.65);box-shadow:0 0 20px #22d3ee24;transition:width .18s ease,height .18s ease,border-color .18s ease,opacity .18s ease;opacity:.9}html[data-cursor-hover=on] .cursor-ring{width:36px;height:36px;border-color:#14b8a6e6}html[data-cursor-down=on] .cursor-ring{width:22px;height:22px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(100% - 2rem,var(--container));margin-inline:auto}h1,h2,h3,h4{margin:0;line-height:1.22;font-weight:600}h1{font-size:clamp(1.9rem,4.6vw,3.2rem)}h2{font-size:clamp(1.5rem,3.6vw,2.4rem)}h3{font-size:1.02rem}p{margin:0}.site-header{position:sticky;top:0;z-index:40;background:#070707e6;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-row{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-actions{display:flex;align-items:center;gap:.6rem}.brand{font-size:.95rem;letter-spacing:.04em;text-transform:none;white-space:nowrap}.brand span{color:var(--accent)}nav{display:flex;gap:1.2rem;flex-wrap:wrap}.desktop-nav{display:flex}nav a{color:var(--muted);font-size:.84rem}nav a:hover{color:var(--accent-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;height:42px;border-radius:0;border:1px solid transparent;padding:0 1rem;font:inherit;font-size:.84rem;letter-spacing:.02em;cursor:pointer;transition:transform .25s ease,opacity .25s ease,background-color .25s ease}.btn:hover{transform:translateY(-1px)}.btn-accent{background:var(--accent);color:#0d0d0d;border-color:var(--accent)}.btn-outline{background:transparent;border-color:#666;color:#d4d4d4}.btn-ghost{background:transparent;border-color:#434343;color:#cbcbcb}.menu-toggle{display:none;width:44px;height:42px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px solid #434343;background:transparent;color:#cbcbcb}.menu-toggle span{width:18px;height:1.5px;background:currentColor;transition:transform .2s ease,opacity .2s ease}.menu-toggle.is-open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.mobile-nav-wrap{display:none}.mobile-nav{display:grid;gap:.2rem;padding:.6rem 0 .8rem}.mobile-nav a{color:#c6d4e8;border:1px solid var(--line);padding:.62rem .7rem;font-size:.84rem}.mobile-nav a:hover{color:var(--accent-strong);border-color:var(--accent-strong)}.hero{position:relative;overflow:hidden;min-height:88vh;border-bottom:1px solid var(--line);background:#050505}.hero-bg-portrait{position:absolute;top:0;right:0;bottom:0;left:42%;background:linear-gradient(90deg,#050505e6,#0505051a 32%,#050505b8),url(/profile.jpg) center right / cover no-repeat;filter:grayscale(100%) brightness(.42) contrast(1.1);pointer-events:none;z-index:0}.hero-noise{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 18% 48%,rgba(20,184,166,.12),transparent 36%),linear-gradient(180deg,#00000047,#000000c7);pointer-events:none;z-index:1}.hero-scanline{position:absolute;top:-65%;right:0;bottom:0;left:0;background:linear-gradient(180deg,#22d3ee00,#22d3ee14 46%,#14b8a61f,#22d3ee12 54%,#22d3ee00);mix-blend-mode:screen;opacity:.44;pointer-events:none;z-index:1;animation:scanSweep 11s linear infinite}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:1rem;min-height:calc(88vh - 78px);padding:4.8rem 0 3.2rem;align-items:center;z-index:2}.hero-circles{position:absolute;left:.8rem;top:4.3rem;bottom:3rem;width:16px;display:flex;flex-direction:column;justify-content:space-between;z-index:2}.hero-circles span{width:11px;height:11px;border:1px solid var(--accent);border-radius:50%;opacity:.9}.eyebrow{color:var(--accent-strong);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.95rem}.hero-copy>p{margin-top:1rem;max-width:64ch;color:#c4c4c4}.hero-copy{z-index:3;padding-left:2rem}.hero-copy h1{max-width:11ch;font-size:clamp(2.2rem,7vw,5rem);line-height:1.07}.hero-break{color:var(--accent-strong)}.hero-username{font-size:2rem;margin-top:1rem;color:#e3d5aa!important;line-height:1.2}.hero-username span{color:var(--accent-strong)}.hero-actions{margin-top:1.5rem;display:flex;gap:.7rem;flex-wrap:wrap}.hero-card{border:1px solid var(--line);background:#121212e6;padding:1.1rem;z-index:2;align-self:end}.home-stats{margin-left:auto;max-width:360px}.stat-line+.stat-line{margin-top:.55rem}.stat-line{color:#cfcfcf;font-size:.84rem}.stat-line strong{color:var(--accent-strong);font-size:.98rem}.scroll-hint{position:absolute;right:.2rem;bottom:1.2rem;width:22px;height:56px;border-left:1px solid #4e4e4e;display:flex;justify-content:center;z-index:2}.scroll-hint .mouse{width:12px;height:20px;border:1px solid #d8d8d8;border-radius:12px;position:relative}.scroll-hint .mouse:before{content:"";position:absolute;top:3px;left:50%;width:2px;height:4px;background:#d8d8d8;transform:translate(-50%)}@keyframes scanSweep{0%{transform:translateY(-84%)}to{transform:translateY(132%)}}.section{padding:4.4rem 0;border-bottom:1px solid var(--line)}.soft{background:var(--bg-soft)}.section-head{margin-bottom:1.35rem}.section-head p{margin:0 0 .62rem;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.section-head h2{max-width:24ch}.about-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1rem}.about-grid p+p{margin-top:.85rem}.about-meta{border:1px solid var(--line);background:var(--card);padding:1rem}.about-meta p{color:var(--muted);margin-top:.5rem}.about-meta a{color:var(--accent-strong)}.social-links{display:flex;flex-wrap:wrap;gap:.48rem;margin-top:.8rem}.social-link{display:inline-flex;align-items:center;gap:.38rem;border:1px solid var(--line);color:#c8d8ea;font-size:.76rem;padding:.34rem .52rem;transition:border-color .2s ease,color .2s ease,transform .2s ease}.social-link:hover{border-color:var(--accent-strong);color:var(--accent-strong);transform:translateY(-1px)}.social-link svg{width:13px;height:13px;fill:currentColor}.about-meta .social-link,.footer-grid .social-link{color:#c8d8ea}.social-links-about{margin-top:.65rem}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.focus-card{border:1px solid var(--line);background:var(--card);padding:1rem}.focus-card p{margin-top:.65rem;color:var(--muted)}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.skill-card{border:1px solid var(--line);background:var(--card);padding:1rem}.skill-card ul{list-style:none;margin:.85rem 0 0;padding:0;display:grid;gap:.7rem}.skill-row{display:flex;justify-content:space-between;gap:.55rem;color:#d2d2d2;font-size:.84rem}.meter{margin-top:.35rem;height:7px;border:1px solid #313131;background:#111}.meter div{height:100%;background:linear-gradient(90deg,#0b8f84,var(--accent-strong))}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.project-card{border:1px solid var(--line);background:var(--card);transition:transform .3s ease}.project-card:hover{transform:translateY(-4px)}.project-card img{width:100%;height:180px;object-fit:cover;filter:grayscale(25%)}.project-body{padding:.9rem}.project-body p{margin-top:.55rem;color:var(--muted)}.stack{color:var(--accent-strong);font-size:.78rem}.project-body a,.research-card a,.resume-card a,.cert-card a{display:inline-block;margin-top:.45rem;color:var(--accent-strong)}.cert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.cert-card{border:1px solid var(--line);background:var(--card);padding:.95rem}.cert-issuer{margin-top:.5rem;color:#c5c5c5;font-size:.84rem}.cert-date{margin-top:.4rem;color:var(--muted);font-size:.8rem}.resume-section{background:#050505}.resume-intro{text-align:center;margin-bottom:2rem}.resume-intro>p:first-child{text-transform:uppercase;letter-spacing:.2em;color:#6f6f6f;font-size:.73rem}.resume-intro h2{margin-top:.55rem}.accent-line{width:82px;height:2px;background:var(--accent);display:inline-block;margin:.85rem 0}.resume-copy{max-width:78ch;margin:0 auto;color:var(--muted)}.resume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.resume-card{border:1px solid #2a2a2a;background:#0f0f0f;padding:1rem}.resume-label{color:#d8d8d8;font-size:.78rem;margin-bottom:.35rem}.date-badge{display:inline-block;margin-top:.6rem;font-size:.69rem;color:#051018;background:var(--accent);border:1px solid rgba(34,211,238,.5);padding:.15rem .45rem}.resume-source{margin-top:.6rem;color:#b8b8b8;font-size:.8rem}.resume-card p{margin-top:.58rem;color:var(--muted)}.resume-links{display:flex;flex-wrap:wrap;column-gap:1.1rem}.research-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.research-card{border:1px solid var(--line);background:var(--card);padding:.95rem}.date-text{color:#bdbdbd;font-size:.76rem}.research-card p{margin-top:.55rem;color:var(--muted)}.contact-section{background:var(--bg-soft)}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.contact-copy{max-width:62ch;color:#b9b9b9}.contact-form{display:grid;gap:.58rem}.contact-form input,.contact-form textarea{width:100%;border:1px solid #3a3a3a;border-radius:0;background:#0f0f0f;color:var(--text);font:inherit;padding:.7rem .78rem}.contact-form textarea{min-height:136px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#7c7c7c}.status{color:#cdcdcd;font-size:.84rem}.site-footer{background:#050505;border-top:1px solid var(--line);padding:2.7rem 0}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:.9rem}.footer-grid h4{margin-bottom:.45rem}.footer-grid ul{margin:0;padding-left:1rem}.footer-grid li+li{margin-top:.24rem}.footer-grid p,.footer-grid a{color:#b4b4b4}.social-links-footer{margin-top:.7rem}[data-reveal]{opacity:0;transform:translate3d(0,18px,0);transition:opacity .62s cubic-bezier(.2,.65,.2,1),transform .62s cubic-bezier(.2,.65,.2,1);transition-delay:var(--reveal-delay, 0ms)}[data-reveal].reveal-in{opacity:1;transform:translateZ(0)}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}.hero-scanline{animation:none}}@media (pointer: coarse),(max-width: 1080px){.cursor-layer{display:none}}@media (max-width: 1080px){.desktop-nav{display:none}.menu-toggle{display:inline-flex}.nav-connect{height:42px;padding-inline:.9rem}.mobile-nav-wrap{display:block;max-height:0;opacity:0;overflow:hidden;transition:max-height .24s ease,opacity .2s ease}.mobile-nav-wrap.is-open{max-height:420px;opacity:1}.hero-grid,.about-grid,.contact-grid,.skills-grid,.project-grid,.cert-grid,.focus-grid,.resume-grid,.research-grid,.footer-grid{grid-template-columns:1fr}.hero-grid{min-height:auto;padding:4.5rem 0 3.6rem}.hero-bg-portrait{top:0;right:0;bottom:0;left:0;opacity:.32}.hero-copy{padding-left:0}.hero-copy h1{max-width:16ch;font-size:clamp(1.9rem,7vw,3.2rem)}.hero-username{font-size:1.35rem}.hero-circles,.scroll-hint{display:none}.home-stats{margin-left:0;max-width:none}.section{padding:3.8rem 0}}@media (max-width: 620px){.btn{width:100%}.hero-actions .btn{width:auto}}
