:root{--bg: #08070C;--bg-elevated: #100E17;--ink: #F1EFF6;--ink-soft: #A6A2B5;--ink-faint: #6C687B;--purple: #8B5CF6;--purple-bright: #B794F6;--purple-dim: #4C3A82;--border: #221F2C;--display: "Sora", sans-serif;--sans: "Inter", -apple-system, sans-serif;--max-w: 1240px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--purple-bright);outline-offset:3px}img{max-width:100%;display:block}.wrap{max-width:var(--max-w);margin:0 auto;padding:0 40px}@media(max-width:720px){.wrap{padding:0 22px}}.glow{position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;opacity:.55}.glow-1{width:480px;height:480px;background:radial-gradient(circle,var(--purple) 0%,transparent 70%);top:-120px;right:-120px;animation:drift1 16s ease-in-out infinite}.glow-2{width:380px;height:380px;background:radial-gradient(circle,#5B3FA0 0%,transparent 70%);bottom:10%;left:-140px;animation:drift2 20s ease-in-out infinite}@keyframes drift1{0%,to{transform:translate(0)}50%{transform:translate(-40px,60px)}}@keyframes drift2{0%,to{transform:translate(0)}50%{transform:translate(50px,-40px)}}@media(prefers-reduced-motion:reduce){.glow-1,.glow-2{animation:none}}.side-socials{position:fixed;left:40px;bottom:40px;z-index:90;display:flex;flex-direction:column;gap:20px}@media(max-width:900px){.side-socials{display:none}}.side-socials a{color:var(--ink-soft);width:20px;height:20px;transition:color .2s,transform .2s}.side-socials a:hover{color:var(--purple-bright);transform:translateY(-2px)}.side-socials svg{width:20px;height:20px}header.nav{position:fixed;top:0;left:0;right:0;z-index:100}.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:26px 40px;max-width:var(--max-w);margin:0 auto}@media(max-width:720px){.nav-inner{padding:20px 22px}}.brand{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.02em}.nav-email{font-size:13.5px;color:var(--ink-soft);letter-spacing:.02em}@media(max-width:780px){.nav-email{display:none}}.nav-links{display:flex;gap:34px;font-size:12.5px;font-weight:600;letter-spacing:.1em;color:var(--ink-soft)}.nav-links a{transition:color .2s;padding-bottom:4px;border-bottom:1px solid transparent}.nav-links a:hover,.nav-links a.active{color:var(--ink);border-color:var(--purple)}.nav-toggle{display:none;background:none;border:1px solid var(--border);color:var(--ink);width:38px;height:38px;cursor:pointer}@media(max-width:780px){.nav-links{display:none}.nav-toggle{display:block}.nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:20px 22px;gap:16px;z-index:50}}.resume-tab{position:fixed;bottom:40px;right:40px;z-index:90;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--ink-faint);display:flex;align-items:center;gap:8px;transition:color .2s}.resume-tab:hover{color:var(--purple-bright)}@media(max-width:720px){.resume-tab{right:22px;bottom:22px}}.hero-section{position:relative;z-index:1;padding:0}.hero-block{min-height:84vh;display:flex;flex-direction:column;justify-content:center;padding:140px 0 70px;max-width:860px}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--purple-bright);font-size:14px;font-weight:600;letter-spacing:.06em;margin-bottom:18px;background:#8b5cf614;border:1px solid var(--purple-dim);padding:6px 14px;border-radius:20px;width:fit-content}.hero-eyebrow:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981}.hero-name{font-family:var(--display);font-weight:800;font-size:clamp(48px,7vw,84px);line-height:1;letter-spacing:-.02em;margin-bottom:24px}.hero-role-wrap{position:relative;margin-bottom:28px}.hero-role-ghost{font-family:var(--display);font-weight:800;font-size:clamp(22px,3.2vw,34px);color:#8b5cf629;letter-spacing:-.01em;white-space:nowrap;margin-bottom:-12px}.hero-role{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.5vw,48px);letter-spacing:-.01em;background:linear-gradient(90deg,var(--ink),var(--purple-bright));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lede{color:var(--ink-soft);font-size:17.5px;max-width:58ch;margin-bottom:36px;line-height:1.75}.hero-lede strong{color:var(--ink);font-weight:600}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.btn{font-family:var(--sans);font-weight:600;font-size:14.5px;padding:13px 26px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;transition:all .2s;cursor:pointer}.btn-primary{background:var(--purple);color:#fff;border:none}.btn-primary:hover{background:var(--purple-bright);transform:translateY(-2px);box-shadow:0 14px 30px #8b5cf659}.btn-outline{border:1px solid var(--border);color:var(--ink);background:transparent}.btn-outline:hover{border-color:var(--purple);color:var(--purple-bright)}.eyebrow-tag{font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--purple-bright);margin-bottom:14px;text-transform:uppercase}.about-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:stretch}@media(max-width:920px){.about-grid{grid-template-columns:1fr}}.about-story-card{background:#100e178c;border:1px solid var(--border);padding:38px 34px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .3s}.about-story-card:hover{border-color:var(--purple-dim)}.about-lead{font-size:18px;font-weight:500;line-height:1.7;color:var(--ink);margin-bottom:18px}.about-lead strong{color:var(--purple-bright);font-weight:600}.about-sub{font-size:15px;line-height:1.75;color:var(--ink-soft);margin-bottom:16px}.about-sub strong{color:var(--ink);font-weight:600}.about-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}.about-badge{font-size:12px;font-weight:600;color:var(--purple-bright);background:#8b5cf614;border:1px solid rgba(139,92,246,.25);padding:6px 14px;letter-spacing:.03em}.about-pillars{display:flex;flex-direction:column;gap:16px}.about-pillar-card{background:#100e178c;border:1px solid var(--border);padding:24px;display:flex;gap:18px;align-items:flex-start;transition:border-color .3s,transform .3s}.about-pillar-card:hover{border-color:var(--purple-dim);transform:translateY(-2px)}.pillar-icon{font-size:20px;padding:10px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px}.pillar-content h3{font-family:var(--display);font-size:16px;font-weight:700;color:var(--ink);margin-bottom:6px}.pillar-content p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}.reveal{opacity:0;transform:translateY(32px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-40px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.reveal-left.in{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(40px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.reveal-right.in{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}.reveal-scale.in{opacity:1;transform:scale(1)}.reveal-blur{opacity:0;filter:blur(8px);transform:translateY(20px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1),filter .9s ease}.reveal-blur.in{opacity:1;filter:blur(0);transform:translateY(0)}.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}.d6{transition-delay:.48s}.d7{transition-delay:.56s}.d8{transition-delay:.64s}.hero-load{opacity:0;transform:translateY(28px);animation:heroIn .9s cubic-bezier(.22,1,.36,1) forwards}@keyframes heroIn{to{opacity:1;transform:translateY(0)}}.hero-load.h1{animation-delay:.1s}.hero-load.h2{animation-delay:.22s}.hero-load.h3{animation-delay:.34s}.hero-load.h4{animation-delay:.46s}.hero-load.h5{animation-delay:.58s}.hero-load.h6{animation-delay:.7s}@media(prefers-reduced-motion:reduce){.hero-load{opacity:1;transform:none;animation:none}}header.nav.scrolled .nav-inner{background:#08070cd1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding-top:18px;padding-bottom:18px}header.nav .nav-inner{transition:background .35s,padding .35s,border-color .35s}section.block{position:relative;z-index:1;padding:120px 0}.section-head{margin-bottom:56px}.section-head .eyebrow-tag{margin-bottom:14px}.section-head h2{font-family:var(--display);font-weight:800;font-size:clamp(28px,4vw,44px);letter-spacing:-.01em}.section-head p{color:var(--ink-soft);font-size:15.5px;max-width:50ch;margin-top:12px}.do-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:760px){.do-grid{grid-template-columns:1fr}}.do-card{position:relative;border:1px dashed var(--border);padding:34px 30px;transition:border-color .3s,background .3s}.do-card:hover{border-color:var(--purple-dim);background:#8b5cf608}.do-card .corner{position:absolute;width:12px;height:12px;border-color:var(--purple-bright);opacity:.7}.do-card .c-tl{top:-1px;left:-1px;border-top:1.5px solid;border-left:1.5px solid}.do-card .c-br{bottom:-1px;right:-1px;border-bottom:1.5px solid;border-right:1.5px solid}.do-title{font-family:var(--display);font-weight:700;font-size:21px;margin-bottom:10px}.do-sub{color:var(--purple-bright);font-size:13.5px;margin-bottom:16px}.do-desc{color:var(--ink-soft);font-size:14.5px}.stack-section{overflow:hidden}.stack-marquee-wrap{position:relative;margin-bottom:64px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.stack-marquee{display:flex;gap:14px;width:max-content;animation:marquee 38s linear infinite}.stack-marquee.reverse{animation-direction:reverse;animation-duration:44s}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.stack-marquee{animation:none}}.stack-pill{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:1px solid var(--border);background:var(--bg-elevated);font-size:14px;font-weight:500;white-space:nowrap;transition:border-color .25s,background .25s,transform .25s}.stack-pill:hover{border-color:var(--purple-dim);background:#8b5cf60f;transform:translateY(-2px)}.stack-pill img,.stack-pill svg{width:22px;height:22px;flex-shrink:0}.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}@media(max-width:1024px){.stack-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.stack-grid{grid-template-columns:1fr}}.stack-cat{border:1px solid var(--border);padding:28px 24px;background:#100e1780;transition:border-color .3s,box-shadow .3s}.stack-cat:hover{border-color:var(--purple-dim);box-shadow:0 0 40px #8b5cf614}.stack-cat-label{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--purple-bright);margin-bottom:18px}.stack-cat-items{display:flex;flex-wrap:wrap;gap:8px}.stack-tag{font-size:13px;padding:6px 12px;border:1px solid var(--border);color:var(--ink-soft);transition:color .2s,border-color .2s,background .2s}.stack-tag:hover{color:var(--ink);border-color:var(--purple-dim);background:#8b5cf614}.art-section{overflow:hidden}.art-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;margin-bottom:56px}@media(max-width:900px){.art-intro{grid-template-columns:1fr;gap:32px}}.art-bio{color:var(--ink-soft);font-size:16px;max-width:52ch;line-height:1.75}.art-bio strong{color:var(--ink);font-weight:600}.art-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}.art-stat{border:1px solid var(--border);padding:22px 20px;background:#100e178c;transition:border-color .3s}.art-stat:hover{border-color:var(--purple-dim)}.art-stat-num{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.02em;background:linear-gradient(90deg,var(--ink),var(--purple-bright));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;margin-bottom:6px}.art-stat-label{font-size:12.5px;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase}.art-services{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:48px}.art-service{font-size:13px;padding:8px 16px;border:1px dashed var(--border);color:var(--ink-soft);transition:border-color .25s,color .25s,background .25s}.art-service:hover{border-color:var(--purple-dim);color:var(--purple-bright);background:#8b5cf60d}.art-cta-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:48px;padding-top:40px;border-top:1px solid var(--border)}.art-cta-text{color:var(--ink-soft);font-size:15px;max-width:42ch}.art-cta-text strong{color:var(--ink)}.art-cta-btns{display:flex;gap:12px;flex-wrap:wrap}.timeline-title{position:relative;margin-bottom:70px}.tt-ghost{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,52px);color:#ffffff0f;line-height:1}.tt-main{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,52px);line-height:1;margin-top:-8px;background:linear-gradient(90deg,var(--purple-bright),var(--purple));-webkit-background-clip:text;background-clip:text;color:transparent}.timeline{position:relative}.timeline-track{position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--border)}.timeline-progress{position:absolute;left:5px;top:6px;width:2px;background:linear-gradient(var(--purple-bright),var(--purple));height:0%;transition:height .05s linear;box-shadow:0 0 12px #8b5cf699}.timeline-dot{position:absolute;left:-3px;top:0;width:12px;height:12px;border-radius:50%;background:var(--purple-bright);box-shadow:0 0 16px 4px #b794f699;transform:translateY(0);transition:top .05s linear}.t-item{position:relative;padding:0 0 56px 34px}.t-item:last-child{padding-bottom:4px}.t-row{display:grid;grid-template-columns:1fr 90px;align-items:baseline;gap:16px;margin-bottom:10px}@media(max-width:560px){.t-row{grid-template-columns:1fr;gap:4px}}.t-role{font-family:var(--display);font-weight:700;font-size:21px}.t-when{font-family:var(--display);font-weight:800;font-size:20px;color:var(--purple-bright);text-align:right}@media(max-width:560px){.t-when{text-align:left}}.t-org{color:var(--purple-bright);font-size:13.5px;margin-bottom:8px}.t-desc{color:var(--ink-soft);font-size:14.5px;max-width:62ch}.proj-list{display:flex;flex-direction:column}.proj-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:24px;padding:30px 0;border-bottom:1px solid var(--border);transition:padding-left .35s cubic-bezier(.22,1,.36,1),background .35s}.proj-row:hover{padding-left:14px;background:#8b5cf605}.proj-row:first-child{border-top:1px solid var(--border)}@media(max-width:700px){.proj-row{grid-template-columns:1fr;gap:14px}}.proj-num{font-family:var(--display);font-weight:800;font-size:15px;color:var(--purple-dim)}.proj-name{font-family:var(--display);font-weight:700;font-size:22px;margin-bottom:6px}.proj-desc{color:var(--ink-soft);font-size:14.5px;max-width:60ch;margin-bottom:8px}.proj-tech{font-size:12.5px;color:var(--purple-bright)}.proj-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.proj-chip{font-size:11.5px;font-weight:600;color:var(--ink-faint);border:1px solid var(--border);padding:4px 10px;background:#100e1766;border-radius:4px;white-space:nowrap;letter-spacing:.04em}.proj-link{font-size:13px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--purple);padding-bottom:2px;white-space:nowrap;transition:color .2s,border-color .2s}.proj-link:hover{color:var(--purple-bright);border-color:var(--purple-bright)}.proj-link.live{color:var(--purple-bright);border-color:var(--purple-bright);font-weight:700}.proj-link.live:hover{color:#fff}.edu-cert-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}@media(max-width:860px){.edu-cert-grid{grid-template-columns:1fr}}.edu-card{border:1px solid var(--border);padding:28px 26px;background:#100e178c;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .3s}.edu-card:hover{border-color:var(--purple-dim)}.edu-degree{font-family:var(--display);font-weight:700;font-size:17px;color:var(--ink);margin-bottom:6px;line-height:1.35}.edu-school{color:var(--purple-bright);font-size:14px;font-weight:500;margin-bottom:14px}.edu-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap}.edu-badge{display:inline-flex;align-items:center;gap:6px;background:#8b5cf61f;border:1px solid var(--purple-dim);color:var(--purple-bright);padding:4px 12px;border-radius:4px;font-weight:700;font-size:12px}.cert-list{display:flex;flex-direction:column;gap:12px}.cert-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);padding:14px 18px;font-size:13.5px;background:#100e178c;transition:border-color .3s}.cert-chip:hover{border-color:var(--purple-dim)}.cert-chip .state{font-family:var(--display);font-size:10.5px;font-weight:700;padding:3px 9px;letter-spacing:.04em}.state.done{color:var(--purple-bright);background:#8b5cf61f}.state.progress{color:#e8b84d;background:#e8b84d1a}.contact-inner{text-align:center;max-width:640px;margin:0 auto}.contact-inner h2{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,52px);margin-bottom:20px;letter-spacing:-.01em}.contact-inner h2 .accent{background:linear-gradient(90deg,var(--purple-bright),var(--purple));-webkit-background-clip:text;background-clip:text;color:transparent}.contact-inner p{color:var(--ink-soft);font-size:16px;margin-bottom:40px}.contact-links{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}footer{position:relative;z-index:1;padding:40px 0 120px;border-top:1px solid var(--border)}footer .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}footer .foot-note{font-size:13px;color:var(--ink-faint)}
