.loader-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000;background:var(--loader-bg,#000);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .8s ease,visibility .8s ease,backdrop-filter .8s ease;backdrop-filter:blur(0px)}[data-theme=light] .loader-overlay{background:#0f8}[data-theme=dark] .loader-overlay{background:#5227ff}[data-theme=bw] .loader-overlay{background:#000}.loader-overlay.fade-out{opacity:0;visibility:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.loader-content{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center}.loader-logo{position:relative}.loader-icon{width:80px;height:80px;animation:pulse 2s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(255,255,255,.3))}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.loader-text h2{font-family:Monument Extended,sans-serif;font-size:24px;font-weight:900;color:#fff;margin:0 0 8px;letter-spacing:2px}.loader-text p{font-size:14px;color:#ffffffb3;margin:0;font-weight:500}.progress-container{display:flex;flex-direction:column;align-items:center;gap:20px;width:280px}.progress-counter{font-family:Monument Extended,sans-serif;font-size:clamp(120px,25vw,200px);font-weight:900;color:#fff;line-height:.8;letter-spacing:-.05em;margin:0}.progress-bar{width:100%;height:3px;background:var(--border-color);border-radius:2px;overflow:hidden;position:relative}.progress-fill{height:100%;background:var(--progress-color,#0f8);border-radius:2px;transition:width .3s ease;position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4));animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-20px)}to{transform:translate(20px)}}.progress-text{display:none}[data-theme=dark] .progress-fill,[data-theme=light] .progress-fill{background:#fff}[data-theme=bw] .progress-fill{background:#000}@media screen and (max-width:768px){.loader-icon{width:60px;height:60px}.loader-text h2{font-size:20px}.progress-container{width:240px}}.layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);overflow-x:hidden;position:relative}.layout.canvas-disabled .welcome-div{background:url(/assets/images/hi1.png) center center/cover no-repeat fixed!important;position:relative}.layout.canvas-disabled .welcome-div:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:blur(8px);z-index:1;pointer-events:none}.layout.canvas-disabled .welcome-div:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#5227ff;opacity:.4;mix-blend-mode:color;z-index:1;pointer-events:none}[data-theme=light] .layout.canvas-disabled .welcome-div:after{background:#00c853;opacity:.5}[data-theme=bw] .layout.canvas-disabled .welcome-div:after{background:#000;opacity:.7;mix-blend-mode:color}@media(max-width:768px){.layout.canvas-disabled .welcome-div{background:url(/assets/images/hi.png) center center/cover no-repeat fixed!important}.layout.canvas-disabled .welcome-div:after,.layout.canvas-disabled .welcome-div:before{display:none}}.layout.canvas-disabled .prismatic-background{background:0 0!important;background-color:transparent!important}.layout.canvas-disabled .fluid-glass-background,.layout.canvas-disabled .webgpu-background,.layout.canvas-disabled canvas{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}.layout-controls{position:fixed;inset:0;z-index:900;pointer-events:none}.control-btn{pointer-events:auto;position:fixed;top:2rem;width:64px;height:64px;border-radius:0;border:4px solid #000;box-shadow:8px 8px #000;color:#fff;font-size:24px;cursor:pointer;transition:transform .2s cubic-bezier(.19,1,.22,1),box-shadow .2s cubic-bezier(.19,1,.22,1);display:flex;align-items:center;justify-content:center;outline:0;z-index:900}.app-theme-btn{right:calc(3rem + 64px);background:#5227ff}.app-canvas-btn{right:calc(4rem + 128px);background:#5227ff}body.calculator-page .app-canvas-btn{display:none!important}[data-theme=light] .control-btn{background:#00c853;border-color:#000;box-shadow:8px 8px #000}[data-theme=bw] .control-btn{background:#fff;color:#000;border-color:#000;box-shadow:8px 8px #000}.control-btn:hover{transform:translate(-2px,-2px);box-shadow:10px 10px #00000080}.control-btn:active{transform:translate(4px,4px);box-shadow:4px 4px #000}.control-btn:after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;background:#fff6;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none}.control-btn:active:after{animation:ripple-burst .4s cubic-bezier(.19,1,.22,1)}@keyframes ripple-burst{0%{transform:translate(-50%,-50%) scale(0);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}@media(max-width:768px){.control-btn{top:1.5rem;width:54px;height:54px;font-size:20px}.app-canvas-btn,.app-theme-btn{display:none!important}}.canvas-warning-overlay{position:fixed;inset:0;background:#000000d9;backdrop-filter:blur(5px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.canvas-warning-modal{background:var(--bg-primary);border:4px solid var(--text-primary);box-shadow:10px 10px 0 var(--text-primary);padding:2rem;max-width:400px;width:100%;text-align:center}.canvas-warning-modal h3{text-transform:uppercase;margin-bottom:1rem;font-size:1.5rem;color:var(--text-primary)}.canvas-warning-modal p{margin-bottom:2rem;font-size:1rem;line-height:1.5;color:var(--text-secondary)}.warning-actions{display:flex;gap:1rem;justify-content:center}.warning-btn{padding:12px 24px;font-family:inherit;font-weight:900;text-transform:uppercase;cursor:pointer;border:3px solid var(--text-primary);background:0 0;color:var(--text-primary);transition:all .2s ease;box-shadow:4px 4px 0 var(--text-primary)}.warning-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--text-primary)}.warning-btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--text-primary)}.warning-btn.confirm{background:var(--text-primary);color:var(--bg-primary)}[data-theme=light] .canvas-warning-modal,[data-theme=light] .warning-btn{border-color:#000;box-shadow:4px 4px #000;color:#000}[data-theme=light] .canvas-warning-modal h3{color:#000}[data-theme=light] .canvas-warning-modal p{color:#333}[data-theme=light] .warning-btn.confirm{background:#000;color:#fff}footer,main{transition:width .65s cubic-bezier(.19,1,.22,1),opacity .65s cubic-bezier(.19,1,.22,1);width:100%;background:var(--bg-primary)}main{flex:1}@media(min-width:1025px){.layout.menu-open footer,.layout.menu-open main{width:calc(100% - clamp(260px,38vw,420px));transform-origin:left center;opacity:.85}}@media(max-width:1024px){.layout.menu-open footer,.layout.menu-open main{opacity:.5;pointer-events:none}}.mobile-fixed-ctas{position:fixed;bottom:0;left:0;width:100%;display:grid;grid-template-columns:1fr 1fr;z-index:850;padding:12px;gap:12px;background:linear-gradient(to top,var(--bg-primary) 60%,transparent);pointer-events:none;transition:opacity .3s ease,transform .3s ease}.mobile-fixed-ctas.hidden-on-scroll{opacity:0;transform:translateY(100%);pointer-events:none!important}.mobile-cta-btn{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;font-family:Monument Extended,sans-serif;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border:3px solid #000;box-shadow:4px 4px #000}.mobile-cta-btn i{font-size:18px}.mobile-cta-btn.cta-resume{background:var(--accent-primary,#5227ff);color:#fff}.mobile-cta-btn.cta-projects{background:#fff;color:#000}[data-theme=light] .mobile-cta-btn.cta-resume{background:#00c853}[data-theme=bw] .mobile-cta-btn{border-color:#fff;box-shadow:4px 4px #fff}[data-theme=bw] .mobile-cta-btn.cta-resume{background:#000;color:#fff}@media screen and (min-width:1025px){.mobile-fixed-ctas{display:none!important}}.layout:not(.loaded) .layout-controls,.layout:not(.loaded) .mobile-fixed-ctas,.layout:not(.loaded) .sm-floating-actions{opacity:0;pointer-events:none}.layout.loaded .layout-controls,.layout.loaded .sm-floating-actions{animation:layoutEntranceTop .8s cubic-bezier(.16,1,.3,1) .2s forwards}.layout.loaded .mobile-fixed-ctas{animation:layoutEntranceBottom .8s cubic-bezier(.16,1,.3,1) .2s forwards}@keyframes layoutEntranceTop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes layoutEntranceBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes layoutEntranceBottom{0%{opacity:0;transform:translateY(20px);pointer-events:none}to{opacity:1;transform:translateY(0);pointer-events:auto}}@font-face{font-family:Fraunces;font-style:italic;src:url(/fonts/fraunces-italic-400-latin-6NUs8FyL.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:italic;font-weight:700;src:url(/fonts/fraunces-italic-700-latin-6NUs8FyL.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;src:url(/fonts/fraunces-normal-400-latin-6NUu8FyL.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-weight:700;src:url(/fonts/fraunces-normal-700-latin-6NUu8FyL.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;src:url(/fonts/inter-normal-400-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-weight:500;src:url(/fonts/inter-normal-500-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-weight:600;src:url(/fonts/inter-normal-600-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-weight:700;src:url(/fonts/inter-normal-700-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-weight:800;src:url(/fonts/inter-normal-800-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;src:url(/fonts/inter-normal-900-latin-UcC73Fwr.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-weight:300;src:url(/fonts/space-grotesk-normal-300-latin-V8mDoQDj.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-normal-400-latin-V8mDoQDj.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-weight:500;src:url(/fonts/space-grotesk-normal-500-latin-V8mDoQDj.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-weight:600;src:url(/fonts/space-grotesk-normal-600-latin-V8mDoQDj.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-weight:700;src:url(/fonts/space-grotesk-normal-700-latin-V8mDoQDj.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;src:url(/fonts/space-mono-italic-400-latin-i7dNIFZi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-weight:700;src:url(/fonts/space-mono-italic-700-latin-i7dSIFZi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;src:url(/fonts/space-mono-normal-400-latin-i7dPIFZi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-weight:700;src:url(/fonts/space-mono-normal-700-latin-i7dMIFZi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.card,.project-card,.skill-marquee{contain:layout style paint}.animate-in{opacity:1;transform:translateY(0);transition:opacity .6s ease,transform .6s ease}.animate-out{opacity:0;transform:translateY(20px)}[data-scroll]{transform:translateY(calc(var(--scroll-progress,0) * -50px));opacity:calc(.5 + var(--scroll-progress, 0) * .5)}.skip-link{position:absolute;top:-40px;left:6px;background:var(--bg-primary);color:var(--text-primary);padding:8px;text-decoration:none;border-radius:4px;z-index:10000;transition:top .3s}.skip-link:focus{top:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fonts-failed .loader-text h2,.fonts-failed .progress-counter,.fonts-failed h1,.fonts-failed h2,.fonts-failed h3,.fonts-failed h4,.fonts-failed h5,.fonts-failed h6{font-family:Arial Black,Helvetica Neue,sans-serif!important}@font-face{font-family:Monument Extended Fallback;src:local("Arial Black"),local("Helvetica Neue");ascent-override:85%;descent-override:20%;line-gap-override:0%;size-adjust:110%}[data-theme=light]{--bg-primary:#fafafa;--bg-alternate:#f4f4f4;--bg-secondary:#eaeaea;--bg-tertiary:#dddddd;--text-primary:#222222;--text-secondary:#555555;--text-muted:#888888;--text-inverse:#fafafa;--border-color:rgba(0, 0, 0, .08);--border-hard:#a0a0a0;--card-bg:#ffffff;--card-border:#d2d2d2}[data-theme=bw]{--bg-primary:#0a0a0a;--bg-alternate:#121212;--bg-secondary:#181818;--bg-tertiary:#202020;--text-primary:#dddddd;--text-secondary:#999999;--text-muted:#666666;--text-inverse:#0a0a0a;--border-color:rgba(255, 255, 255, .1);--border-hard:#383838;--card-bg:#121212;--card-border:#262626;--disable-dynamic-colors:1}.fraunces-italic{font-family:Fraunces,serif;font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.06em}*{transition:background-color .4s ease-in-out,color .3s ease;-webkit-tap-highlight-color:transparent}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:inherit;text-decoration:none}button{font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:2px;text-transform:uppercase;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}[onclick],[role=button],a,button,input,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}.back-to-top,.exp-link-btn,.exp-view-all-btn,.filter-tag,.hero-cta,.mobile-cta-btn,.p-btn,.sort-select,.view-all-btn,[role=button],button{min-height:44px;min-width:44px}.back-to-top,.bento-tile,.card,.connect-card,.featured-badge,.project-modal,.skill-marquee-badge,.stat-card{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}@media(prefers-reduced-motion:reduce){.prismatic-background,.webgpu-background{animation:none!important}}@media(hover:none)and (pointer:coarse){.header-content .header-links,.header-links ul,.header-wrapper{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important}.marquee-content{animation-duration:30s!important}.filter-tag,.footer-nav-link,.mobile-btn-icon,.p-btn,.social-icon-link{min-height:44px;min-width:44px}}