:root{--bg:#0c0c0b;--bg2:#141413;--fg:#edede8;--muted:#93938f;--border:#edede817;--border-hv:#edede861;--accent:#ff3d00;--green:#00dc64d9;--green-bd:#00dc6447;--card-glow:#e2e8f0;--font-sans:"Inter", system-ui, sans-serif;--font-display:"Syne", sans-serif;--pad-x:44px;--radius:14px;--ease:cubic-bezier(.25, .46, .45, .94)}[data-theme=light]{--bg:#f0ede5;--bg2:#e8e5dd;--fg:#0c0c0b;--muted:#5b5a57;--border:#0c0c0b1a;--border-hv:#0c0c0b61;--green:#006e2d;--green-bd:#006e2d59;--card-glow:#64748b}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overflow:hidden}@media (pointer:coarse){html{scroll-behavior:smooth;overflow:auto}}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);transition:background .4s var(--ease), color .4s var(--ease);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizespeed;overflow-x:hidden}a{color:inherit;text-decoration:none}img{content-visibility:auto;max-width:100%;display:block}ul{list-style:none}@media (pointer:coarse){*,:before,:after{cursor:auto!important}.cursor{display:none!important}}body:after{content:"";opacity:.028;pointer-events:none;z-index:9997;will-change:auto;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes shline{0%{top:-100%}to{top:100%}}@media (prefers-reduced-motion:reduce){.sh-line:after,.pill-dot,.wip-dot{animation:none}}@media (pointer:coarse){*,:before,:after{cursor:auto!important}#canvas{display:none!important}}#canvas{pointer-events:none;z-index:9999;position:fixed;inset:0}#cursor-dot,#cursor-canvas,.cursor,.cursor-ring,#cursorRing,.cursor-label,.cursor-arrow{display:none!important}nav{z-index:200;padding:22px var(--pad-x);transition:padding .45s var(--ease), top .45s var(--ease), left .45s var(--ease), right .45s var(--ease), border-radius .45s var(--ease), background .4s ease, backdrop-filter .4s ease, box-shadow .4s ease;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0;overflow:visible}nav.scrolled{-webkit-backdrop-filter:blur(20px);background:#0c0c0bcc;border-radius:100px;padding:14px 36px;top:16px;left:22%;right:22%;box-shadow:0 4px 24px #00000040}[data-theme=light] nav.scrolled{background:#f0ede5d9;box-shadow:0 4px 24px #0000001a}.nav-logo{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:800}.nav-right{align-items:center;gap:36px;display:flex;overflow:visible}.nav-links{gap:28px;display:flex}.nav-links a{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:400;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--fg);width:0;height:1px;transition:width .3s;position:absolute;bottom:-2px;left:0}.nav-links a:hover{color:var(--fg)}.nav-links a:hover:after{width:100%}.theme-btn{border:1px solid var(--border);color:var(--muted);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:100px;align-items:center;gap:7px;padding:7px 15px;font-size:11px;transition:background .3s,color .3s,border-color .3s;display:flex;position:relative}.audio-btn{width:40px;color:var(--fg);background:#ffffff05;justify-content:center;padding-inline:0}.audio-btn:before{content:"";border-radius:inherit;cursor:pointer;position:absolute;inset:-10px}[data-theme=light] .audio-btn{background:#0c0c0b08}.audio-btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.audio-wrap{align-items:center;display:inline-flex;position:relative;overflow:visible}.audio-popup{white-space:nowrap;font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);background:var(--bg2);border:1px solid var(--border-hv);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;z-index:201;border-radius:100px;padding:6px 14px;font-size:10px;font-weight:600;animation:.6s 1.8s forwards popupEntry,2.4s ease-in-out 2.4s infinite popupBob;position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%);box-shadow:0 2px 16px #0000002e}.audio-popup:before{content:"";border:5px solid #0000;border-bottom-color:var(--border-hv);position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.audio-popup:after{content:"";border:4px solid #0000;border-bottom-color:var(--bg2);position:absolute;bottom:calc(100% - 1px);left:50%;transform:translate(-50%)}@keyframes popupEntry{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes popupBob{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-3px)}}.audio-popup.hidden{animation:.35s forwards popupExit}@keyframes popupExit{to{opacity:0;pointer-events:none;transform:translate(-50%)translateY(6px)scale(.9)}}.audio-icon{justify-content:center;align-items:center;display:inline-flex}.audio-icon svg{width:14px;height:14px;display:block}.theme-btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.theme-btn:active{transform:scale(.95)!important}.t-icon{font-size:18px;line-height:1}.settings-wrap{position:relative}.settings-btn{width:40px;color:var(--fg);justify-content:center;padding-inline:0;transition:background .3s,color .3s,border-color .3s,transform .5s}.settings-btn.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.settings-btn svg{transition:transform .5s cubic-bezier(.25,.46,.45,.94)}.settings-btn.active svg{transform:rotate(90deg)}.settings-panel{background:color-mix(in srgb, var(--bg2) 85%, transparent);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);opacity:0;visibility:hidden;z-index:1000;pointer-events:none;border-radius:14px;min-width:240px;padding:18px 20px;transition:opacity .25s,visibility .25s,transform .25s;position:absolute;top:calc(100% + 14px);right:0;transform:translateY(-8px)}.settings-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.settings-panel-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:10px;font-size:10px;font-weight:700}.settings-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex}.settings-row:hover .settings-label{color:var(--fg)}.settings-label{color:var(--muted);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:12px;transition:color .2s}.settings-toggle{opacity:0;width:0;height:0;position:absolute}.settings-switch{border:1px solid var(--border);background:#ffffff14;border-radius:20px;flex-shrink:0;width:36px;height:20px;transition:background .3s,border-color .3s;position:relative}.settings-switch:after{content:"";background:var(--muted);border-radius:50%;width:14px;height:14px;transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s;position:absolute;top:2px;left:2px}.settings-toggle:checked+.settings-switch{background:#3b82f6;border-color:#3b82f6}.settings-toggle:checked+.settings-switch:after{background:#fff;transform:translate(16px)}[data-no-particles] .card-particle{display:none!important}[data-no-particles] .pcard:not(.pcard--wip):hover,[data-no-particles] .pcard:not(.pcard--wip).is-active{border-color:var(--border-hv);box-shadow:none}#hero{min-height:100svh;padding:0 var(--pad-x) max(56px, calc(56px + env(safe-area-inset-bottom)));flex-direction:column;justify-content:flex-end;display:flex;position:relative}@media (width<=480px){#hero{margin-top:0}}.hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:20px;font-size:11px;overflow:hidden}.hero-eyebrow span{will-change:transform;display:inline-block}.hero-title{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:48px;font-size:clamp(72px,12vw,176px);font-weight:800;line-height:.88}.hero-title .tl{display:block;overflow:hidden}.hero-title .tl span{display:block;transform:translateY(0)}.hero-bottom{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}.hero-desc{max-width:360px;color:var(--muted);font-size:15px;font-weight:300;line-height:1.65}.hero-right{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.pill{letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);border-radius:100px;align-items:center;gap:7px;padding:7px 14px;font-size:11px;display:inline-flex}.pill.available{border-color:var(--green-bd);color:var(--green)}.pill-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:2.2s infinite blink}.scroll-hint{top:140px;right:var(--pad-x);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}.scroll-hint span{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);writing-mode:vertical-lr;font-size:9px}.sh-line{background:var(--border);width:1px;height:64px;position:relative;overflow:hidden}.sh-line:after{content:"";background:var(--accent);width:100%;height:100%;animation:2.4s infinite shline;position:absolute;top:-100%;left:0}.skills-logoloop-wrap{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 0;overflow:hidden}.s-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:64px;padding-bottom:20px;display:flex;overflow:visible}.s-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px}.s-title{font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(52px,8vw,110px);font-weight:800;line-height:.88}.s-title .tl{display:block;overflow:hidden}.s-title .tl span{display:block;transform:translateY(0%)!important}.cv-btn{border:1px solid var(--border);color:var(--muted);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:0 0;border-radius:100px;align-items:center;gap:7px;padding:7px 15px;font-size:11px;transition:background .3s,color .3s,border-color .3s;display:inline-flex}.cv-btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.cv-btn:hover svg{stroke:var(--bg);transform:translate(3px)}.cv-btn svg{flex-shrink:0;transition:stroke .3s,transform .3s}#work{margin-top:-50px}#work,#experience{padding:120px var(--pad-x)}.exp-skeleton-wrap{opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none;gap:32px;margin-top:10px;display:flex}.skeleton-group{flex-direction:column;gap:8px;display:flex}.skeleton-block{background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/200% 100%;border-radius:4px;animation:2s linear infinite skeletonShimmer}[data-theme=light] .skeleton-block{background:linear-gradient(90deg,#0000000a 25%,#00000017 50%,#0000000a 75%) 0 0/200% 100%}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk-val{width:300px;height:190px}.sk-label{width:135px;height:15px}.sk-label.short{width:90px}.projects{flex-direction:column;gap:16px;display:flex}.pcard{border:1px solid var(--border);border-radius:var(--radius);height:30rem;transition:border-color .4s;position:relative}.pcard:not(.pcard--wip):hover,.pcard:not(.pcard--wip).is-active{border-color:var(--card-glow);box-shadow:0 0 35px color-mix(in srgb, var(--card-glow) 45%, transparent), inset 0 0 20px color-mix(in srgb, var(--card-glow) 20%, transparent)}.pcard--featured:hover,.pcard--featured.is-active{border-color:#6ee7b780}.pcard--wip{pointer-events:none}.pcard--wip .p-arrow{display:none}.wip-badge{letter-spacing:.06em;text-transform:uppercase;color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b4d;border-radius:100px;align-items:center;gap:7px;padding:5px 12px;font-size:10px;font-weight:700;display:inline-flex}.completed-badge{letter-spacing:.06em;text-transform:uppercase;color:#6ee7b7;background:#6ee7b714;border:1px solid #6ee7b740;border-radius:100px;align-items:center;gap:7px;padding:5px 12px;font-size:10px;font-weight:700;display:inline-flex}.featured-badge{letter-spacing:.06em;text-transform:uppercase;color:#9be7c8;background:#6ee7b714;border:1px solid #6ee7b73d;border-radius:100px;align-items:center;gap:7px;padding:5px 12px;font-size:10px;font-weight:700;display:inline-flex}.wip-dot{background:#f59e0b;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.2s infinite blink}.completed-dot{background:#fe3333;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.2s infinite blink}.featured-dot{background:#6ee7b7;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.2s infinite blink}.pcard-inner{border-radius:var(--radius);grid-template-columns:1fr 1fr;height:100%;min-height:400px;display:grid;overflow:hidden}.card-particle{background:var(--card-glow);pointer-events:none;width:2px;height:2px;box-shadow:0 0 6px var(--card-glow), 0 0 12px var(--card-glow);will-change:transform, opacity;z-index:10;border-radius:50%;position:absolute}.pcard-info{flex-direction:column;justify-content:space-between;gap:20px;padding:40px 44px;display:flex}.pcard-top{align-items:flex-start;gap:14px;display:flex}.pnum{letter-spacing:.12em;color:var(--muted);padding-top:5px;font-size:10px;font-weight:600}.tags{flex-wrap:wrap;gap:6px;width:100%;max-width:25rem;display:flex}.tag{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);border-radius:100px;padding:4px 11px;font-size:9px}.pcard-mid{flex-direction:column;flex:1;justify-content:flex-start;gap:14px;padding:4px 0;display:flex}.pyear-sub{color:var(--muted);font-size:12px}.pdesc{color:var(--muted);max-width:42ch;font-size:13px;line-height:1.55}.pname{font-family:var(--font-sans);letter-spacing:-.02em;font-size:clamp(20px,2.8vw,35px);font-weight:800;line-height:1.08}.pmetrics{gap:32px;display:flex}.pmetric{flex-direction:column;gap:3px;display:flex}.pm-val{font-family:var(--font-sans);letter-spacing:-.04em;color:var(--muted);font-size:30px;font-weight:800}.pm-label{color:var(--muted);max-width:130px;font-size:11px;line-height:1.35}.pcard-vis{border-radius:12px;align-self:stretch;width:100%;height:100%;position:relative;overflow:hidden}.pcard-vis-inner{background:#0a0a0a;width:100%;height:100%;position:absolute;inset:0}.pcard-bg{position:absolute;inset:0}.p-gfg .pcard-bg{background:linear-gradient(145deg,#0a0a0a 0%,#1a1a1a 55%,#2a2a2a 100%)}.p-quests .pcard-bg{background:linear-gradient(145deg,#001a0a 0%,#004a20 55%,#00a854 100%)}.p-referral .pcard-bg{background:linear-gradient(145deg,#001209 0%,#003d1a 55%,#00c96b 100%)}.p-nexus .pcard-bg{background:linear-gradient(145deg,#00120c 0%,#003825 55%,#0f5d44 100%)}.p-streamcore .pcard-bg{background:linear-gradient(145deg,#0b1020 0%,#172240 55%,#2c4a7a 100%)}.blob{opacity:.22;border-radius:50%;transition:transform .9s,opacity .9s;position:absolute}.pcard:hover .blob,.pcard.is-active .blob{opacity:.38;transform:scale(1.2)rotate(20deg)}.p-quests .blob1{background:#00c96b;width:300px;height:300px;top:-60px;right:-50px}.p-quests .blob2{opacity:.1;background:#6ee7b7;width:180px;height:180px;bottom:40px;right:60px}.p-referral .blob1{background:#00c96b;width:320px;height:320px;top:-80px;right:-70px}.p-referral .blob2{opacity:.1;background:#6ee7b7;width:200px;height:200px;bottom:30px;right:70px}.p-nexus .blob1{background:#6ee7b7;width:320px;height:320px;top:-70px;right:-60px}.p-nexus .blob2{opacity:.12;background:#a7f3d0;width:180px;height:180px;bottom:26px;right:64px}.p-streamcore .blob1{background:#93c5fd;width:300px;height:300px;top:-70px;right:-60px}.p-streamcore .blob2{opacity:.12;background:#60a5fa;width:180px;height:180px;bottom:28px;right:66px}.pcard-img{box-sizing:border-box;object-fit:cover;object-position:center;z-index:1;width:100%;height:100%;padding:0;position:absolute;inset:0}.pcard-img-overlay{z-index:2;background:linear-gradient(#00000026 0%,#00000073 100%);position:absolute;inset:0}.scene-svg{z-index:1;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.p-arrow{z-index:3;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .3s,border-color .3s,transform .3s;display:flex;position:absolute;bottom:24px;right:24px}.pcard:hover .p-arrow,.pcard.is-active .p-arrow{background:#fff;border-color:#fff;transform:rotate(45deg)}.pcard:hover .p-arrow svg path,.pcard.is-active .p-arrow svg path{stroke:#000}.p-arrow.left-arrow{left:24px;right:auto}.p-github{z-index:3;color:#fff;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .3s,border-color .3s,transform .3s,color .3s;display:flex;position:absolute;bottom:24px;right:76px}.pcard:hover .p-github,.pcard.is-active .p-github{color:#000;background:#fff;border-color:#fff;transform:rotate(45deg)}.pdf-strip{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:48px;padding-top:48px;display:flex}.pdf-strip>a.cv-btn{margin-left:5rem;margin-right:auto}.pdf-strip p:first-child{color:var(--fg);margin-bottom:4px;font-size:14px;font-weight:600}.pdf-strip p:last-child{color:var(--muted);font-size:13px;line-height:1.5}#showcase{padding:0 0 0 var(--pad-x);border-top:1px solid var(--border);overflow:hidden}.showcase-header{padding:48px var(--pad-x) 0;justify-content:space-between;align-items:center;display:flex}.sc-drag-hint{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.sc-drag-hint:before{content:"";background:var(--muted);width:32px;height:1px;display:inline-block}.showcase-inner{padding:40px var(--pad-x) 48px 0;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;cursor:grab;gap:16px;display:flex;overflow-x:auto}.showcase-inner:active{cursor:grabbing}.showcase-inner::-webkit-scrollbar{display:none}.sc-card{border:1px solid var(--border);border-radius:var(--radius);scroll-snap-align:start;flex:0 0 300px;height:380px;transition:border-color .4s;position:relative;overflow:hidden}.sc-card:hover{border-color:var(--border-hv)}.sc-card-bg{transition:transform .9s var(--ease);position:absolute;inset:0}.sc-card:hover .sc-card-bg{transform:scale(1.06)}.sc-card-overlay{z-index:2;background:linear-gradient(#0000 0%,#00000014 40%,#000000bf 100%);position:absolute;inset:0}.sc-card-info{z-index:3;padding:24px;position:absolute;bottom:0;left:0;right:0}.sc-card-co{letter-spacing:.12em;text-transform:uppercase;color:#edede880;margin-bottom:6px;font-size:10px}.sc-card-name{font-family:var(--font-display);letter-spacing:-.02em;color:#edede8;font-size:18px;font-weight:800;line-height:1.1}.sc-card-tags{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.sc-card-tag{letter-spacing:.1em;text-transform:uppercase;color:#edede880;border:1px solid #edede82e;border-radius:100px;padding:3px 9px;font-size:9px}.sc-bg-bank{background:linear-gradient(145deg,#0a0014 0%,#2a006b 55%,#6b21a8 100%)}.sc-bg-go{background:linear-gradient(145deg,#0a0a00 0%,#3b2800 55%,#b45309 100%)}.sc-bg-chal{background:linear-gradient(145deg,#000d14 0%,#003052 55%,#0369a1 100%)}.sc-bg-tv{background:linear-gradient(145deg,#0d000a 0%,#3d0024 55%,#9d174d 100%)}.sc-bg-onboard{background:linear-gradient(145deg,#001209 0%,#003d1a 55%,#16a34a 100%)}#about{padding:0px var(--pad-x);min-height:600px;margin-bottom:3rem;display:block;opacity:1!important;visibility:visible!important}.about-grid{grid-template-columns:1.1fr .9fr;gap:80px;height:auto;min-height:auto;margin-top:80px;display:grid;opacity:1!important;visibility:visible!important}.about-bio{display:block;opacity:1!important;visibility:visible!important}.about-bio p{color:var(--muted);margin-bottom:24px;font-size:clamp(17px,1.7vw,22px);font-weight:300;line-height:1.62;opacity:1!important;visibility:visible!important}.about-bio p:last-of-type{margin-bottom:0}.about-bio strong{color:var(--fg);font-weight:300;opacity:1!important}.about-side{flex-direction:column;gap:44px;display:flex;opacity:1!important;visibility:visible!important}.detail-h{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;font-size:10px}.exp-list,.awards-list{flex-direction:column;display:flex}.exp-item,.award-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;display:flex}.ei-l,.aw-l{flex-direction:column;gap:2px;display:flex}.ei-co,.aw-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:14px;font-weight:700}.ei-role,.aw-issuer{color:var(--muted);font-size:12px}.ei-yr,.aw-yr{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:11px}.skills-row{flex-wrap:wrap;gap:7px;display:flex}.skill-pill{letter-spacing:.06em;border:1px solid var(--border);color:var(--muted);border-radius:100px;padding:6px 14px;font-size:11px}#contact{padding:120px var(--pad-x) 80px}.contact-headline{font-family:var(--font-display);letter-spacing:-.045em;margin:56px 0 72px;font-size:clamp(52px,9vw,130px);font-weight:800;line-height:.88}.contact-headline .tl{display:block;overflow:hidden}.contact-headline .tl span{display:block}.contact-headline a{transition:color .3s;display:inline-block;position:relative}.contact-headline a:after{content:"";background:var(--accent);width:0;height:4px;transition:width .55s var(--ease);position:absolute;bottom:6px;left:0}.contact-headline a:hover{color:var(--accent)}.contact-headline a:hover:after{width:100%}.contact-footer{justify-content:space-between;align-items:flex-end;padding-top:36px;display:flex}.cf-left{flex-direction:column;display:flex}.cf-email-row{align-items:center;gap:8px;display:flex}.cf-left p{color:var(--muted);font-size:13px;line-height:1.7}.copy-btn{color:var(--muted);opacity:0;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:opacity .2s,color .2s;display:inline-flex}.cf-email-row:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--fg)}.copy-btn.copied{color:#00c96b;opacity:1}.cf-right{gap:24px;display:flex}.cf-right a{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;transition:color .3s}.cf-right a:hover{color:var(--fg)}.copy{color:var(--muted);text-align:center;border-top:1px solid var(--border);margin-top:32px;padding-top:32px;font-size:11px}#more-work{padding:80px var(--pad-x) 100px;cursor:auto;background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);contain:paint;min-height:800px;position:relative;overflow:hidden}#more-work .mw-header{z-index:2;pointer-events:none;margin-bottom:20px;position:relative}#more-work .s-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#edede873);margin-bottom:10px;font-size:11px;display:block}#more-work .s-title{font-family:var(--font-display);color:var(--fg);font-size:clamp(2.2rem,5vw,4rem);font-weight:700;line-height:1.1}#more-work .mw-hint{bottom:28px;left:var(--pad-x);letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#edede84d);pointer-events:none;z-index:2;font-size:11px;position:absolute}#more-work .mw-hint-mobile{display:none}@media (pointer:coarse){#more-work .mw-hint-desktop{display:none}#more-work .mw-hint-mobile{display:block}}.mw-scatter-container{z-index:1;pointer-events:none;contain:strict;position:absolute;inset:0;overflow:visible}.mw-scattered-img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;border-radius:6px;display:block;position:absolute}@keyframes pulse-glow{0%{border-color:#ffffff4d;box-shadow:0 0 12px #ffffff1a}50%{border-color:#ffffffb3;box-shadow:0 0 24px #ffffff80,inset 0 0 16px #ffffff1a}to{border-color:#ffffff4d;box-shadow:0 0 12px #ffffff1a}}@keyframes pulse-glow-light{0%{border-color:#0003;box-shadow:0 0 12px #00000014}50%{border-color:#0009;box-shadow:0 0 20px #00000040}to{border-color:#0003;box-shadow:0 0 12px #00000014}}.try-btn{color:#fff;height:44px;font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;z-index:3;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:100px;padding:0 20px;font-size:11px;font-weight:700;transition:background .3s,color .3s,border-color .3s,transform .3s,box-shadow .3s;animation:2.5s ease-in-out infinite pulse-glow;position:absolute;bottom:24px;right:128px}[data-theme=light] .try-btn{color:#000;background:#00000014;border-color:#0003;animation:2.5s ease-in-out infinite pulse-glow-light}.try-btn:hover{color:#000;background:#fff;border-color:#fff;animation:none;transform:scale(1.05);box-shadow:0 0 24px #fff9}[data-theme=light] .try-btn:hover{color:#fff;background:#000;border-color:#000;animation:none;box-shadow:0 0 20px #0006}.demo-status-view{opacity:0;pointer-events:none;background:var(--bg);z-index:2;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}@keyframes svg-spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.nexus-video-wrapper{background:var(--bg);z-index:2;border-radius:16px;transition:opacity .4s;position:absolute}.demo-modal.processing .demo-modal-content{opacity:0;pointer-events:none;transition:opacity .3s}.demo-modal.processing .demo-status-view{opacity:1;pointer-events:auto}.status-circle{opacity:0;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:20px;display:flex;transform:scale(.8)}#statusLoaderSvg{animation:1.2s linear infinite svg-spin}.demo-modal.processing .status-circle{animation:.6s cubic-bezier(.16,1,.3,1) .25s forwards pop-in}.status-text-wrap{font-family:var(--font-mono);color:var(--fg);text-align:center;font-size:14px}.status-text-wrap span{display:inline-block}.demo-modal{-webkit-backdrop-filter:blur(8px);z-index:9999;opacity:0;pointer-events:none;background:#0009;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.demo-modal.active{opacity:1;pointer-events:auto}.demo-modal-inner{background:var(--bg);border:1px solid var(--border);border-radius:16px;width:90%;max-width:400px;padding:32px;transition:transform .4s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(20px)scale(.95);box-shadow:0 12px 32px #0000004d}.demo-modal.active .demo-modal-inner{transform:translateY(0)scale(1)}.demo-modal-inner h4{font-family:var(--font-sans);color:var(--fg);margin-bottom:8px;font-size:20px}.demo-modal-inner p{color:var(--muted);margin-bottom:24px;font-size:13px;line-height:1.5}.demo-input-group{gap:8px;display:flex}#demoEmail{padding-top:2px;padding-bottom:5px}.demo-input-group input{background:var(--bg2);border:1px solid var(--border);height:44px;color:var(--fg);font-family:var(--font-sans);border-radius:6px;outline:none;flex:1;padding:0 16px;font-size:14px;transition:border-color .3s}.demo-input-group input::placeholder{font-size:13px}.demo-input-group input:focus{border-color:var(--fg)}.demo-input-group button{background:var(--fg);height:44px;color:var(--bg);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:6px;padding:0 24px;font-size:13px;font-weight:600;transition:transform .2s,opacity .2s}.demo-input-group button:active{transform:scale(.96)}.demo-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:24px;line-height:1;transition:color .3s;display:flex;position:absolute;top:16px;right:16px}.demo-close:hover{color:var(--fg)}.nexus-media-container{width:100%;height:100%;position:relative}.nexus-img{transition:opacity .4s}.nexus-video-wrapper{opacity:0;visibility:hidden;z-index:5;width:100%;height:100%;transition:opacity .4s,visibility .4s;position:absolute;inset:0}.nexus-video{box-sizing:border-box;object-fit:contain;object-position:center;width:100%;height:100%;padding:16px}@media (hover:hover) and (pointer:fine){.p-nexus:hover .nexus-img{opacity:0}.p-nexus:hover .nexus-video-wrapper{opacity:1;visibility:visible}}@media (hover:none),(pointer:coarse){.nexus-img{opacity:0;display:none}.nexus-video-wrapper{opacity:1;visibility:visible}}.nexus-video-controls{z-index:10;-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#00000080;border:1px solid #ffffff1a;border-radius:20px;gap:12px;padding:8px 12px;transition:all .3s;display:flex;position:absolute;top:16px;right:16px;transform:translateY(-10px)}.p-nexus:hover .nexus-video-controls,.nexus-video-controls.mobile-active{opacity:1;pointer-events:auto;transform:translateY(0)}.nexus-video-controls button{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex}.nexus-video-controls button:hover{color:#6ee7b7}.nexus-video-controls svg{width:20px;height:20px}@media (width<=768px){.nexus-video-controls{gap:8px;padding:6px 8px;top:12px;right:12px}.nexus-video-controls svg{width:16px;height:16px}}.pcard-vis .p-github,.pcard-vis .p-arrow,.pcard-vis .try-btn{z-index:20}.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}[data-theme=dark] .logoloop{--logoloop-fadeColorAuto:#0b0b0b}[data-theme=light] .logoloop{--logoloop-fadeColorAuto:#f0ede5}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;cursor:grab;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{color:inherit;border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}.logoloop--skills .logoloop__node{font-family:var(--font-display,"Syne", sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}@media (pointer:coarse){:is(.hero-title,.s-title,.contact-headline) .tl span{animation-duration:.5s}*{-webkit-tap-highlight-color:transparent}button,a,[role=button]{-webkit-touch-callout:none}}@media (width>=901px){#hero{margin-top:-8rem;margin-bottom:4rem}.scroll-hint{top:260px}}@media (width<=900px){@media (prefers-reduced-motion:no-preference){:not(.audio-popup){animation-duration:.8s!important}}:root{--pad-x:24px}nav{padding:18px var(--pad-x)}nav.scrolled{padding:12px 20px;top:12px;left:16px;right:16px}.nav-links{display:none}.audio-popup{letter-spacing:.06em;padding:5px 10px;font-size:9px;top:calc(100% + 10px)}.audio-popup:before{border-width:4px}.audio-popup:after{border-width:3px}#hero{padding:15svh var(--pad-x) 0;justify-content:flex-start;min-height:70svh}.hero-eyebrow{margin-bottom:12px}.hero-title{text-align:left;margin-bottom:32px;line-height:1.05}.hero-bottom{flex-direction:column;align-items:flex-start}.hero-right{align-items:flex-start;margin-top:30px}.hero-desc{max-width:100%;font-size:14px}.scroll-hint{top:auto;bottom:20px;right:var(--pad-x);position:absolute}.skills-logoloop-wrap{margin-top:-130px;padding:4px 0}#work{padding:80px var(--pad-x) 32px}#experience{padding:32px var(--pad-x)}#about{padding:32px var(--pad-x) 80px}#contact{padding:80px var(--pad-x)}#more-work{height:80vh!important;min-height:80vh!important}.s-header{margin-bottom:40px}.pcard{height:auto!important}.exp-skeleton-wrap{display:none!important}.pcard-inner{grid-template-columns:1fr}.pcard-vis{aspect-ratio:1536/1024;order:-1;height:auto;min-height:280px}.p-arrow{bottom:16px;right:16px}.p-arrow.left-arrow{left:16px;right:auto}.p-github{bottom:16px;right:68px}.try-btn{bottom:16px;right:120px}.about-grid{grid-template-columns:1fr;gap:48px;margin-top:48px}.about-bio p{font-size:clamp(15px,3.5vw,20px)}.cv-btn{scale:1}.about-bio .cv-btn{margin-top:32px!important;margin-left:0!important}.pdf-strip{flex-direction:column;align-items:flex-start;gap:20px}.pdf-strip>a.cv-btn{margin-left:0;margin-right:0}.contact-footer{flex-direction:column;align-items:flex-start;gap:24px}.contact-headline{margin:40px 0 56px}#more-work{min-height:500px;padding:60px var(--pad-x) 80px}#showcase{padding-left:var(--pad-x)}.showcase-header{padding:40px var(--pad-x) 0}.showcase-inner{padding:32px var(--pad-x) 40px 0}.sc-card{flex:0 0 250px;height:320px}button,a[role=button],.p-arrow,.p-github{min-width:44px;min-height:44px}img{max-width:100%;height:auto}.pcard-img,.pcard-img-overlay{will-change:auto;backface-visibility:hidden}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@media (width<=600px){:root{--pad-x:18px}nav.scrolled{left:10px;right:10px}.p-arrow{bottom:12px;right:12px}.p-arrow.left-arrow{left:12px;right:auto}.p-github{bottom:12px;right:64px}.try-btn{padding:0 12px;font-size:9px;bottom:12px;right:116px}.demo-modal-inner{width:92%;padding:24px 20px}.demo-modal-inner h4{padding-right:20px;font-size:18px}.demo-input-group{flex-direction:column}.demo-input-group input{height:50px;font-size:15px}.demo-input-group button{width:100%;height:50px;font-size:14px}.hero-title{margin-bottom:24px;font-size:clamp(48px,13vw,72px)}.hero-eyebrow{font-size:10px}.hero-desc{font-size:13px;line-height:1.6}.pill{padding:6px 12px;font-size:10px}.s-title{font-size:clamp(40px,12vw,80px)}.pcard-vis{height:220px}.pcard-info{padding:28px 20px}.pname{font-size:clamp(18px,5.5vw,28px)}.pm-val{font-size:22px}.pm-label{font-size:10px}#about{min-height:auto;margin-bottom:1rem}.about-grid{gap:36px;margin-top:36px}.exp-item,.award-item{flex-wrap:wrap;padding:12px 0}.skill-pill{padding:5px 11px;font-size:10px}.contact-headline{margin:32px 0 48px;font-size:clamp(40px,11vw,90px)}#contact{padding:60px var(--pad-x) 60px}#more-work{min-height:400px;padding:48px var(--pad-x) 60px}.skills-logoloop-wrap{margin-top:-140px;margin-bottom:26px}.pdf-strip h1{font-size:clamp(18px,5vw,28px)}}@media (width<=480px){.hero-title{font-size:11vw}.s-title{font-size:14vw}#experience .s-title{letter-spacing:-.02em;font-size:clamp(28px,9vw,42px)}.pname{font-size:7vw}.pcard-info{padding:24px 18px}.pcard-vis{height:190px}.contact-headline{font-size:14vw}.cf-right{flex-wrap:wrap;gap:14px}.cf-left p{font-size:12px}.copy{font-size:10px}.scroll-hint{bottom:14px}.sh-line{height:40px}.about-bio .cv-btn{margin-top:24px!important}#more-work{min-height:320px;padding:40px var(--pad-x) 50px}.ei-co,.aw-title{font-size:13px}.ei-yr,.aw-yr{font-size:10px}}@media (width<=360px){:root{--pad-x:14px}.hero-title{font-size:12vw}.hero-desc{font-size:12px}.pill{padding:5px 10px;font-size:9px}.pcard-vis{height:160px}.pcard-info{padding:20px 14px}.pdesc{font-size:12px}.tag{padding:3px 8px;font-size:8px}}@media (width<=768px){#hero{margin-bottom:80px}.skills-logoloop-wrap{margin-bottom:60px}}@media (width<=600px){.nav-right{gap:12px}#tLabel{display:none}.theme-btn{justify-content:center;width:34px;height:34px;padding:0}.settings-panel{width:90vw!important;max-width:340px!important;margin:0 auto!important;position:fixed!important;top:70px!important;transform:translateY(-10px)!important}.settings-panel.open{transform:translateY(0)!important}.hero-right .cv-btn{padding:6px 12px;font-size:10px}.hero-right .cv-btn svg{width:10px;height:10px}}
