.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.feature-bullet-grid{display:grid;align-items:stretch}.feature-bullet-grid--hero{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:760px;margin-left:auto;margin-right:auto}.feature-bullet-grid--hero.feature-bullet-grid--full{max-width:none;width:100%}.feature-bullet-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem;width:100%}.feature-bullet-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:18px;padding:1rem 1.1rem;color:var(--color-text-muted);line-height:1.5;font-size:.92rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;min-height:96px;transition:border-color .22s ease,background .22s ease,box-shadow .22s ease,transform .22s ease}.feature-bullet-card__icon{display:flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:999px;background:var(--color-accent-subtle);color:var(--color-accent);font-size:.95rem;flex-shrink:0;transition:background .22s ease,color .22s ease}.feature-bullet-card__text{margin:0}@media(hover:hover){.feature-bullet-card:hover{background:var(--color-bg-card);border-color:var(--color-accent-border);box-shadow:0 10px 28px #0003;transform:translateY(-2px)}.feature-bullet-card:hover .feature-bullet-card__icon{background:var(--color-accent-border);color:var(--color-text-bright)}}@media(max-width:768px){.feature-bullet-grid--hero{grid-template-columns:1fr!important;max-width:520px!important;gap:.75rem!important}.feature-bullet-grid--hero .feature-bullet-card{min-height:0!important;width:100%;text-align:center!important}.feature-bullet-grid--auto{grid-template-columns:1fr!important}}@media(max-width:1024px)and (min-width:769px){.feature-bullet-grid--hero{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:680px!important}}*{-webkit-tap-highlight-color:transparent}.skip-link{position:absolute;top:-100px;left:1rem;z-index:10000;padding:.75rem 1.25rem;background:var(--accent-color);color:var(--color-text-bright);font-weight:600;text-decoration:none;border-radius:8px;transition:top .2s}.skip-link:focus{top:1rem;outline:2px solid var(--color-text-bright);outline-offset:2px}*,*:before,*:after{box-sizing:border-box}:root{--color-bg: #101010;--color-bg-elevated: #1a1a1a;--color-bg-darkest: #0a0a0a;--color-bg-card: #2a2a2a;--color-text: rgba(255, 255, 255, .87);--color-text-bright: #fff;--color-text-muted: #ddd;--color-text-dim: #aaa;--color-text-faint: #9a9a9a;--color-border: #333;--color-border-light: rgba(255, 255, 255, .1);--color-accent: #7d82f2;--color-accent-btn: #4a53d1;--color-accent-secondary: #a855f7;--color-accent-rgb: 133, 137, 255;--color-accent-subtle: rgba(133, 137, 255, .1);--color-accent-border: rgba(133, 137, 255, .2);--color-accent-border-strong: rgba(125, 130, 242, .38);--color-accent-glow: rgba(125, 130, 242, .2);--color-accent-glow-strong: rgba(125, 130, 242, .26);--color-accent-glow-nav: rgba(125, 130, 242, .36);--bg-color: var(--color-bg-elevated);--text-color: var(--color-text);--accent-color: var(--color-accent);--navbar-height: 80px;--announcement-offset: 0px;--projects-card-bg: var(--color-bg-elevated);--projects-card-border: rgba(255, 255, 255, .12);--projects-image-bg: #2a2a2a;--projects-desc-color: #bbb;--projects-pill-bg: rgba(255, 255, 255, .06);--projects-progress-track: rgba(255, 255, 255, .12);--footer-bg: var(--color-bg-elevated);--footer-border: rgba(255, 255, 255, .08);--footer-text: #8a8a9a;--footer-link: rgba(170, 178, 255, .96);--announcement-bar-bg: linear-gradient( 92deg, rgba(100, 108, 255, .24) 0%, rgba(100, 108, 255, .1) 45%, rgba(100, 108, 255, .06) 100% );--announcement-bar-border: rgba(100, 108, 255, .28);--announcement-bar-top-glow: rgba(255, 255, 255, .06);--announcement-bar-cta-bg: rgba(100, 108, 255, .18);--announcement-bar-cta-border: rgba(100, 108, 255, .35);--page-pad-x: clamp(1rem, 4vw, 2rem);--section-pad-y: clamp(3rem, 8vw, 5rem);--section-pad-y-contact: clamp(4rem, 10vw, 6.5rem);--content-max: 1200px;--prose-max: 42rem;--contact-stack-max: 980px;--subpage-main-pad-top: max(5.5rem, calc(var(--navbar-height) + 1.25rem));--subpage-hero-pad-top: max(6rem, calc(var(--navbar-height) + 3rem));--legal-content-max: 56.25rem}[data-theme=light]{--color-bg: #f0f1f7;--color-bg-elevated: #ffffff;--color-bg-darkest: #e4e6f0;--color-bg-card: #f3f4fa;--color-text: rgba(18, 18, 32, .9);--color-text-bright: #121220;--color-text-muted: #2c2c3d;--color-text-dim: #4b4b62;--color-text-faint: #575770;--color-accent: #4545c8;--color-accent-btn: #4545c8;--color-border: #c5c6d4;--color-border-light: rgba(18, 18, 32, .09);--color-accent-subtle: rgba(100, 108, 255, .1);--color-accent-border: rgba(100, 108, 255, .26);--color-accent-border-strong: rgba(100, 108, 255, .5);--color-accent-glow: rgba(100, 108, 255, .2);--color-accent-glow-strong: rgba(100, 108, 255, .32);--color-accent-glow-nav: rgba(100, 108, 255, .45);--bg-color: var(--color-bg-elevated);--text-color: var(--color-text);--projects-card-bg: #ffffff;--projects-card-border: rgba(18, 18, 32, .1);--projects-image-bg: #e4e6f0;--projects-desc-color: var(--color-text-dim);--projects-pill-bg: rgba(100, 108, 255, .09);--projects-progress-track: rgba(18, 18, 32, .12);--footer-bg: var(--color-bg-elevated);--footer-border: rgba(18, 18, 32, .1);--footer-text: var(--color-text-dim);--footer-link: var(--color-accent);--announcement-bar-bg: linear-gradient( 92deg, #ffffff 0%, #f6f8ff 38%, #eef1ff 100% );--announcement-bar-border: rgba(100, 108, 255, .22);--announcement-bar-top-glow: rgba(255, 255, 255, .85);--announcement-bar-cta-bg: rgba(100, 108, 255, .12);--announcement-bar-cta-border: rgba(100, 108, 255, .35)}[data-theme=light] body{background-color:var(--color-bg);background-image:radial-gradient(ellipse 120% 70% at 50% -15%,rgba(100,108,255,.09),transparent 52%),linear-gradient(180deg,#fafbff 0%,var(--color-bg) 42%)}#tsparticles{pointer-events:none}[data-theme=light] #tsparticles canvas{opacity:1!important}[data-theme=light] .service-card{background:var(--color-bg-elevated)!important;border-color:var(--color-border-light)!important;box-shadow:0 1px #fffc inset,0 8px 28px #1212280d}[data-theme=light] ::-webkit-scrollbar-track{background:#e6e8f0}[data-theme=light] ::-webkit-scrollbar-thumb{background:#a8aab8}.demo-embed-frame{border:1px solid var(--color-border-light);border-radius:24px;overflow:hidden;background:var(--color-bg-elevated);box-shadow:0 12px 40px #0000001f}[data-theme=light] .demo-embed-frame{box-shadow:0 8px 32px #12122814}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navbar-height, 80px) + var(--announcement-offset, 0px));overflow-x:hidden}body{margin:0;padding:0;width:100%;min-height:100vh;font-family:Outfit Variable,sans-serif;background-color:var(--color-bg);color:var(--text-color);overflow-x:hidden}main,main>section,main>footer{max-width:100%}img{max-width:100%;height:auto;display:block}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-darkest)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px;border:1px solid var(--color-border-light)}::-webkit-scrollbar-thumb:hover{background:var(--color-accent);box-shadow:0 0 10px var(--color-accent)}::selection{background:var(--color-accent);color:var(--color-text-bright);text-shadow:none}button,.primary-btn{position:relative;overflow:hidden;transition:all .3s ease;cursor:pointer}button:after,.primary-btn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:.5s}button:hover:after,.primary-btn:hover:after{left:100%}.social-icon{color:var(--color-text-dim);transition:all .3s ease}.social-icon.github:hover{color:var(--color-text-bright)!important;filter:drop-shadow(0 0 8px rgba(255,255,255,.6));transform:translateY(-3px)}.social-icon.linkedin:hover{color:#0077b5!important;filter:drop-shadow(0 0 8px rgba(0,119,181,.6));transform:translateY(-3px)}.social-icon.mail:hover{color:#ea4335!important;filter:drop-shadow(0 0 8px rgba(234,67,53,.6));transform:translateY(-3px)}.profile-blob{width:300px;height:300px;object-fit:cover;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;border:2px solid var(--color-accent-border-strong);box-shadow:0 10px 40px var(--color-accent-border);animation:morph 8s ease-in-out infinite;transition:all .5s ease-in-out}.profile-blob:hover{border-color:var(--color-accent);box-shadow:0 10px 60px var(--color-accent-glow-strong)}@keyframes morph{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}}@media(max-width:768px){main section[id],main footer[id=contact]{padding-left:1rem!important;padding-right:1rem!important}html{scroll-padding-top:calc(var(--navbar-height, 70px) + var(--announcement-offset, 0px))}.service-card--highlight{transform:none}}.service-card{transition:border-color .2s ease,box-shadow .2s ease}.service-card--highlight{transform:none;box-shadow:0 0 0 1px var(--color-accent-border-strong),0 14px 40px #00000038}@media(min-width:769px){.service-card:hover{border-color:var(--color-accent-border)!important;box-shadow:0 10px 36px #0000002e}.service-card--highlight:hover{box-shadow:0 0 0 1px var(--color-accent),0 18px 48px #00000047}}.hero-subline--mobile{display:none!important}.hero-subline--desktop{display:block!important}@media(max-width:768px){.hero-subline--mobile{display:block!important}.hero-subline--desktop{display:none!important}.hero-typewriter{min-height:2.25rem!important}}@media(max-width:480px){.hero-section{padding:calc(var(--navbar-height, 70px) + var(--announcement-offset, 0px) + 1.25rem) 1rem 3rem 1rem!important}.hero-heading{font-size:clamp(1.75rem,8vw,2.5rem)!important}.hero-bio{display:none!important}.hero-typewriter{min-height:2rem!important;font-size:.95rem!important}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:768px){.menu-toggle{min-width:44px;min-height:44px;padding:.5rem}.mobile-menu a{display:inline-block;min-height:44px;line-height:44px;padding:0 .5rem}}.seo-details summary{list-style:none}.seo-details summary::-webkit-details-marker{display:none}.subpage-legal-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:24px;padding:2rem;color:var(--color-text-muted);line-height:1.8}.subpage-legal-card h1,.subpage-legal-card h2,.subpage-legal-card h3,.subpage-legal-card h4{color:var(--color-text-bright)}@media(hover:none)and (pointer:coarse),(max-width:768px){.custom-cursor{display:none!important}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.announcement-bar-inner{padding:max(.55rem,env(safe-area-inset-top,0px)) 1rem .55rem 1rem;display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;text-align:center;font-size:.84rem;line-height:1.45;font-weight:500;color:var(--color-text-muted);background:var(--announcement-bar-bg);border-bottom:1px solid var(--announcement-bar-border);border-top:1px solid var(--announcement-bar-top-glow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px #ffffff0f,0 8px 28px #0000001f}[data-theme=light] .announcement-bar-inner{box-shadow:inset 0 1px #fffffff2,0 6px 22px #1212280f}.announcement-bar-cta{display:inline-flex;align-items:center;gap:.2rem;padding:.3rem .75rem;border-radius:999px;font-weight:700;font-size:.82rem;text-decoration:none;white-space:nowrap;color:var(--color-accent);background:var(--announcement-bar-cta-bg);border:1px solid var(--announcement-bar-cta-border);transition:background .2s ease,transform .15s ease,box-shadow .2s ease;box-shadow:0 1px #ffffff1f inset}.announcement-bar-cta:hover{background:#646cff47;box-shadow:0 2px 12px #646cff33}[data-theme=light] .announcement-bar-cta:hover{background:#646cff33}.announcement-bar-dismiss{background:#ffffff0f;border:1px solid var(--color-border-light);border-radius:8px;cursor:pointer;color:var(--color-text-faint);display:flex;align-items:center;justify-content:center;padding:.25rem;margin-left:.15rem;flex-shrink:0;transition:color .15s ease,background .15s ease,border-color .15s ease}.announcement-bar-dismiss:hover{color:var(--color-text-muted);background:#646cff1a;border-color:var(--color-accent-border)}[data-theme=light] .announcement-bar-dismiss{background:#1212200a}@media(max-width:480px){.announcement-bar-inner{padding:max(.48rem,env(safe-area-inset-top,0px)) .75rem .48rem .75rem;gap:.4rem;font-size:.8rem}.announcement-bar-inner .announcement-dot{display:none}}.theme-toggle{background:none;border:1px solid var(--color-border-light);border-radius:999px;cursor:pointer;color:var(--color-text-dim);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;transition:color .2s ease,border-color .2s ease,background .2s ease;flex-shrink:0}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent-border);background:var(--color-accent-subtle)}.ts-proof-card{padding:1.2rem;background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:18px}[data-theme=light] .ts-proof-card{background:var(--color-bg-elevated);border-color:var(--color-border);box-shadow:0 4px 20px #1212280f}.ts-quote-card{background:var(--color-bg-elevated);border:1px solid var(--color-accent-border);border-radius:32px}[data-theme=light] .ts-quote-card{background:linear-gradient(165deg,#ffffff 0%,var(--color-bg-card) 100%);border-color:var(--color-accent-border);box-shadow:0 8px 36px #12122814,inset 0 1px #ffffffe6}.ts-quote-text{color:var(--color-text-muted)}.faq-item{border-radius:16px;overflow:hidden}[data-theme=light] .faq-item{background:var(--color-bg-elevated)!important;border-color:var(--color-border)!important;box-shadow:0 4px 22px #1212280f}[data-theme=light] .faq-item button{color:var(--color-text-bright)!important}.site-footer{border-top:1px solid var(--footer-border);background:var(--footer-bg)}.site-footer-copy{color:var(--footer-text)}.site-footer-sep{color:var(--color-text-faint)}.site-footer-legal{color:var(--footer-link)}.project-card{box-shadow:0 8px 24px #0003}[data-theme=light] .project-card{box-shadow:0 1px #fffffff2 inset,0 10px 40px #12122812}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
