:root{--brand: #2d6cdf;--brand-dark: #174ea6;--brand-purple: #7c3aed;--gradient-brand: linear-gradient(135deg, #2d6cdf 0%, #7c3aed 100%);--gradient-text: linear-gradient(135deg, #2d6cdf 30%, #7c3aed 100%);--bg: #ffffff;--bg-secondary: #f6f8fa;--bg-card: #f8faff;--bg-nav: rgba(255,255,255,.85);--text: #1a202c;--text-secondary: #4b5563;--text-muted: #6b7280;--border: #e2e8f0;--shadow-sm: 0 2px 8px rgba(45,108,223,.06);--shadow-md: 0 4px 16px rgba(45,108,223,.1);--shadow-lg: 0 8px 32px rgba(45,108,223,.15);font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--bg: #23272f;--bg-secondary: #1a1e27;--bg-card: #1e2330;--bg-nav: rgba(35,39,47,.85);--text: #f6f8fa;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border: #2d3748;--shadow-sm: 0 2px 8px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.3);--shadow-lg: 0 8px 32px rgba(0,0,0,.4)}*,*:before,*:after{transition-property:background-color,color,border-color,box-shadow,opacity;transition-duration:.3s;transition-timing-function:ease}a,button,.cta-btn,.product-card,.project-card,.skill-circle{transition-property:background-color,color,border-color,box-shadow,transform,opacity;transition-duration:.25s;transition-timing-function:ease}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4{margin:0}h1{font-family:Sora,Inter,system-ui;font-weight:800;letter-spacing:-.02em}h2,h3,h4{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.01em}a{font-weight:500;color:var(--brand);text-decoration:inherit}a:hover{color:var(--brand-dark)}body{margin:0;display:block;min-width:320px;min-height:100vh;background:var(--bg-secondary);color:var(--text);font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}#root{width:100vw;min-height:100vh;margin:0;padding:0;box-sizing:border-box;overflow-x:hidden}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}body{margin:0;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background:#f6f8fa;color:#1a202c;scroll-behavior:smooth;overflow-x:hidden!important;display:block;min-width:320px;min-height:100vh}:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px #60a5fa47}body.scroll-lock,#root.scroll-lock{overflow-y:hidden!important}.app-content-wrapper{width:100%;min-height:100vh;box-sizing:border-box}.logo{height:1.5em;padding:.2em;will-change:filter;transition:filter .3s;font-size:.95rem;font-weight:700;color:#2d6cdf;text-decoration:none;letter-spacing:1px;margin:0}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.navbar{width:100%;background:#fff;box-shadow:0 2px 8px #0000000a;position:sticky;top:0;z-index:100;transition:box-shadow .3s;min-height:32px;padding:0;max-width:100vw;overflow-x:hidden;box-sizing:border-box}.navbar .container{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:0 .5rem;min-height:32px}.nav-links{list-style:none;display:flex;gap:1.2rem;margin:0;padding:0;flex-wrap:wrap;justify-content:center}.nav-links a{color:#1a202c;text-decoration:none;font-weight:500;font-size:1rem;transition:color .2s,border-bottom .2s;padding-bottom:2px;border-bottom:2px solid transparent}.nav-links a:hover,.nav-links a:focus{color:#2d6cdf;border-bottom:2px solid #2d6cdf;outline:none}.hero-section{width:100%;margin:0 auto 3rem;border-radius:18px;box-shadow:0 2px 16px #0000000a;background:#fff;animation:fadeInUp 1.2s;transition:box-shadow .4s,background .4s;min-height:80vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(120deg,#e0e7ff,#f6f8fa);text-align:center;padding:4rem 1rem 2rem}.hero-section h1{font-size:3.2rem;margin-bottom:.5rem;color:#2d6cdf;letter-spacing:-1px;font-weight:800;word-break:break-word;line-height:1.2}.hero-section h2{font-size:1.6rem;color:#3b4252;margin-bottom:1.5rem;font-weight:600;word-break:break-word;line-height:1.2}.hero-section p{font-size:1.2rem;color:#444;max-width:600px;margin:0 auto 1.5rem;line-height:1.7}.cta-btn{display:inline-block;background:#2d6cdf;color:#fff;padding:.75rem 2.2rem;border-radius:30px;font-size:1.15rem;font-weight:600;text-decoration:none;box-shadow:0 2px 8px #2d6cdf14;transition:background .2s,transform .2s,box-shadow .2s;margin-top:1.5rem;letter-spacing:.5px}.cta-btn:hover,.cta-btn:focus{background:#174ea6;transform:translateY(-2px) scale(1.04);box-shadow:0 6px 24px #2d6cdf21;outline:none}.container{width:100%;max-width:1200px;margin:0 auto;padding:2.5rem 2vw;box-sizing:border-box}section{margin-bottom:3rem;transition:background .5s,box-shadow .5s;width:100%;max-width:100vw;box-sizing:border-box;margin:0 auto;padding:0;overflow-x:hidden!important}.skills-list{width:100%;display:flex;flex-wrap:wrap;gap:1.2rem;padding:0;margin:0;list-style:none;justify-content:center;align-items:stretch}.skills-list li{background:#e0e7ff;color:#2d6cdf;padding:.5rem 1.2rem;border-radius:20px;font-weight:500;font-size:1rem;letter-spacing:.2px;box-shadow:0 1px 4px #2d6cdf0a;min-width:220px;max-width:100%;flex:1 1 220px;box-sizing:border-box}.projects-list{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-top:2rem;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;align-items:stretch}.project-card{background:#f1f5fd;border-radius:14px;box-shadow:0 2px 8px #2d6cdf0f;padding:1.5rem;transition:transform .3s,box-shadow .3s;font-size:1.05rem;line-height:1.6;min-width:220px;max-width:100%;flex:1 1 220px;box-sizing:border-box}.project-card:hover,.project-card:focus{transform:translateY(-4px) scale(1.03);box-shadow:0 6px 24px #2d6cdf21;outline:none}.project-card h3{color:#174ea6;font-size:1.2rem;margin-bottom:.5rem;font-weight:700;word-break:break-word;line-height:1.2}.project-card a{color:#2d6cdf;text-decoration:underline;font-weight:500;font-size:1rem;transition:color .2s}.project-card a:hover,.project-card a:focus{color:#174ea6;outline:none}.products-section{margin:0 auto 3rem;border-radius:18px;box-shadow:0 2px 16px #0000000a;background:#fff;animation:fadeInUp 1.2s;transition:box-shadow .4s,background .4s;padding:2.5rem 1.5rem;width:100%;max-width:100vw;box-sizing:border-box;margin:0 auto;padding:0}.products-section h2{color:#2d6cdf;margin-bottom:1.2rem;font-size:2rem;font-weight:700;letter-spacing:-1px;text-align:center;word-break:break-word;line-height:1.2}.products-list{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-top:2rem;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;align-items:stretch}.product-card{background:#f1f5fd;border-radius:14px;box-shadow:0 2px 8px #2d6cdf0f;padding:1.2rem;min-width:220px;text-align:center;transition:transform .3s,box-shadow .3s;max-width:100%;flex:1 1 220px;box-sizing:border-box}.product-card:hover,.product-card:focus{transform:translateY(-4px) scale(1.03);box-shadow:0 6px 24px #2d6cdf21;outline:none}.product-card h3{color:#174ea6;font-size:1.1rem;margin-bottom:6px;font-weight:700;word-break:break-word;line-height:1.2}.product-card a{color:#2d6cdf;text-decoration:underline;font-weight:500;font-size:1rem;transition:color .2s;display:block;margin-top:.5rem}.product-card a:hover,.product-card a:focus{color:#174ea6;outline:none}.contact-form{display:flex;flex-direction:column;gap:1.2rem;max-width:400px;margin:0 auto;text-align:justify}.contact-form input,.contact-form textarea{color:#222;background:#f8fafc;padding:.8rem 1rem;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem;font-family:inherit;resize:none;transition:border .2s,box-shadow .2s;text-align:justify;width:100%;box-sizing:border-box}.contact-form textarea{min-height:100px;max-height:220px}.contact-form input:focus,.contact-form textarea:focus{border:1.5px solid #2d6cdf;box-shadow:0 0 0 2px #e0e7ff;outline:none;color:#222;background:#fff}.contact-form button{background:#2d6cdf;color:#fff;border:none;border-radius:30px;padding:.8rem 2rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}.contact-form button:hover,.contact-form button:focus{background:#174ea6;transform:translateY(-2px) scale(1.04);box-shadow:0 6px 24px #2d6cdf21;outline:none}.contact-form>div{display:flex;gap:1.2rem}@media (max-width: 1200px){.container{max-width:100vw;padding:2rem 1vw}.projects-list,.products-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (max-width: 900px){.container{max-width:100vw;padding:0 .5rem}.products-list,.projects-list,.skills-list{gap:.7rem}.product-card,.project-card,.skills-list li{min-width:160px;flex:1 1 160px}.nav-links{flex-direction:column;align-items:flex-start;gap:.5rem}.hero-content{margin-left:0!important;padding-left:0!important}}@media (max-width: 800px){.navbar .container{gap:0}.projects-list,.products-list{grid-template-columns:1fr}.container{padding:1rem .5rem}.hero-section h1{font-size:2.2rem}}@media (max-width: 700px){.container{padding:0 .2rem}.products-list,.projects-list,.skills-list{flex-direction:column;align-items:stretch;gap:.5rem}.product-card,.project-card,.skills-list li{min-width:0;width:100%;flex:1 1 100%}.contact-form>div{flex-direction:column;gap:.7rem}.contact-form input{width:100%!important}.contact-form button{font-size:1rem!important;padding:.7rem!important}}@media (max-width: 400px){h1,h2{font-size:1.2rem!important}.container{padding:0 .1rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}section{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}section.visible{opacity:1;transform:none}h1,h2,h3,h4{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}.container h2{position:relative;display:inline-block;padding-bottom:0;margin-bottom:12px}.container h2:after{content:none}.scroll-progress{position:fixed;top:0;left:0;height:3px;z-index:9999;background:linear-gradient(90deg,#2d6cdf,#7c3aed);transition:width .1s linear!important;pointer-events:none;border-radius:0 2px 2px 0}.hero-gradient-mesh{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(-45deg,#dbeafe,#ede9fe,#e0e7ff,#fce7f3,#d1fae5);background-size:400% 400%;animation:meshShift 14s ease infinite}@keyframes meshShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.hero-gradient-text{background:linear-gradient(135deg,#2d6cdf 30%,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-stats{display:flex;gap:0;margin:1.4rem 0 1.2rem;border-radius:14px;overflow:hidden;border:1.5px solid rgba(45,108,223,.12);width:fit-content}.hero-stat-item{padding:.7rem 1.4rem;text-align:center;border-right:1.5px solid rgba(45,108,223,.12);min-width:90px}.hero-stat-item:last-child{border-right:none}.hero-stat-value{font-family:Sora,Inter,system-ui;font-size:1.6rem;font-weight:800;line-height:1;background:linear-gradient(135deg,#2d6cdf,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-stat-label{font-size:.7rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;margin-top:3px;color:#6b7280}@media (max-width: 900px){.hero-stats{flex-wrap:wrap;width:100%}.hero-stat-item{flex:1 1 45%;border-right:none;border-bottom:1.5px solid rgba(45,108,223,.12)}.hero-stat-item:nth-child(3),.hero-stat-item:nth-child(4){border-bottom:none}}.hero-cta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.8rem;align-items:center}.hero-pill-btn{display:inline-flex;align-items:center;gap:8px;padding:.6rem 1.3rem;border-radius:30px;font-size:.9rem;font-weight:600;font-family:Inter,system-ui;text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease!important}.hero-pill-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2d6cdf33}.hero-pill-btn:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}.hero-pill-btn.primary{background:linear-gradient(135deg,#2d6cdf,#7c3aed);color:#fff;box-shadow:0 2px 12px #2d6cdf40}.hero-pill-btn.secondary{background:transparent;border-color:#2d6cdf59;color:#2d6cdf}.hero-pill-btn.secondary:hover{background:#2d6cdf0f;border-color:#2d6cdf}[data-theme=dark] .hero-pill-btn.secondary{color:#b3cdf6;border-color:#b3cdf659}[data-theme=dark] .hero-pill-btn.secondary:hover{background:#b3cdf614;border-color:#b3cdf6}.navbar-scrolled{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);box-shadow:0 1px #e2e8f0b3,0 4px 24px #2d6cdf14!important}[data-theme=dark] .navbar-scrolled{box-shadow:0 1px #2d3748b3,0 4px 24px #0000004d!important}@keyframes routeFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.route-fade{animation:routeFadeIn .35s cubic-bezier(.4,0,.2,1) forwards}.tech-tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.3px;background:#2d6cdf1a;color:#2d6cdf;border:1px solid rgba(45,108,223,.2);margin:2px;white-space:nowrap}[data-theme=dark] .tech-tag{background:#b3cdf61f;color:#b3cdf6;border-color:#b3cdf633}.tech-tags-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.case-block{font-size:.86rem;line-height:1.58;color:#475569;margin-top:4px}[data-theme=dark] .case-block{color:#cbd5e1}.case-label{font-weight:700;color:#1d4ed8}[data-theme=dark] .case-label{color:#b3cdf6}.case-role-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.case-role-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.75px;color:#2563eb}[data-theme=dark] .case-role-label{color:#93c5fd}.case-role-value{font-size:.78rem;font-weight:600;border-radius:999px;padding:3px 10px;background:#2563eb1f;border:1px solid rgba(37,99,235,.24);color:#1e40af}[data-theme=dark] .case-role-value{color:#dbeafe;background:#93c5fd29;border-color:#93c5fd4d}.case-chip{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;letter-spacing:.2px;background:#0284c71a;color:#075985;border:1px solid rgba(2,132,199,.2);margin:2px}[data-theme=dark] .case-chip{background:#38bdf81f;color:#bae6fd;border-color:#38bdf838}.cursor-glow{position:fixed;pointer-events:none;z-index:9990;width:400px;height:400px;border-radius:50%;transform:translate(-50%,-50%);transition:left .06s linear !important,top .06s linear!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.cursor-glow{display:none!important}section{opacity:1!important;transform:none!important}}.site-footer{width:100%;padding:1.5rem 2rem;text-align:center;font-size:.875rem;border-top:1px solid var(--border, #e2e8f0)}.site-footer a{font-weight:600}.site-footer-links{display:flex;justify-content:center;gap:1.2rem;margin-top:.5rem}.not-found-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:1rem;text-align:center;padding:2rem}.not-found-code{font-family:Sora,Inter,system-ui;font-size:clamp(5rem,18vw,9rem);font-weight:800;line-height:1;background:linear-gradient(135deg,#2d6cdf,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.not-found-msg{font-size:1.3rem;font-weight:600;margin:0}.not-found-sub{color:#6b7280;font-size:1rem;margin:0}.badge-current{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#16a34a,#059669);color:#fff;padding:2px 9px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.5px;vertical-align:middle;margin-left:8px;animation:pulse-green 2.5s ease-in-out infinite}@keyframes pulse-green{0%,to{box-shadow:0 0 #16a34a66}50%{box-shadow:0 0 0 6px #16a34a00}}
