@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f1f3f4;--bg-card:#fff;--bg-hover:#f1f3f4;--text-primary:#111;--text-secondary:#444;--text-tertiary:#595959;--text-muted:#767676;--accent:#05c;--accent-light:#06f;--accent-dark:#049;--accent-bg:rgba(0,102,255,.06);--accent-border:rgba(0,102,255,.15);--border:#e5e7eb;--border-light:#f1f3f4;--border-hover:#d1d5db;--font-display:"Manrope",-apple-system,sans-serif;--font-body:"Inter",-apple-system,sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.06);--shadow-lg:0 12px 40px rgba(0,0,0,.08);--shadow-card:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.02);--shadow-card-hover:0 20px 60px rgba(0,0,0,.1);--ease:cubic-bezier(0.16,1,0.3,1);--duration:0.25s}#__next,body,html,html[class*=dark],html[class*=light]{background:var(--bg-primary)!important;background-color:var(--bg-primary)!important;color:var(--text-primary)!important}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body)!important;font-weight:400;line-height:1.6;overflow-x:hidden}.neo-footer,.nextra-nav-container,.nextra-nav-container-blur,.nextra-search,.nextra-sidebar-container,.nextra-toc,[class*=nextra-nav],[class*=nextra-sidebar],[class*=nextra-toc],article button,article>button,article>div:has(button[title="Toggle Dark Mode"]),article>div>div:first-child:has(a[href="/blog/"]),article>header,article>nav,button:has(>img[alt=""]),button[aria-label="Toggle Dark Mode"],button[title="Toggle Dark Mode"],footer.neo-footer,main article button,main button:not(.btn),main>article>header h1:first-child,main>article>nav,main>nav,nav.nextra-breadcrumb,nav[aria-label=breadcrumb]{display:none!important;visibility:hidden!important;height:0!important;width:0!important;overflow:hidden!important;position:absolute!important;left:-9999px!important}article>div:not(.onyx-page)>div:has(>a[href="/blog/"]){display:none!important}main,main>article{margin:0!important;width:100%!important;background:transparent!important}article,main,main>article{padding:0!important;max-width:none!important}.onyx-page{position:relative;min-height:100vh;background:var(--bg-primary);width:100%}.onyx-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 48px;background:hsla(0,0%,100%,.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}.header-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.onyx-logo{font-family:var(--font-display);font-size:1.125rem;font-weight:800;color:#111!important;text-decoration:none;letter-spacing:-.02em}.onyx-logo:hover{color:#05c!important}.onyx-nav{display:flex;align-items:center;gap:32px}.onyx-nav .nav-link{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:#111!important;text-decoration:none;transition:color var(--duration) var(--ease);position:relative}.onyx-nav .nav-link:not(.nav-link--cta):after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:#05c;border-radius:1px;opacity:0;transition:opacity var(--duration) var(--ease)}.onyx-nav .nav-link:not(.nav-link--cta):hover:after{opacity:1}.onyx-nav .nav-link:hover{color:#05c!important}.onyx-nav .nav-link--cta{padding:10px 20px;background:#111!important;color:#fff!important;border-radius:var(--radius-md);font-weight:600}.onyx-nav .nav-link--cta:hover{background:#05c!important;color:#fff!important}.onyx-nav .nav-link--active{color:#05c!important}.onyx-nav .nav-link--active:after{opacity:1}.onyx-hero{min-height:100vh;padding:140px 48px 80px;display:flex;align-items:center;background:var(--bg-primary)}.hero-inner{max-width:1200px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 1fr;grid-gap:80px;gap:80px;align-items:center}.hero-content{max-width:540px}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:100px;margin-bottom:28px}.hero-badge-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero-badge-text{font-size:.8125rem;font-weight:600;color:var(--accent)}.hero-title{font-family:var(--font-display)!important;font-size:clamp(2.75rem,4.5vw,3.5rem)!important;font-weight:800!important;line-height:1.1!important;letter-spacing:-.03em!important;color:var(--text-primary)!important;margin:0 0 20px!important;padding:0!important;border:none!important}.hero-title .gradient{background:linear-gradient(135deg,var(--accent) 0,#6366f1 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.0625rem;color:var(--text-secondary);line-height:1.7;margin-bottom:32px}.hero-stats{display:flex;gap:40px;margin-bottom:32px}.stat-value{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--text-primary);line-height:1}.stat-value span{color:var(--accent)}.stat-label{font-size:.8125rem;font-weight:500;color:var(--text-tertiary);margin-top:4px}.hero-cta{display:flex;gap:12px}.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;font-family:var(--font-body);font-size:.9375rem;font-weight:600;text-decoration:none;border-radius:var(--radius-md);transition:all var(--duration) var(--ease);cursor:pointer;border:none}.btn--primary{background:#111!important;color:#fff!important}.btn--primary:hover{background:#05c!important;color:#fff!important;transform:translateY(-2px)}.btn--secondary{background:#fff!important;color:#111!important;border:2px solid #111!important}.btn--secondary:hover{background:#111!important;color:#fff!important;border-color:#111!important}.btn-arrow{transition:transform var(--duration) var(--ease)}.btn:hover .btn-arrow{transform:translateX(4px)}.hero-visual{position:relative;display:flex;justify-content:center;align-items:center}.hero-image-wrap{position:relative;width:100%;max-width:400px;overflow:visible}.hero-visual{overflow:visible!important}.hero-image-glow{display:none}.hero-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.hero-card,.hero-image{border:1px solid var(--border)}.hero-card{position:absolute;background:#fff;border-radius:var(--radius-md);padding:14px 18px;box-shadow:var(--shadow-md);z-index:2}.hero-card--top{top:-10px;right:-20px}.hero-card--bottom{bottom:40px;left:-30px}.hero-card-label{font-size:.625rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.hero-card-value{font-family:var(--font-display);font-size:.875rem;font-weight:700;color:var(--text-primary)}.hero-card-value--accent{color:var(--accent)}.onyx-projects{padding:80px 48px;background:var(--bg-secondary)}.projects-inner{max-width:1200px;margin:0 auto}.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}.section-title{font-family:var(--font-display)!important;font-size:1.75rem!important;font-weight:800!important;color:var(--text-primary)!important;margin:0!important;padding:0!important;border:none!important}.section-title span{color:var(--text-tertiary);font-weight:500}.section-count{font-size:.8125rem;font-weight:600;color:var(--text-tertiary);padding:6px 12px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm)}.bento-section{padding:100px 48px 120px;background:#fafafa;position:relative}.bento-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.06),transparent)}.bento-container{max-width:1280px;margin:0 auto}.bento-header{text-align:center;margin-bottom:64px}.bento-label{display:inline-block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:#111;background:#f1f3f4;border:1px solid #e5e7eb;padding:8px 16px;border-radius:100px;margin-bottom:20px}.bento-title{font-family:var(--font-display)!important;font-size:clamp(2rem,4vw,2.75rem)!important;font-weight:800!important;color:#0a0a0a!important;letter-spacing:-.03em!important;margin:0 0 16px!important;padding:0!important;border:none!important}.bento-subtitle{font-size:1.0625rem;color:#444;max-width:480px;margin:0 auto;line-height:1.6}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.bento-card{position:relative;border-radius:16px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;min-height:320px;transition:all .3s ease;animation:bentoFadeIn .5s ease backwards;animation-delay:var(--delay,0s)}@keyframes bentoFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bento-card-bg{position:absolute;inset:0;background:#fff;border:1px solid #e8e8e8;border-radius:16px;transition:all .3s ease}.bento-card:hover{transform:translateY(-6px)}.bento-card:hover .bento-card-bg{border-color:#ccc;box-shadow:0 20px 40px rgba(0,0,0,.08)}.bento-card--compact,.bento-card--featured,.bento-card--hero,.bento-card--wide{min-height:320px}.bento-card-content{position:relative;z-index:2;display:flex;flex-direction:column;height:100%;padding:20px}.bento-card-image{flex:1 1;border-radius:10px;overflow:hidden;margin-bottom:14px;background:#f5f5f5;min-height:140px}.bento-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.bento-card:hover .bento-card-image img{transform:scale(1.03)}.bento-card-info{display:flex;flex-direction:column;gap:8px;padding-top:4px}.bento-card-category{font-family:var(--font-body);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#05c}.bento-card-title{font-family:var(--font-display)!important;font-size:1rem!important;font-weight:700!important;color:#111!important;margin:0!important;padding:0!important;border:none!important;letter-spacing:-.01em;line-height:1.3}.bento-card-desc{font-family:var(--font-body)!important;font-size:.8125rem!important;font-weight:400!important;color:#444!important;margin:2px 0 0!important;padding:0!important;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bento-card-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:2px}.bento-tag{font-family:var(--font-body);font-size:.6875rem;font-weight:600;color:#333;padding:6px 14px;background:#f0f0f0;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s ease}.bento-card:hover .bento-tag{background:#e8e8e8;border-color:#d0d0d0}.tech-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tech-pill{font-family:var(--font-body);font-size:.75rem;font-weight:500;color:#333;padding:6px 12px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px}.sticker{display:inline-block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:#05c;background:#f0f7ff;border:1px solid #d0e4ff;padding:8px 16px;border-radius:100px}.bento-card-arrow{position:absolute;top:16px;right:16px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;border-radius:12px;color:#111;opacity:0;transform:translate(6px,-6px) scale(.85);z-index:10;box-shadow:0 4px 16px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.08)}.bento-card-arrow,.bento-card-arrow svg{transition:all .35s cubic-bezier(.4,0,.2,1)}.bento-card-arrow svg{width:18px;height:18px;stroke:#111}.bento-card:hover .bento-card-arrow{opacity:1;transform:translate(0) scale(1);background:#111;box-shadow:0 8px 24px rgba(0,0,0,.2),0 2px 6px rgba(0,0,0,.1)}.bento-card:hover .bento-card-arrow svg{stroke:#fff;transform:translate(2px,-2px)}@media (max-width:1024px){.bento-grid{grid-template-columns:repeat(2,1fr);gap:16px}.bento-card{min-height:300px}}@media (max-width:640px){.bento-section{padding:60px 20px 80px}.bento-grid{grid-template-columns:1fr;gap:14px}.bento-card,.bento-card--compact,.bento-card--featured,.bento-card--hero,.bento-card--wide{min-height:280px}}.onyx-contact{padding:80px 48px;background:var(--bg-primary)}.contact-inner{max-width:700px;margin:0 auto;text-align:center}.contact-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:60px 48px}.contact-title{font-family:var(--font-display)!important;font-size:2rem!important;font-weight:800!important;color:var(--text-primary)!important;margin:0 0 16px!important;padding:0!important;border:none!important}.contact-title span{color:var(--accent)}.contact-desc{font-size:1rem;color:var(--text-secondary);max-width:400px;margin:0 auto 28px;line-height:1.7}.contact-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.contact-link{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#fff!important;border:2px solid #333!important;border-radius:var(--radius-md);color:#111!important;font-weight:600;font-size:.8125rem;text-decoration:none;transition:all var(--duration) var(--ease)}.contact-link--primary,.contact-link:hover{border-color:#111!important;background:#111!important;color:#fff!important}.contact-link--primary:hover{background:#05c!important;border-color:#05c!important;color:#fff!important}.onyx-footer{padding:32px 48px;border-top:1px solid var(--border);background:var(--bg-primary)}.footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer-copy{font-size:.8125rem;color:#555}.footer-links{display:flex;gap:24px}.footer-link{font-size:.8125rem;color:#555;text-decoration:none}.footer-link:hover{color:#000}@media (max-width:1024px){.hero-inner{grid-template-columns:1fr;gap:48px;text-align:center}.hero-cta,.hero-stats{justify-content:center}.hero-visual{order:-1}.hero-image-wrap{max-width:300px}.hero-card{display:none}.projects-grid{grid-template-columns:repeat(2,1fr)}.project-card--featured{grid-column:span 2;grid-row:span 1}}@media (max-width:768px){.onyx-header{padding:14px 20px}.onyx-nav .nav-link:not(.nav-link--cta){display:none}.onyx-hero{padding:110px 20px 60px}.hero-title{font-size:2rem!important}.hero-stats{gap:24px}.stat-value{font-size:1.5rem}.onyx-contact,.onyx-projects{padding:60px 20px}.projects-grid{grid-template-columns:1fr;gap:16px}.project-card--featured,.project-card--wide{grid-column:span 1}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.contact-card{padding:40px 20px}.contact-title{font-size:1.5rem!important}.contact-links{flex-direction:column;align-items:center}.footer-inner{flex-direction:column;gap:16px;text-align:center}.onyx-footer{padding:24px 20px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}article,main{animation:fadeIn .4s ease-out}h1,h2,h3{animation:fadeInUp .5s ease-out backwards}h1{animation-delay:.1s}h2{animation-delay:.15s}h3{animation-delay:.2s}p{animation:fadeInUp .5s ease-out backwards;animation-delay:.2s}li{animation:fadeInUp .4s ease-out backwards}li:first-child{animation-delay:.1s}li:nth-child(2){animation-delay:.15s}li:nth-child(3){animation-delay:.2s}li:nth-child(4){animation-delay:.25s}li:nth-child(5){animation-delay:.3s}li:nth-child(6){animation-delay:.35s}li:nth-child(7){animation-delay:.4s}article a[href*="/posts"]{animation:fadeInUp .5s ease-out backwards}article a[href*="/posts"]:first-child{animation-delay:.1s}article a[href*="/posts"]:nth-child(2){animation-delay:.15s}article a[href*="/posts"]:nth-child(3){animation-delay:.2s}article a[href*="/posts"]:nth-child(4){animation-delay:.25s}article a[href*="/posts"]:nth-child(5){animation-delay:.3s}article a[href*="/posts"]:nth-child(6){animation-delay:.35s}article a[href*="/posts"]:nth-child(7){animation-delay:.4s}nav a{transition:all .2s ease}nav a:hover{transform:translateY(-2px)}a[href],button{transition:all .2s ease}article a:not([class]){position:relative;text-decoration:none}article a:not([class]):after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:#05c;transition:width .3s ease}article a:not([class]):hover:after{width:100%}a,article,body,div,h1,h2,h3,h4,h5,h6,li,main,p,span{color:#111!important}a{color:#05c!important}a:hover{color:#049!important}header a,nav a{color:#111!important}header a:hover,nav a:hover{color:#05c!important}.date,[class*=badge],[class*=date],[class*=meta],[class*=tag],time{color:#555!important}article a,article a h2,article a h3{color:#111!important}article a p,article a span{color:#444!important}.nextra-content,.nextra-content div,.nextra-content p,.nextra-content span,b,em,li,ol,strong,ul{color:#111!important}li::marker{color:#111!important}article div,article em,article li,article p,article span,article strong,code,pre{color:#111!important}[class*=badge],[class*=category],[class*=tag]{color:#fff!important;background:#111!important}main>article:not(:has(.onyx-page)):not(:has(.bento-grid)){max-width:720px!important;margin:0 auto!important;padding:120px 24px 80px!important}main>article h1[id],main>article>div>h1,main>article>h1{overflow:visible!important;font-family:var(--font-display);font-size:2.5rem;font-weight:800;line-height:1.2;color:#111!important;margin-bottom:1.5rem;letter-spacing:-.02em}main>article h1[id],main>article time,main>article>div:first-child,main>article>div>h1,main>article>h1{display:block!important;visibility:visible!important;position:static!important;left:auto!important;height:auto!important;width:auto!important}main>article time,main>article>div:first-child{font-family:var(--font-body);font-size:.875rem;color:#666!important;margin-bottom:2rem}main>article a[href*="/tags/"]{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#05c!important;background:#f0f7ff;padding:4px 10px;border-radius:4px;text-decoration:none;margin-left:8px}main>article a[href*="/tags/"]:hover{background:#e0efff}main>article p{font-family:var(--font-body);font-size:1.125rem;line-height:1.8;color:#333!important;margin-bottom:1.5rem}main>article h2{font-size:1.75rem;font-weight:700;margin-top:3rem;margin-bottom:1rem;letter-spacing:-.01em}main>article h2,main>article h3{font-family:var(--font-display);color:#111!important}main>article h3{font-size:1.375rem;font-weight:600;margin-top:2.5rem;margin-bottom:.75rem}main>article ol,main>article ul{margin-bottom:1.5rem;padding-left:1.5rem}main>article li{font-family:var(--font-body);font-size:1.125rem;line-height:1.8;color:#333!important;margin-bottom:.5rem}main>article ul li{list-style-type:disc}main>article ol li{list-style-type:decimal}main>article blockquote{border-left:4px solid #05c;padding-left:1.5rem;margin:2rem 0;font-style:italic;color:#444!important}main>article blockquote p{font-size:1.125rem;color:#444!important}main>article code:not(pre code){font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.9em;background:#f5f5f5;padding:2px 6px;border-radius:4px;color:#111!important}main>article pre{background:#1a1a1a!important;border-radius:12px;padding:1.5rem;margin:2rem 0;overflow-x:auto}main>article pre code{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.875rem;line-height:1.6;color:#e5e5e5!important;background:transparent!important;padding:0}main>article hr{border:none;height:1px;background:#e5e5e5;margin:3rem 0}main>article img{max-width:100%;height:auto;border-radius:12px;margin:2rem 0}main>article strong{font-weight:700;color:#111!important}main>article em{font-style:italic;color:inherit!important}main>article li a,main>article p a{color:#05c!important;text-decoration:underline;text-underline-offset:2px}main>article li a:hover,main>article p a:hover{color:#003d99!important}main>article>div:has(+p>em):first-of-type{display:inline-block!important;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:#111!important;background:#f1f3f4!important;border:1px solid #e5e7eb;padding:8px 16px;border-radius:100px;margin-bottom:1.5rem}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}