*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}:root{--bg: #F8F9FA;--white: #0a0a0a;--gray: #888888;--gray2: #e8e8e8;--gray3: #666666;--border: #d8d8d8;--card: #ffffff;--font-display: "Barlow Condensed", sans-serif;--font-mono: "Space Mono", monospace;--font-body: "Inter", sans-serif;--sidebar-w: 60px;--hover-sub: rgba(255, 255, 255, .6);--hover-link: rgba(255, 255, 255, .8);--hover-link-hover: rgba(255, 255, 255, .5);--hover-link-border: rgba(255, 255, 255, .3);--glow-color: rgba(67, 56, 202, .32)}:root.dark{--bg: #0A0E17;--white: #ffffff;--gray: #9EADBA;--gray2: #141E30;--gray3: #6C7D93;--border: #1E293B;--card: #101725;--hover-sub: rgba(0, 0, 0, .6);--hover-link: rgba(0, 0, 0, .8);--hover-link-hover: rgba(0, 0, 0, .5);--hover-link-border: rgba(0, 0, 0, .3);--glow-color: rgba(0, 229, 255, .12)}body,section,.sidebar,.mob-nav,.mob-menu,.project-card,.cert-item,.contact-box,footer,a,span,p,h2,h3,.section-heading,.datebar,.btn,.skill-tag{transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease}body{background:var(--bg);color:var(--white);font-family:var(--font-body);overflow-x:hidden}body.custom-cursor,body.custom-cursor *{cursor:none!important}a{color:inherit;text-decoration:none}#cur-dot,#cur-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:99999;mix-blend-mode:difference}#cur-dot{width:6px;height:6px;background:#fff}#cur-ring{width:32px;height:32px;border:1.5px solid #ffffff;transition:width .18s,height .18s,border-color .18s}#cur-ring.hov{width:48px;height:48px;border-color:#fff}body:not(.custom-cursor) #cur-dot,body:not(.custom-cursor) #cur-ring{display:none}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:28px 0;z-index:200;border-right:1px solid var(--border);background:var(--card)}.sidebar-logo{font-family:var(--font-display);font-weight:900;font-size:1.1rem;letter-spacing:.05em}.sidebar-nav{display:flex;flex-direction:column;align-items:center;gap:32px}.sidebar-nav a{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gray3);writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);transition:color .2s}.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--white)}.sidebar-btm{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;color:var(--gray);writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase}.mob-nav{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:var(--card);border-bottom:1px solid var(--border);align-items:center;justify-content:space-between;padding:0 20px;z-index:300}.mob-logo{font-family:var(--font-display);font-weight:900;font-size:1rem;letter-spacing:.05em}.ham{background:none;border:none;color:var(--white);width:32px;height:32px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:4px;cursor:pointer}.ham span{display:block;width:100%;height:1.5px;background:var(--white);transition:transform .3s,opacity .3s}.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.ham.open span:nth-child(2){opacity:0}.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mob-menu{display:none;position:fixed;top:56px;left:0;right:0;bottom:0;background:var(--card);z-index:250;flex-direction:column;align-items:center;justify-content:center;gap:40px}.mob-menu.open{display:flex}.mob-menu a{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray3);transition:color .2s}.mob-menu a:hover,.mob-menu a.active{color:var(--white)}.main{margin-left:var(--sidebar-w)}.datebar{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.3em;color:var(--gray3);padding:18px 60px;border-bottom:1px solid var(--border)}#home{min-height:100vh;padding:80px 60px;display:flex;flex-direction:column;justify-content:center}.hero-name{font-family:var(--font-display);font-weight:900;line-height:.88;text-transform:uppercase}.hero-name .first{font-size:clamp(72px,11vw,160px);color:var(--white);display:block;animation:slideUp .8s cubic-bezier(.16,1,.3,1) both}.hero-name .last{font-size:clamp(56px,9vw,130px);color:var(--gray);display:block;animation:slideUp .85s .1s cubic-bezier(.16,1,.3,1) both}@keyframes slideUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}.hero-meta{display:flex;gap:60px;margin-top:60px;flex-wrap:wrap;animation:fadeIn .8s .4s both}.hero-meta-item label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.3em;color:var(--gray3);display:block;margin-bottom:8px}.hero-meta-item span{font-family:var(--font-mono);font-size:.9rem;letter-spacing:.15em;color:var(--white)}.hero-btns{display:flex;gap:16px;margin-top:50px;flex-wrap:wrap;animation:fadeIn .8s .6s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.btn{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;padding:16px 28px;border:1px solid var(--white);background:transparent;color:var(--white);display:inline-block;transition:background .2s,color .2s}.btn:hover{background:var(--white);color:var(--bg)}section{padding:100px 60px;border-top:1px solid var(--border)}.section-heading{font-family:var(--font-display);font-weight:900;font-size:clamp(48px,7vw,100px);line-height:.9;text-transform:uppercase;margin-bottom:60px}.reveal{opacity:0;transform:translateY(36px);transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-fade{opacity:0;transition:opacity .6s ease}.reveal-fade.visible{opacity:1}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:80px}.stat-item{border-right:1px solid var(--border);padding:0 40px 0 0;margin-right:40px}.stat-item:last-child{border-right:none;margin-right:0}.stat-item label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.3em;color:var(--gray3);display:block;margin-bottom:10px}.stat-item .num{font-family:var(--font-display);font-weight:900;font-size:clamp(40px,5vw,72px)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.about-col h2{font-family:var(--font-display);font-weight:900;font-size:clamp(30px,4vw,56px);text-transform:uppercase;line-height:.95;margin-bottom:50px}.edu-entry,.exp-entry{margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid var(--border)}.edu-entry:last-child,.exp-entry:last-child{border-bottom:none;margin-bottom:0}.entry-school{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin-bottom:6px}.entry-degree{font-size:.95rem;color:var(--gray3);margin-bottom:8px}.entry-meta{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.2em;color:var(--gray3);margin-bottom:12px}.entry-desc{font-size:.92rem;line-height:1.7;color:var(--white);opacity:.85}.bullet-list{list-style:none;padding:0}.bullet-list li{font-size:.92rem;line-height:1.7;color:var(--white);opacity:.85;padding-left:14px;position:relative;margin-bottom:4px}.bullet-list li:before{content:"—";position:absolute;left:0;color:var(--gray3)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.skill-cat h3{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.3em;color:var(--gray3);text-transform:uppercase;margin-bottom:24px}.skill-tags{display:flex;flex-wrap:wrap;gap:10px}.skill-tag{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;padding:8px 14px;border:1px solid var(--border);color:var(--white);transition:background .2s,color .2s}.skill-tag:hover{background:var(--white);color:var(--bg)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr)}.project-card{position:relative;overflow:hidden;border:1px solid var(--border);padding:48px 40px;background:var(--card);transition:border-color .3s ease,box-shadow .3s ease;margin:-1px 0 0 -1px;box-shadow:0 1px 4px #0000000f}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(300px circle at var(--mouse-x, 0px) var(--mouse-y, 0px),var(--glow-color),transparent 80%);opacity:0;transition:opacity .4s ease;z-index:0;pointer-events:none}.project-card:hover:before{opacity:1}.project-card:hover{border-color:var(--white);box-shadow:0 4px 20px #00000014;z-index:2}.project-card *{position:relative;z-index:1}.project-num{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.3em;color:var(--gray3);margin-bottom:40px}.project-name{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.4vw,36px);line-height:1;text-transform:uppercase;margin-bottom:16px}.project-desc{font-size:.92rem;line-height:1.7;color:var(--gray3);margin-bottom:24px}.project-tech{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;color:var(--gray3)}.project-link{display:inline-block;margin-top:24px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:4px;transition:color .2s,border-color .2s}.project-link:hover{color:var(--white);border-color:var(--white)}.certs-grid{display:grid;grid-template-columns:repeat(2,1fr)}.cert-item{border:1px solid var(--border);padding:32px 36px;background:var(--card);margin:-1px 0 0 -1px;transition:background .2s,color .2s;box-shadow:0 1px 4px #0000000f}.cert-item:hover{background:var(--white);color:var(--bg)}.cert-item:hover .cert-org{color:var(--hover-sub)}.cert-name{font-family:var(--font-display);font-weight:700;font-size:1.1rem;text-transform:uppercase;margin-bottom:8px}.cert-org{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.2em;color:var(--gray3)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.contact-tagline{font-family:var(--font-display);font-weight:900;font-size:clamp(32px,4.5vw,64px);line-height:.95;text-transform:uppercase;margin-bottom:28px}.contact-body{font-family:var(--font-body);font-size:1rem;line-height:1.8;color:var(--gray3);margin-bottom:40px;max-width:420px}.contact-cta-btn{margin-top:0}.contact-right{display:flex;flex-direction:column;justify-content:center;gap:24px}.contact-box{border:1px solid var(--border);padding:32px 36px;background:var(--card);transition:background .2s,color .2s,box-shadow .2s;display:block;box-shadow:0 1px 4px #0000000f}.contact-box:hover{background:var(--white);color:var(--bg);box-shadow:0 4px 16px #0000001f}.contact-box:hover .cb-label{color:var(--hover-sub)}.cb-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--gray3);text-transform:uppercase;margin-bottom:8px}.cb-val{font-family:var(--font-mono);font-size:.92rem;letter-spacing:.08em}footer{border-top:1px solid var(--border);padding:32px 60px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.ft-left{font-family:var(--font-display);font-weight:900;font-size:1.2rem}.ft-mid{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;color:var(--gray3);text-transform:uppercase}.ft-right{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;color:var(--gray3);text-align:right;text-transform:uppercase}@media (max-width: 768px){.sidebar{display:none}.mob-nav{display:flex}.main{margin-left:0;padding-top:56px}#home{padding:40px 24px 60px}.datebar{padding:14px 24px}section{padding:60px 24px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:32px}.stat-item{border-right:none;padding:0;margin-right:0}.about-grid{grid-template-columns:1fr;gap:48px}.skills-grid{grid-template-columns:1fr;gap:36px}.projects-grid{grid-template-columns:1fr}.project-card{margin:0 0 -1px;border:1px solid var(--border)}.certs-grid{grid-template-columns:1fr}.cert-item{margin:0 0 -1px;border:1px solid var(--border)}.contact-grid{grid-template-columns:1fr;gap:48px}footer{grid-template-columns:1fr;gap:16px;text-align:center;padding:32px 24px}.ft-right{text-align:center}.hero-meta{gap:28px}}@media (max-width: 480px){.hero-btns{flex-direction:column}.btn{text-align:center}}.theme-toggle-btn{background:none;border:1px solid var(--border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--white);transition:border-color .2s,background-color .2s,transform .2s;font-size:1rem}.theme-toggle-btn:hover{border-color:var(--white);transform:scale(1.08)}.theme-transition-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99999;pointer-events:none;overflow:hidden;display:flex;align-items:center;justify-content:center}.theme-transition-bubble{position:absolute;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);transform-origin:center;will-change:transform;animation:themeBubbleExpand 1.1s cubic-bezier(.25,1,.5,1) forwards}.theme-transition-emoji-wrapper{perspective:1200px;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.theme-transition-emoji{font-size:clamp(32px,8vw,64px);transform-style:preserve-3d;will-change:transform,opacity;animation:themeEmojiZoom 1.1s cubic-bezier(.25,1,.5,1) forwards}.theme-transition-emoji.light-sun{filter:brightness(0) invert(1) drop-shadow(0 0 12px rgba(255,255,255,.8))}.theme-transition-emoji.dark-moon{filter:grayscale(1) brightness(.4) drop-shadow(0 0 12px rgba(0,0,0,.9))}@keyframes themeBubbleExpand{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(350)}}@keyframes themeEmojiZoom{0%{transform:translateZ(0) scale(1) rotate(0);opacity:1}30%{opacity:1}to{transform:translateZ(800px) scale(20) rotate(25deg);opacity:0}}.theme-transition-overlay.fade-out{opacity:0;transition:opacity .25s ease-out}.cmd-palette-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:999999;display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;animation:cmdFadeIn .25s cubic-bezier(.16,1,.3,1) both}:root.dark .cmd-palette-overlay{background:#0009}.cmd-palette-box{width:100%;max-width:600px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 48px #00000026;overflow:hidden;display:flex;flex-direction:column;animation:cmdScaleIn .25s cubic-bezier(.16,1,.3,1) both}:root.dark .cmd-palette-box{background:#101725f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 24px 48px #0006}.cmd-palette-input-wrap{display:flex;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border);gap:12px}.cmd-palette-search-icon{font-size:1.1rem;opacity:.6}.cmd-palette-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:1rem;color:var(--white)}.cmd-palette-esc-kbd{font-family:var(--font-mono);font-size:.65rem;background:var(--gray2);color:var(--gray3);padding:4px 8px;border-radius:4px;border:1px solid var(--border);box-shadow:0 1px 2px #0000000d}.cmd-palette-list{max-height:330px;overflow-y:auto;padding:8px}.cmd-palette-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.cmd-palette-item-text{font-family:var(--font-body);font-size:.92rem;color:var(--white)}.cmd-palette-item-cmd{font-family:var(--font-mono);font-size:.72rem;color:var(--gray3);margin-right:8px}.cmd-palette-item-kbd{font-family:var(--font-mono);font-size:.65rem;background:var(--gray2);color:var(--gray3);padding:2px 6px;border-radius:3px;border:1px solid var(--border)}.cmd-palette-item.active{background:var(--white);color:var(--bg)}.cmd-palette-item.active .cmd-palette-item-text,.cmd-palette-item.active .cmd-palette-item-cmd,.cmd-palette-item.active .cmd-palette-item-kbd{color:var(--bg);background:transparent;border-color:#0000001a}:root.dark .cmd-palette-item.active .cmd-palette-item-kbd{border-color:#ffffff1a}.cmd-palette-no-results{padding:24px;text-align:center;font-size:.9rem;color:var(--gray3);font-family:var(--font-body)}.cmd-palette-footer{padding:12px 20px;background:var(--gray2);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.68rem;color:var(--gray3);display:flex;align-items:center}.cmd-palette-footer kbd{background:var(--card);padding:2px 5px;border-radius:3px;border:1px solid var(--border);margin:0 3px}@keyframes cmdFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cmdScaleIn{0%{transform:scale(.97);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.cmd-palette-overlay{padding-top:8vh;padding-left:16px;padding-right:16px}}
