:root{--bg:#050510;--surface:#0b0b18;--surface-2:#11111a;--border:#94a3b824;--border-strong:#94a3b847;--text:#f8fafc;--text-2:#cbd5e1;--muted:#94a3b8;--accent:#2c67ed;--accent-2:#60a5fa;--cyan:#00f0ff;--glow:#2c67ed73;--radius:18px;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:clip}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:8px}.app{z-index:1;position:relative}.container{width:min(1180px,100% - 32px);margin-inline:auto}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.text-gradient{background:linear-gradient(100deg, #fff 0%, var(--accent-2) 45%, var(--cyan) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.glass{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(1.4);background:#11111a8c}.glass-card{border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);background:linear-gradient(160deg,#ffffff0b,#ffffff03);transition:border-color .3s,transform .3s,box-shadow .3s}.glass-card:hover{border-color:#60a5fa59}.metal-border{border-radius:calc(var(--radius) + 1px);isolation:isolate;background:#94a3b826;padding:1px;position:relative;overflow:hidden}.metal-border:before{content:"";z-index:-1;aspect-ratio:1;background:conic-gradient(#94a3b826, var(--accent-2), #94a3b826 30%, #94a3b826 60%, var(--cyan), #94a3b826);width:200%;animation:6s linear infinite metal-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes metal-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}.glow-card{border:1px solid var(--border);box-shadow:0 0 0 1px #60a5fa0d, 0 30px 80px -40px var(--glow);background:radial-gradient(120% 140% at 0 0,#2c67ed2e,#0000 50%),#0b0b18bf;border-radius:24px;position:relative;overflow:hidden}.glow-card:before{content:"";background:linear-gradient(90deg, transparent, var(--cyan), transparent);height:1px;position:absolute;inset:0 30% auto 10%}.btn-primary,.btn-secondary{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent), #3b82f6 60%, var(--accent-2));color:#fff;box-shadow:0 10px 30px -10px var(--glow), inset 0 1px 0 #ffffff40}.btn-primary:hover{box-shadow:0 16px 40px -10px var(--glow), inset 0 1px 0 #ffffff40;transform:translateY(-2px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{border:1px solid var(--border-strong);background:#ffffff08}.btn-secondary:hover{border-color:var(--accent-2);background:#60a5fa14;transform:translateY(-2px)}.btn-block{width:100%}.icon-btn{width:38px;height:38px;color:var(--text-2);border-radius:12px;place-items:center;transition:background .2s,color .2s;display:grid}.icon-btn:hover{color:#fff;background:#ffffff12}.link-arrow{color:var(--accent-2);align-items:center;gap:6px;font-size:.92rem;font-weight:600;display:inline-flex}.link-arrow svg{transition:transform .25s}.link-arrow:hover svg{transform:translate(3px,-3px)}.social-btn{border:1px solid var(--border);width:42px;height:42px;color:var(--text-2);background:#ffffff08;border-radius:12px;place-items:center;transition:all .25s;display:grid}.social-btn:hover{color:#fff;border-color:var(--accent-2);background:#2c67ed2e;transform:translateY(-3px)}.eyebrow{color:var(--accent-2);background:#2c67ed1a;border:1px solid #60a5fa40;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:.8rem;font-weight:500;display:inline-flex}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{font-size:.72rem;font-family:var(--font-mono);color:var(--accent-2);background:#2c67ed1a;border:1px solid #60a5fa2e;border-radius:999px;padding:3px 10px}.chip-lg{padding:6px 14px;font-size:.82rem}.welcome{z-index:100;background:var(--bg);place-items:center;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0}.welcome.is-leaving{opacity:0;visibility:hidden}.welcome-inner{text-align:center;width:min(320px,80vw);animation:.6s both fade-up}.logo.welcome-logo{filter:drop-shadow(0 0 24px var(--glow));font-size:clamp(1.6rem,6vw,2.2rem)}.welcome-number{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:24px 0 18px;font-size:clamp(3.5rem,12vw,5.5rem);font-weight:700;line-height:1}.welcome-number small{color:var(--accent-2);font-size:.4em}.welcome-track{background:#ffffff14;border-radius:3px;height:3px;overflow:hidden}.welcome-bar{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--cyan));height:100%;box-shadow:0 0 12px var(--cyan)}.welcome-label{font-family:var(--font-mono);color:var(--muted);margin-top:14px;font-size:.8rem}.bg-layer{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particles-canvas{position:absolute;inset:0}.ambient-orb{filter:blur(90px);opacity:.45;border-radius:50%;position:absolute}.orb-a{background:radial-gradient(circle,#1d4ed8,#0000 70%);width:520px;height:520px;top:-160px;left:-120px}.orb-b{opacity:.3;background:radial-gradient(circle,#0891b2,#0000 70%);width:460px;height:460px;top:40%;right:-160px}.orb-c{opacity:.25;background:radial-gradient(circle,#4338ca,#0000 70%);width:380px;height:380px;bottom:-160px;left:30%}.bg-grid{background-image:linear-gradient(#94a3b80d 1px,#0000 1px),linear-gradient(90deg,#94a3b80d 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 0%,#0000 70%);mask-image:radial-gradient(at 50% 0,#000 0%,#0000 70%)}.meteor{top:-10%;left:calc(15% + var(--i) * 15%);width:2px;height:2px;animation:7s linear infinite meteor-fall;animation-delay:calc(var(--i) * 1.7s);opacity:0;background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 6px 2px #fff6}.meteor:after{content:"";background:linear-gradient(90deg,#60a5facc,#0000);width:120px;height:1px;position:absolute;top:50%;right:1px;transform:translateY(-50%)}@keyframes meteor-fall{0%{opacity:0;transform:rotate(215deg)translate(0)}5%{opacity:1}40%{opacity:0;transform:rotate(215deg)translate(-900px)}to{opacity:0;transform:rotate(215deg)translate(-900px)}}.navbar{z-index:50;padding:18px 16px;transition:padding .3s;position:fixed;top:0;left:0;right:0}.navbar.is-scrolled{padding-top:10px}.navbar-inner{border-radius:18px;justify-content:space-between;align-items:center;gap:16px;max-width:1180px;margin-inline:auto;padding:8px 10px 8px 14px;transition:box-shadow .3s,background .3s;display:flex}.navbar.is-scrolled .navbar-inner{background:#080812b8;box-shadow:0 20px 50px -25px #000c}.navbar-brand{font-family:var(--font-display);align-items:center;gap:10px;font-weight:700;display:flex}.logo{font-family:Montserrat, var(--font-display);color:#f8fafc;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:1.12rem;line-height:1;display:inline-flex}.logo-word{letter-spacing:.01em;display:flex}.logo-bold{font-weight:800}.logo-thin{margin-left:.04em;font-weight:300}.logo-foot{align-items:center;gap:.2em;height:.5em;margin-top:.2em;display:flex}.logo-line{background:linear-gradient(90deg,#4f6f96 0%,#7fb3db 60%,#9fd0ee 100%);border-radius:2px;flex:1;height:2px}.logo-dot{background:#7fc4e6;border-radius:50%;flex:none;width:4px;height:4px;margin-top:2px}.logo-mono{letter-spacing:0;font-size:.6em;font-weight:500;display:inline-flex;transform:translateY(-.12em)}.logo-k{color:#f8fafc}.logo-d{color:#8fc6e8;margin-left:-.16em}.navbar-brand .logo{transition:opacity .2s}.navbar-brand:hover .logo{opacity:.85}.navbar-links{gap:4px;display:flex;position:relative}.navbar-pill{background:#2c67ed2e;border:1px solid #60a5fa4d;border-radius:12px;transition:transform .4s cubic-bezier(.65,0,.35,1),width .4s cubic-bezier(.65,0,.35,1);position:absolute;top:0;bottom:0;left:0}.navbar-link{color:var(--muted);border-radius:12px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:color .25s;position:relative}.navbar-link:hover,.navbar-link.is-active{color:#fff}.navbar-actions{align-items:center;gap:4px;display:flex}.navbar-toggle{display:none}.mobile-menu{z-index:-1;opacity:0;visibility:hidden;background:#05051099;transition:opacity .3s,visibility .3s;position:fixed;inset:0}.mobile-menu.is-open{opacity:1;visibility:visible}.mobile-menu-panel{border-radius:20px;flex-direction:column;gap:4px;padding:12px;transition:transform .35s;display:flex;position:absolute;top:78px;left:16px;right:16px;transform:translateY(-12px)}.mobile-menu.is-open .mobile-menu-panel{transform:none}.mobile-link{font-family:var(--font-display);color:var(--text-2);opacity:0;transition:opacity .3s var(--d), transform .3s var(--d), background .2s;border-radius:14px;align-items:center;gap:14px;padding:14px;font-size:1.15rem;font-weight:600;display:flex;transform:translate(-10px)}.mobile-menu.is-open .mobile-link{opacity:1;transform:none}.mobile-link.is-active{color:#fff;background:#2c67ed26}.mobile-link-index{font-family:var(--font-mono);color:var(--accent-2);font-size:.75rem}.mobile-cta{margin-top:8px}.section{padding:110px 0;position:relative}.section-title{font-family:var(--font-display);text-align:center;letter-spacing:-.02em;background:linear-gradient(#fff 30%,#94a3b8b3);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;line-height:1.1}.section-sub{text-align:center;max-width:560px;color:var(--muted);margin:14px auto 56px}.hero{align-items:center;min-height:100svh;padding:120px 0 80px;display:flex;position:relative;overflow-x:clip}.hero-inner{grid-template-columns:1.15fr .85fr;align-items:center;gap:40px;display:grid}.pulse-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;position:relative}.pulse-dot:after{content:"";background:#22c55e99;border-radius:50%;animation:2s infinite pulse-ring;position:absolute;inset:0}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}70%,to{opacity:0;transform:scale(3.5)}}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;margin:22px 0 18px;font-size:clamp(2.8rem,7.5vw,5.6rem);font-weight:700;line-height:1.02}.hero-title>span{display:block}.hero-title-rest{color:#fff}.hero-typewriter{min-height:2em;font-family:var(--font-mono);color:var(--text-2);align-items:center;gap:10px;font-size:clamp(1.05rem,2.4vw,1.4rem);display:flex}.hero-typewriter .mono{color:var(--cyan)}.cursor{background:var(--cyan);width:2px;height:1.2em;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.hero-desc{max-width:540px;color:var(--muted);margin:18px 0 30px;font-size:1.05rem}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-socials{align-items:center;gap:10px;margin-top:36px;display:flex}.hero-socials-label{color:var(--muted);margin-right:6px;font-size:.78rem}.hero-visual{height:560px}.scroll-cue{border:2px solid var(--border-strong);border-radius:14px;width:24px;height:38px;position:absolute;bottom:26px;left:50%;translate:-50%}.scroll-cue span{background:var(--accent-2);border-radius:2px;width:4px;height:8px;margin-left:-2px;animation:1.8s infinite cue;position:absolute;top:7px;left:50%}@keyframes cue{60%{opacity:0;transform:translateY(12px)}to{opacity:0}}.hero-visual{position:relative}.lanyard{outline:none;width:100%;height:100%;position:relative}.lanyard:focus-visible{outline:2px solid var(--accent-2);outline-offset:6px;border-radius:14px}.lanyard-canvas{pointer-events:none;display:block;position:absolute;top:0;left:0}.lanyard-fallback{width:240px;height:auto;box-shadow:0 30px 60px -20px #000c, 0 0 50px -10px var(--glow);border-radius:20px;margin:40px auto 0;display:block}.lanyard-hint{text-align:center;width:100%;font-family:var(--font-mono);color:var(--muted);pointer-events:none;margin:0;font-size:.75rem;position:absolute;bottom:0}.avatar{object-fit:cover;pointer-events:none}.avatar-fallback{font-family:var(--font-display);color:#fff;background:linear-gradient(135deg, var(--accent), #0ea5e9 60%, var(--cyan));place-items:center;font-weight:700;display:grid}.about-grid{grid-template-columns:.8fr 1.2fr;align-items:center;gap:64px;display:grid}.about-portrait{aspect-ratio:900/1205;touch-action:pan-y;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;width:100%;max-width:420px;margin-inline:auto;position:relative}.about-portrait-orbits{aspect-ratio:1;pointer-events:none;position:absolute;top:4%;left:0;right:0}.about-portrait-glow{background:radial-gradient(circle at 50% 40%, var(--glow), transparent 70%);filter:blur(34px);pointer-events:none;border-radius:50%;position:absolute;inset:18% 8%}.about-portrait-figure{z-index:1;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0% 68%,#000000bf 82%,#0000 96%);mask-image:linear-gradient(#000 0% 68%,#000000bf 82%,#0000 96%)}.about-portrait-img{object-fit:contain;object-position:center bottom;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 18px 36px #00000073);width:100%;height:100%;position:absolute;inset:0}.about-portrait{--reveal:radial-gradient(circle 120px at var(--hover-x,50%) var(--hover-y,30%), #000 0%, #000 55%, transparent 100%);--reveal-hole:radial-gradient(circle 120px at var(--hover-x,50%) var(--hover-y,30%), transparent 0%, transparent 82%, #000 100%)}.about-portrait-alt{opacity:0;filter:saturate(1.08)contrast(1.05)drop-shadow(0 4px 18px #2c67ed59);-webkit-mask-image:var(--reveal);-webkit-mask-image:var(--reveal);mask-image:var(--reveal);transition:opacity .2s}.about-portrait.is-revealing .about-portrait-alt{opacity:1}.about-portrait.is-revealing .about-portrait-main{-webkit-mask-image:var(--reveal-hole);-webkit-mask-image:var(--reveal-hole);mask-image:var(--reveal-hole)}.about-portrait:not(.is-revealing) .about-portrait-alt{animation:7s ease-in-out infinite portrait-blink;-webkit-mask-image:none;mask-image:none}.about-portrait:not(.is-revealing) .about-portrait-main{animation:7s ease-in-out infinite portrait-blink-main}.about-portrait-main{transition:opacity .25s}@keyframes portrait-blink-main{0%,76%,to{opacity:1}79%{opacity:.1}81%{opacity:.85}83%{opacity:.15}87%{opacity:1}}@keyframes portrait-blink{0%,76%,to{opacity:0}79%{opacity:.9}81%{opacity:.15}83%{opacity:.85}87%{opacity:0}}.about-portrait-spark{z-index:2;background:var(--cyan);pointer-events:none;border-radius:50%;width:7px;height:7px;position:absolute;top:58%;right:16%;box-shadow:0 0 14px 3px #00f0ff73}@media (prefers-reduced-motion:reduce){.about-portrait:not(.is-revealing) .about-portrait-alt,.about-portrait:not(.is-revealing) .about-portrait-main{animation:none}}.orbit{border:1px dashed #60a5fa40;border-radius:50%;animation:24s linear infinite rotate;position:absolute;inset:0}.orbit:after{content:"";background:var(--cyan);width:10px;height:10px;box-shadow:0 0 14px var(--cyan);border-radius:50%;position:absolute;top:12%;left:12%}.orbit-2{animation-duration:16s;animation-direction:reverse;inset:12%}.orbit-2:after{background:var(--accent-2);box-shadow:0 0 14px var(--accent-2);inset:auto 10% 10% auto}@keyframes rotate{to{transform:rotate(360deg)}}.about-greeting{font-family:var(--font-display);margin:0 0 18px;font-size:clamp(1.6rem,3.4vw,2.2rem);line-height:1.2}.about-bio{color:var(--text-2);margin:0 0 14px}.about-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.experience{grid-template-columns:1.4fr 1fr;gap:24px;margin-top:90px;display:grid}.experience-cols{gap:24px;display:grid}.experience-group-title{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);margin:0 0 12px;font-size:.8rem}.experience-card{align-items:flex-start;gap:16px;margin-bottom:12px;padding:18px;display:flex}.experience-card:hover{transform:translate(4px)}.experience-logo{width:48px;height:48px;font-family:var(--font-display);color:var(--accent-2);background:#2c67ed26;border:1px solid #60a5fa40;border-radius:12px;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.experience-logo img{object-fit:contain;width:100%;height:100%}.experience-card h5{font-size:1rem;font-family:var(--font-display);margin:0}.experience-card p{color:var(--muted);margin:2px 0 6px;font-size:.9rem}.experience-date{color:var(--cyan);font-size:.75rem}.stats{align-content:start;gap:12px;padding-top:34px;display:grid}.stat-card{padding:20px}.stat-card:hover{box-shadow:0 20px 40px -24px var(--glow);transform:translateY(-3px)}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-icon{width:38px;height:38px;color:var(--accent-2);background:#2c67ed26;border-radius:10px;place-items:center;display:grid}.stat-value{font-family:var(--font-display);font-size:2.2rem;font-weight:700;line-height:1}.stat-label{margin-top:12px;font-weight:600}.stat-sub{color:var(--muted);font-size:.82rem}.soundtrack{padding-top:20px}.soundtrack-card{grid-template-columns:1fr 1fr;align-items:center;gap:32px;padding:36px;display:grid}.soundtrack-copy h3{font-family:var(--font-display);margin:16px 0 10px;font-size:clamp(1.6rem,3vw,2.2rem)}.soundtrack-copy>p{color:var(--muted);margin:0 0 18px}.soundtrack-copy .link-arrow{margin-top:18px}.now-playing{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;align-items:center;gap:14px;padding:12px 14px;display:flex}.now-playing-info{flex:1;min-width:0;display:grid}.now-playing-info strong,.now-playing-info span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.now-playing-info span{color:var(--muted);font-size:.8rem}.now-playing-controls{align-items:center;gap:6px;display:flex}.music-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:50%;place-items:center;transition:background .2s,transform .2s;display:grid}.music-btn:hover{background:#ffffff1a}.music-btn:active{transform:scale(.94)}.music-btn:disabled{opacity:.35;cursor:default}.now-playing.is-empty .now-playing-info strong{color:var(--text-2);font-weight:500}.music-btn.is-main{background:linear-gradient(135deg, var(--accent), var(--cyan));color:#fff;border:0;width:42px;height:42px}.track-list{border:1px solid var(--border);scrollbar-width:thin;border-radius:14px;max-height:420px;margin:0;padding:4px;list-style:none;overflow-y:auto}.track{width:100%;color:var(--text-2);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.track:hover{background:#ffffff0d}.track.is-active{color:var(--text);background:#2c67ed2e}.track.is-blocked{opacity:.45;cursor:not-allowed}.track.is-blocked:hover{background:0 0}.track-thumb{object-fit:cover;background:#ffffff0f;border-radius:6px;flex:none;width:48px;height:36px}.track-thumb-intro{color:#fff;background:linear-gradient(135deg,#111827,#25f4ee 160%);place-items:center;display:grid}.track-text{min-width:0;display:grid}.track-text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.track-text span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.music-players{pointer-events:none;width:320px;height:320px;position:fixed;top:0;left:-10000px;overflow:hidden}.music-players iframe{border:0;width:320px;height:320px}.music-dock{z-index:60;border:1px solid var(--border-strong);background:#0b0b18eb;border-radius:16px;align-items:center;gap:8px;width:min(340px,100vw - 32px);padding:10px 12px;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 20px 50px #0009}.music-dock-info{flex:1;min-width:0;font-size:.78rem;display:grid}.music-dock-info strong,.music-dock-info span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.music-dock-info span{color:var(--muted)}.music-dock .music-btn{width:30px;height:30px}.music-dock .music-btn.is-main{width:34px;height:34px}.track-no{width:20px;color:var(--muted);text-align:right;flex:none;font-size:.72rem}.track.is-active .track-no{color:var(--cyan)}.track-skeleton{height:52px;margin:4px;list-style:none}.eq{flex:none;align-items:flex-end;gap:3px;width:18px;height:16px;display:inline-flex}.eq span{background:var(--cyan);transform-origin:bottom;border-radius:2px;flex:1;height:100%;transform:scaleY(.3)}.eq.is-playing span{animation:.9s ease-in-out infinite eq-bounce}.eq.is-playing span:nth-child(2){animation-delay:-.3s}.eq.is-playing span:nth-child(3){animation-delay:-.6s}@keyframes eq-bounce{0%,to{transform:scaleY(.25)}50%{transform:scaleY(1)}}.music-toggle{position:relative}.music-toggle.is-waiting{color:var(--cyan)}.music-toggle.is-waiting:after{content:"";border-radius:inherit;pointer-events:none;border:2px solid #00f0ff80;animation:1.6s ease-out infinite music-pulse;position:absolute;inset:0}@keyframes music-pulse{0%{opacity:1;transform:scale(1)}70%,to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){.eq.is-playing span,.music-toggle.is-waiting:after,.pulse-dot:after,.metal-border:before{animation:none}}.skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff17 50%,#ffffff0a 75%) 0 0/200% 100%;border-radius:10px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.tab-bar{scrollbar-width:none;border-radius:16px;gap:4px;width:fit-content;max-width:100%;margin:0 auto 44px;padding:6px;display:flex;overflow-x:auto}.tab-btn{color:var(--muted);white-space:nowrap;border-radius:12px;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:500;transition:color .2s,background .2s;display:flex}.tab-btn:hover{color:#fff}.tab-btn.is-active{color:#fff;background:linear-gradient(135deg,#2c67ed66,#60a5fa33);box-shadow:inset 0 0 0 1px #60a5fa59}.tab-panel{animation:.5s both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.project-card{animation:.6s both fade-up;animation-delay:var(--d);transition:transform .35s}.project-card:hover{transform:translateY(-6px)}.project-card-inner{border-radius:var(--radius);background:var(--surface);flex-direction:column;height:100%;display:flex;overflow:hidden}.project-thumb{aspect-ratio:16/10;position:relative;overflow:hidden}.project-thumb>*{transition:transform .6s}.project-card:hover .project-thumb>:first-child{transform:scale(1.05)}.project-cat{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050510b3;border-radius:999px;padding:4px 10px;font-size:.7rem;position:absolute;top:12px;left:12px}.project-body{flex-direction:column;flex:1;gap:12px;padding:20px;display:flex}.project-body h3{font-family:var(--font-display);margin:0;font-size:1.25rem}.project-body p{color:var(--muted);flex:1;margin:0;font-size:.92rem}.project-body .link-arrow{align-self:flex-start;margin-top:4px}.thumb-img{object-fit:cover;width:100%;height:100%}.thumb-mock{place-items:center start;width:100%;height:100%;padding-left:12%;display:grid;position:relative;overflow:hidden}.thumb-mock:after{content:"";background:radial-gradient(circle at 80% 20%,#ffffff2e,#0000 50%);position:absolute;inset:0}.thumb-phone{aspect-ratio:9/18;background:#0505108c;border:3px solid #ffffffd9;border-radius:16px;width:28%;padding:14% 9% 8%;position:relative;transform:rotate(-8deg)translateY(10%);box-shadow:0 20px 40px -10px #0009}.thumb-mock.is-large .thumb-phone{width:32%;transform:rotate(-6deg)}.thumb-notch{background:#fff9;border-radius:999px;width:30%;height:4%;position:absolute;top:5%;left:50%;translate:-50%}.thumb-screen{flex-direction:column;gap:6%;height:100%;display:flex}.thumb-screen span,.thumb-row span{background:#ffffff59;border-radius:4px;display:block}.thumb-line{height:5px}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w80{width:80%}.thumb-block{height:30%;background:#ffffff8c!important}.thumb-row{grid-template-columns:1fr 1fr;gap:6px;height:18%;display:grid}.thumb-title{text-align:right;max-width:44%;font-family:var(--font-display);color:#ffffffe6;z-index:1;font-size:clamp(1rem,2vw,1.4rem);font-weight:700;line-height:1.1;position:absolute;bottom:10%;right:7%}.cert-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.cert-card{text-align:left;padding:0;overflow:hidden}.cert-card:hover{transform:translateY(-4px)}.cert-preview{aspect-ratio:4/3;color:var(--accent-2);background:#2c67ed14;place-items:center;display:grid;position:relative;overflow:hidden}.cert-preview img{object-fit:cover;width:100%;height:100%}.cert-overlay{opacity:0;background:#05051099;place-items:center;font-weight:600;transition:opacity .3s;display:grid;position:absolute;inset:0}.cert-card:hover .cert-overlay{opacity:1}.cert-body{padding:16px}.cert-body h4{font-family:var(--font-display);margin:0 0 4px}.cert-body p{color:var(--muted);margin:0;font-size:.75rem}.empty-state{color:var(--muted);text-align:center;place-items:center;gap:8px;padding:56px 20px;display:grid}.empty-state svg{color:var(--accent-2)}.empty-state p{margin:0}.stack-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:32px;display:grid}.stack-group h4{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);margin:0 0 14px;font-size:.8rem}.skill-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;display:grid}.skill-card{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;font-size:.85rem;font-weight:500;display:flex}.skill-card:hover{box-shadow:0 18px 30px -20px var(--glow);transform:translateY(-4px)}.skill-logo{object-fit:contain;width:40px;height:40px;transition:transform .3s}.skill-card:hover .skill-logo{transform:scale(1.12)rotate(-4deg)}.skill-logo[src*=github],.skill-logo[src*=vercel]{filter:invert()}.skill-fallback{width:40px;height:40px;font-family:var(--font-mono);color:var(--accent-2);background:#2c67ed33;border-radius:10px;place-items:center;font-weight:700;display:grid}.viewer{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050510e0;place-items:center;padding:24px;animation:.3s both fade-up;display:grid;position:fixed;inset:0}.viewer img{border-radius:12px;max-height:85vh;box-shadow:0 30px 80px #0009}.viewer-close{background:#ffffff14;position:absolute;top:20px;right:20px}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.contact-left{gap:24px;display:grid}.panel{padding:28px}.panel-title{font-family:var(--font-display);margin:0 0 18px;font-size:1.25rem}.contact-form,.comment-form{gap:14px;display:grid}.field{gap:6px;display:grid}.field span{color:var(--text-2);font-size:.82rem;font-weight:500}.field input,.field textarea{border:1px solid var(--border);width:100%;color:var(--text);font:inherit;resize:vertical;background:#05051099;border-radius:12px;padding:12px 14px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.field input::placeholder,.field textarea::placeholder{color:#64748b}.field input:focus,.field textarea:focus{border-color:var(--accent-2);outline:none;box-shadow:0 0 0 3px #2c67ed33}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form-error{color:#f87171;margin:0;font-size:.88rem}.toast{color:#86efac;background:#22c55e1f;border:1px solid #22c55e4d;border-radius:12px;align-items:center;gap:8px;margin:0;padding:10px 14px;font-size:.9rem;animation:.4s both fade-up;display:flex}.spin{animation:.9s linear infinite rotate}.social-grid{gap:10px;display:grid}.social-card{border:1px solid var(--border);background:#ffffff05;border-radius:14px;align-items:center;gap:14px;padding:12px 14px;transition:all .25s;display:flex}.social-card:hover{background:#2c67ed14;border-color:#60a5fa66;transform:translate(4px)}.social-card-icon{color:#fff;background:var(--surface-2);border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.social-instagram .social-card-icon{background:linear-gradient(135deg,#f58529,#dd2a7b 50%,#8134af)}.social-facebook .social-card-icon{background:#1877f2}.social-github .social-card-icon{background:#24292f}.social-email .social-card-icon{background:var(--accent)}.social-card-text{flex:1;min-width:0;display:grid}.social-card-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.social-card-arrow{color:var(--muted);transition:transform .25s,color .25s}.social-card:hover .social-card-arrow{color:var(--accent-2);transform:translate(3px,-3px)}.comments-head{align-items:center;gap:14px;margin-bottom:20px;display:flex}.comments-head h3{font-family:var(--font-display);margin:0;font-size:1.25rem}.comments-head p{color:var(--muted);margin:0;font-size:.88rem}.comments-icon{width:44px;height:44px;color:var(--accent-2);background:#2c67ed2e;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.photo-picker{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.photo-btn{border:1px dashed var(--border-strong);color:var(--text-2);border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;transition:border-color .2s;display:inline-flex}.photo-btn:hover{border-color:var(--accent-2)}.photo-hint{color:var(--muted);font-size:.75rem}.photo-preview{width:48px;height:48px;position:relative}.photo-preview img{object-fit:cover;border:2px solid var(--accent-2);border-radius:50%;width:100%;height:100%}.photo-preview button{background:#ef4444;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:-4px;right:-4px}.cooldown{background:#ffffff0f;border-radius:3px;height:3px;overflow:hidden}.cooldown-bar{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--cyan));height:100%;transition:transform .5s linear}.comment-list{border-top:1px solid var(--border);scrollbar-width:thin;gap:12px;max-height:560px;margin-top:24px;padding-top:20px;display:grid;overflow-y:auto}.comment{background:#ffffff05;border-radius:14px;gap:12px;padding:12px;animation:.4s both fade-up;display:flex}.comment-avatar{width:40px;height:40px;color:var(--accent-2);background:#2c67ed33;border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.comment-avatar img{object-fit:cover;width:100%;height:100%}.comment-content{min-width:0}.comment-meta{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.comment-meta strong{font-size:.92rem}.comment-meta span{color:var(--muted);font-size:.75rem}.comment-content p{color:var(--text-2);overflow-wrap:anywhere;white-space:pre-wrap;margin:2px 0 0;font-size:.92rem}.comments-empty{text-align:center;color:var(--muted);margin:10px 0;font-size:.9rem}.footer{border-top:1px solid var(--border);background:linear-gradient(#0000,#2c67ed0d);margin-top:40px;padding:56px 0 28px;position:relative}.footer-top{grid-template-columns:1.6fr 1fr 1fr;gap:32px;display:grid}.footer-brand{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.logo.footer-logo{font-size:1.35rem}.footer-brand strong{font-family:var(--font-display);font-size:1.1rem}.footer-brand p{max-width:320px;color:var(--muted);margin:4px 0 0;font-size:.9rem}.footer-col{align-content:start;gap:8px;display:grid}.footer-col a{color:var(--muted);width:fit-content;font-size:.92rem;transition:color .2s}.footer-col a:hover{color:#fff}.footer-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-2);margin-bottom:4px;font-size:.75rem}.footer-socials{gap:8px;display:flex}.footer-bottom{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:40px;padding-top:20px;font-size:.82rem;display:flex}.back-top{color:var(--text-2);align-items:center;gap:6px;transition:color .2s;display:inline-flex}.back-top:hover{color:var(--accent-2)}.detail{min-height:100svh;padding:60px 0 80px}.breadcrumbs{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:48px;font-size:.82rem;display:flex}.detail-back{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;transition:border-color .2s;display:inline-flex}.detail-back:hover{border-color:var(--accent-2)}.detail-layout{grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}.detail-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(2.4rem,6vw,4rem);line-height:1.05}.detail-desc{color:var(--text-2);margin:0 0 32px;font-size:1.02rem}.detail-subtitle{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-2);margin:0 0 12px;font-size:.78rem}.detail-copy .chip-row{margin-bottom:32px}.detail-preview{position:relative}.detail-preview-glow{background:var(--glow);filter:blur(80px);position:absolute;inset:10%}.detail-window{border:1px solid var(--border-strong);background:var(--surface);border-radius:16px;position:relative;overflow:hidden;box-shadow:0 40px 80px -30px #000c}.detail-window-bar{border-bottom:1px solid var(--border);gap:6px;padding:12px 14px;display:flex}.detail-window-bar span{background:#ef4444;border-radius:50%;width:10px;height:10px}.detail-window-bar span:nth-child(2){background:#eab308}.detail-window-bar span:nth-child(3){background:#22c55e}.detail-window>:last-child{aspect-ratio:16/10}@media (width<=960px){.hero-inner,.about-grid,.experience,.contact-grid,.detail-layout,.soundtrack-card{grid-template-columns:1fr}.hero{padding-top:110px}.hero-copy{text-align:center}.hero-desc{margin-inline:auto}.hero-typewriter,.hero-actions,.hero-socials{justify-content:center}.hero-visual{order:-1;height:480px;margin-top:-40px}.about-grid{gap:40px}.about-copy{text-align:center}.about-actions{justify-content:center}.stats{grid-template-columns:repeat(3,1fr);padding-top:0}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media (width<=720px){.navbar-links{display:none}.navbar-toggle{display:grid}.section{padding:80px 0}.hero-visual{height:440px;margin-bottom:8px}.project-grid,.stats{grid-template-columns:1fr}.panel,.soundtrack-card{padding:20px}.tab-bar{width:100%}.tab-btn{flex:1;justify-content:center;padding:10px 12px}.tab-btn span{display:none}.tab-btn.is-active span{display:inline}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.meteors{display:none}}
