:root{--font-heading:"Outfit", sans-serif;--font-body:"DM Sans", system-ui, -apple-system, sans-serif;--tracking-tighter:-.035em;--tracking-tight:-.02em;--tracking-normal:-.01em;--tracking-wide:.06em;--lh-tight:1.1;--lh-snug:1.35;--lh-body:1.65;--lh-relaxed:1.75;--brand-mono-highlight:oklch(98% 0 0);--brand-mono-surface:#ffffff14;--brand-primary:#fff;--brand-primary-hover:#e4e4e7;--brand-deep:#27272a;--brand-cyan-text:var(--brand-mono-highlight);--brand-cyan-surface:var(--brand-mono-surface)}:root,html.dark{--bg:oklch(12% .005 260);--bg-soft:oklch(16% .006 260);--card:oklch(18% .008 260);--card-hover:oklch(22% .01 260);--card-glass:oklch(18% .008 260/.88);--border:#ffffff29;--border-light:#ffffff8c;--text:oklch(98% 0 0);--text-secondary:oklch(80% .005 260);--muted:oklch(58% .008 260);--accent:oklch(98% 0 0);--accent-rgb:255, 255, 255;--accent-gradient:linear-gradient(135deg, #fff, #a1a1aa);--btn-primary-text:#09090b;--nav-bg:oklch(12% .005 260/.85);--nav-bg-scrolled:oklch(12% .005 260/.95);--nav-mobile-bg:oklch(12% .005 260/.98);--code-bg:oklch(10% .005 260);--code-header:oklch(15% .006 260);--grid-line:#ffffff0d;--input-bg:oklch(15% .006 260);--modal-bg:oklch(16% .006 260);--modal-backdrop:#000000d9;--btn-outline-bg:oklch(18% .008 260);--chip-bg:#ffffff12;--spotlight-aura:#ffffff0f;--shadow-card:none;--shadow-card-hover:0 8px 24px #00000080}html.light{--bg:#f4f4f6;--bg-soft:#e5e7eb;--card:#fff;--card-hover:#fafafa;--card-glass:#fffffff0;--border:#00000026;--border-light:#00000073;--text:#09090b;--text-secondary:#3f3f46;--muted:#71717a;--brand-mono-highlight:#09090b;--brand-mono-surface:#0000000d;--accent:#18181b;--accent-rgb:24, 24, 27;--accent-gradient:linear-gradient(135deg, #18181b, #3f3f46);--btn-primary-text:#fff;--nav-bg:#f4f4f6e0;--nav-bg-scrolled:#fffffff5;--nav-mobile-bg:#fffffffa;--code-bg:#18181b;--code-header:#27272a;--grid-line:#0000000f;--input-bg:#f4f4f5;--modal-bg:#fff;--modal-backdrop:#0009;--btn-outline-bg:#fff;--chip-bg:#0000000d;--spotlight-aura:#00000008;--shadow-card:0 1px 3px #0000000a;--shadow-card-hover:0 8px 24px #00000014}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:var(--font-body);background-color:var(--bg);background-image:radial-gradient(circle at 1px 1px,var(--grid-line) 1px,transparent 0);color:var(--text);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;background-size:32px 32px;transition:background-color .3s,color .3s;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text);letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);transition:color .3s}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background-color:rgba(var(--accent-rgb),.25);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skill-percentage,.stat-num{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.container{width:min(1140px,92%);margin-inline:auto}.section{padding:96px 0;position:relative}.section-header{text-align:center;margin-bottom:50px}.section-title{margin-bottom:12px;font-size:clamp(1.9rem,3.8vw,2.5rem);font-weight:700}.section-title span{color:var(--accent)}.section-subtitle{color:var(--muted);max-width:600px;margin-inline:auto;font-size:1rem}.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-family:inherit;font-size:.92rem;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s,color .2s,background-color .2s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent-gradient);color:var(--btn-primary-text);border:1px solid var(--border-light);font-weight:700}.btn-primary:hover{box-shadow:0 4px 16px rgba(var(--accent-rgb),.25);transform:translateY(-2px)}.btn-outline{background:var(--btn-outline-bg);border-color:var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--border-light);color:var(--text);background:var(--card-hover)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--chip-bg)}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s,background-color .25s}.card:hover{border-color:var(--border-light);box-shadow:0 0 0 1px var(--border-light),var(--shadow-card-hover);transform:translateY(-4px)}.bento-cell{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s,background-color .25s}.bento-cell:hover{border-color:var(--border-light);box-shadow:0 0 0 1px var(--border-light),0 12px 30px #00000059;transform:translateY(-3px)}.reveal-up{opacity:0;transition:opacity .7s ease-out,transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal-up.is-revealed{opacity:1;transform:translateY(0)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skill-icon-wrap .iconify{background-size:100% 100%!important;width:46px!important;height:46px!important}.splash-screen[data-v-fdf6685c]{z-index:9999;background:var(--bg);justify-content:center;align-items:center;transition:transform .8s cubic-bezier(.76,0,.24,1);display:flex;position:fixed;inset:0}.splash-screen.is-leaving[data-v-fdf6685c]{transform:translateY(-100%)}.splash-content[data-v-fdf6685c]{flex-direction:column;align-items:center;gap:16px;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-fdf6685c;display:flex}.splash-logo[data-v-fdf6685c]{-o-object-fit:contain;object-fit:contain;width:72px;height:72px;filter:drop-shadow(0 4px 16px rgba(var(--accent-rgb),.18))}@keyframes pulse-fdf6685c{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.background-elements[data-v-98d96150]{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.cursor-flow-spotlight[data-v-98d96150]{pointer-events:none;background:radial-gradient(circle 750px at var(--cursor-x,50%) var(--cursor-y,40%),var(--spotlight-aura),transparent 75%);opacity:0;z-index:1;transition:opacity .5s;position:absolute;inset:0}.cursor-flow-spotlight.is-active[data-v-98d96150]{opacity:1}.ambient-blobs[data-v-98d96150]{background:radial-gradient(ellipse 650px 550px at 15% 15%,var(--spotlight-aura),transparent 70%),radial-gradient(ellipse 550px 450px at 85% 80%,var(--spotlight-aura),transparent 70%),radial-gradient(ellipse 400px 350px at 50% 50%,var(--spotlight-aura),transparent 70%);position:absolute;inset:0}.decor-element[data-v-98d96150]{color:var(--text-secondary);opacity:.08;transition:opacity .3s;position:absolute}html.light .decor-element[data-v-98d96150]{opacity:.12}.top-right[data-v-98d96150]{width:400px;height:400px;animation:120s linear infinite slow-spin-98d96150;top:-5%;right:-5%}.bottom-left[data-v-98d96150]{width:250px;height:250px;bottom:10%;left:2%}.side-ruler[data-v-98d96150]{width:40px;height:300px;top:40%;right:2%}@keyframes slow-spin-98d96150{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media (width<=860px){.top-right[data-v-98d96150]{width:250px;height:250px;top:5%;right:-10%}.bottom-left[data-v-98d96150],.side-ruler[data-v-98d96150]{display:none}}.navbar[data-v-463cda32]{z-index:1000;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:background-color .3s,border-color .3s,box-shadow .3s;position:sticky;top:0}.navbar.scrolled[data-v-463cda32]{background:var(--nav-bg-scrolled);border-bottom-color:var(--border)}.scroll-progress[data-v-463cda32]{background:var(--accent);transform-origin:0;z-index:1001;width:100%;height:2.5px;transition:transform 80ms linear;position:absolute;top:0;left:0}.navbar-inner[data-v-463cda32]{justify-content:space-between;height:72px}.logo[data-v-463cda32],.navbar-inner[data-v-463cda32]{align-items:center;display:flex}.logo[data-v-463cda32]{letter-spacing:-.01em;gap:10px;font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:800;transition:transform .2s}.logo[data-v-463cda32]:hover{transform:scale(1.03)}.logo-img[data-v-463cda32]{-o-object-fit:contain;object-fit:contain;width:32px;height:32px;filter:drop-shadow(0 2px 8px rgba(var(--accent-rgb),.15));display:block}.logo-text[data-v-463cda32]{color:var(--text);align-items:center;display:flex}.logo-accent[data-v-463cda32]{color:var(--muted);font-weight:500}.nav-links[data-v-463cda32]{align-items:center;gap:32px;display:flex;position:relative}.nav-indicator[data-v-463cda32]{background:var(--text);transform-origin:0;z-index:1;border-radius:2px;width:1px;height:2px;transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .3s;position:absolute;bottom:-2px;left:0}.nav-links a[data-v-463cda32]{color:var(--muted);z-index:2;padding:6px 2px;font-size:.95rem;font-weight:500;transition:color .25s;position:relative}.nav-links a[data-v-463cda32]:hover{color:var(--text)}.nav-links a.active[data-v-463cda32]{color:var(--text);font-weight:700}.btn-nav-cta[data-v-463cda32],.mobile-actions[data-v-463cda32]{display:none}.nav-actions[data-v-463cda32]{gap:14px}.btn-theme-toggle[data-v-463cda32],.nav-actions[data-v-463cda32]{align-items:center;display:flex}.btn-theme-toggle[data-v-463cda32]{background:var(--btn-outline-bg);border:1px solid var(--border);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;transition:all .25s}.btn-theme-toggle[data-v-463cda32]:hover{border-color:var(--border-light);transform:scale(1.05)}.theme-icon[data-v-463cda32]{color:var(--text);justify-content:center;align-items:center;display:flex}.rotate-fade-enter-active[data-v-463cda32],.rotate-fade-leave-active[data-v-463cda32]{transition:all .25s cubic-bezier(.16,1,.3,1)}.rotate-fade-enter-from[data-v-463cda32]{opacity:0;transform:rotate(-90deg)scale(.5)}.rotate-fade-leave-to[data-v-463cda32]{opacity:0;transform:rotate(90deg)scale(.5)}.btn-sm[data-v-463cda32]{border-radius:10px;padding:8px 18px;font-size:.88rem}.hamburger[data-v-463cda32]{cursor:pointer;z-index:1002;background:0 0;border:none;flex-direction:column;justify-content:space-around;width:32px;height:32px;padding:4px;display:none}.bar[data-v-463cda32]{background:var(--text);border-radius:2px;width:100%;height:2px;transition:all .3s cubic-bezier(.16,1,.3,1)}.hamburger.active .bar-1[data-v-463cda32]{transform:translateY(8px)rotate(45deg)}.hamburger.active .bar-2[data-v-463cda32]{opacity:0;transform:translate(10px)}.hamburger.active .bar-3[data-v-463cda32]{transform:translateY(-8px)rotate(-45deg)}@media (width<=768px){.cta-desktop[data-v-463cda32]{display:none}.hamburger[data-v-463cda32]{display:flex}.mobile-actions[data-v-463cda32]{flex-direction:column;gap:12px;width:100%;margin-top:10px;display:flex}.mobile-theme-btn[data-v-463cda32]{justify-content:flex-start;width:100%;height:auto;padding:12px;font-size:.95rem;font-weight:600}.theme-label[data-v-463cda32]{margin-left:8px}.nav-links[data-v-463cda32]{background:var(--nav-mobile-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);opacity:0;flex-direction:column;align-items:flex-start;gap:18px;max-height:0;padding:24px 8%;transition:all .35s cubic-bezier(.16,1,.3,1);position:fixed;top:72px;left:0;right:0;overflow:hidden}.nav-links.open[data-v-463cda32]{opacity:1;max-height:480px;padding:24px 8%;box-shadow:0 15px 30px #0003}.nav-links a[data-v-463cda32]{width:100%;padding:10px 0;font-size:1.05rem}.btn-nav-cta[data-v-463cda32]{text-align:center;background:var(--accent);border-radius:10px;font-weight:600;display:inline-block;color:var(--btn-primary-text)!important;padding:12px 20px!important}}.footer[data-v-9308fa96]{border-top:1px solid var(--border);background:var(--bg-soft);padding:60px 0 40px;transition:background-color .3s,border-color .3s}.footer-inner[data-v-9308fa96]{gap:36px}.footer-brand[data-v-9308fa96],.footer-inner[data-v-9308fa96]{flex-direction:column;display:flex}.footer-brand[data-v-9308fa96]{gap:10px}.brand-row[data-v-9308fa96]{align-items:center;gap:10px;display:flex}.footer-logo-img[data-v-9308fa96]{-o-object-fit:contain;object-fit:contain;width:28px;height:28px;filter:drop-shadow(0 2px 8px rgba(var(--accent-rgb),.15))}.brand-title[data-v-9308fa96]{font-family:var(--font-heading);color:var(--text);font-size:1.25rem;font-weight:800}.brand-accent[data-v-9308fa96]{color:var(--muted);font-weight:500}.brand-desc[data-v-9308fa96]{color:var(--muted);max-width:400px;font-size:.92rem}.footer-nav[data-v-9308fa96]{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:24px;padding-bottom:24px;display:flex}.footer-nav a[data-v-9308fa96]{color:var(--muted);font-size:.92rem;font-weight:500;transition:color .2s}.footer-nav a[data-v-9308fa96]:hover{color:var(--accent)}.footer-bottom[data-v-9308fa96]{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:.88rem;display:flex}.socials[data-v-9308fa96]{gap:20px;display:flex}.socials a[data-v-9308fa96]{color:var(--muted);transition:color .2s}.socials a[data-v-9308fa96]:hover{color:var(--accent)}@media (width<=640px){.footer-bottom[data-v-9308fa96]{flex-direction:column;align-items:flex-start}}.back-to-top[data-v-ec93f690]{background:var(--card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);cursor:pointer;z-index:90;width:48px;height:48px;box-shadow:var(--shadow-card);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .25s,border-color .25s,box-shadow .25s,background-color .3s;display:flex;position:fixed;bottom:28px;left:28px}.back-to-top[data-v-ec93f690]:hover{border-color:var(--accent);box-shadow:var(--shadow-card);transform:translateY(-4px)scale(1.05)}.progress-ring[data-v-ec93f690]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.progress-ring__circle[data-v-ec93f690]{transition:stroke-dashoffset .1s}.arrow[data-v-ec93f690]{color:var(--text);z-index:1;justify-content:center;align-items:center;transition:color .2s,transform .2s;display:flex}.back-to-top:hover .arrow[data-v-ec93f690]{color:var(--accent);transform:translateY(-2px)}.fade-scale-enter-active[data-v-ec93f690],.fade-scale-leave-active[data-v-ec93f690]{transition:all .3s cubic-bezier(.16,1,.3,1)}.fade-scale-enter-from[data-v-ec93f690],.fade-scale-leave-to[data-v-ec93f690]{opacity:0;transform:scale(.6)}.toast-container[data-v-1d5cbf90]{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;max-width:380px;display:flex;position:fixed;bottom:28px;right:28px}.toast-item[data-v-1d5cbf90]{pointer-events:auto;cursor:pointer;background:var(--card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-light);box-shadow:var(--shadow-card-hover);color:var(--text);border-radius:12px;align-items:center;gap:12px;padding:14px 18px;font-size:.92rem;font-weight:500;display:flex}.toast-item.success[data-v-1d5cbf90]{border-color:var(--border-light)}.toast-icon[data-v-1d5cbf90]{color:var(--accent);justify-content:center;align-items:center;display:flex}.toast-text[data-v-1d5cbf90]{flex:1}.toast-close[data-v-1d5cbf90]{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.2rem;line-height:1}.toast-enter-active[data-v-1d5cbf90],.toast-leave-active[data-v-1d5cbf90]{transition:all .3s cubic-bezier(.16,1,.3,1)}.toast-enter-from[data-v-1d5cbf90]{opacity:0;transform:translateY(20px)scale(.95)}.toast-leave-to[data-v-1d5cbf90]{opacity:0;transform:translate(40px)scale(.95)}.app-shell[data-v-cfc61f46]{position:relative}
