.theme-toggle[data-v-7d0ce898]{border:1px solid var(--border);background:var(--surface);cursor:pointer;box-shadow:0 10px 30px var(--shadow);border-radius:999px;padding:4px}.theme-toggle__track[data-v-7d0ce898]{background:linear-gradient(135deg, var(--accent-soft), var(--surface-2));border-radius:999px;align-items:center;width:54px;height:28px;display:flex;position:relative}.theme-toggle__thumb[data-v-7d0ce898]{background:var(--text);width:24px;height:24px;color:var(--bg);border-radius:50%;place-items:center;font-size:13px;transition:transform .25s,background .25s;display:grid;transform:translate(2px)}:root[data-theme=light]{transform:translate(28px)}.navbar[data-v-93525104]{z-index:100;height:var(--navbar-height);transition:background var(--transition-base), backdrop-filter var(--transition-base), border-color var(--transition-base);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.navbar.scrolled[data-v-93525104]{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(18px);border-bottom-color:var(--border)}.navbar-inner[data-v-93525104]{justify-content:space-between;align-items:center;height:100%;display:flex}.logo[data-v-93525104]{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text);cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:1.15rem;font-weight:600}.logo[data-v-93525104]:hover{opacity:.75}.logo-dot[data-v-93525104]{color:var(--accent)}.nav-links[data-v-93525104]{align-items:center;gap:.25rem;display:flex}.nav-link[data-v-93525104]{border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;padding:.45rem .85rem;font-size:.875rem;font-weight:500;position:relative}.nav-link[data-v-93525104]:hover{color:var(--text);background:var(--surface-2)}.nav-link.active[data-v-93525104]{color:var(--accent)}.nav-link.active[data-v-93525104]:after{content:"";background:var(--accent);border-radius:1px;width:18px;height:2px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.btn-sm[data-v-93525104]{margin-left:.5rem;padding:.4rem 1rem;font-size:.82rem}.navbar-right[data-v-93525104]{align-items:center;gap:.75rem;display:flex}.hamburger[data-v-93525104]{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:8px;display:none}.hamburger span[data-v-93525104]{background:var(--muted);width:22px;height:2px;transition:all var(--transition-base);border-radius:1px;display:block}.hamburger.open span[data-v-93525104]:first-child{transform:translateY(7px)rotate(45deg)}.hamburger.open span[data-v-93525104]:nth-child(2){opacity:0}.hamburger.open span[data-v-93525104]:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=768px){.hamburger[data-v-93525104]{display:flex}.nav-links[data-v-93525104]{top:var(--navbar-height);background:color-mix(in srgb, var(--surface) 97%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:.25rem;padding:1rem;display:none;position:absolute;left:0;right:0}.nav-links.open[data-v-93525104]{display:flex}.nav-link[data-v-93525104]{text-align:left;padding:.75rem 1rem}.btn-sm[data-v-93525104]{text-align:center;justify-content:center;margin-top:.5rem;margin-left:0}}.footer[data-v-1f9922f9]{border-top:1px solid var(--border);background:var(--surface-2);padding:2rem 0}.footer-inner[data-v-1f9922f9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-brand[data-v-1f9922f9]{align-items:baseline;gap:.5rem;display:flex}.footer-name[data-v-1f9922f9]{font-family:var(--font-mono);color:var(--text);font-size:1rem;font-weight:600}.dot[data-v-1f9922f9]{color:var(--accent)}.footer-sub[data-v-1f9922f9]{color:var(--muted-2);font-size:.75rem}.footer-copy[data-v-1f9922f9]{color:var(--muted-2);font-size:.78rem}.footer-links[data-v-1f9922f9]{gap:1.25rem;display:flex}.footer-link[data-v-1f9922f9]{color:var(--muted-2);transition:color var(--transition-fast);font-size:.82rem}.footer-link[data-v-1f9922f9]:hover{color:var(--accent)}@media (width<=640px){.footer-inner[data-v-1f9922f9]{flex-direction:column;align-items:flex-start;gap:.75rem}}:root{--cursor-glow-rgb:255, 106, 0}.cursor-glow{pointer-events:none;z-index:8;will-change:transform;background:radial-gradient(circle, rgba(var(--cursor-glow-rgb), .38) 0%, rgba(var(--cursor-glow-rgb), .2) 22%, rgba(var(--cursor-glow-rgb), .09) 45%, transparent 72%);filter:blur(6px);mix-blend-mode:screen;opacity:.92;border-radius:50%;width:480px;height:480px;position:fixed;top:0;left:0;transform:translate(-9999px,-9999px)}:root[data-theme=light] .cursor-glow{opacity:.28;mix-blend-mode:multiply;background:radial-gradient(circle, rgba(var(--cursor-glow-rgb), .22) 0%, rgba(var(--cursor-glow-rgb), .1) 30%, transparent 68%)}@media (width<=1024px){.cursor-glow{display:none}}@media (prefers-reduced-motion:reduce){.cursor-glow{display:none}}.cc-dot-wrap[data-v-938a684c],.cc-ring-wrap[data-v-938a684c]{pointer-events:none;will-change:transform;z-index:9999;transition:opacity .3s;position:fixed;top:0;left:0;transform:translate(-200px,-200px)}.cc-ring-wrap[data-v-938a684c]{z-index:9998}.cc-hidden[data-v-938a684c],.cc-obscured[data-v-938a684c]{opacity:0}.cc-dot[data-v-938a684c]{background:rgba(var(--cursor-glow-rgb), 1);width:6px;height:6px;box-shadow:0 0 8px rgba(var(--cursor-glow-rgb), .55);border-radius:50%;transition:transform .12s,background .4s,box-shadow .4s}.cc-dot.cc-click[data-v-938a684c]{transform:scale(.5)}.cc-ring[data-v-938a684c]{border:1.5px solid rgba(var(--cursor-glow-rgb), .75);opacity:.45;width:56px;height:56px;box-shadow:0 0 10px rgba(var(--cursor-glow-rgb), .18), inset 0 0 8px rgba(var(--cursor-glow-rgb), .08);border-radius:50%;transition:transform .38s cubic-bezier(.34,1.56,.64,1),opacity .3s,border-color .4s,box-shadow .3s;transform:scale(.571)}.cc-ring.cc-hover[data-v-938a684c]{opacity:.85;box-shadow:0 0 24px rgba(var(--cursor-glow-rgb), .32), inset 0 0 16px rgba(var(--cursor-glow-rgb), .14);transform:scale(1)}.cc-ring.cc-click[data-v-938a684c]{opacity:.5;transition:transform .12s,opacity .12s;transform:scale(.36)}.custom-cursor-active,.custom-cursor-active *{cursor:none!important}.custom-cursor-active input,.custom-cursor-active textarea,.custom-cursor-active select,.custom-cursor-active [contenteditable]{cursor:text!important}@media (hover:none),(pointer:coarse){.custom-cursor-active,.custom-cursor-active *{cursor:auto!important}}main[data-v-0e88889e]{padding-top:var(--navbar-height)}.animated-bg[data-v-ccbdd312]{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.grid-overlay[data-v-ccbdd312]{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(85% 85%,#000 20%,#0000 100%);mask-image:radial-gradient(85% 85%,#000 20%,#0000 100%)}.grid--subtle[data-v-ccbdd312]{opacity:.5;background-size:80px 80px}.grid--strong[data-v-ccbdd312]{background-size:45px 45px}.blob[data-v-ccbdd312]{filter:blur(72px);border-radius:50%;position:absolute}.blob-orange[data-v-ccbdd312]{background:radial-gradient(circle, rgba(255, 106, 0, var(--blob-orange-alpha)) 0%, transparent 70%);width:520px;height:520px;animation:13s ease-in-out infinite blobFloat-ccbdd312;top:-12%;right:-6%}.blob-orange.blob--subtle[data-v-ccbdd312]{opacity:.65}.blob-orange.blob--strong[data-v-ccbdd312]{width:640px;height:640px}.blob-purple[data-v-ccbdd312]{background:radial-gradient(circle, rgba(168, 85, 247, var(--blob-purple-alpha)) 0%, transparent 70%);width:420px;height:420px;animation:18s ease-in-out infinite reverse blobFloat-ccbdd312;bottom:8%;left:-6%}.blob-blue[data-v-ccbdd312]{background:radial-gradient(circle, rgba(56, 189, 248, var(--blob-blue-alpha)) 0%, transparent 70%);width:280px;height:280px;animation:22s ease-in-out infinite blobFloat-ccbdd312;top:45%;left:42%}@keyframes blobFloat-ccbdd312{0%,to{transform:translate(0)scale(1)}30%{transform:translate(18px,-28px)scale(1.04)}65%{transform:translate(-14px,14px)scale(.96)}}@media (prefers-reduced-motion:reduce){.blob[data-v-ccbdd312]{animation:none}}.badges-layer[data-v-db8cddb4]{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.float-badge[data-v-db8cddb4]{font-family:var(--font-mono);color:var(--muted);background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 14px var(--shadow), inset 0 1px 0 #ffffff0d;white-space:nowrap;will-change:transform;-webkit-user-select:none;user-select:none;opacity:0;border-radius:999px;padding:.28rem .88rem;font-size:.7rem;font-weight:500;animation:.55s cubic-bezier(.16,1,.3,1) forwards badgeAppear-db8cddb4;position:absolute;top:0;left:0}.float-badge[data-v-db8cddb4]:first-child{animation-delay:.1s}.float-badge[data-v-db8cddb4]:nth-child(2){animation-delay:.18s}.float-badge[data-v-db8cddb4]:nth-child(3){animation-delay:.26s}.float-badge[data-v-db8cddb4]:nth-child(4){animation-delay:.34s}.float-badge[data-v-db8cddb4]:nth-child(5){animation-delay:.42s}.float-badge[data-v-db8cddb4]:nth-child(6){animation-delay:.5s}.float-badge[data-v-db8cddb4]:nth-child(7){animation-delay:.58s}.float-badge[data-v-db8cddb4]:nth-child(8){animation-delay:.66s}@keyframes badgeAppear-db8cddb4{0%{opacity:0}to{opacity:.82}}@media (width<=768px){.badges-layer[data-v-db8cddb4]{display:none}}@media (prefers-reduced-motion:reduce){.float-badge[data-v-db8cddb4]{opacity:.68;animation:none}}.hero[data-v-032f8dc9]{align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-content[data-v-032f8dc9]{z-index:2;opacity:0;padding:5rem 0 4rem;transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(28px)}.hero-content.visible[data-v-032f8dc9]{opacity:1;transform:translateY(0)}.hero-eyebrow[data-v-032f8dc9]{font-family:var(--font-mono);color:var(--muted);letter-spacing:.02em;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.82rem;display:flex}.mono-tag[data-v-032f8dc9]{color:var(--accent)}.hero-name[data-v-032f8dc9]{letter-spacing:-.03em;color:var(--heading);margin-bottom:.6rem;font-size:clamp(3rem,8.5vw,6.5rem);font-weight:700;line-height:1.02}.hero-title[data-v-032f8dc9]{color:var(--accent);font-size:clamp(.95rem,2.2vw,1.3rem);font-weight:500;font-family:var(--font-mono);letter-spacing:.03em;align-items:center;gap:.4rem;margin-bottom:1.5rem;display:flex}.title-cursor[data-v-032f8dc9]{color:var(--accent);animation:1.1s step-end infinite cursorBlink-032f8dc9}@keyframes cursorBlink-032f8dc9{0%,to{opacity:1}50%{opacity:0}}.hero-sub[data-v-032f8dc9]{color:var(--muted);max-width:490px;margin-bottom:2.5rem;font-size:clamp(.88rem,1.8vw,1rem);line-height:1.78}.hero-actions[data-v-032f8dc9]{flex-wrap:wrap;gap:.75rem;display:flex}.hero-scroll-hint[data-v-032f8dc9]{opacity:.45;transition:opacity var(--transition-base);cursor:pointer;background:0 0;border:none;align-items:center;gap:.8rem;margin-top:4.5rem;padding:0;display:flex}.hero-scroll-hint[data-v-032f8dc9]:hover{opacity:.8}.scroll-mouse[data-v-032f8dc9]{width:20px;height:32px;color:var(--muted);border:1.5px solid;border-radius:10px;justify-content:center;align-items:flex-start;padding-top:5px;display:flex}.scroll-wheel[data-v-032f8dc9]{background:var(--muted);border-radius:2px;width:3px;height:6px;animation:1.8s ease-in-out infinite scrollWheel-032f8dc9}@keyframes scrollWheel-032f8dc9{0%{opacity:1;transform:translateY(0)}60%{opacity:0;transform:translateY(8px)}to{opacity:0;transform:translateY(0)}}.scroll-label[data-v-032f8dc9]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.68rem}@media (width<=768px){.hero-actions[data-v-032f8dc9]{flex-direction:column;align-items:stretch}.hero-actions .btn[data-v-032f8dc9]{justify-content:center}.hero-content[data-v-032f8dc9]{padding:3rem 0}}@media (prefers-reduced-motion:reduce){.hero-content[data-v-032f8dc9]{opacity:1;transition:none;transform:none}.title-cursor[data-v-032f8dc9],.scroll-wheel[data-v-032f8dc9]{animation:none}}.accent[data-v-3750e714]{color:var(--accent)}.about-grid[data-v-3750e714]{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;display:grid}.about-text[data-v-3750e714]{color:var(--muted);margin-bottom:1rem;font-size:.975rem;line-height:1.8}.about-right[data-v-3750e714]{flex-direction:column;gap:.85rem;display:flex}.principle-card[data-v-3750e714]{border-radius:var(--radius-md);background:linear-gradient(145deg, var(--surface-2) 0%, var(--surface) 100%);border:1px solid var(--border);border-left:3px solid var(--accent);padding:1.35rem 1.5rem;transition:border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.34,1.56,.64,1),background .3s;position:relative;overflow:hidden}.principle-card[data-v-3750e714]:hover{border-color:var(--border-accent);border-left-color:var(--accent);background:linear-gradient(145deg, var(--surface-2) 0%, var(--surface-hover) 100%);box-shadow:-4px 0 20px var(--accent-glow), 0 8px 28px #00000059;transform:translate(5px)}.card-num[data-v-3750e714]{font-size:4.5rem;font-family:var(--font-mono);color:var(--accent);opacity:.07;-webkit-user-select:none;user-select:none;pointer-events:none;font-weight:700;line-height:1;transition:opacity .3s;position:absolute;bottom:.4rem;right:1rem}.principle-card:hover .card-num[data-v-3750e714]{opacity:.13}.card-header[data-v-3750e714]{align-items:center;gap:.55rem;margin-bottom:.55rem;display:flex}.card-icon[data-v-3750e714]{color:var(--accent);opacity:.85;flex-shrink:0;align-items:center;transition:opacity .2s,transform .25s cubic-bezier(.34,1.56,.64,1);display:flex}.principle-card:hover .card-icon[data-v-3750e714]{opacity:1;transform:scale(1.15)}.card-label[data-v-3750e714]{color:var(--text);letter-spacing:.01em;font-size:.9rem;font-weight:700}.card-desc[data-v-3750e714]{color:var(--muted);font-size:.84rem;line-height:1.65}@media (width<=768px){.about-grid[data-v-3750e714]{grid-template-columns:1fr;gap:2rem}}@media (prefers-reduced-motion:reduce){.principle-card[data-v-3750e714]{transition:border-color .2s}.principle-card[data-v-3750e714]:hover{transform:none}.card-icon[data-v-3750e714]{transition:none}}.section-header[data-v-6b6c1906]{margin-bottom:2.5rem}.skills-grid[data-v-6b6c1906]{grid-template-columns:repeat(3,1fr);align-items:start;gap:1.25rem;display:grid}.skill-card[data-v-6b6c1906]{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);cursor:pointer;outline:none;padding:1.4rem 1.5rem;transition:border-color .3s,box-shadow .3s,background .3s,transform .25s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.skill-card[data-v-6b6c1906]:hover,.skill-card.active[data-v-6b6c1906]{border-color:var(--group-color);background:color-mix(in srgb, var(--group-color) 4%, var(--surface));box-shadow:0 8px 30px #0000004d, 0 0 24px color-mix(in srgb, var(--group-color) 20%, transparent);transform:translateY(-5px)}.skill-card[data-v-6b6c1906]:focus-visible{box-shadow:0 0 0 2px var(--group-color)}.card-glow[data-v-6b6c1906]{background:radial-gradient(ellipse 70% 50% at 50% 0%, color-mix(in srgb, var(--group-color) 16%, transparent), transparent 70%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.skill-card:hover .card-glow[data-v-6b6c1906],.skill-card.active .card-glow[data-v-6b6c1906]{opacity:1}.card-top[data-v-6b6c1906]{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.card-icon[data-v-6b6c1906]{color:var(--group-color);flex-shrink:0;font-size:.85rem;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.skill-card:hover .card-icon[data-v-6b6c1906]{transform:rotate(45deg)scale(1.2)}.card-label[data-v-6b6c1906]{color:var(--text);flex:1;font-size:.92rem;font-weight:600;line-height:1.2}.card-count[data-v-6b6c1906]{font-family:var(--font-mono);color:var(--muted-2);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex-shrink:0;padding:.12rem .48rem;font-size:.68rem}.chip-list[data-v-6b6c1906]{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.skill-chip[data-v-6b6c1906]{font-size:.72rem;font-family:var(--font-mono);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.22rem .62rem;font-weight:500;transition:color .2s,border-color .2s,background .2s,transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.skill-chip[data-v-6b6c1906]:hover{transform:translateY(-2px)scale(1.06);box-shadow:0 4px 10px #0003}.skill-card:hover .skill-chip[data-v-6b6c1906],.skill-card.active .skill-chip[data-v-6b6c1906]{color:color-mix(in srgb, var(--group-color) 85%, #fff 15%);border-color:color-mix(in srgb, var(--group-color) 30%, transparent);background:color-mix(in srgb, var(--group-color) 8%, var(--surface-2))}.skill-chip[data-v-6b6c1906]:first-child{transition-delay:0s}.skill-chip[data-v-6b6c1906]:nth-child(2){transition-delay:20ms}.skill-chip[data-v-6b6c1906]:nth-child(3){transition-delay:40ms}.skill-chip[data-v-6b6c1906]:nth-child(4){transition-delay:60ms}.skill-chip[data-v-6b6c1906]:nth-child(5){transition-delay:80ms}.skill-chip[data-v-6b6c1906]:nth-child(6){transition-delay:.1s}.card-bar[data-v-6b6c1906]{background:var(--border);border-radius:2px;height:2px;margin-top:1.2rem;overflow:hidden}.card-bar-fill[data-v-6b6c1906]{background:linear-gradient(90deg, color-mix(in srgb, var(--group-color) 60%, transparent), var(--group-color));width:0%;height:100%;box-shadow:0 0 8px var(--group-color);border-radius:2px;transition:width .55s cubic-bezier(.16,1,.3,1)}.skill-card:hover .card-bar-fill[data-v-6b6c1906],.skill-card.active .card-bar-fill[data-v-6b6c1906]{width:100%}@media (width<=1024px){.skills-grid[data-v-6b6c1906]{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.skills-grid[data-v-6b6c1906]{grid-template-columns:1fr}}.section-subtitle[data-v-6b6c1906]{min-height:1.7em}.focus-label[data-v-6b6c1906]{font-weight:600;transition:color .3s}.card-pulse[data-v-6b6c1906]{border-radius:inherit;box-shadow:inset 0 0 22px var(--group-color);pointer-events:none;z-index:1;animation:2s ease-in-out infinite cardPulse-6b6c1906;position:absolute;inset:0}@keyframes cardPulse-6b6c1906{0%,to{opacity:.12}50%{opacity:.42}}@media (prefers-reduced-motion:reduce){.skill-card[data-v-6b6c1906]:hover,.skill-chip[data-v-6b6c1906]:hover{transform:none}.card-icon[data-v-6b6c1906]{transition:none}.card-pulse[data-v-6b6c1906]{opacity:.25;animation:none}}@property --border-glow-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.project-card[data-v-55001035]{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);transform-style:preserve-3d;will-change:transform;flex-direction:column;transition:border-color .35s,box-shadow .35s,transform .4s cubic-bezier(.23,1,.32,1);display:flex;position:relative;overflow:hidden}.project-card[data-v-55001035]:hover{border-color:color-mix(in srgb, var(--card-accent,var(--accent)) 70%, transparent);animation:2.2s ease-in-out infinite cardBorderPulse-55001035}@keyframes cardBorderPulse-55001035{0%,to{box-shadow:0 16px 48px #0000006b, 0 0 0 1px color-mix(in srgb, var(--card-accent,var(--accent)) 55%, transparent), 0 0 22px color-mix(in srgb, var(--card-accent,var(--accent)) 14%, transparent)}50%{box-shadow:0 24px 64px #00000080, 0 0 0 1.5px color-mix(in srgb, var(--card-accent,var(--accent)) 95%, transparent), 0 0 44px color-mix(in srgb, var(--card-accent,var(--accent)) 28%, transparent)}}.card-visual[data-v-55001035]{height:140px;animation:cardVisualBreath-55001035 7s ease-in-out var(--breath-delay,0s) infinite;flex-shrink:0;position:relative;overflow:hidden}@keyframes cardVisualBreath-55001035{0%,to{filter:brightness()saturate()}50%{filter:brightness(1.1)saturate(1.08)}}.visual-grid[data-v-55001035]{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0}.visual-shimmer[data-v-55001035]{background:linear-gradient(105deg,#0000 40%,#ffffff0d 50%,#0000 60%) -100% 0/200% 100%;transition:background-position;position:absolute;inset:0}.project-card:hover .visual-shimmer[data-v-55001035]{background-position:200% 0;transition:background-position .65s}.visual-orb[data-v-55001035]{background:color-mix(in srgb, var(--card-accent,var(--accent)) 30%, transparent);filter:blur(24px);opacity:0;border-radius:50%;width:130px;height:90px;transition:opacity .4s;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.project-card:hover .visual-orb[data-v-55001035]{opacity:1}.card-category[data-v-55001035]{font-family:var(--font-mono);color:var(--card-accent,var(--accent));border:1px solid color-mix(in srgb, var(--card-accent,var(--accent)) 35%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;border-radius:999px;padding:.2rem .65rem;font-size:.68rem;font-weight:500;position:absolute;top:.75rem;right:.75rem}.card-body[data-v-55001035]{flex-direction:column;flex:1;gap:.8rem;padding:1.4rem;display:flex}.card-title[data-v-55001035]{color:var(--text);transition:color var(--transition-fast);font-size:1rem;font-weight:600;line-height:1.3}.project-card:hover .card-title[data-v-55001035]{color:color-mix(in srgb, var(--card-accent,var(--accent)) 30%, var(--text))}.card-desc[data-v-55001035]{color:var(--muted);flex:1;font-size:.82rem;line-height:1.65}.card-stack[data-v-55001035]{flex-wrap:wrap;gap:.38rem;display:flex}[data-v-55001035] .badge{transition:border-color .2s,color .2s,transform .2s cubic-bezier(.34,1.56,.64,1)}[data-v-55001035] .badge:hover{transform:translateY(-2px)}.project-card[data-v-55001035]:hover .badge{border-color:color-mix(in srgb, var(--card-accent,var(--accent)) 25%, transparent);color:var(--text)}.card-actions[data-v-55001035]{flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.2rem;display:flex}.card-btn[data-v-55001035]{border-radius:var(--radius-md);font-size:.78rem;font-weight:500;font-family:var(--font-sans);white-space:nowrap;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform .18s cubic-bezier(.34, 1.56, .64, 1);align-items:center;gap:.38rem;padding:.34rem .85rem;text-decoration:none;display:inline-flex}.card-btn[data-v-55001035]:hover{transform:translateY(-2px)}.card-btn[data-v-55001035]:active{transform:translateY(0)}.card-btn-ghost[data-v-55001035]{border:1px solid var(--border);color:var(--muted);background:0 0}.card-btn-ghost[data-v-55001035]:hover{border-color:var(--border-accent);color:var(--text);background:var(--accent-soft);box-shadow:var(--shadow-glow-sm)}.card-btn-demo[data-v-55001035]{color:#818cf8;background:#6366f114;border:1px solid #6366f166}.card-btn-demo[data-v-55001035]:hover{background:#6366f12e;border-color:#818cf8;box-shadow:0 0 14px #6366f152}.card-btn-website[data-v-55001035]{color:#4ade80;background:#22c55e14;border:1px solid #22c55e66}.card-btn-website[data-v-55001035]:hover{background:#22c55e2e;border-color:#4ade80;box-shadow:0 0 14px #22c55e52}.card-private-note[data-v-55001035]{font-size:.72rem;font-family:var(--font-mono);color:var(--muted-2);opacity:.7;align-items:center;gap:.38rem;margin-top:auto;padding-top:.2rem;display:flex}@media (prefers-reduced-motion:reduce){.project-card[data-v-55001035]{transition:border-color .2s,box-shadow .2s}.project-card[data-v-55001035]:hover{animation:none;transform:none!important}.card-visual[data-v-55001035]{animation:none}.card-btn[data-v-55001035]{transition:background .15s,border-color .15s}.card-btn[data-v-55001035]:hover{transform:none}}.section-header[data-v-f39f99e1]{margin-bottom:2rem}.filter-bar[data-v-f39f99e1]{flex-wrap:wrap;gap:.45rem;margin-bottom:2.5rem;display:flex}.filter-btn[data-v-f39f99e1]{font-size:.82rem;font-weight:500;font-family:var(--font-mono);color:var(--muted-2);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), transform .2s cubic-bezier(.34, 1.56, .64, 1);border-radius:999px;align-items:center;gap:.4rem;padding:.42rem 1rem;display:inline-flex;position:relative}.filter-btn[data-v-f39f99e1]:hover{color:var(--text);background:var(--surface-hover);border-color:#ff6a0033;transform:translateY(-1px)}.filter-btn[data-v-f39f99e1]:active{transform:translateY(0)}.filter-btn.active[data-v-f39f99e1]{color:var(--accent);border-color:var(--border-accent);background:#ff6a001f;box-shadow:0 0 14px #ff6a0024}.filter-active-dot[data-v-f39f99e1]{background:var(--accent);width:5px;height:5px;box-shadow:0 0 6px var(--accent);border-radius:50%;animation:2s ease-in-out infinite dotPulse-f39f99e1;display:inline-block}@keyframes dotPulse-f39f99e1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.75)}}.projects-grid[data-v-f39f99e1]{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.project-card-enter-active[data-v-f39f99e1]{transition:opacity .38s,transform .38s cubic-bezier(.16,1,.3,1)}.project-card-leave-active[data-v-f39f99e1]{pointer-events:none;transition:opacity .12s}.project-card-enter-from[data-v-f39f99e1]{opacity:0;transform:translateY(18px)scale(.97)}.project-card-leave-to[data-v-f39f99e1]{opacity:0}.project-card-move[data-v-f39f99e1]{transition:transform .35s}.empty-state[data-v-f39f99e1]{border-radius:var(--radius-lg);border:1px dashed var(--border);background:var(--surface);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;margin-top:0;padding:4rem 2rem;display:flex}.empty-icon[data-v-f39f99e1]{color:var(--muted-2);font-size:2.5rem;line-height:1}.empty-text[data-v-f39f99e1]{color:var(--muted-2);font-size:.9rem}.empty-reset[data-v-f39f99e1]{margin-top:.25rem;padding:.4rem 1rem;font-size:.82rem}.empty-enter-active[data-v-f39f99e1],.empty-leave-active[data-v-f39f99e1]{transition:opacity .25s}.empty-enter-from[data-v-f39f99e1],.empty-leave-to[data-v-f39f99e1]{opacity:0}@media (width<=1024px){.projects-grid[data-v-f39f99e1]{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.projects-grid[data-v-f39f99e1]{grid-template-columns:1fr}}.section-header[data-v-dd1af0b3]{margin-bottom:3rem}.timeline[data-v-dd1af0b3]{max-width:780px}.timeline-item[data-v-dd1af0b3]{grid-template-columns:48px 1fr;gap:0 1.5rem;display:grid}.timeline-line[data-v-dd1af0b3]{flex-direction:column;align-items:center;padding-top:1.35rem;display:flex}.timeline-dot[data-v-dd1af0b3]{background:var(--item-color);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--item-color) 18%, transparent), 0 0 12px color-mix(in srgb, var(--item-color) 45%, transparent);transition:box-shadow var(--transition-base);border-radius:50%;flex-shrink:0}.timeline-item:hover .timeline-dot[data-v-dd1af0b3]{box-shadow:0 0 0 4px color-mix(in srgb, var(--item-color) 25%, transparent), 0 0 20px color-mix(in srgb, var(--item-color) 60%, transparent)}.timeline-connector[data-v-dd1af0b3]{background:linear-gradient(to bottom, var(--item-color), var(--border));opacity:.5;flex:1;width:2px;min-height:32px;margin:10px 0}.timeline-card[data-v-dd1af0b3]{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);margin-bottom:1.5rem;padding:1.3rem 1.6rem}.timeline-card[data-v-dd1af0b3]:hover{border-color:color-mix(in srgb, var(--item-color) 42%, transparent);box-shadow:0 8px 32px #00000047, 0 0 0 1px color-mix(in srgb, var(--item-color) 12%, transparent);transform:translateY(-2px)}.timeline-role[data-v-dd1af0b3]{color:var(--text);margin-bottom:.28rem;font-size:1.02rem;font-weight:600;line-height:1.3}.timeline-company[data-v-dd1af0b3]{color:var(--item-color);letter-spacing:.01em;opacity:.9;margin-bottom:.55rem;font-size:.82rem;font-weight:500}.timeline-meta[data-v-dd1af0b3]{flex-wrap:wrap;align-items:center;gap:.35rem .55rem;margin-bottom:1rem;display:flex}.timeline-period[data-v-dd1af0b3]{font-family:var(--font-mono);color:var(--muted);font-size:.72rem;font-weight:500}.meta-sep[data-v-dd1af0b3]{color:var(--muted-2);font-size:.68rem;line-height:1}.timeline-location[data-v-dd1af0b3]{font-family:var(--font-mono);color:var(--muted);font-size:.72rem}.timeline-type-badge[data-v-dd1af0b3]{font-family:var(--font-mono);background:color-mix(in srgb, var(--item-color) 12%, var(--surface-2));color:color-mix(in srgb, var(--item-color) 90%, #fff 10%);border:1px solid color-mix(in srgb, var(--item-color) 28%, transparent);white-space:nowrap;border-radius:999px;padding:.14rem .58rem;font-size:.66rem;font-weight:500}.timeline-points[data-v-dd1af0b3]{flex-direction:column;gap:.42rem;margin:0;padding:0;list-style:none;display:flex}.timeline-points li[data-v-dd1af0b3]{color:var(--muted);padding-left:1.25rem;font-size:.845rem;line-height:1.62;position:relative}.timeline-points li[data-v-dd1af0b3]:before{content:"›";color:var(--item-color);font-size:1rem;font-weight:700;line-height:1.4;position:absolute;left:0}@media (width<=640px){.timeline-item[data-v-dd1af0b3]{grid-template-columns:28px 1fr;gap:0 1rem}.timeline-line[data-v-dd1af0b3]{padding-top:1.2rem}.timeline-dot[data-v-dd1af0b3]{width:11px;height:11px}.timeline-card[data-v-dd1af0b3]{padding:1rem 1.1rem}.timeline-role[data-v-dd1af0b3]{font-size:.95rem}.timeline-company[data-v-dd1af0b3]{font-size:.78rem}.timeline-meta[data-v-dd1af0b3]{gap:.3rem .45rem}}@media (prefers-reduced-motion:reduce){.timeline-card[data-v-dd1af0b3]{transition:border-color .15s}.timeline-card[data-v-dd1af0b3]:hover{transform:none}.timeline-dot[data-v-dd1af0b3]{transition:none}}.contact-wrapper[data-v-cd9c5943]{grid-template-columns:1fr 1fr;align-items:start;gap:4rem;display:grid}.contact-desc[data-v-cd9c5943]{color:var(--muted);margin-top:1rem;margin-bottom:2rem;font-size:.975rem;line-height:1.8}.contact-info[data-v-cd9c5943]{margin-bottom:1.5rem}.contact-link[data-v-cd9c5943]{color:var(--muted);transition:color var(--transition-fast);align-items:center;gap:.65rem;font-size:.9rem;display:inline-flex}.contact-link[data-v-cd9c5943]:hover{color:var(--accent)}.contact-link-icon[data-v-cd9c5943]{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.social-links[data-v-cd9c5943]{gap:.75rem;display:flex}.social-btn[data-v-cd9c5943]{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--muted-2);transition:all var(--transition-base);justify-content:center;align-items:center;display:flex}.social-btn[data-v-cd9c5943]:hover{border-color:var(--border-accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.contact-form[data-v-cd9c5943]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2rem}.form-group[data-v-cd9c5943]{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}label[data-v-cd9c5943]{color:var(--muted);letter-spacing:.02em;font-size:.82rem;font-weight:500}input[data-v-cd9c5943],textarea[data-v-cd9c5943]{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);resize:none;outline:none;padding:.7rem 1rem;font-size:.9rem}input[data-v-cd9c5943]::placeholder,textarea[data-v-cd9c5943]::placeholder{color:var(--muted-2)}input[data-v-cd9c5943]:focus,textarea[data-v-cd9c5943]:focus{border-color:var(--border-accent);box-shadow:0 0 0 3px var(--accent-soft)}.submit-btn[data-v-cd9c5943]{justify-content:center;width:100%;padding:.75rem;font-size:.95rem}.sent-message[data-v-cd9c5943]{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;font-size:.9rem;display:flex}.sent-icon[data-v-cd9c5943]{color:var(--accent);font-size:2rem}@media (width<=768px){.contact-wrapper[data-v-cd9c5943]{grid-template-columns:1fr;gap:2.5rem}}.page-bg{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pg-grid{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:64px 64px;animation:40s linear infinite gridPan;position:absolute;inset:0;-webkit-mask-image:radial-gradient(100% 100% at 50% 30%,#000 10%,#0000 80%);mask-image:radial-gradient(100% 100% at 50% 30%,#000 10%,#0000 80%)}@keyframes gridPan{0%{background-position:0 0}to{background-position:64px 64px}}.pg-blob{filter:blur(90px);border-radius:50%;position:absolute}.pg-blob-orange{background:radial-gradient(circle, rgba(255, 106, 0, var(--blob-orange-alpha)) 0%, transparent 70%);width:700px;height:700px;animation:18s ease-in-out infinite pgBlobDrift;top:-80px;right:-100px}.pg-blob-purple{background:radial-gradient(circle, rgba(168, 85, 247, var(--blob-purple-alpha)) 0%, transparent 70%);width:550px;height:550px;animation:24s ease-in-out infinite reverse pgBlobDrift;bottom:15%;left:-80px}.pg-blob-teal{background:radial-gradient(circle, rgba(56, 189, 248, var(--blob-blue-alpha)) 0%, transparent 70%);width:400px;height:400px;animation:30s ease-in-out -8s infinite pgBlobDrift;top:55%;left:48%}@keyframes pgBlobDrift{0%,to{transform:translate(0)scale(1)}25%{transform:translate(40px,-50px)scale(1.06)}50%{transform:translate(-30px,30px)scale(.94)}75%{transform:translate(20px,40px)scale(1.03)}}@media (prefers-reduced-motion:reduce){.pg-blob,.pg-grid{animation:none}}:root{--bg:#07070c;--bg-soft:#0d0d14;--surface:#12121d;--surface-2:#191929;--text:#f5f5f7;--heading:#fff;--muted:#a9abc7;--accent:#ff6a00;--accent-2:#ff9a3d;--border:#ffffff1a;--shadow:#00000073;--grid:#ff6a000b;--muted-2:#4e506a;--surface-hover:#1f1f33;--accent-soft:#ff6a0029;--accent-glow:#ff6a0059;--border-accent:#ff6a0059;--accent-gradient:linear-gradient(135deg, #ff6a00 0%, #d85000 100%);--shadow-glow:0 0 30px #ff6a0038;--shadow-glow-sm:0 0 12px #ff6a0026;--shadow-card:0 4px 24px var(--shadow);--blob-orange-alpha:.14;--blob-purple-alpha:.08;--blob-blue-alpha:.05}:root[data-theme=light]{--bg:#f4f0ea;--bg-soft:#ebe6dd;--surface:#fffaf3;--surface-2:#f0e7dc;--text:#25212c;--heading:#17131f;--muted:#696174;--accent:#e95d00;--accent-2:#ff7a1a;--border:#3c2d2324;--shadow:#46322329;--grid:#e95d000b;--muted-2:#9a8fa0;--surface-hover:#ecddd0;--accent-soft:#e95d001f;--accent-glow:#e95d0040;--border-accent:#e95d0052;--accent-gradient:linear-gradient(135deg, #e95d00 0%, #c44a00 100%);--shadow-glow:0 0 30px #e95d0024;--shadow-glow-sm:0 0 12px #e95d001a;--shadow-card:0 4px 24px var(--shadow);--blob-orange-alpha:.07;--blob-purple-alpha:.04;--blob-blue-alpha:.04}:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--section-padding:90px 0;--container-max:1200px;--container-px:clamp(1.25rem, 5vw, 2.5rem);--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--transition-fast:.15s ease;--transition-base:.3s ease;--transition-slow:.5s ease;--navbar-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;transition:background-color .35s,color .35s;overflow-x:hidden}::selection{background:var(--accent-soft);color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-accent)}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font-family:var(--font-sans);cursor:pointer;background:0 0;border:none}.container{max-width:var(--container-max);padding:0 var(--container-px);margin:0 auto}.section{padding:var(--section-padding)}.reveal{animation:.55s cubic-bezier(.16,1,.3,1) revealSlide}.reveal-delay-1{animation-delay:60ms}.reveal-delay-2{animation-delay:.12s}.reveal-delay-3{animation-delay:.18s}.reveal-delay-4{animation-delay:.22s}.reveal-delay-5{animation-delay:.28s}@keyframes revealSlide{0%{transform:translateY(14px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}.section-label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.75rem;font-weight:500}.section-title{color:var(--heading);margin-bottom:1rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.2}.section-subtitle{color:var(--muted);max-width:520px;font-size:1rem;line-height:1.7}.btn{border-radius:var(--radius-md);letter-spacing:.01em;transition:background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), transform .2s cubic-bezier(.34, 1.56, .64, 1), filter var(--transition-fast);white-space:nowrap;cursor:pointer;align-items:center;gap:.5rem;padding:.65rem 1.4rem;font-size:.9rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 0 20px #ff6a0040}.btn-primary:hover{box-shadow:0 0 36px #ff6a0080, 0 6px 16px var(--shadow);filter:brightness(1.08);transform:translateY(-3px)scale(1.02)}.btn-primary:active{transform:translateY(-1px)scale(.99)}.btn-outline{border:1px solid var(--border-accent);color:var(--accent);background:var(--accent-soft)}.btn-outline:hover{border-color:var(--accent);box-shadow:var(--shadow-glow);background:#ff6a0038;transform:translateY(-3px)scale(1.02)}.btn-outline:active{transform:translateY(-1px)scale(.99)}.btn-ghost{border:1px solid var(--border);color:var(--muted);background:0 0}.btn-ghost:hover{border-color:var(--border-accent);color:var(--text);background:var(--accent-soft);transform:translateY(-2px)scale(1.01)}.btn-ghost:active{transform:translateY(0)scale(.99)}.badge{font-size:.72rem;font-weight:500;font-family:var(--font-mono);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;transition:border-color var(--transition-fast), color var(--transition-fast);border-radius:999px;align-items:center;padding:.2rem .65rem;display:inline-flex}
