*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--bg-2: #0f0f17;--surface: rgba(255, 255, 255, .04);--surface-2: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .08);--border-2: rgba(255, 255, 255, .14);--text: #f4f4f5;--text-dim: #a1a1aa;--text-mute: #71717a;--accent: #c4ff3d;--accent-2: #7c5cff;--accent-3: #ff6b9d;--accent-4: #3ecf8e;--radius: 22px;--radius-lg: 32px;--font-sans: "Space Grotesk", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Instrument Serif", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--ease: cubic-bezier(.22, 1, .36, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--content-max: 1280px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-feature-settings:"ss01","ss02";cursor:none}@media (max-width: 900px){body{cursor:auto}}@media (prefers-reduced-motion: reduce){body{cursor:auto}.cursor,.cursor-dot{display:none}}a{color:inherit;text-decoration:none}em{font-family:var(--font-serif);font-style:italic;font-weight:400}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}img{max-width:100%;display:block}.skip-link{position:absolute;top:-100%;left:var(--space-4);padding:var(--space-3) 20px;background:var(--accent);color:var(--bg);border-radius:8px;font-weight:600;font-size:14px;z-index:99999;transition:top .2s}.skip-link:focus{top:var(--space-4)}section{padding:120px var(--space-6);position:relative}@media (max-width: 720px){section{padding:80px 20px}}.section-head{margin-bottom:var(--space-8);max-width:var(--content-max);margin-inline:auto}.eyebrow{display:inline-block;font-family:var(--font-mono);font-size:12px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--space-4);padding:6px var(--space-3);border:1px solid var(--border-2);border-radius:100px;background:var(--surface)}.section-title{font-size:clamp(42px,6.5vw,84px);font-weight:500;letter-spacing:-.04em;line-height:1}.loader{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:9999;display:grid;place-items:center;transition:opacity .6s var(--ease),visibility .6s var(--ease)}.loader.gone{opacity:0;visibility:hidden}.loader-inner{text-align:center;width:min(420px,80vw)}.loader-text{font-size:clamp(56px,10vw,96px);font-weight:600;letter-spacing:-.04em;display:flex;justify-content:center;gap:4px;margin-bottom:var(--space-6)}.loader-text span{display:inline-block;opacity:0;transform:translateY(40px);animation:loaderUp .7s var(--ease) forwards}.loader-text span:nth-child(1){animation-delay:.05s}.loader-text span:nth-child(2){animation-delay:.1s}.loader-text span:nth-child(3){animation-delay:.15s}.loader-text span:nth-child(4){animation-delay:.2s}.loader-text span:nth-child(5){animation-delay:.25s}@keyframes loaderUp{to{opacity:1;transform:translateY(0)}}.loader-bar{height:2px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:14px}.loader-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-2));animation:loaderProgress 2.5s ease-out forwards}@keyframes loaderProgress{0%{width:0%}to{width:90%}}.loader-fill.fast-forward{animation:loaderFinish .5s ease-out forwards}@keyframes loaderFinish{0%{width:90%}to{width:100%}}.loader-percent{font-family:var(--font-mono);font-size:12px;color:var(--text-mute);letter-spacing:.08em}.cursor,.cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:20000;border-radius:50%}.cursor{width:36px;height:36px;border:1.5px solid rgba(255,255,255,.6);background:#ffffff26;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s}.cursor.hover{width:64px;height:64px;background:#ffffff4d}.cursor-dot{width:4px;height:4px;background:var(--text);transform:translate(-50%,-50%)}@media (max-width: 900px){.cursor,.cursor-dot{display:none}}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(120px);opacity:.5;animation:float 24s ease-in-out infinite}.blob-1{width:520px;height:520px;background:var(--accent-2);top:-10%;left:-10%}.blob-2{width:480px;height:480px;background:var(--accent-3);top:40%;right:-15%;animation-delay:-8s}.blob-3{width:420px;height:420px;background:var(--accent-4);bottom:-10%;left:30%;animation-delay:-16s}.blob-4{width:380px;height:380px;background:#5cc8ff;top:60%;left:-10%;animation-delay:-4s;opacity:.4}.noise{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 8s steps(8) infinite}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,35%)}90%{transform:translate(-10%,10%)}}.sparkles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.sp{position:absolute;color:var(--accent);font-size:14px;opacity:0;text-shadow:0 0 12px currentColor;animation:twinkle 5s ease-in-out infinite}.sp-1{top:18%;left:12%;color:var(--accent);animation-delay:0s}.sp-2{top:30%;right:18%;color:var(--accent-3);font-size:18px;animation-delay:1s}.sp-3{top:65%;left:8%;color:var(--accent-2);animation-delay:2s}.sp-4{top:75%;right:12%;color:var(--accent-4);font-size:16px;animation-delay:.5s}.sp-5{top:45%;left:50%;color:#5cc8ff;font-size:12px;animation-delay:1.5s}.sp-6{top:12%;right:35%;color:var(--accent);font-size:20px;animation-delay:2.5s}@keyframes twinkle{0%,to{opacity:0;transform:scale(.6) rotate(0)}50%{opacity:.9;transform:scale(1.2) rotate(180deg)}}.sparkles,.spotlight{pointer-events:none!important}.spotlight{position:fixed;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(196,255,61,.08) 0%,transparent 60%);pointer-events:none;z-index:-1;transform:translate(-50%,-50%);transition:opacity .4s;opacity:0;mix-blend-mode:screen}@media (max-width: 900px){.spotlight{display:none}}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(80px,-60px) scale(1.1)}66%{transform:translate(-60px,40px) scale(.95)}}.grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 30%,transparent 80%)}.nav{position:fixed;top:0;left:0;right:0;z-index:10001;display:flex;align-items:center;justify-content:space-between;padding:18px var(--space-6);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);background:#0a0a0f80;border-bottom:1px solid transparent;transition:border-color .4s,padding .4s;pointer-events:auto!important}.nav.scrolled{border-bottom-color:var(--border);padding:12px var(--space-6);background:#0a0a0fb3;box-shadow:0 1px #ffffff0d inset,0 20px 40px -10px #0006}.logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:17px;letter-spacing:-.02em}.logo-mark{color:var(--accent);animation:spin 6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.nav-links{display:flex;gap:var(--space-6);font-size:14px;color:var(--text-dim)}.nav-links a{position:relative;transition:color .3s}.nav-links a:hover{color:var(--text)}.nav-links a:after{content:"";position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s var(--ease)}.nav-links a:hover:after{width:100%}.nav-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--text);color:var(--bg);border-radius:100px;font-size:13px;font-weight:500;transition:transform .3s var(--ease),background .3s;position:relative;z-index:10;pointer-events:auto}.nav-cta:hover{background:var(--accent);transform:translateY(-2px)}.nav-burger{display:none;width:36px;height:36px;border-radius:10px;background:var(--surface);border:1px solid var(--border);flex-direction:column;align-items:center;justify-content:center;gap:5px}.nav-burger span{display:block;width:16px;height:1.5px;background:var(--text);transition:transform .3s,opacity .3s}.nav-burger.open span:first-child{transform:translateY(3px) rotate(45deg)}.nav-burger.open span:last-child{transform:translateY(-3px) rotate(-45deg)}@media (max-width: 820px){.nav{padding:14px 18px}.nav-links,.nav-cta{display:none}.nav-burger{display:flex}}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0ff7;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:90;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 var(--space-6);gap:var(--space-4);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}.mobile-menu.open{opacity:1;visibility:visible}.mobile-menu a{font-size:clamp(40px,9vw,64px);font-weight:600;letter-spacing:-.03em;transform:translateY(20px);opacity:0;transition:opacity .5s var(--ease),transform .5s var(--ease)}.mobile-menu.open a{transform:translateY(0);opacity:1}.mobile-menu.open a:nth-child(1){transition-delay:.1s}.mobile-menu.open a:nth-child(2){transition-delay:.15s}.mobile-menu.open a:nth-child(3){transition-delay:.2s}.mobile-menu.open a:nth-child(4){transition-delay:.25s}.mobile-menu-foot{margin-top:var(--space-7);font-family:var(--font-mono);font-size:13px;color:var(--text-dim)}.mobile-menu-foot a{font-size:13px;font-weight:400}.hero{min-height:100svh;padding-top:140px;padding-bottom:80px;display:flex;flex-direction:column;justify-content:space-between;position:relative;max-width:var(--content-max);margin-inline:auto;width:100%}.hero-meta{margin-bottom:40px}.status{display:inline-flex;align-items:center;gap:10px;padding:8px var(--space-4);border:1px solid var(--border-2);background:var(--surface);border-radius:100px;font-size:13px;color:var(--text-dim);font-family:var(--font-mono);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.status .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-4);box-shadow:0 0 0 0 var(--accent-4);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #3ecf8e99}70%{box-shadow:0 0 0 14px #3ecf8e00}to{box-shadow:0 0 #3ecf8e00}}.hero-title{font-size:clamp(56px,11vw,168px);font-weight:500;letter-spacing:-.05em;line-height:.92;margin-bottom:60px}.hero-title .line{display:block;overflow:hidden}.hero-title .reveal{display:inline-block;transform:translateY(110%);animation:reveal 1s var(--ease) forwards}.hero-title .line:nth-child(1) .reveal{animation-delay:.4s}.hero-title .line:nth-child(2) .reveal{animation-delay:.5s}.hero-title .line:nth-child(3) .reveal{animation-delay:.6s}.hero-title .line:nth-child(4) .reveal{animation-delay:.7s}@keyframes reveal{to{transform:translateY(0)}}.iri{background:linear-gradient(120deg,#c4ff3d,#7c5cff,#ff6b9d,#5cc8ff,#3ecf8e,#c4ff3d);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:iriShift 6s linear infinite;filter:drop-shadow(0 0 30px rgba(124,92,255,.4))}@keyframes iriShift{to{background-position:200% 0}}.hero-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end}@media (max-width: 820px){.hero-bottom{grid-template-columns:1fr;gap:var(--space-6)}}.hero-bio{font-size:clamp(16px,1.6vw,19px);color:var(--text-dim);max-width:520px;line-height:1.6}.hero-bio strong{color:var(--text);font-weight:500}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;justify-self:end}@media (max-width: 820px){.hero-actions{justify-self:start}}.btn{display:inline-flex;align-items:center;gap:10px;padding:var(--space-4) 26px;border-radius:100px;font-size:15px;font-weight:500;transition:transform .3s var(--ease),background .3s,color .3s}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--text)}.btn-ghost{background:var(--surface);border:1px solid var(--border-2);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-ghost:hover{background:var(--surface-2)}.btn-glow{position:relative;display:inline-block;padding:0;border-radius:100px;background:linear-gradient(120deg,var(--accent) 0%,var(--accent-2) 35%,var(--accent-3) 70%,var(--accent) 100%);background-size:300% 100%;animation:borderShift 5s linear infinite;transition:transform .4s var(--ease-bounce),box-shadow .4s;box-shadow:0 0 #7c5cff00;isolation:isolate}.btn-glow:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;background:inherit;filter:blur(14px);opacity:.6;z-index:-1;transition:opacity .4s,filter .4s}.btn-glow:hover{transform:translateY(-2px) scale(1.02)}.btn-glow:hover:before{opacity:1;filter:blur(20px)}.btn-glow-inner{display:inline-flex;align-items:center;gap:10px;padding:var(--space-4) 26px;border-radius:100px;background:linear-gradient(180deg,#16161e,#0a0a0f);color:var(--text);font-size:15px;font-weight:500;margin:1.5px;transition:background .3s}.btn-glow:hover .btn-glow-inner{background:linear-gradient(180deg,#1a1a26,#0e0e16)}.contact-glow .btn-glow-inner{padding:22px 36px;font-size:clamp(18px,2vw,24px)}@keyframes borderShift{to{background-position:300% 0}}.hero-phone{position:absolute;right:4%;top:22%;width:220px;height:440px;pointer-events:none;animation:floatPhone 6s ease-in-out infinite;filter:drop-shadow(0 40px 80px rgba(124,92,255,.4))}@keyframes floatPhone{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-20px) rotate(-4deg)}}@media (max-width: 1100px){.hero-phone{display:none}}.phone{width:100%;height:100%;background:linear-gradient(145deg,#1a1a24,#0a0a0f);border-radius:38px;border:1.5px solid var(--border-2);padding:8px;position:relative;box-shadow:inset 0 0 0 1px #ffffff0a}.phone-notch{position:absolute;top:14px;left:50%;transform:translate(-50%);width:70px;height:18px;background:#000;border-radius:100px;z-index:2}.phone-screen{width:100%;height:100%;background:linear-gradient(160deg,#1a1530,#0d0a1f);border-radius:30px;padding:40px 14px 14px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px}.phone-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 20%,rgba(124,92,255,.5),transparent 50%)}.phone-time{position:absolute;top:14px;left:18px;font-size:11px;font-weight:600;color:#ffffffe6;z-index:2}.phone-card{position:relative;z-index:1;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:var(--space-3);display:flex;align-items:center;gap:10px;animation:cardSlide .6s var(--ease) backwards}.phone-card-1{animation-delay:.8s}.phone-card-2{animation-delay:.95s;flex-direction:column;align-items:stretch;gap:6px}.phone-card-3{animation-delay:1.1s}@keyframes cardSlide{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.pc-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent-2),var(--accent-3));border-radius:9px;display:grid;place-items:center;font-size:16px}.pc-title{font-size:12px;font-weight:600;color:#fff}.pc-sub{font-size:10px;color:#ffffff80}.pc-bar{height:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:3px;width:var(--w);animation:barGrow 1s var(--ease) backwards;animation-delay:1.2s}@keyframes barGrow{0%{width:0}}.pc-circle{width:32px;height:32px;border-radius:50%;background:conic-gradient(var(--accent-4) 0% 75%,rgba(255,255,255,.1) 75% 100%);flex-shrink:0}.phone-dock{margin-top:auto;height:4px;width:60%;background:#ffffff4d;border-radius:2px;align-self:center}.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--text-mute);letter-spacing:.1em;text-transform:uppercase}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--text-mute),transparent);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;width:100%;height:50%;background:var(--accent);animation:scrollDown 2s ease-in-out infinite}@keyframes scrollDown{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}.marquee{padding:40px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;background:var(--bg-2)}.marquee-track{display:flex;align-items:center;gap:var(--space-7);font-size:clamp(40px,6vw,80px);font-weight:500;letter-spacing:-.03em;white-space:nowrap;animation:scrollX 40s linear infinite;font-family:var(--font-serif);font-style:italic}.marquee-track span{color:var(--text)}.marquee-track i{color:var(--accent);font-style:normal;font-size:.6em}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes scrollX{to{transform:translate(-50%)}}.bento{max-width:var(--content-max);margin-inline:auto}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:var(--space-4)}.bento-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .5s var(--ease),border-color .4s,background .4s}.bento-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%),rgba(196,255,61,.08),transparent 40%);opacity:0;transition:opacity .4s;pointer-events:none}.bento-card:hover{border-color:var(--border-2);background:var(--surface-2);transform:translateY(-4px) scale(1.005)}.bento-card:hover:before{opacity:1}.bento-card:after,.skill:after{content:"";position:absolute;top:-50%;left:-100%;width:60%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);transform:skew(-20deg);pointer-events:none;transition:left .9s var(--ease)}.bento-card:hover:after,.skill:hover:after{left:150%}.bento-intro{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between}.badge{align-self:flex-start;padding:6px var(--space-3);border-radius:100px;background:#c4ff3d1a;border:1px solid rgba(196,255,61,.3);color:var(--accent);font-size:12px;font-family:var(--font-mono)}.bento-intro h3{font-size:clamp(24px,2.8vw,36px);font-weight:500;line-height:1.15;letter-spacing:-.02em;margin:var(--space-5) 0 var(--space-4)}.bento-intro p{color:var(--text-dim);font-size:15px;max-width:460px}.bento-stat{grid-column:span 1;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(160deg,rgba(124,92,255,.18),var(--surface));border-color:#7c5cff4d}.bento-stat.alt{background:linear-gradient(160deg,rgba(255,107,157,.18),var(--surface));border-color:#ff6b9d4d}.stat-num{font-size:clamp(60px,7vw,90px);font-weight:600;letter-spacing:-.04em;line-height:1;background:linear-gradient(180deg,#fff,#ffffff80);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.bento-now{grid-column:span 2;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,rgba(62,207,142,.12),var(--surface));border-color:#3ecf8e40}.now-row{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase}.now-dot{width:8px;height:8px;background:var(--accent-4);border-radius:50%;animation:pulse 2s infinite}.now-track{font-size:clamp(20px,2.2vw,28px);font-weight:500;letter-spacing:-.02em;line-height:1.2}.now-bar{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.now-bar-fill{height:100%;width:60%;background:linear-gradient(90deg,var(--accent-4),var(--accent));border-radius:2px;animation:nowProgress 4s ease-in-out infinite alternate}@keyframes nowProgress{0%{width:30%}to{width:80%}}.bento-loc{grid-column:span 1;display:flex;flex-direction:column;justify-content:space-between}.loc-globe{font-size:32px}.loc-city{font-size:18px;font-weight:500}.loc-time{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);margin-top:4px}.bento-quote{grid-column:span 2;display:flex;gap:18px;align-items:flex-start;background:linear-gradient(135deg,rgba(255,181,71,.1),var(--surface));border-color:#ffb54740}.quote-mark{width:28px;height:28px;color:var(--accent);flex-shrink:0}.bento-quote p{font-family:var(--font-serif);font-style:italic;font-size:clamp(20px,2vw,26px);line-height:1.3;color:var(--text)}@media (max-width: 980px){.bento-grid{grid-template-columns:repeat(2,1fr)}.bento-intro{grid-column:span 2;grid-row:span 1}.bento-now,.bento-quote{grid-column:span 2}}@media (max-width: 540px){.bento-grid{grid-template-columns:1fr;grid-auto-rows:auto}.bento-intro,.bento-stat,.bento-now,.bento-loc,.bento-quote{grid-column:span 1;min-height:180px}.bento-card{padding:22px}}.read-bar{position:fixed;top:0;left:0;height:2.5px;width:100%;z-index:9999;background:transparent;pointer-events:none}.read-bar-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));transform-origin:left;transform:scaleX(0);animation:readProgress linear both;animation-timeline:scroll(root)}@keyframes readProgress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.read-bar-fill.js-driven{animation:none;transition:transform .1s linear}.work{max-width:var(--content-max);margin-inline:auto}.projects{display:flex;flex-direction:column;gap:var(--space-6)}.project{display:grid;grid-template-columns:80px 1fr 1.2fr;grid-template-areas:"num info visual";gap:var(--space-6);padding:40px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);position:relative;overflow:hidden;transition:transform .5s var(--ease),border-color .4s;isolation:isolate}.project-num{grid-area:num}.project-info{grid-area:info}.project-visual{grid-area:visual}.project:nth-child(2n){grid-template-areas:"num visual info"}.project:nth-child(2n) .project-info{text-align:left}@supports (animation-timeline: scroll()){.project{opacity:0;animation:slideFromLeft linear both;animation-timeline:view();animation-range:entry 0% entry 48%}.project:nth-child(2n){animation-name:slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-60px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(60px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}}@supports (animation-timeline: scroll()){.section-head{animation:sectionFade linear both;animation-timeline:view();animation-range:exit 0% exit 40%}@keyframes sectionFade{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-24px) scale(.98)}}}@supports (animation-timeline: scroll()){.skill{animation:skillCardEntry linear both;animation-timeline:view();animation-range:entry 0% entry 55%}@keyframes skillCardEntry{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}}@supports (animation-timeline: scroll()){.bento-card{animation:bentoEntry linear both;animation-timeline:view();animation-range:entry 0% entry 50%}@keyframes bentoEntry{0%{opacity:0;transform:translateY(40px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}}.project:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%),color-mix(in srgb,var(--data-color, #fff) 14%,transparent),transparent 50%);opacity:0;transition:opacity .5s;pointer-events:none;z-index:-1}.project:hover{border-color:var(--border-2);transform:translateY(-6px);box-shadow:0 30px 80px -20px color-mix(in srgb,var(--data-color, #7c5cff) 35%,transparent)}.project:hover:before{opacity:1}.project[data-color="#7c5cff"]{--data-color: #7c5cff}.project[data-color="#ff6b9d"]{--data-color: #ff6b9d}.project[data-color="#3ecf8e"]{--data-color: #3ecf8e}.project[data-color="#ffb547"]{--data-color: #ffb547}.project-num{font-family:var(--font-mono);font-size:13px;color:var(--text-mute);letter-spacing:.1em}.project-info{display:flex;flex-direction:column;justify-content:center;gap:var(--space-4)}.project-tags{display:flex;gap:8px;flex-wrap:wrap}.project-tags span{padding:4px var(--space-3);border:1px solid var(--border-2);border-radius:100px;font-size:11px;font-family:var(--font-mono);color:var(--text-dim);background:var(--surface)}.project-title{font-size:clamp(32px,4vw,52px);font-weight:500;letter-spacing:-.03em;line-height:1}.project-info p{color:var(--text-dim);font-size:15px;max-width:420px;line-height:1.55}.project-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:13px;font-family:var(--font-mono);padding-bottom:4px;border-bottom:1px solid var(--border-2);transition:color .3s,border-color .3s}.project-link:hover{color:var(--accent);border-color:var(--accent)}.project-link.disabled{opacity:.45;cursor:not-allowed;border-bottom-style:dashed}.project-link.disabled:hover{color:inherit;border-color:var(--border-2)}.project-visual{position:relative;height:380px;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:20px}.pv-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,var(--data-color, var(--accent-2)) 0%,transparent 70%);opacity:.15;filter:blur(60px);z-index:0}.project-visual-img{z-index:1;width:100%;height:100%}.project-visual-img img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}@media (max-width: 900px){.project,.project:nth-child(2n){grid-template-columns:1fr;grid-template-areas:"visual" "num" "info";gap:20px;padding:var(--space-5)}.project-visual{height:240px}.project-num{font-size:12px}.project{animation:none!important;opacity:1!important;transform:none!important}}.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;max-width:var(--content-max);margin:0 auto 40px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--space-4);width:fit-content}.filter-tab{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--space-3);font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.02em;transition:all .35s var(--ease);position:relative;white-space:nowrap}.filter-tab:hover{color:var(--text);background:var(--surface-2)}.filter-tab.active{color:var(--bg);background:var(--accent);box-shadow:0 4px 20px #c4ff3d4d}.tab-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.tab-dot-live{background:var(--accent-4);animation:pulse 2s infinite}@media (max-width: 720px){.filter-tabs{width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap}.filter-tabs::-webkit-scrollbar{display:none}}.project-status{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.live-badge,.oss-badge,.wip-badge{display:inline-flex;align-items:center;gap:6px;padding:4px var(--space-3);border-radius:100px;font-size:11px;font-family:var(--font-mono);letter-spacing:.04em}.live-badge{background:#3ecf8e1f;border:1px solid rgba(62,207,142,.35);color:var(--accent-4)}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-4);animation:pulse 2s infinite}.oss-badge{background:#9b6dff1f;border:1px solid rgba(155,109,255,.35);color:#b794ff}.wip-badge{background:#ffb5471f;border:1px solid rgba(255,181,71,.35);color:#ffb547}.platform-badge{display:inline-flex;align-items:center;padding:4px var(--space-3);border-radius:100px;font-size:11px;font-family:var(--font-mono);color:var(--text-mute);background:var(--surface);border:1px solid var(--border)}.project-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.store-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--space-3);font-size:13px;font-weight:500;color:var(--text);transition:all .3s var(--ease);position:relative;overflow:hidden}.store-badge:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(196,255,61,.1),transparent);opacity:0;transition:opacity .3s}.store-badge:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #c4ff3d26}.store-badge:hover:before{opacity:1}.store-badge svg{flex-shrink:0}.gh-badge:hover{border-color:#b794ff;box-shadow:0 8px 24px #9b6dff33}.gh-badge:hover:before{background:linear-gradient(135deg,rgba(155,109,255,.1),transparent)}.coming-soon-tag{display:inline-flex;align-items:center;padding:8px var(--space-4);border-radius:100px;font-size:12px;font-family:var(--font-mono);color:var(--text-mute);background:var(--surface);border:1px dashed var(--border-2);letter-spacing:.04em}.project-visual-img{display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:600px}.project-visual-img img{width:100%;height:100%;object-fit:cover;border-radius:14px;filter:brightness(.85) saturate(1.1) blur(6px);transform:scale(.9) translateY(30px);transition:transform 1s var(--ease),filter 1s var(--ease)}@supports (animation-timeline: scroll()){.project-visual-img img{animation:imgReveal linear both;animation-timeline:view();animation-range:entry 0% entry 45%;transition:none}@keyframes imgReveal{0%{filter:brightness(.7) saturate(.8) blur(8px);transform:scale(.88) translateY(36px)}to{filter:brightness(1) saturate(1.2) blur(0px);transform:scale(1) translateY(0)}}}.project-visual-img img.in-view{filter:brightness(1) saturate(1.2) blur(0px);transform:scale(1) translateY(0)}.project-visual-img img{--px: 0;--py: 0}.project:hover .project-visual-img img{will-change:transform}.project:not(:hover) .project-visual-img img{will-change:auto}@supports not (animation-timeline: scroll()){.project-visual-img img.in-view{transform:scale(1) translateY(0) translate(calc(var(--px) * -14px),calc(var(--py) * -10px))}}@supports (animation-timeline: scroll()){.project-visual-img{--px: 0;--py: 0}.project-visual-img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}}.project:hover .project-visual-img img{filter:brightness(1.05) saturate(1.25) blur(0px)}@media (max-width: 900px){.project-visual-img img{--px: 0 !important;--py: 0 !important}}.project[data-color="#9b6dff"]{--data-color: #9b6dff}.project[data-color="#5cc8ff"]{--data-color: #5cc8ff}.project[data-color="#ff6b4a"]{--data-color: #ff6b4a}.project.filter-hidden{opacity:0;transform:scale(.92) translateY(20px);pointer-events:none;position:absolute;visibility:hidden}.project{transition:opacity .5s var(--ease),transform .5s var(--ease),border-color .4s,visibility .5s}.stack{max-width:var(--content-max);margin-inline:auto}.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.skill{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:transform .4s var(--ease),border-color .4s,background .4s;position:relative;overflow:hidden}.skill:hover{border-color:var(--border-2);background:var(--surface-2);transform:translateY(-6px) scale(1.02);box-shadow:0 24px 50px -20px #7c5cff66}.skill-icon{font-size:var(--space-6);margin-bottom:var(--space-4)}.skill-name{font-size:17px;font-weight:500;margin-bottom:var(--space-4);letter-spacing:-.01em}.skill-bar{height:4px;background:#ffffff0f;border-radius:2px;overflow:hidden}.skill-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:2px;transition:width 1.4s var(--ease)}@media (max-width: 820px){.stack-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stack-grid{grid-template-columns:1fr}}.contact{text-align:center;padding:160px var(--space-6);position:relative}.contact:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(124,92,255,.18),transparent);pointer-events:none}.contact-inner{position:relative;max-width:900px;margin:0 auto}.contact-inner .eyebrow{margin-bottom:var(--space-5)}.contact-title{font-size:clamp(44px,8vw,110px);font-weight:500;letter-spacing:-.045em;line-height:1;margin-bottom:var(--space-7)}.grad{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 50%,var(--accent-3) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradShift 6s ease infinite;font-family:var(--font-serif);font-style:italic}@keyframes gradShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.contact-mail{display:inline-flex;align-items:center;gap:14px;padding:22px 36px;background:var(--text);color:var(--bg);border-radius:100px;font-size:clamp(18px,2vw,24px);font-weight:500;letter-spacing:-.01em;transition:background .3s,transform .3s var(--ease)}.contact-mail:hover{background:var(--accent)}.socials{margin-top:40px;display:flex;gap:28px;flex-wrap:wrap;justify-content:center;font-size:14px;color:var(--text-dim)}.socials a{position:relative;transition:color .3s}.socials a:hover{color:var(--text)}.socials a:after{content:"↗";margin-left:4px;display:inline-block;transition:transform .3s}.socials a:hover:after{transform:translate(2px,-2px)}.footer{border-top:1px solid var(--border);padding:28px var(--space-6);font-family:var(--font-mono);font-size:12px;color:var(--text-mute)}.footer-row{max-width:var(--content-max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.footer-mid{color:var(--text-dim)}.footer a:hover{color:var(--accent)}.reveal-up{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal-up.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.font-mono,[class*=mono],kbd,.stat-num,.loc-time,.now-row,.stat-label,.ls-bar+span,.footer,.eyebrow{font-variant-numeric:tabular-nums}.nav-links a,.socials a,.project-link,.footer a,.mobile-menu-foot a{position:relative}.nav-links a:after,.socials a:before,.project-link:before,.footer a:after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,1,.36,1);pointer-events:none}.socials a:before{bottom:-4px}.nav-links a:hover:after,.socials a:hover:before,.project-link:hover:before,.footer a:hover:after{transform:scaleX(1)}.socials a:after{display:none}.nav-cmdk{display:inline-flex;align-items:center;gap:8px;padding:7px 8px 7px var(--space-3);background:var(--surface);border:1px solid var(--border-2);border-radius:100px;color:var(--text-dim);font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:color .25s,background .25s,border-color .25s;margin-right:8px}.nav-cmdk:hover{color:var(--text);background:var(--surface-2);border-color:var(--border-2)}.nav-cmdk kbd{display:inline-flex;align-items:center;padding:2px 6px;background:#ffffff0f;border:1px solid var(--border);border-radius:5px;font-family:var(--font-mono);font-size:10.5px;color:var(--text-dim);letter-spacing:.03em}@media (max-width: 820px){.nav-cmdk{display:none}}.cmdk{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s}.cmdk.open{opacity:1;visibility:visible}.cmdk-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#05050999;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}.cmdk-panel{position:relative;width:min(560px,calc(100vw - var(--space-6)));margin:14vh auto 0;background:linear-gradient(180deg,#15151d,#0d0d14);border:1px solid var(--border-2);border-radius:14px;box-shadow:0 1px #ffffff0a inset,0 30px 80px -20px #000000b3,0 0 0 1px #ffffff05;overflow:hidden;transform:translateY(-12px) scale(.98);opacity:0;transition:transform .35s var(--ease-bounce),opacity .25s}.cmdk.open .cmdk-panel{transform:translateY(0) scale(1);opacity:1}.cmdk-search{display:flex;align-items:center;gap:10px;padding:14px var(--space-4);border-bottom:1px solid var(--border);color:var(--text-dim)}.cmdk-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:14px;font-family:var(--font-sans);letter-spacing:-.005em}.cmdk-search input::placeholder{color:var(--text-mute)}.cmdk-search kbd{font-family:var(--font-mono);font-size:10.5px;padding:3px 7px;border:1px solid var(--border);border-radius:5px;color:var(--text-mute)}.cmdk-list{list-style:none;max-height:56vh;overflow-y:auto;padding:6px}.cmdk-list::-webkit-scrollbar{width:4px}.cmdk-list::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:2px}.cmdk-group{font-family:var(--font-mono);font-size:10.5px;color:var(--text-mute);letter-spacing:.12em;text-transform:uppercase;padding:var(--space-3) var(--space-3) 6px}.cmdk-item{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:8px;font-size:14px;color:var(--text-dim);cursor:pointer;transition:background .15s,color .15s}.cmdk-item.hidden{display:none}.cmdk-item.active,.cmdk-item:hover{background:#c4ff3d0f;color:var(--text)}.cmdk-item.active{box-shadow:inset 0 0 0 1px #c4ff3d2e}.cmdk-item .ck-ic{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--border-2);border-radius:5px;font-family:var(--font-mono);font-size:11px;color:var(--accent);flex-shrink:0}.cmdk-item span:nth-child(2){flex:1}.cmdk-item kbd{font-family:var(--font-mono);font-size:10.5px;padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--text-mute)}.cmdk-foot{display:flex;gap:18px;padding:10px var(--space-4);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:10.5px;color:var(--text-mute)}.cmdk-foot kbd{padding:1px 5px;background:#ffffff0a;border:1px solid var(--border);border-radius:4px;margin-right:4px}@media (max-width: 540px){.cmdk-panel{margin-top:8vh}.cmdk-foot{flex-wrap:wrap;gap:10px}}.tip{position:fixed;z-index:9400;pointer-events:none;padding:5px 9px;background:linear-gradient(180deg,#1c1c25,#101017);border:1px solid var(--border-2);border-radius:7px;font-family:var(--font-mono);font-size:11px;letter-spacing:.01em;color:var(--text);box-shadow:0 10px 30px -10px #000000b3;opacity:0;transform:translate(-50%,calc(-100% - 8px)) scale(.9);transition:opacity .18s var(--ease),transform .25s var(--ease);white-space:nowrap;max-width:280px}.tip.show{opacity:1;transform:translate(-50%,calc(-100% - 8px)) scale(1)}.tip:after{content:"";position:absolute;left:50%;bottom:-3px;width:6px;height:6px;background:linear-gradient(180deg,#1c1c25,#101017);border-right:1px solid var(--border-2);border-bottom:1px solid var(--border-2);transform:translate(-50%) rotate(45deg)}@media (max-width: 900px){.tip{display:none}}.status-sub{display:inline-flex;align-items:center;gap:8px;margin-left:10px;padding:7px 14px;border:1px solid var(--border);border-radius:100px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-mute);background:var(--surface);vertical-align:middle}.ls-bar{width:18px;height:1.5px;background:linear-gradient(90deg,var(--accent-4),transparent);border-radius:1px;position:relative;overflow:hidden}.ls-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-4);animation:lsScan 2.4s ease-in-out infinite}@keyframes lsScan{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}@media (max-width: 540px){.status-sub{margin-left:0;margin-top:8px;display:inline-flex}}.work{--cx: -100px;--cy: -100px;--cv: 0}.work:before,.work:after{content:"";position:absolute;background:linear-gradient(currentColor,currentColor);color:#c4ff3d40;pointer-events:none;opacity:var(--cv);transition:opacity .3s;z-index:1}.work:before{left:0;right:0;top:var(--cy);height:1px}.work:after{top:0;bottom:0;left:var(--cx);width:1px}@media (max-width: 900px){.work:before,.work:after{display:none}}.project-num{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);border:1px solid var(--border);border-radius:100px;padding:4px 10px;align-self:flex-start;height:fit-content;background:var(--surface)}.project-tags span{cursor:help;position:relative;transition:color .25s,border-color .25s}.project-tags span:hover{color:var(--text);border-color:var(--border-2)}.footer-fps{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:100px;background:var(--surface)}.fps-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-4);box-shadow:0 0 8px var(--accent-4);animation:pulse 1.6s ease-in-out infinite}.footer-back{font-family:var(--font-mono);font-size:12px}.footer-row{gap:var(--space-4)}@media (max-width: 540px){.footer-row{flex-direction:column;align-items:flex-start}}body.light{--bg: #f8f8f5;--bg-2: #efefe9;--surface: rgba(0, 0, 0, .04);--surface-2: rgba(0, 0, 0, .06);--border: rgba(0, 0, 0, .08);--border-2: rgba(0, 0, 0, .16);--text: #0a0a0f;--text-dim: #4a4a52;--text-mute: #71717a;--accent: #5e8200;--accent-2: #5234c9;--accent-3: #d12765;--accent-4: #188a53}body.light .blob{opacity:.25}body.light .noise{opacity:.04}body.light .grid-bg{-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(0,0,0,.7) 30%,transparent 80%);mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(0,0,0,.7) 30%,transparent 80%)}body.light .nav{background:#f8f8f599}body.light .nav.scrolled{background:#f8f8f5cc}body.light .nav-cta{background:var(--text);color:var(--bg)}body.light .btn-glow-inner{background:linear-gradient(180deg,#fff,#f0f0e8);color:var(--text)}body.light .cmdk-panel{background:linear-gradient(180deg,#fff,#f4f4ee)}.stat-num{font-variant-numeric:tabular-nums}.loader{display:none}body{cursor:auto}.cursor,.cursor-dot,.spotlight,.sparkles,.cmdk,.mobile-menu{display:none}.project,.bento-card,.skill{opacity:1!important;transform:none!important}.read-bar-fill{animation:none}.reveal-up{opacity:1;transform:none}.skip-link{display:none}
