@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-variable-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}*{margin:0}html,body{height:100%}html{-webkit-text-size-adjust:100%;tab-size:4;scrollbar-gutter:stable;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-feature-settings:"ss01", "cv11", "cv02";text-rendering:optimizelegibility}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:6px}::selection{background:var(--color-primary);color:#fff}:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--color-primary:#23a4ff;--color-primary-600:#0d8de8;--color-primary-700:#0a73c2;--color-primary-glow:#23a4ff2e;--color-accent-gradient:linear-gradient(135deg, #23a4ff, #a855f7);--color-violet:#a855f7;--color-violet-glow:#a855f72e;--glass-bg:#ffffff0f;--glass-border:#ffffff1a;--glass-blur:20px;--max-w:1200px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 2px #0000000a, 0 1px 3px #0000000f;--shadow-md:0 8px 32px -12px #0000002e;--shadow-lg:0 24px 60px -20px #0000003d;--shadow-glow:0 0 40px -12px #23a4ff4d;--transition:.24s cubic-bezier(.4,.2,.2,1);--transition-slow:.38s cubic-bezier(.4,.2,.2,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}:root,[data-theme=dark]{color-scheme:dark;--color-bg:#0a0a0f;--color-bg-soft:#0e0e16;--color-bg-elev:#12121c;--color-bg-subtle:#161622;--color-bg-hover:#1a1a2c;--color-border:#1e1e2e;--color-border-strong:#2e2e44;--color-text:#ecf0f5;--color-text-muted:#a3adc0;--color-text-soft:#7d8896;--color-code-bg:#12121c;--glass-bg:#ffffff0a;--glass-border:#ffffff14;--grid-color:#ffffff08}[data-theme=light]{color-scheme:light;--color-bg:#fff;--color-bg-soft:#f8f9fb;--color-bg-elev:#fff;--color-bg-subtle:#f2f4f8;--color-bg-hover:#edf0f5;--color-border:#e2e5eb;--color-border-strong:#cdd2db;--color-text:#0a0e16;--color-text-muted:#4d576a;--color-text-soft:#7a8494;--color-code-bg:#f3f5f8;--glass-bg:#ffffffb3;--glass-border:#0000001a;--grid-color:#0a0e160a}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.95)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes breathe{0%,to{box-shadow:0 0 40px -8px #23a4ff59,0 0 60px -12px #a855f740}50%{box-shadow:0 0 50px -6px #23a4ff73,0 0 70px -10px #a855f759}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp .7s var(--ease-out-expo) both}.animate-in-d1{animation-delay:.1s}.animate-in-d2{animation-delay:.2s}.animate-in-d3{animation-delay:.3s}.animate-in-d4{animation-delay:.45s}.reveal{opacity:0;transition:opacity .7s var(--ease-out-expo), transform .7s var(--ease-out-expo);transform:translateY(32px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .7s var(--ease-out-expo), transform .7s var(--ease-out-expo);transform:translate(-32px)}.reveal-left.is-visible{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .6s var(--ease-out-expo), transform .6s var(--ease-out-expo);transform:scale(.9)}.reveal-scale.is-visible{opacity:1;transform:scale(1)}.stagger>*{opacity:0;transition:opacity .5s var(--ease-out-expo), transform .5s var(--ease-out-expo);transform:translateY(24px)}.stagger.is-visible>*{opacity:1;transform:translateY(0)}.stagger.is-visible>:first-child{transition-delay:0s}.stagger.is-visible>:nth-child(2){transition-delay:60ms}.stagger.is-visible>:nth-child(3){transition-delay:.12s}.stagger.is-visible>:nth-child(4){transition-delay:.18s}.stagger.is-visible>:nth-child(5){transition-delay:.24s}.stagger.is-visible>:nth-child(6){transition-delay:.3s}.stagger.is-visible>:nth-child(7){transition-delay:.36s}.stagger.is-visible>:nth-child(8){transition-delay:.42s}.stagger.is-visible>:nth-child(9){transition-delay:.48s}h1,h2,h3,h4{letter-spacing:-.022em;color:var(--color-text);font-weight:600;line-height:1.12}h1{letter-spacing:-.04em;font-size:clamp(2.75rem,5.5vw,4.5rem);font-weight:700}h2{letter-spacing:-.032em;font-size:clamp(1.75rem,3vw,2.5rem)}h3{letter-spacing:-.018em;font-size:1.1875rem}p{color:var(--color-text)}small{color:var(--color-text-muted)}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:1.5rem}@media (width>=768px){.container{padding-inline:2rem}}section{padding-block:clamp(5.5rem,12vw,9rem);position:relative}main>section:nth-of-type(n+3),.post-article>section{content-visibility:auto;contain-intrinsic-size:auto 720px}.section-head{max-width:720px;margin-bottom:3.5rem}.section-head--row{justify-content:space-between;align-items:end;gap:2rem;max-width:none;display:flex}@media (width<=640px){.section-head--row{flex-direction:column;align-items:start;gap:1rem}}.section-head .eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);font-feature-settings:"tnum";align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:.8125rem;font-weight:600;display:inline-flex}.section-head .eyebrow:before{content:"";background:var(--color-primary);width:7px;height:7px;box-shadow:0 0 0 4px var(--color-primary-glow);border-radius:99px;transition:box-shadow .3s}.section-head h2{margin-bottom:.75rem}.section-head p{color:var(--color-text-muted);max-width:60ch;font-size:1.0625rem;line-height:1.65}.section-alt{background:var(--color-bg-soft);border-block:1px solid var(--color-border);box-shadow:inset 0 1px #ffffff05,inset 0 -1px #ffffff05}.site-header{z-index:50;background:color-mix(in srgb, var(--color-bg) 80%, transparent);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:0 1px 0 var(--color-border), 0 4px 20px -8px #0000001f;transition:background .3s,box-shadow .3s,height .3s;position:sticky;top:0}.site-header[data-scrolled=true]{background:color-mix(in srgb, var(--color-bg) 92%, transparent);box-shadow:0 1px 0 var(--color-border), 0 8px 32px -8px #0000002e}.site-header .row{justify-content:space-between;align-items:center;gap:1rem;height:64px;transition:height .3s;display:flex}.site-header[data-scrolled=true] .row{height:56px}.brand{letter-spacing:-.02em;color:var(--color-text);transition:gap var(--transition);align-items:center;gap:.55rem;font-size:1rem;font-weight:600;display:inline-flex}.brand-logo{background:var(--color-accent-gradient);color:#fff;letter-spacing:-.02em;width:28px;height:28px;box-shadow:0 4px 12px -2px var(--color-primary-glow);transition:transform var(--transition), box-shadow var(--transition);background-size:200% 200%;border-radius:7px;place-items:center;font-size:.75rem;font-weight:700;display:grid}.brand:hover .brand-logo{box-shadow:0 6px 18px -2px var(--color-primary-glow);transform:scale(1.08)rotate(-2deg)}.nav{align-items:center;gap:.125rem;display:flex}.nav a{color:var(--color-text-muted);transition:color var(--transition), background var(--transition), border-color var(--transition);border:1px solid #0000;border-radius:999px;padding:.5rem .75rem;font-size:.875rem;font-weight:450;position:relative}.nav a:hover{color:var(--color-text);background:var(--color-bg-hover);border-color:var(--color-border)}.nav a[aria-current=page]{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-bg-subtle));border-color:color-mix(in srgb, var(--color-primary) 20%, var(--color-border))}.header-tools{align-items:center;gap:.5rem;display:flex}.header-tools .hamburger{order:3}.header-tools [data-menu=theme]{order:2}.header-tools [data-menu=lang]{order:1}.hamburger{border:1px solid var(--color-border);background:var(--color-bg-elev);width:40px;height:40px;color:var(--color-text);transition:border-color var(--transition), background var(--transition), transform var(--transition);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:none}.hamburger:hover{border-color:var(--color-border-strong);background:var(--color-bg-hover)}.hamburger:active{transform:scale(.95)}.hamburger span{width:18px;height:2px;transition:transform .3s var(--ease-out-expo), opacity .2s ease;background:currentColor;border-radius:99px}.hamburger[aria-expanded=true] span:first-child{transform:translateY(6px)rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.mobile-panel{opacity:0;transition:opacity .25s ease, transform .25s var(--ease-out-expo);display:none;transform:translateY(-8px)}@media (width<=900px){.nav{display:none}.hamburger{display:inline-flex}.site-header .row{height:60px}.brand{font-size:.9375rem}.mobile-panel{background:radial-gradient(640px 280px at 100% 0%, var(--color-primary-glow), transparent 64%), color-mix(in srgb, var(--color-bg) 97%, transparent);border-top:1px solid var(--color-border);box-shadow:var(--shadow-lg);backdrop-filter:blur(18px);padding:.75rem 1.5rem 1.5rem;display:block;position:fixed;inset:60px 0 0;overflow-y:auto}.mobile-panel[hidden]{opacity:0;display:none;transform:translateY(-8px)}.mobile-panel:not([hidden]){opacity:1;transform:translateY(0)}.mobile-nav{max-width:var(--max-w);gap:.35rem;margin-inline:auto;display:grid}.mobile-nav a{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-elev) 78%, transparent);min-height:48px;color:var(--color-text);letter-spacing:-.01em;transition:background var(--transition), border-color var(--transition), transform .2s var(--ease-spring);opacity:0;animation:slideDown .3s var(--ease-out-expo) both;border-radius:12px;align-items:center;padding:.8rem 1rem;font-weight:500;display:flex}.mobile-panel:not([hidden]) .mobile-nav a:first-child{animation-delay:30ms}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(2){animation-delay:60ms}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(3){animation-delay:90ms}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(4){animation-delay:.12s}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(5){animation-delay:.15s}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(6){animation-delay:.18s}.mobile-panel:not([hidden]) .mobile-nav a:nth-child(7){animation-delay:.21s}.mobile-nav a:hover{border-color:color-mix(in srgb, var(--color-primary) 20%, var(--color-border));background:var(--color-bg-hover);color:var(--color-primary)}.mobile-nav a:active{transform:scale(.98)}.mobile-nav a[aria-current=page]{color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 42%, var(--color-border))}}.btn{transition:transform .25s var(--ease-spring), background var(--transition), border-color var(--transition), color var(--transition), box-shadow .3s ease;white-space:nowrap;letter-spacing:-.005em;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.15rem;font-size:.9375rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)scale(.98)}.btn-primary{background:var(--color-accent-gradient);color:#fff;background-size:200% 200%;box-shadow:0 8px 24px -10px #23a4ff66}.btn-primary:hover{animation:3s infinite gradientShift;transform:translateY(-2px);box-shadow:0 12px 32px -10px #23a4ff8c}.btn-primary:after{content:"";opacity:0;background:linear-gradient(105deg,#0000 40%,#ffffff26 50%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.btn-primary:hover:after{opacity:1;animation:1.8s ease-in-out infinite shimmer}.btn-accent{background:var(--color-primary);color:#fff;box-shadow:0 8px 24px -10px var(--color-primary)}.btn-accent:hover{background:var(--color-primary-600);transform:translateY(-1px)}.btn-ghost{background:var(--glass-bg);border-color:var(--glass-border);color:var(--color-text);backdrop-filter:blur(8px)}.btn-ghost:hover{background:var(--color-bg-hover);border-color:color-mix(in srgb, var(--color-primary) 25%, var(--color-border));color:var(--color-primary);transform:translateY(-2px);box-shadow:0 8px 24px -8px #23a4ff1f}.btn-sm{padding:.5rem .85rem;font-size:.875rem}.hero{background:var(--color-bg);align-items:center;padding-block:clamp(5rem,10vw,8rem) clamp(4rem,8vw,6rem);display:flex;position:relative;overflow:hidden}.hero-grid{background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);opacity:.5;pointer-events:none;z-index:0;background-size:64px 64px;position:absolute;inset:0;mask-image:radial-gradient(80% 60% at 50% 40%,#000 30%,#0000 70%)}.hero-orb{filter:blur(90px);pointer-events:none;z-index:0;will-change:transform;border-radius:50%;position:absolute}.hero-orb--1{background:radial-gradient(circle,#23a4ff2e,#0000 65%);width:600px;height:600px;animation:12s ease-in-out infinite orbFloat;top:-30%;right:10%}.hero-orb--2{background:radial-gradient(circle,#a855f71f,#0000 65%);width:500px;height:500px;animation:15s ease-in-out infinite reverse orbFloat;bottom:-20%;left:-5%}.hero>.container{z-index:1;position:relative}.hero-center{text-align:center;max-width:720px;margin-inline:auto}.hero-avatar{background:linear-gradient(var(--color-bg), var(--color-bg)) padding-box, var(--color-accent-gradient) border-box;margin-inline:auto;width:140px;height:140px;box-shadow:0 0 0 8px color-mix(in srgb, var(--color-primary) 10%, transparent), 0 0 0 16px color-mix(in srgb, var(--color-primary) 4%, transparent), 0 0 60px -6px #23a4ff73, 0 0 100px -12px #a855f74d;transition:transform .4s var(--ease-spring);border:3px solid #0000;border-radius:50%;margin-bottom:1.75rem;padding:4px;animation:4s ease-in-out infinite breathe}.hero-avatar:hover{transform:scale(1.06)}.hero-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.hero .badge{color:var(--color-text-muted);border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);letter-spacing:-.005em;transition:border-color var(--transition), background var(--transition);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.4rem .85rem .4rem .6rem;font-size:.8125rem;font-weight:450;display:inline-flex}.hero .badge:hover{border-color:color-mix(in srgb, var(--color-primary) 25%, var(--color-border));background:color-mix(in srgb, var(--color-primary) 6%, var(--color-bg-subtle));color:var(--color-text)}.hero .badge:before{content:"";background:#22c55e;border-radius:99px;flex:none;width:7px;height:7px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 4px #22c55e2e}.hero h1{letter-spacing:-.04em;font-size:clamp(2.75rem,5.5vw,4.25rem);font-weight:800;line-height:1.08}.hero h1 .accent{background:var(--color-accent-gradient);color:#0000;background-size:200% 200%;background-clip:text;animation:6s infinite gradientShift;display:inline-block}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.btn-lg{border-radius:12px;padding:.85rem 1.75rem;font-size:1rem;font-weight:600}.hero-stats{border-top:1px solid var(--color-border);justify-content:center;gap:2rem;margin-top:3rem;padding-top:2rem;display:flex}.hero-stat{flex-direction:column;align-items:center;gap:.2rem;display:flex}.hero-stat-value{letter-spacing:-.03em;background:var(--color-accent-gradient);color:#0000;background-clip:text;font-size:1.375rem;font-weight:700}.hero-stat-label{color:var(--color-text-muted);font-size:.75rem;font-weight:450}[data-theme=light] .hero-avatar{box-shadow:0 0 0 8px color-mix(in srgb, var(--color-primary) 6%, transparent), 0 0 0 16px color-mix(in srgb, var(--color-primary) 2%, transparent), 0 0 40px -6px #23a4ff26, 0 0 60px -12px #a855f71a}@media (width<=640px){.hero{padding-block:clamp(3.5rem,8vw,5rem) clamp(2.5rem,5vw,3.5rem)}.hero h1{font-size:clamp(2rem,7vw,2.75rem)}.hero-stats{gap:1.25rem}.hero-stat-value{font-size:1.125rem}.btn-lg{padding:.75rem 1.35rem;font-size:.9375rem}}.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.5rem;display:grid}.portfolio-card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color .3s ease, transform .35s var(--ease-spring), box-shadow .4s ease, background .3s ease;flex-direction:column;display:flex;overflow:hidden}.portfolio-card:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border));background:var(--color-bg-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 8px 24px -4px #23a4ff26, 0 24px 56px -16px #23a4ff1a;transform:translateY(-5px)}.portfolio-thumb{aspect-ratio:16/9;border-bottom:1px solid var(--color-border);position:relative;overflow:hidden}.portfolio-thumb img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .5s var(--ease-out-expo)}.portfolio-card:hover .portfolio-thumb img{transform:scale(1.04)}.portfolio-body{flex-direction:column;flex:1;padding:1.5rem;display:flex}.portfolio-body h3{transition:color var(--transition);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.portfolio-card:hover .portfolio-body h3{color:var(--color-primary)}.portfolio-body p{color:var(--color-text-muted);flex:1;font-size:.9375rem;line-height:1.65;transition:color .3s}.portfolio-card:hover .portfolio-body p{color:var(--color-text)}.portfolio-stack{flex-wrap:wrap;gap:.35rem;margin-top:1rem;display:flex}.portfolio-tag{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--color-text-muted);border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:500}.portfolio-card:hover .portfolio-tag{border-color:color-mix(in srgb, var(--color-primary) 20%, var(--glass-border))}.portfolio-body .card-link{margin-top:1.25rem}@media (width<=768px){.portfolio-grid{grid-template-columns:1fr}.portfolio-card:hover{background:var(--color-bg-hover);transform:none}}.trusted{border-block:1px solid var(--color-border);background:var(--color-bg-soft);padding-block:clamp(2rem,4vw,3rem)}.trusted .label{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-soft);text-align:center;margin-bottom:1.5rem;font-size:.75rem;font-weight:500}.trusted .logos{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 2.5rem;padding:0;list-style:none;display:flex}.trusted .logos>li{color:var(--color-text-muted);letter-spacing:-.01em;border-radius:var(--radius-sm);transition:color .3s ease, transform .3s var(--ease-spring), background .3s ease, border-color .3s ease;border:1px solid #0000;padding:.4rem .85rem;font-size:.9375rem;font-weight:500}.trusted .logos>li:hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 6%, transparent);border-color:color-mix(in srgb, var(--color-primary) 15%, transparent);transform:translateY(-2px)}.grid{gap:1rem;display:grid}.grid-2,.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.bento{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.bento>:first-child,.bento>:nth-child(4){grid-column:span 2}@media (width<=768px){.bento{grid-template-columns:1fr}.bento>:first-child,.bento>:nth-child(4){grid-column:span 1}}@media (width>=769px) and (width<=1024px){.bento{grid-template-columns:repeat(2,1fr)}.bento>:first-child{grid-column:span 2}.bento>:nth-child(4){grid-column:span 1}}.card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color .3s ease, transform .35s var(--ease-spring), background .3s ease, box-shadow .4s ease;padding:2rem;position:relative}.card:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border));background:var(--color-bg-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 8px 24px -4px #23a4ff26, 0 24px 56px -16px #23a4ff1a;transform:translateY(-5px)}.card .icon{background:var(--color-accent-gradient);color:#fff;letter-spacing:.04em;width:42px;height:42px;transition:transform .3s var(--ease-spring), box-shadow .3s ease;background-size:200% 200%;border-radius:11px;place-items:center;margin-bottom:1.25rem;font-size:.8125rem;font-weight:600;display:grid;box-shadow:0 4px 12px -4px #23a4ff4d}.card:hover .icon{transform:scale(1.12)rotate(-3deg);box-shadow:0 8px 24px -4px #23a4ff73}.card h3{transition:color var(--transition);margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.card:hover h3{color:var(--color-primary)}.card p{color:var(--color-text-muted);font-size:.9375rem;line-height:1.65;transition:color .3s}.card:hover p{color:var(--color-text)}.card-link{color:var(--color-primary);align-items:center;gap:.35rem;margin-top:1rem;font-size:.875rem;font-weight:500;transition:gap .25s;display:inline-flex}.card-link:hover{gap:.6rem}.stack-cat{padding:1.25rem 1.5rem}.stack-cat h4{text-transform:uppercase;letter-spacing:.08em;background:var(--color-accent-gradient);color:#0000;background-clip:text;margin-bottom:.85rem;font-size:.75rem;font-weight:600}.stack-cat ul{flex-wrap:wrap;gap:.4rem;padding:0;list-style:none;display:flex}.stack-cat li{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--color-text);transition:border-color .25s ease, background .25s ease, transform .2s var(--ease-spring), color .25s ease;border-radius:999px;padding:.35rem .7rem;font-size:.8125rem;font-weight:450}.stack-cat li:hover{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent);color:var(--color-primary);transform:translateY(-2px)}.perf-intro{color:var(--color-text-muted);max-width:70ch;margin-bottom:3rem;font-size:1.0625rem;line-height:1.7}.metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:3rem;display:grid}.metric{border-radius:var(--radius-lg);background:var(--color-bg-elev);border:1px solid var(--color-border);transition:border-color .3s ease, transform .35s var(--ease-spring), box-shadow .4s ease, background .3s ease;padding:2rem;position:relative;overflow:hidden}.metric:hover{border-color:color-mix(in srgb, var(--color-primary) 30%, var(--color-border));background:var(--color-bg-hover);transform:translateY(-4px);box-shadow:0 20px 48px -12px #23a4ff33,0 0 0 1px #23a4ff0f}.metric:before{content:"";background:var(--color-accent-gradient);opacity:.7;background-size:200% 100%;height:2px;transition:opacity .3s;position:absolute;inset:0 0 auto}.metric:hover:before{opacity:1;animation:3s infinite gradientShift}.metric .v{letter-spacing:-.04em;background:var(--color-accent-gradient);color:#0000;font-variant-numeric:tabular-nums;background-clip:text;font-size:3rem;font-weight:700;line-height:1.1}.metric .l{color:var(--color-text-muted);margin-top:.5rem;font-size:.875rem}.lead-quote{border-left:3px solid #0000;border-image:var(--color-accent-gradient) 1;background:var(--color-bg-elev);border-radius:0 var(--radius-lg) var(--radius-lg) 0;letter-spacing:-.018em;color:var(--color-text);max-width:56ch;transition:box-shadow .4s ease, background .3s ease, transform .35s var(--ease-spring);margin-top:3.5rem;padding:2rem 2.5rem;font-size:1.25rem;font-weight:500;line-height:1.5}.lead-quote:hover{background:var(--color-bg-hover);transform:translate(4px);box-shadow:0 12px 40px -12px #23a4ff24}.lead-quote:before{content:"“";background:var(--color-accent-gradient);color:#0000;background-clip:text;margin-right:.25rem;font-size:2.5rem;font-weight:700;line-height:1}.timeline{gap:0;padding-left:2rem;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--color-primary), var(--color-violet), transparent);border-radius:2px;width:2px;position:absolute;top:0;bottom:0;left:0}.tl-item{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elev);transition:border-color .3s ease, box-shadow .4s ease, transform .35s var(--ease-spring), background .3s ease;margin-bottom:1rem;padding:2rem 2rem 2rem 2.5rem;position:relative}.tl-item:before{content:"";background:var(--color-accent-gradient);width:12px;height:12px;box-shadow:0 0 0 4px var(--color-bg), 0 0 12px #23a4ff66;z-index:1;transition:box-shadow .3s ease, transform .3s var(--ease-spring);border-radius:50%;position:absolute;top:2.5rem;left:-2.65rem}.tl-item:hover{border-color:color-mix(in srgb, var(--color-primary) 25%, var(--color-border));background:var(--color-bg-hover);transform:translate(6px);box-shadow:0 16px 44px -12px #23a4ff2e,0 0 0 1px #23a4ff0d}.tl-item:hover:before{box-shadow:0 0 0 4px var(--color-bg), 0 0 20px #23a4ff99;transform:scale(1.25)}.tl-item .meta{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8125rem;font-weight:500}.tl-item .role{letter-spacing:-.018em;transition:color var(--transition);font-size:1.125rem;font-weight:600}.tl-item:hover .role{color:var(--color-primary)}.tl-item .company{color:var(--color-primary);margin-top:.25rem;font-size:.9375rem;font-weight:500}.tl-item .desc{color:var(--color-text-muted);margin:1rem 0 1.25rem;line-height:1.65;transition:color .3s}.tl-item:hover .desc{color:var(--color-text)}.tl-item ul{padding:0;list-style:none}.tl-item ul li{color:var(--color-text);margin-bottom:.5rem;padding-left:1.5rem;font-size:.9375rem;line-height:1.55;position:relative}.tl-item ul li:before{content:"";background:var(--color-primary);border-radius:99px;width:6px;height:6px;transition:transform .2s;position:absolute;top:.65em;left:0}.tl-item:hover ul li:before{transform:scale(1.3)}.posts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.post-card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:transform .35s var(--ease-spring), border-color .3s ease, box-shadow .4s ease, background .3s ease;flex-direction:column;height:100%;padding:2rem;display:flex;position:relative}.post-card:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border));background:var(--color-bg-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 8px 24px -4px #23a4ff26, 0 24px 56px -16px #23a4ff1a;transform:translateY(-5px)}.post-card .cat{text-transform:uppercase;letter-spacing:.08em;background:var(--color-accent-gradient);color:#0000;background-clip:text;margin-bottom:.75rem;font-size:.7rem;font-weight:600;display:inline-block}.post-card h3{transition:color var(--transition);margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.35}.post-card:hover h3{color:var(--color-primary)}.post-card p{color:var(--color-text-muted);flex:1;font-size:.9375rem;line-height:1.6;transition:color .3s}.post-card:hover p{color:var(--color-text)}.post-card .meta{color:var(--color-text-soft);font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;margin-top:1.25rem;font-size:.8125rem;display:flex}.post-card .meta:before{content:"";background:var(--color-border-strong);width:14px;height:1px;transition:width .3s,background .3s}.post-card:hover .meta:before{background:var(--color-primary);width:24px}.post-article{max-width:760px;margin-inline:auto;padding-block:4rem}.post-article header{margin-bottom:3rem}.post-article h1{margin-bottom:1rem;font-size:clamp(2rem,4vw,2.75rem)}.post-article .meta{color:var(--color-text-muted);font-size:.9375rem}.prose{color:var(--color-text);font-size:1.0625rem;line-height:1.75}.prose h2{letter-spacing:-.024em;margin:2.5rem 0 .75rem;font-size:1.5rem}.prose h3{margin:1.75rem 0 .5rem;font-size:1.1875rem}.prose p{color:var(--color-text);margin-bottom:1.1rem}.prose ul,.prose ol{margin-bottom:1.1rem;padding-left:1.25rem}.prose li{margin-bottom:.35rem}.prose code{font-family:var(--font-mono);background:var(--color-code-bg);border-radius:4px;padding:.15em .4em;font-size:.9em}.prose pre{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:10px;margin-bottom:1.25rem;padding:1rem 1.1rem;font-size:.9rem;overflow-x:auto}.prose blockquote{border-left:3px solid var(--color-primary);color:var(--color-text-muted);margin:1.5rem 0;padding-left:1.25rem;font-size:1.125rem;font-style:italic}.prose a{color:var(--color-primary);text-underline-offset:3px;text-decoration:underline 1px;transition:text-decoration-color .2s,color .2s}.prose a:hover{text-decoration-color:#0000}.prose strong{font-weight:600}.filters{flex-wrap:wrap;gap:.4rem;margin-bottom:2rem;display:flex}.filter{border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-bg-elev);transition:color var(--transition), background var(--transition), border-color var(--transition), transform .2s var(--ease-spring);border-radius:999px;padding:.35rem .85rem;font-size:.8125rem;font-weight:450}.filter:hover{color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 25%, var(--color-border));background:color-mix(in srgb, var(--color-primary) 6%, var(--color-bg-elev));transform:translateY(-1px)}.filter[aria-current=true]{background:var(--color-accent-gradient);color:#fff;border-color:#0000}.contact-hero{text-align:center;padding:clamp(3rem,6vw,5rem) 0}.contact-hero h1{max-width:16ch;margin-inline:auto}.contact-hero p{color:var(--color-text-muted);max-width:56ch;margin:1.5rem auto 0;font-size:1.0625rem}.contact-hero .actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2.5rem;display:flex}.contact-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:3rem;display:grid}.site-footer{border-top:1px solid #0000;border-image:linear-gradient(90deg, transparent, var(--color-primary), var(--color-violet), transparent) 1;color:var(--color-text-muted);margin-top:5rem;padding-block:3.5rem 2rem;font-size:.875rem}.site-footer .row{grid-template-columns:1fr auto;align-items:start;gap:2rem 3rem;display:grid}.site-footer .brand-block{font-size:.9375rem}.site-footer .brand-block .tagline{color:var(--color-text-muted);max-width:36ch;margin-top:.5rem}.site-footer .links{grid-template-columns:repeat(3,auto);gap:.5rem 1.5rem;display:grid}.site-footer a{transition:color .25s ease, transform .2s var(--ease-spring);display:inline-block}.site-footer a:hover{color:var(--color-primary);transform:translate(3px)}.site-footer .legal{border-top:1px solid var(--color-border);color:var(--color-text-soft);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:2rem;font-size:.8125rem;display:flex}@media (width<=640px){.site-footer .row{grid-template-columns:1fr}.site-footer .links{grid-template-columns:repeat(2,auto)}}@media (width<=768px){.post-card:hover,.card:hover{background:var(--color-bg-hover);transform:none}.timeline{padding-left:1.5rem}.tl-item{padding-left:2rem}.tl-item:before{width:10px;height:10px;left:-2.15rem}.tl-item:hover{background:var(--color-bg-hover);transform:none}}.menu{position:relative}.menu-btn{border:1px solid var(--color-border);height:36px;color:var(--color-text-muted);background:var(--color-bg-elev);transition:color var(--transition), border-color var(--transition), transform .2s var(--ease-spring);border-radius:8px;align-items:center;gap:.35rem;padding:0 .7rem;font-size:.8125rem;font-weight:500;display:inline-flex}.menu-btn:hover{color:var(--color-text);border-color:var(--color-border-strong)}.menu-btn:active{transform:scale(.95)}.menu-btn svg{width:16px;height:16px;transition:transform .3s var(--ease-spring)}@media (width<=900px){.menu-btn{min-width:44px;height:44px;padding:0 .9rem}.menu-btn svg{width:22px;height:22px}}.menu-list{background:var(--color-bg-elev);border:1px solid var(--color-border);min-width:160px;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transform-origin:100% 0;transition:opacity .2s ease, transform .25s var(--ease-out-expo);z-index:100;border-radius:10px;padding:.35rem;display:block;position:absolute;top:calc(100% + .4rem);right:0;transform:translateY(-8px)scale(.96)}.menu[data-open=true] .menu-list{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.menu-list button,.menu-list a{width:100%;color:var(--color-text);text-align:left;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .65rem;font-size:.875rem;font-weight:450;transition:background .15s,color .15s,transform .15s;display:flex}.menu-list button:hover,.menu-list a:hover{background:var(--color-bg-hover)}.menu-list button:active,.menu-list a:active{transform:scale(.98)}.menu-list button[aria-checked=true],.menu-list a[aria-current=true]{color:var(--color-primary);background:var(--color-bg-subtle)}.lang-btn{gap:.4rem}.lang-globe{flex-shrink:0;width:15px;height:15px}.lang-code{letter-spacing:.04em;font-size:.8rem;font-weight:600}.lang-chevron{width:13px;height:13px;transition:transform .3s var(--ease-out-expo);flex-shrink:0}.menu[data-open=true] .lang-chevron{transform:rotate(180deg)}.lang-list{min-width:180px}.lang-item{color:var(--color-text);border-radius:7px;align-items:center;gap:.6rem;padding:.5rem .7rem;font-size:.875rem;text-decoration:none;transition:background .15s,transform .15s;display:flex}.lang-item:active{transform:scale(.98)}.lang-flag{flex-shrink:0;font-size:1.1rem;line-height:1}.lang-item-label{color:var(--color-text);flex:1;font-weight:450}.lang-item-code{letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;padding:.1rem .35rem;font-size:.7rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.lang-check{width:14px;height:14px;color:var(--color-primary);flex-shrink:0}.lang-item[aria-current=true] .lang-item-label{color:var(--color-primary);font-weight:500}.lang-item[aria-current=true] .lang-item-code{background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-color:color-mix(in srgb, var(--color-primary) 30%, transparent);color:var(--color-primary)}.muted{color:var(--color-text-muted)}.divider{background:var(--color-border);height:1px;margin-block:2rem}.center{text-align:center}.flex{display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-4{margin-top:2rem}.mt-6{margin-top:3rem}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gradient-text{background:var(--color-accent-gradient);color:#0000;background-clip:text}.back-to-top{z-index:40;border-radius:var(--radius);background:var(--glass-bg);border:1px solid var(--glass-border);width:44px;height:44px;-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--color-text-muted);opacity:0;pointer-events:none;transition:opacity var(--transition), transform var(--transition), color var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition);place-items:center;display:grid;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(8px)}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 25%, var(--color-border));background:color-mix(in srgb, var(--color-primary) 6%, var(--glass-bg));box-shadow:0 8px 24px -8px #23a4ff1f}.back-to-top:active{transform:scale(.92)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal,.reveal-left,.reveal-scale,.stagger>*{opacity:1;transform:none}}@media print{section{content-visibility:visible!important;contain-intrinsic-size:none!important}.back-to-top,.site-header{display:none!important}}
