:root{--navy:#0a192f;--navy-light:#112240;--navy-lighter:#233554;--slate:#8892b0;--slate-light:#a8b2d1;--white:#e6f1ff;--green:#64ffda;--green-dim:#64ffda1f;--font-sans:"Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Consolas", monospace;--sidebar-w:18rem;--header-h:4rem;--max-w:56rem;--radius:.35rem;--transition:.2s ease;--spot-x:50vw;--spot-y:30vh;--ease-out:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}body{font-family:var(--font-sans);color:var(--slate-light);background:var(--navy);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}body.menu-open{overflow:hidden}h1,h2,h3,p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}.skip-link{z-index:100;background:var(--navy-light);color:var(--green);padding:.5rem .75rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.75rem}.site{isolation:isolate;min-height:100vh;position:relative}.bg-fx{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-fx-grid{opacity:.55;background-image:linear-gradient(#64ffda09 1px,#0000 1px),linear-gradient(90deg,#64ffda09 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 10%,#0000 70%);mask-image:radial-gradient(80% 60% at 50% 0,#000 10%,#0000 70%)}.bg-fx-spotlight{background:radial-gradient(560px circle at var(--spot-x) var(--spot-y), #64ffda12, transparent 55%);transition:opacity .4s;position:absolute;inset:0}.main-column{z-index:1;position:relative}.sidebar{z-index:2}.mobile-header{z-index:50}.reveal{opacity:0;transition:opacity .75s var(--ease-out), transform .75s var(--ease-out);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translate(0,0)}html.reduce-motion .reveal{opacity:1;transition:none;transform:none}.hero-enter{opacity:0;animation:heroFadeUp .85s var(--ease-out) forwards;transform:translateY(18px)}.hero-enter-1{animation-delay:50ms}.hero-enter-2{animation-delay:.15s}.hero-enter-3{animation-delay:.28s}.hero-enter-4{animation-delay:.4s}.hero-enter-5{animation-delay:.52s}@keyframes heroFadeUp{to{opacity:1;transform:translate(0,0)}}html.reduce-motion .hero-enter{opacity:1;animation:none;transform:none}.section-heading.reveal.is-visible h2:after{animation:growLine .9s var(--ease-out) forwards;transform-origin:0;transform:scaleX(0)}@keyframes growLine{to{transform:scaleX(1)}}.sidebar{display:none}@media (width>=1024px){.sidebar{width:var(--sidebar-w);border-right:1px solid var(--navy-lighter);background:var(--navy);flex-direction:column;padding:3rem 2rem;display:flex;position:fixed;inset:0 auto 0 0}.main-column{margin-left:var(--sidebar-w);min-height:100vh}html{scroll-padding-top:2rem}}.sidebar-brand{color:var(--white);align-items:center;gap:.75rem;font-size:1.05rem;font-weight:600;text-decoration:none;display:flex}.sidebar-logo{border-radius:var(--radius);border:1px solid var(--green);width:2.25rem;height:2.25rem;color:var(--green);font-family:var(--font-mono);place-items:center;font-size:.7rem;display:grid}.sidebar-role{color:var(--slate);margin-top:.35rem;font-size:.875rem}.sidebar-nav{flex:1;margin-top:2.5rem}.sidebar-nav ol{counter-reset:nav;margin:0;padding:0;list-style:none}.sidebar-nav li{counter-increment:nav;margin-bottom:.35rem}.sidebar-nav a{color:var(--slate);transition:color var(--transition), transform .25s var(--ease-out);align-items:center;gap:.65rem;padding:.45rem 0;font-size:.8125rem;text-decoration:none;display:flex}.sidebar-nav a.is-active{color:var(--green);transform:translate(4px)}.sidebar-nav a:before{content:"0" counter(nav);font-family:var(--font-mono);color:var(--green);font-size:.75rem}.sidebar-nav a:hover,.sidebar-nav a:focus-visible{color:var(--green)}.sidebar-footer{flex-direction:column;gap:.65rem;display:flex}.sidebar-footer a{font-family:var(--font-mono);color:var(--slate);font-size:.8125rem;text-decoration:none}.sidebar-footer a:hover{color:var(--green)}.mobile-header{height:var(--header-h);z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--navy-lighter);background:#0a192feb;justify-content:space-between;align-items:center;padding:0 1.25rem;display:flex;position:sticky;top:0}@media (width>=1024px){.mobile-header,.mobile-nav-layer{display:none!important}}.mobile-brand{color:var(--white);align-items:center;gap:.55rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.mobile-brand-mark{width:1.85rem;height:1.85rem;font-family:var(--font-mono);color:var(--green);border-radius:var(--radius);background:var(--green-dim);border:1px solid #64ffda59;place-items:center;font-size:.65rem;font-weight:600;display:inline-grid}.mobile-menu-btn{z-index:70;border:1px solid var(--navy-lighter);border-radius:var(--radius);background:linear-gradient(135deg, #64ffda0f, transparent 55%), var(--navy-light);color:var(--green);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);align-items:center;gap:.55rem;padding:.35rem .55rem .35rem .45rem;display:inline-flex;position:relative;box-shadow:0 0 0 1px #64ffda14}.mobile-menu-btn:hover{border-color:#64ffda73;box-shadow:0 0 18px #64ffda1f}.mobile-menu-btn.is-active{border-color:var(--green);background:#64ffda14}.mobile-menu-btn-icon{place-items:center;width:1.35rem;height:1.05rem;display:grid;position:relative}.mobile-menu-line{width:100%;height:2px;transition:transform .38s var(--ease-out), opacity .25s ease, top .38s var(--ease-out);background:currentColor;border-radius:999px;position:absolute;left:0}.mobile-menu-line:first-child{top:0}.mobile-menu-line:nth-child(2){top:calc(50% - 1px)}.mobile-menu-line:nth-child(3){top:calc(100% - 2px)}.mobile-menu-btn.is-active .mobile-menu-line:first-child{top:calc(50% - 1px);transform:rotate(45deg)}.mobile-menu-btn.is-active .mobile-menu-line:nth-child(2){opacity:0;transform:scaleX(.2)}.mobile-menu-btn.is-active .mobile-menu-line:nth-child(3){top:calc(50% - 1px);transform:rotate(-45deg)}.mobile-menu-btn-text{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.6875rem}.mobile-nav-layer{z-index:60;pointer-events:none;visibility:hidden;position:fixed;inset:0}.mobile-nav-layer.is-open{pointer-events:auto;visibility:visible}.mobile-nav-backdrop{cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .4s var(--ease-out);background:#020c1bb8;border:0;padding:0;position:absolute;inset:0}.mobile-nav-layer.is-open .mobile-nav-backdrop{opacity:1}.mobile-drawer{width:min(21rem,88vw);transition:transform .48s var(--ease-out);background:linear-gradient(180deg, #64ffda0d, transparent 28%), linear-gradient(#64ffda08 1px, transparent 1px), linear-gradient(90deg, #64ffda08 1px, transparent 1px), var(--navy-light);background-size:auto,24px 24px,24px 24px,auto;border-left:1px solid #64ffda2e;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(105%);box-shadow:-24px 0 48px #00000073}.mobile-nav-layer.is-open .mobile-drawer{transform:translate(0,0)}.mobile-drawer-scan{pointer-events:none;opacity:0;background:linear-gradient(#0000 0%,#64ffda12 48%,#0000 100%);animation:none;position:absolute;inset:0}.mobile-nav-layer.is-open .mobile-drawer-scan{animation:2.8s linear infinite mobileScan}@keyframes mobileScan{0%{opacity:0;transform:translateY(-100%)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(100%)}}.mobile-drawer-panel{z-index:1;height:100%;padding:calc(var(--header-h) + .75rem) 1.25rem 1.5rem;flex-direction:column;display:flex;position:relative;overflow-y:auto}.mobile-drawer-head{border-bottom:1px solid var(--navy-lighter);margin-bottom:1.5rem;padding-bottom:1rem}.mobile-drawer-kicker{font-family:var(--font-mono);letter-spacing:.18em;color:var(--green);align-items:center;gap:.5rem;margin:0;font-size:.8125rem;display:flex}.mobile-drawer-dot{background:var(--green);border-radius:50%;width:.45rem;height:.45rem;animation:1.4s ease-in-out infinite mobilePulse;box-shadow:0 0 10px #64ffdabf}@keyframes mobilePulse{50%{opacity:.45}}.mobile-drawer-meta{font-family:var(--font-mono);color:var(--slate);letter-spacing:.08em;margin:.35rem 0 0;font-size:.6875rem}.mobile-drawer-links{margin:0;padding:0;list-style:none}.mobile-drawer-item{opacity:0;transform:translate(1.25rem)}.mobile-nav-layer.is-open .mobile-drawer-item{animation:mobileNavItemIn .55s var(--ease-out) forwards;animation-delay:calc(80ms + var(--nav-i,0) * 70ms)}@keyframes mobileNavItemIn{to{opacity:1;transform:translate(0,0)}}.mobile-drawer-links a{color:var(--white);border-radius:var(--radius);transition:color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition);border:1px solid #0000;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;margin-bottom:.35rem;padding:.85rem .65rem;font-size:1.05rem;text-decoration:none;display:grid}.mobile-drawer-links a:hover,.mobile-drawer-links a:focus-visible{color:var(--green);background:#64ffda0d;border-color:#64ffda38;transform:translate(-3px)}.mobile-drawer-links a.is-active{color:var(--green);background:#64ffda14;border-color:#64ffda59}.mobile-drawer-index{font-family:var(--font-mono);color:var(--green);font-size:.75rem}.mobile-drawer-label{font-weight:500}.mobile-drawer-chevron{font-family:var(--font-mono);color:var(--slate);opacity:0;transition:opacity var(--transition), transform var(--transition), color var(--transition);font-size:.875rem;transform:translate(-6px)}.mobile-drawer-links a:hover .mobile-drawer-chevron,.mobile-drawer-links a:focus-visible .mobile-drawer-chevron,.mobile-drawer-links a.is-active .mobile-drawer-chevron{opacity:1;color:var(--green);transform:translate(0)}.mobile-drawer-divider{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--slate);align-items:center;gap:.65rem;margin:1.25rem 0 1rem;font-size:.625rem;display:flex}.mobile-drawer-divider span:first-child,.mobile-drawer-divider span:last-child{background:var(--navy-lighter);flex:1;height:1px}.mobile-drawer-social{flex-direction:column;gap:.35rem;margin-top:auto;display:flex}.mobile-drawer-social-link{font-family:var(--font-mono);color:var(--slate-light);border:1px solid var(--navy-lighter);border-radius:var(--radius);opacity:0;transition:color var(--transition), border-color var(--transition), background var(--transition);justify-content:space-between;align-items:center;padding:.65rem;font-size:.8125rem;text-decoration:none;display:flex;transform:translate(1rem)}.mobile-nav-layer.is-open .mobile-drawer-social-link{animation:mobileNavItemIn .5s var(--ease-out) forwards;animation-delay:calc(.22s + var(--nav-i,0) * 60ms)}.mobile-drawer-social-link:hover,.mobile-drawer-social-link:focus-visible{color:var(--green);background:#64ffda0a;border-color:#64ffda4d}.main-column{padding:0 1.5rem 4rem}@media (width>=768px){.main-column{padding:0 3rem 5rem}}main{max-width:var(--max-w);margin-inline:auto}.hero{min-height:calc(100vh - var(--header-h));flex-direction:column;justify-content:center;padding:4rem 0 3rem;display:flex}@media (width>=1024px){.hero{min-height:100vh;padding:0}}.hero-top{justify-content:space-between;align-items:center;gap:1.25rem;width:100%;margin-bottom:1.25rem;display:flex}.hero-greeting{font-family:var(--font-mono);color:var(--green);margin:0;font-size:clamp(.875rem,2vw,1rem)}.hero-name{color:var(--slate-light);letter-spacing:-.02em;font-size:clamp(2.5rem,8vw,4.5rem);font-weight:700;line-height:1.1}.hero-headline{color:var(--slate);letter-spacing:-.02em;max-width:22ch;margin-top:.35rem;font-size:clamp(1.75rem,5vw,3.25rem);font-weight:700;line-height:1.15}.hero-bio{max-width:36rem;color:var(--slate);margin-top:1.5rem;font-size:1.0625rem}.hero-actions{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.btn{border-radius:var(--radius);font-family:var(--font-mono);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), transform .25s var(--ease-out), box-shadow .25s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;padding:.85rem 1.35rem;font-size:.8125rem;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(0)}.btn-primary{border-color:var(--green);color:var(--green);background:0 0}.btn-primary:hover{background:var(--green-dim);transform:translateY(-2px);box-shadow:0 8px 24px #64ffda1f}.btn-outline{border-color:var(--navy-lighter);color:var(--slate-light);background:0 0}.btn-outline:hover{border-color:var(--green);color:var(--green)}.section{scroll-margin-top:var(--header-h);padding:5rem 0}.section-heading{margin-bottom:2.5rem}.section-heading h2{color:var(--white);white-space:nowrap;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;font-size:clamp(1.5rem,4vw,1.75rem);font-weight:600;display:flex}.section-index{font-family:var(--font-mono);color:var(--green);font-size:clamp(1.25rem,3vw,1.5rem);font-weight:400}.section-lead{max-width:34rem;color:var(--slate);margin-top:1rem;font-size:1rem}.section-heading h2:after{content:"";background:var(--navy-lighter);flex:1;min-width:4rem;height:1px;margin-left:.5rem}@media (width<=480px){.section-heading h2:after{display:none}}.profile-photo{--photo-accent:var(--green)}.profile-photo-shell{width:fit-content;position:relative}.profile-photo-shell:before{content:"";border:2px solid var(--photo-accent);border-radius:var(--radius);transition:transform .35s var(--ease-out);pointer-events:none;position:absolute;inset:0;transform:translate(.65rem,.65rem)}.profile-photo:hover .profile-photo-shell:before,.profile-photo:focus-within .profile-photo-shell:before{transform:translate(.45rem,.45rem)}.profile-photo-frame{z-index:1;border-radius:var(--radius);background:var(--navy-light);border:2px solid var(--navy-lighter);position:relative;overflow:hidden}.profile-photo-frame img{object-fit:cover;object-position:center top;filter:grayscale()contrast(1.05);opacity:0;width:100%;height:100%;transition:filter .45s var(--ease-out), opacity .5s var(--ease-out), transform .45s var(--ease-out);display:block}.profile-photo-frame img.is-loaded{opacity:1}.profile-photo:hover img.is-loaded,.profile-photo:focus-within img.is-loaded{filter:grayscale(0%)contrast();transform:scale(1.03)}.profile-photo-fallback{width:100%;height:100%;font-family:var(--font-mono);color:var(--green);background:linear-gradient(135deg, #64ffda14, transparent), var(--navy-light);place-items:center;font-weight:600;display:grid}.profile-photo--about{margin-bottom:1.25rem}.profile-photo--about .profile-photo-frame{aspect-ratio:4/5;width:min(100%,15rem)}.profile-photo--sidebar{margin-bottom:1.25rem}.profile-photo--sidebar .profile-photo-frame{aspect-ratio:1;width:7.5rem}.profile-photo--sidebar .profile-photo-shell:before{transform:translate(.45rem,.45rem)}.profile-photo--intro{margin:0;position:absolute;inset:.55rem}.profile-photo--intro .profile-photo-shell{width:100%;height:100%}.profile-photo--intro .profile-photo-shell:before,.profile-photo--hero-circle .profile-photo-shell:before{display:none}.profile-photo--intro .profile-photo-frame,.profile-photo--hero-circle .profile-photo-frame{border:2px solid #64ffda59;border-radius:50%;width:100%;height:100%;box-shadow:0 0 24px #64ffda1f}.profile-photo--intro .profile-photo-frame img,.profile-photo--hero-circle .profile-photo-frame img{filter:grayscale(20%)contrast(1.05);opacity:1}.profile-photo--intro .profile-photo-frame img:not(.is-loaded),.profile-photo--hero-circle .profile-photo-frame img:not(.is-loaded){opacity:0}.profile-photo--intro:hover img.is-loaded,.profile-photo--hero-circle:hover img.is-loaded{filter:grayscale(0%)contrast()}.profile-photo--hero-circle{flex-shrink:0;margin:0}.profile-photo--hero-circle .profile-photo-frame{width:clamp(4.5rem,16vw,6.5rem);height:clamp(4.5rem,16vw,6.5rem);animation:introLogoPop .85s var(--ease-out) .2s both}.about-aside{flex-direction:column;display:flex}.about-grid{gap:2rem;display:grid}@media (width>=768px){.about-grid{grid-template-columns:1.4fr .9fr;gap:2.5rem}}.prose{color:var(--slate);gap:1rem;display:grid}.prose p:first-child:first-letter{color:var(--green);font-weight:600}.fact-list{background:var(--navy-light);border-radius:var(--radius);border:1px solid var(--navy-lighter);margin:0;padding:1.25rem}.fact-list div{border-bottom:1px solid var(--navy-lighter);justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:.875rem;display:flex}.fact-list div:last-child{border-bottom:0}.fact-list dt{color:var(--slate)}.fact-list dd{color:var(--white);text-align:right;margin:0}.skills-block{margin-top:2.5rem}.skills-block h3{font-size:.875rem;font-family:var(--font-mono);color:var(--slate);margin-bottom:1rem}.skill-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-list>li{font-family:var(--font-mono);color:var(--slate-light);background:var(--navy-light);border-radius:var(--radius);transition:border-color .25s ease, color .25s ease, transform .25s var(--ease-out);border:1px solid #0000;padding:.35rem .65rem;font-size:.75rem}.skill-list>li:hover{color:var(--green);border-color:#64ffda59;transform:translateY(-2px)}.timeline{gap:2rem;margin:0;padding:0;list-style:none;display:grid}.timeline-item{gap:1rem;display:grid;position:relative}.timeline-item:before{content:"";background:linear-gradient(var(--green), transparent);opacity:.45;transform-origin:top;width:2px;height:calc(100% - .5rem);transition:transform .9s var(--ease-out);position:absolute;top:.35rem;left:-1rem;transform:scaleY(0)}.timeline-item.reveal.is-visible:before{transform:scaleY(1)}@media (width<=639px){.timeline-item:before{display:none}}@media (width>=640px){.timeline-item{grid-template-columns:11rem 1fr;gap:2rem}}.timeline-period{font-family:var(--font-mono);color:var(--slate);font-size:.8125rem}.timeline-item h3{color:var(--white);font-size:1.0625rem;font-weight:600}.timeline-company{color:var(--green);margin-top:.25rem;font-size:.875rem}.timeline-bullets{color:var(--slate);margin:0;padding-left:1.1rem;font-size:.9375rem}.timeline-bullets li{margin-bottom:.45rem}.timeline-bullets li::marker{color:var(--green)}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.filter-btn{border:1px solid var(--navy-lighter);color:var(--slate);font-family:var(--font-mono);cursor:pointer;transition:border-color .25s ease, color .25s ease, transform .25s var(--ease-out), background .25s ease;background:0 0;border-radius:999px;padding:.35rem .75rem;font-size:.75rem}.filter-btn.is-active,.filter-btn:hover{border-color:var(--green);color:var(--green);transform:translateY(-1px)}.filter-btn.is-active{background:var(--green-dim)}.project-grid{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.project-grid{grid-template-columns:repeat(2,1fr)}}.project-card{background:var(--navy-light);border-radius:var(--radius);border:1px solid var(--navy-lighter);transition:transform .35s var(--ease-out), border-color .35s ease, box-shadow .35s ease;flex-direction:column;gap:.65rem;padding:1.35rem;display:flex;position:relative;overflow:hidden}.project-card:after{content:"";transition:transform .65s var(--ease-out);pointer-events:none;background:linear-gradient(120deg,#0000 30%,#64ffda12 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.project-card:hover{border-color:#64ffda66;transform:translateY(-4px);box-shadow:0 16px 40px #020c1b8c}.project-card:hover:after{transform:translate(120%)}.project-card-top{justify-content:space-between;align-items:center;display:flex}.project-status{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--green);font-size:.6875rem}.project-link{color:var(--slate-light);font-size:1.125rem;line-height:1;text-decoration:none}.project-link:hover{color:var(--green)}.project-card h3{color:var(--white);font-size:1.125rem;font-weight:600}.project-summary{color:var(--slate-light);font-size:.9375rem}.project-body{color:var(--slate);flex:1;font-size:.875rem}.project-metrics{gap:.25rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:grid}.project-metrics li{color:var(--slate);justify-content:space-between;display:flex}.project-metrics strong{color:var(--green);font-weight:500}.tag-list{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{font-family:var(--font-mono);color:var(--slate);font-size:.6875rem}.project-cta{font-family:var(--font-mono);color:var(--green);margin-top:.25rem;font-size:.75rem;text-decoration:none}.project-cta:hover{text-decoration:underline}.project-grid-compact .project-card{padding:1rem}.subsection-title{font-size:.875rem;font-family:var(--font-mono);color:var(--slate);margin:2.5rem 0 1rem;font-weight:500}.research-block .subsection-title{margin-top:0}.research-block+.research-block .subsection-title{margin-top:2rem}.publication-list,.cert-list{margin:0;padding:0;list-style:none}.publication-list li{border-bottom:1px solid var(--navy-lighter);padding:1rem 0}.publication-list a{color:var(--white);transition:color var(--transition);line-height:1.5;text-decoration:none}.publication-list a:hover{color:var(--green)}.publication-meta{font-family:var(--font-mono);color:var(--slate);margin-top:.35rem;font-size:.75rem;display:block}.cert-list li{color:var(--light-slate);border-bottom:1px solid var(--navy-lighter);padding:.65rem 0}.interests-block{margin-top:2rem}.more-list{border-top:1px solid var(--navy-lighter);margin:2rem 0 0;padding:0;list-style:none}.more-list li{border-bottom:1px solid var(--navy-lighter);gap:.35rem;padding:1rem 0;font-size:.9375rem;display:grid}.more-list strong{color:var(--white)}.more-list span{color:var(--slate)}.empty-state{color:var(--slate);font-size:.9375rem}.section-contact{position:relative}.contact-grid{gap:2rem;display:grid}@media (width>=768px){.contact-grid{grid-template-columns:.85fr 1.15fr;align-items:start;gap:2.5rem}}.contact-channel-head{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--green);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.75rem;display:flex}.contact-channel-dot{background:var(--green);border-radius:50%;width:.45rem;height:.45rem;animation:1.6s ease-in-out infinite contactPulse;box-shadow:0 0 12px #64ffdacc}@keyframes contactPulse{50%{opacity:.35;transform:scale(.85)}}.contact-links{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.contact-link-card{background:var(--navy-light);border:1px solid var(--navy-lighter);border-radius:var(--radius);transition:border-color .3s var(--ease-out), transform .3s var(--ease-out), box-shadow .3s var(--ease-out);grid-template-columns:auto 1fr;align-items:start;gap:.75rem;padding:.85rem .9rem;display:grid}.contact-link-card:hover{border-color:#64ffda59;transform:translate(4px);box-shadow:-4px 0 #64ffda59}.contact-link-key{font-family:var(--font-mono);letter-spacing:.08em;color:var(--green);background:#64ffda0f;border:1px solid #64ffda40;border-radius:.2rem;padding:.25rem .35rem;font-size:.6875rem;font-weight:600}.contact-link-body{gap:.2rem;font-size:.875rem;display:grid}.contact-link-body>span:first-child{font-family:var(--font-mono);color:var(--slate);text-transform:uppercase;letter-spacing:.1em;font-size:.6875rem}.contact-link-body a,.contact-link-card-static .contact-link-body span:last-child{color:var(--white);word-break:break-word;line-height:1.45;text-decoration:none}.contact-link-body a{width:fit-content;max-width:100%;transition:color var(--transition);position:relative}.contact-link-body a:hover{color:var(--green)}.contact-form-wrap{width:100%}.contact-form-shell{border-radius:calc(var(--radius) + 2px);background:linear-gradient(120deg,#64ffda73,#64ffda0d 40%,#64ffda59) 0 0/200% 200%;padding:1px;animation:8s infinite contactBorderShift;position:relative;overflow:hidden}@keyframes contactBorderShift{50%{background-position:100%}}.contact-form-shell:before{content:"";border-radius:var(--radius);background:linear-gradient(#64ffda0a 1px, transparent 1px), linear-gradient(90deg, #64ffda0a 1px, transparent 1px), var(--navy-light);pointer-events:none;z-index:0;background-size:20px 20px,20px 20px,auto;position:absolute;inset:1px}.contact-form-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#64ffda24,#0000 70%);width:14rem;height:14rem;animation:6s ease-in-out infinite alternate contactGlowDrift;position:absolute;top:-40%;right:-20%}@keyframes contactGlowDrift{to{transform:translate(-1.5rem,1rem)}}.contact-form-scan{z-index:1;pointer-events:none;opacity:0;background:linear-gradient(#0000,#64ffda0f,#0000);animation:4.5s linear infinite contactFormScan;position:absolute;inset:0}@keyframes contactFormScan{0%{opacity:0;transform:translateY(-100%)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translateY(100%)}}.contact-form-head{z-index:2;border-bottom:1px solid var(--navy-lighter);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem .85rem;display:flex;position:relative}.contact-form-kicker{font-family:var(--font-mono);color:var(--white);letter-spacing:.06em;margin:0;font-size:.875rem}.contact-form-sub{font-family:var(--font-mono);color:var(--slate);margin:.35rem 0 0;font-size:.6875rem}.contact-form-badge{font-family:var(--font-mono);letter-spacing:.14em;color:var(--green);background:#64ffda14;border:1px solid #64ffda59;border-radius:999px;padding:.3rem .5rem;font-size:.625rem;animation:2s ease-in-out infinite contactBadgePulse}@keyframes contactBadgePulse{50%{box-shadow:0 0 #64ffda00}to{box-shadow:0 0 16px #64ffda40}}.contact-form{z-index:2;gap:.95rem;padding:1.15rem 1.25rem 1.35rem;display:grid;position:relative}.contact-field{border-radius:var(--radius);transition:border-color .35s var(--ease-out), background .35s var(--ease-out), transform .35s var(--ease-out);border:1px solid #0000;gap:.4rem;padding:.65rem .75rem;display:grid}.contact-field:focus-within{background:#64ffda0a;border-color:#64ffda47;transform:translateY(-2px)}.contact-field.has-error{background:#f871710d;border-color:#f8717173}.contact-field-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--slate-light);align-items:center;gap:.45rem;font-size:.6875rem;display:flex}.contact-field-index,.contact-field-req{color:var(--green)}.contact-field-meta{font-family:var(--font-mono);color:var(--slate);justify-self:end;font-size:.625rem}.contact-form input,.contact-form select,.contact-form textarea{width:100%;font-family:var(--font-mono);border:1px solid var(--navy-lighter);border-radius:var(--radius);color:var(--white);caret-color:var(--green);transition:border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);background:#0a192fd9;padding:.7rem .8rem;font-size:.8125rem}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--slate);opacity:.85}.contact-form select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--green) 50%), linear-gradient(135deg, var(--green) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:2rem}.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{border-color:#64ffda8c;outline:none;box-shadow:0 0 0 3px #64ffda1f}.filter-btn:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:2px}.contact-form small{color:#f87171;font-size:.75rem;font-family:var(--font-mono)}.contact-form-actions{gap:.65rem;margin-top:.35rem;display:grid}.contact-submit{width:100%;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;justify-content:center;gap:.65rem;font-size:.8125rem;position:relative;overflow:hidden}.contact-submit:before{content:"";transition:transform .65s var(--ease-out);background:linear-gradient(105deg,#0000 35%,#ffffff38 50%,#0000 65%);position:absolute;inset:0;transform:translate(-120%)}.contact-submit:hover:before{transform:translate(120%)}.contact-submit-icon{transition:transform .3s var(--ease-out);display:inline-block}.contact-submit:hover .contact-submit-icon{transform:translate(4px)}.form-status{min-height:1.25rem;font-family:var(--font-mono);color:var(--slate);opacity:.7;font-size:.75rem;transition:opacity .3s,color .3s}.form-status.is-visible{opacity:1;color:var(--green)}html.reduce-motion .contact-form-shell,html.reduce-motion .contact-form-scan,html.reduce-motion .contact-form-badge,html.reduce-motion .contact-channel-dot{animation:none}html.reduce-motion .contact-field:focus-within,html.reduce-motion .contact-link-card:hover{transform:none}body.intro-active{overflow:hidden}.intro-splash{z-index:200;background:var(--navy);animation:introBgIn .6s var(--ease-out) both;place-items:center;display:grid;position:fixed;inset:0}.intro-splash.is-exiting{animation:introBgOut .85s var(--ease-out) forwards;pointer-events:none}.intro-splash.is-exiting .intro-splash-inner{animation:introContentOut .85s var(--ease-out) forwards}.intro-splash-inner{text-align:center;animation:introContentIn .9s var(--ease-out) .15s both;flex-direction:column;align-items:center;padding:2rem;display:flex}.intro-logo-wrap{width:7.5rem;height:7.5rem;margin-bottom:1.75rem;position:relative}.profile-photo--intro{z-index:1}.intro-ring{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.intro-ring-track,.intro-ring-progress{fill:none;stroke-width:2px}.intro-ring-track{stroke:var(--navy-lighter)}.intro-ring-progress{stroke:var(--green);stroke-dasharray:339.292;stroke-dashoffset:339.292px;animation:introRingDraw 9.6s var(--ease-out) .2s forwards}.intro-greeting{font-family:var(--font-mono);color:var(--green);letter-spacing:.2em;text-transform:uppercase;animation:introFadeUp .75s var(--ease-out) .55s both;margin:0;font-size:.75rem}.intro-name{color:var(--white);letter-spacing:-.02em;animation:introFadeUp .75s var(--ease-out) .68s both;margin:.5rem 0 0;font-size:clamp(1.75rem,6vw,2.75rem);font-weight:700}.intro-roles{max-width:min(22rem,90vw);min-height:2.75rem;animation:introFadeUp .75s var(--ease-out) .82s both;place-items:center;margin:.65rem 0 0;display:grid;position:relative}.intro-role-text{font-family:var(--font-mono);color:var(--slate-light);text-align:center;animation:introRoleCycle .65s var(--ease-out) both;grid-area:1/1;margin:0;font-size:clamp(.875rem,2.8vw,1.0625rem);font-weight:500;line-height:1.35}.intro-role-text:after{content:"";vertical-align:-.08em;background:var(--green);width:2px;height:.95em;margin-left:.15rem;animation:.9s step-end infinite introCursorBlink;display:inline-block}@keyframes introRoleCycle{0%{opacity:0;filter:blur(6px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translate(0,0)}}@keyframes introCursorBlink{50%{opacity:0}}.intro-progress-wrap{animation:introFadeUp .6s var(--ease-out) .95s both;flex-direction:column;align-items:center;gap:.65rem;margin-top:2.25rem;display:flex}.intro-progress{background:var(--navy-lighter);border-radius:999px;width:min(14rem,70vw);height:2px;overflow:hidden}.intro-timer{font-family:var(--font-mono);color:var(--slate);letter-spacing:.08em;margin:0;font-size:.75rem}.intro-progress-fill{background:linear-gradient(90deg, var(--green), #7affdf);border-radius:inherit;height:100%;transition:width .12s linear;display:block;box-shadow:0 0 12px #64ffda73}.intro-skip{font-family:var(--font-mono);color:var(--slate);border:1px solid var(--navy-lighter);border-radius:var(--radius);cursor:pointer;transition:color var(--transition), border-color var(--transition), background var(--transition);animation:introFadeUp .5s var(--ease-out) 1.1s both;background:0 0;padding:.45rem .75rem;font-size:.75rem;position:absolute;bottom:1.25rem;right:1.25rem}.intro-skip:hover{color:var(--green);border-color:var(--green);background:var(--green-dim)}@keyframes introBgIn{0%{opacity:0}to{opacity:1}}@keyframes introBgOut{to{opacity:0;visibility:hidden}}@keyframes introContentIn{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes introContentOut{to{opacity:0;filter:blur(4px);transform:translateY(-18px)scale(1.02)}}@keyframes introRingDraw{to{stroke-dashoffset:0}}@keyframes introLogoPop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes introFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0,0)}}html.reduce-motion .intro-splash.is-exiting .intro-splash-inner{filter:none}html.reduce-motion .intro-ring-progress{stroke-dashoffset:0;animation-duration:10ms}html.reduce-motion .intro-greeting,html.reduce-motion .intro-name,html.reduce-motion .intro-role-text{filter:none;animation:none}html.reduce-motion .intro-role-text:after{display:none}html.reduce-motion .profile-photo--intro,html.reduce-motion .intro-splash-inner,html.reduce-motion .intro-skip{opacity:1;animation:none;transform:none}.site-footer{max-width:var(--max-w);text-align:center;font-family:var(--font-mono);color:var(--slate);margin:0 auto;padding:2rem 0 3rem;font-size:.75rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bg-fx-spotlight,.bg-fx-grid{display:none}.project-card:hover,.btn-primary:hover,.filter-btn:hover,.skill-list>li:hover{box-shadow:none;transform:none}.project-card:after{display:none}.mobile-nav-layer.is-open .mobile-drawer{transform:translate(0,0)}.mobile-nav-layer.is-open .mobile-drawer-item,.mobile-nav-layer.is-open .mobile-drawer-social-link{opacity:1;animation:none;transform:none}.mobile-nav-layer.is-open .mobile-drawer-scan{opacity:0;animation:none}.mobile-drawer-dot{animation:none}.timeline-item:before{transform:scaleY(1)}}@media print{.sidebar,.mobile-header,.mobile-nav-layer,.contact-form,.skip-link{display:none!important}body{color:#000;background:#fff}.main-column{margin:0}}
