:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:var(--bg, #242424);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:block;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.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}:root{--bg: #0f1724;--card: #0b1220;--muted: #94a3b8;--accent: #646cff;--glass: rgba(255,255,255,.03);--radius: 12px;--max-width: 1100px}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:linear-gradient(180deg,#071025,#071828);color:#e6eef8;transition:background .6s ease,color .6s ease;scrollbar-gutter:stable}html{overflow-y:scroll}html.theme-dark,body.theme-dark{background:linear-gradient(180deg,#071025,#071828);color:#e6eef8}.site-header{position:relative;display:grid;grid-template-columns:200px 1fr 220px;align-items:center}.site-header{gap:1rem;padding:1rem 0 2rem;border-bottom:1px solid rgba(255,255,255,.03);transition:border-color .5s ease,background .5s ease;box-sizing:border-box}.social-icons{display:flex;gap:.6rem;align-items:center;margin-right:0;min-width:170px}.social-icons a{color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.social-icons a:hover{color:var(--accent)}.brand h1{margin:0;font-size:1.6rem}.brand .tagline{margin:.2rem 0 0;color:var(--muted);font-size:.95rem}.top-nav a{color:var(--muted);margin-left:1rem;text-decoration:none;font-weight:600}.top-nav a:hover{color:var(--accent)}.hero{padding:2.5rem 0;text-align:left}.hero-inner{max-width:var(--max-width);margin:0 auto}.hero h2{margin:0 0 .5rem;font-size:2rem}.hero p{margin:0;color:var(--muted);line-height:1.6}.projects-section{padding:2rem 0 3rem;display:flex;flex-direction:column;align-items:center}.projects-section h2{text-align:left;max-width:var(--max-width);margin:0 auto 1rem}.projects-grid{display:flex;justify-content:center;align-items:center;width:100%;margin:0 auto;min-height:320px;transition:color .6s ease}.project-card{border:1px solid rgba(255,255,255,.04);padding:1rem;border-radius:var(--radius);display:flex;flex-direction:column;justify-content:space-between;width:320px;max-width:90vw;aspect-ratio:1 / 1;min-height:320px;max-height:90vw;box-sizing:border-box;position:relative;overflow:hidden;transition:background-color .55s ease,background .55s ease,box-shadow .55s ease,transform .18s ease}.project-card:not(.has-bg){background:linear-gradient(180deg,#ffffff05,#ffffff03)}.project-card.has-bg{background-color:transparent}.project-card:hover{transform:translateY(-6px);box-shadow:0 10px 30px #00000080}.project-card.has-bg:hover{transform:translateY(-6px) scale(1.015)}.project-card.has-bg{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}.project-card.has-bg .bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.project-card.has-bg .image-overlay{position:absolute;inset:0;border-radius:inherit;background:#0a101c4d;z-index:1;transition:background .6s,opacity .6s;pointer-events:none}body.theme-light .project-card.has-bg .image-overlay{background:#0a101c0f}.project-card.has-bg .project-content{background:linear-gradient(145deg,#0a0e16c7,#0c101aa6 55%,#10162280)!important;color:#f8fafc;border:1px solid rgba(255,255,255,.08);box-shadow:0 3px 14px -4px #0000008c;backdrop-filter:blur(4px) saturate(120%);-webkit-backdrop-filter:blur(4px) saturate(120%)}body.theme-light .project-card.has-bg .project-content{background:linear-gradient(160deg,#17203494,#222c4270 60%,#2e3a4e45)!important;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 14px -4px #00000052;color:#fff}body.theme-light .project-card.has-bg .project-content .project-desc{color:#f2f6fa!important;font-weight:500;line-height:1.5;letter-spacing:.15px;text-shadow:0 1px 2px rgba(0,0,0,.35)}.project-card.has-bg .project-content .project-desc{line-height:1.5;letter-spacing:.15px}.project-card.has-bg .project-content[style*="rgba(18,22,34,0.34)"]{background:none!important}body.theme-light .project-card.has-bg .tech-pill{background:#ffffff6b;color:#1e2735;box-shadow:0 1px 3px #0000002e}.project-card.has-bg:hover .project-content{box-shadow:0 6px 20px -6px #0000008c}body.theme-light .project-card.has-bg:hover .project-content{box-shadow:0 6px 18px -6px #00000061}.contact-section{padding:2rem 0 3rem;max-width:var(--max-width);margin:0 auto;text-align:left}.contact-section a{color:var(--accent);font-weight:600}.footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-socials a{color:var(--muted);margin-left:.6rem;text-decoration:none;font-weight:700}.footer-socials a:hover{color:var(--accent)}.site-footer{padding:2rem 0;color:var(--muted);text-align:center;border-top:1px solid rgba(255,255,255,.03)}.modal-overlay{position:fixed;inset:0;background:#02061799;display:flex;align-items:center;justify-content:center;z-index:60;padding:1rem}.modal-content{background:linear-gradient(180deg,#121622fa,#0a0c14fa);border:1.5px solid rgba(255,255,255,.08);border-radius:18px;max-width:820px;width:100%;box-shadow:0 20px 60px #000000b3;position:relative;padding:2.2rem 2rem 2rem;transition:background .6s ease,color .6s ease,border-color .6s ease}.modal-content.has-image-bg{background-size:cover;background-position:center;background-repeat:no-repeat;background-clip:padding-box;overflow:hidden}.modal-content.has-image-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#080c1461,#080c148c 55%,#080c14a6);pointer-events:none;z-index:0;border-radius:inherit}body.theme-light .modal-content.has-image-bg:before{background:linear-gradient(180deg,#fff6,#f6f8fc8c 55%,#ecf1f799)}.modal-content.has-image-bg .modal-lead{font-size:1.05em;font-weight:600;line-height:1.45}.modal-content.has-image-bg .modal-meta{font-size:.95em;font-weight:500;line-height:1.4}.modal-content.has-image-bg .modal-muted{line-height:1.55}.modal-content.has-image-bg .modal-italic{font-style:italic}.modal-content.has-image-bg .modal-meta{color:#d0d8e4}.modal-content.has-image-bg .modal-lead{color:#f5f9fc}.modal-content.has-image-bg .modal-muted{color:#d6dde6}.modal-content.has-image-bg .modal-italic{color:#c7d0da}body.theme-light .modal-content.has-image-bg .tech-pill{background:#0000000f;color:#0f172a}body.theme-light .modal-content.has-image-bg .project-link:hover{filter:brightness(1.07)}.privacy-section{padding:2rem 0 3rem;text-align:left;scroll-margin-top:80px;min-height:100vh}.privacy-inner{max-width:var(--max-width);margin:0 auto;background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid rgba(255,255,255,.04);border-radius:12px;padding:3.5rem 1.25rem 1.25rem}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent);background:transparent;border:1px solid rgba(255,255,255,.03);padding:.35rem .6rem;border-radius:8px;text-decoration:none;font-weight:700;margin:1.2rem 0 .6rem;cursor:pointer}.back-link:focus{outline:2px solid rgba(100,108,255,.18)}.privacy-title{margin:.25rem 0 .4rem}.privacy-meta{color:var(--muted);margin:0 0 1rem}.privacy-section-block h3{margin:.6rem 0 .4rem}.privacy-section-content{color:var(--muted);line-height:1.6}.privacy-section-block ul{margin:.25rem 0 .8rem 1.2rem;color:var(--muted)}.privacy-footer{color:var(--muted);margin-top:1rem;font-size:.9rem}html.theme-light,body.theme-light{background:linear-gradient(180deg,#eef2f6,#f7fbfd)!important;color:#222b3a!important;min-height:100vh;width:100%}body.theme-light{display:block!important}body.theme-light #root{background:transparent!important}body.theme-light .site-header,body.theme-light .site-footer{border-color:#0000000f}body.theme-light .project-card{background-color:#f5f6f88c!important;border:1px solid rgba(16,24,40,.06)!important;color:#0f1724!important;box-shadow:0 2px 12px #0000000f!important}body.theme-light .project-card.has-bg{background-color:transparent!important}body.theme-light .project-card.has-bg .image-overlay{background:#0a101c0f!important}body.theme-light .project-card:not(.has-bg) .project-content{background:#ffffff0f!important;color:#0f1724!important;box-shadow:none!important}body.theme-light .project-card.has-bg .project-content h3,body.theme-light .project-card.has-bg .project-content .project-desc,body.theme-light .project-card.has-bg .project-meta{color:#fff!important}body.theme-light .project-card:not(.has-bg) .project-desc,body.theme-light .project-card:not(.has-bg) .project-meta{color:#475569!important}body.theme-light .tagline,body.theme-light .top-nav a,body.theme-light .footer-socials a,body.theme-light .hero p{color:#475569!important}body.theme-light .tech-pill{background:#eef2f7!important;color:#475569!important;box-shadow:0 1px 4px #0000000f!important}body.theme-light .project-link{background:var(--accent)!important;color:#fff!important}body.theme-light .modal-content:not(.has-image-bg){background:linear-gradient(180deg,#fff,#f6f8fa)!important;border:1.5px solid rgba(0,0,0,.08)!important}body.theme-light .modal-content.has-image-bg{background-color:transparent!important;border:1.5px solid rgba(0,0,0,.1)!important}.modal-content.has-image-bg{background-size:cover;background-position:center;background-repeat:no-repeat}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Inter-400.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Inter-500.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Inter-600.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Inter-700.ttf) format("truetype")}html,body,.project-card,.modal-content{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body.theme-light .modal-content.has-image-bg{color:#0f1622}body.theme-light .modal-content.has-image-bg h3{color:#0b1420!important;text-shadow:0 1px 2px rgba(255,255,255,.55)}body.theme-light .modal-content.has-image-bg .modal-lead{color:#0b1a29!important;font-weight:600;letter-spacing:.15px}body.theme-light .modal-content.has-image-bg .modal-meta{color:#243448!important;font-weight:500}body.theme-light .modal-content.has-image-bg .modal-muted{color:#2a3d52!important}body.theme-light .modal-content.has-image-bg .modal-italic{color:#364b61!important}body.theme-light .modal-content.has-image-bg .modal-muted,body.theme-light .modal-content.has-image-bg .modal-meta{text-shadow:0 1px 1px rgba(255,255,255,.4)}body.theme-light .modal-content.has-image-bg .tech-pill:not(:last-child):after{opacity:.55}body.theme-light .modal-content.has-image-bg{backdrop-filter:blur(6px) saturate(150%);-webkit-backdrop-filter:blur(6px) saturate(150%);box-shadow:0 10px 28px -8px #0000002e,0 2px 6px -2px #0000001f}.theme-toggle{flex-shrink:0;width:42px;justify-content:center;display:flex}.theme-toggle svg{display:block;width:18px;height:18px}@media (prefers-reduced-motion: reduce){html,body,.project-card,.project-card .project-content,.theme-toggle,.modal-content{transition:none!important}}.modal-content .tech{gap:.3rem;flex-wrap:wrap}.modal-content .tech-pill{background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;font-weight:500;color:inherit!important;position:relative}.modal-content .tech-pill:not(:last-child):after{content:"·";margin-left:.35rem;margin-right:.15rem;opacity:.45;font-weight:400}body.theme-light .modal-content.has-image-bg .tech-pill{background:transparent!important;color:#0c1320!important}body.theme-light .modal-content.has-image-bg .project-link{background:#ffffffa6!important;color:#0c1320!important;border:1px solid rgba(0,0,0,.25);box-shadow:0 1px 2px #00000014,0 2px 6px -2px #0000002e;transition:background .18s ease,color .18s ease,border-color .18s ease}body.theme-light .modal-content.has-image-bg .project-link:hover{background:#ffffffd9!important;border-color:#00000059;filter:none}body.theme-light .modal-content.has-image-bg .project-link:active{background:#f0f4f8f2!important}.site-header{grid-template-columns:200px 1fr 220px}.site-header .brand{width:200px}.site-header .top-nav{display:flex;justify-content:center;gap:1.25rem;min-width:380px}.site-header .social-icons{min-width:220px}.theme-toggle{position:relative;width:42px;height:42px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--muted);transition:color .3s ease}.theme-toggle:hover{color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.theme-toggle .icon-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:opacity .44s ease,transform .44s ease}.theme-toggle .icon-sun{opacity:0;transform:scale(.7) rotate(-25deg)}.theme-toggle .icon-moon,body.theme-light .theme-toggle .icon-sun{opacity:1;transform:scale(1) rotate(0)}body.theme-light .theme-toggle .icon-moon{opacity:0;transform:scale(.7) rotate(25deg)}.theme-toggle svg{width:20px;height:20px;display:block}html{scrollbar-gutter:stable}html{scrollbar-width:thin;scrollbar-color:rgba(100,108,255,.55) rgba(255,255,255,.05)}html::-webkit-scrollbar{width:12px}html::-webkit-scrollbar-track{background:#ffffff0a}html::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#646cffa6,#646cff7a);border-radius:10px;border:2px solid rgba(0,0,0,.25)}html::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#747cffcc,#646cff99)}body.theme-light html::-webkit-scrollbar-track{background:#0000000f}body.theme-light html::-webkit-scrollbar-thumb{border-color:#fff6}.top-nav a{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
