@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";html,body,#root{margin:0;width:100%;min-height:100%}body{min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root{--bg: #080c14;--bg-2: #0d1220;--bg-3: #111827;--surface: rgba(17, 24, 39, .8);--surface-2: rgba(255,255,255,.04);--border: rgba(255,255,255,.08);--border-2: rgba(99,179,237,.25);--text: #f0f4ff;--text-soft: #8892a4;--accent: #63b3ed;--accent-2: #4299e1;--accent-glow: rgba(99,179,237,.18);--green: #68d391;--shadow: 0 24px 64px rgba(0,0,0,.5);--radius: 14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--text);font-family:Inter,sans-serif;background:var(--bg);overflow-x:hidden}h1,h2,h3,p,ul,dl{margin:0}a{color:inherit;text-decoration:none}#root{width:100%}.page-shell{position:relative;isolation:isolate;overflow:clip;padding-bottom:2rem}.bg-grid{position:fixed;inset:0;z-index:-3;pointer-events:none;background-image:linear-gradient(rgba(99,179,237,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(99,179,237,.04) 1px,transparent 1px);background-size:60px 60px}.glow{position:fixed;z-index:-2;border-radius:999px;pointer-events:none;filter:blur(100px);animation:drift 18s ease-in-out infinite}.glow-one{width:40rem;aspect-ratio:1;top:-12rem;right:-10rem;background:radial-gradient(circle,rgba(66,153,225,.12),transparent 70%)}.glow-two{width:30rem;aspect-ratio:1;bottom:10rem;left:-10rem;animation-delay:4s;background:radial-gradient(circle,rgba(104,211,145,.07),transparent 70%)}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(20px,30px)}}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:60;transform-origin:left;background:linear-gradient(90deg,var(--accent),var(--green));box-shadow:0 0 12px var(--accent)}.top-nav{width:min(1160px,92%);margin:1.2rem auto 0;padding:.75rem 1.1rem;border-radius:var(--radius);border:1px solid var(--border);background:#080c14d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;position:sticky;top:1rem;z-index:30;transition:transform .28s ease,opacity .22s ease}.top-nav.is-hidden{transform:translateY(calc(-100% - 1.5rem));opacity:0;pointer-events:none}.top-nav.is-visible{transform:translateY(0);opacity:1}.brand{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.brand-mark{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-family:Space Grotesk,sans-serif;font-size:1.1rem;font-weight:700;color:var(--accent);background:var(--surface-2);border:1px solid var(--border-2);box-shadow:0 0 16px var(--accent-glow)}.brand-copy{display:grid;gap:.1rem}.brand-copy strong{font-family:Space Grotesk,sans-serif;font-size:1.1rem;line-height:1;color:var(--text);font-weight:600}.brand-copy small{text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:500;color:var(--text-soft)}.top-nav-links{justify-self:center;display:flex;align-items:center;gap:.25rem;border:1px solid var(--border);border-radius:999px;padding:.28rem;background:var(--surface-2)}.top-nav-links a{padding:.4rem 1rem;border-radius:999px;font-size:.85rem;font-weight:500;color:var(--text-soft);transition:color .2s,background .2s}.top-nav-links a:hover{color:var(--text);background:#ffffff0f}.top-nav-links a.is-active{color:var(--accent);background:var(--accent-glow)}.top-nav-cta{padding:.55rem 1.1rem;border-radius:10px;border:1px solid var(--accent-2);font-weight:600;font-size:.84rem;color:var(--accent);background:var(--accent-glow);transition:transform .2s,box-shadow .2s,background .2s}.top-nav-cta:hover{transform:translateY(-2px);background:#63b3ed38;box-shadow:0 8px 24px var(--accent-glow)}.top-nav-cta.is-active{box-shadow:0 0 20px var(--accent-glow)}.section{width:min(1160px,92%);margin:0 auto;padding:5rem 0}.hero{padding-top:4rem;display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);padding:.38rem .85rem;border-radius:999px;border:1px solid var(--border-2);background:var(--accent-glow);font-weight:600}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.hero h1{margin-top:1.1rem;font-family:Space Grotesk,sans-serif;font-size:clamp(2.2rem,5.5vw,4rem);line-height:1.06;font-weight:700;background:linear-gradient(135deg,#f0f4ff,#8bb8e8 60%,#63b3ed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-summary{margin-top:1.2rem;color:var(--text-soft);font-size:clamp(1rem,2vw,1.12rem);line-height:1.8;max-width:58ch}.hero-actions{margin-top:2rem;display:flex;align-items:center;flex-wrap:wrap;gap:.9rem}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;padding:.82rem 1.5rem;border-radius:11px;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s}.primary-btn{color:var(--bg);border:none;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 32px #4299e159}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px #4299e173}.secondary-btn{color:var(--text);border:1px solid var(--border);background:var(--surface-2)}.secondary-btn:hover{transform:translateY(-2px);border-color:var(--border-2)}.hero-stats{margin-top:2.2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.hero-stats div{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:1rem .9rem;transition:border-color .2s,background .2s}.hero-stats div:hover{border-color:var(--border-2);background:var(--accent-glow)}.hero-stats dt{font-family:Space Grotesk,sans-serif;font-size:1.8rem;font-weight:700;color:var(--accent);line-height:1}.hero-stats dd{margin-top:.3rem;color:var(--text-soft);font-size:.82rem}.hero-panel{border:1px solid var(--border);border-radius:20px;background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);display:grid;align-content:start;gap:1.2rem;padding:1.4rem}.profile-picture{width:100%;max-width:320px;justify-self:center;aspect-ratio:4/5;object-fit:cover;border-radius:14px;border:1px solid var(--border);box-shadow:0 20px 50px #00000080}.hero-meta{display:grid;gap:.6rem;border-top:1px solid var(--border);padding-top:1rem}.hero-meta p{color:var(--text-soft);line-height:1.65;font-size:.9rem}.hero-meta span{color:var(--accent);font-weight:500}.section-head{max-width:720px}.section-kicker{display:inline-flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:600;color:var(--accent);margin-bottom:.7rem}.section-kicker:before{content:"";display:block;width:24px;height:2px;background:var(--accent);border-radius:2px}.section-head h2{font-family:Space Grotesk,sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.1;color:var(--text)}.section-intro{margin-top:.9rem;color:var(--text-soft);line-height:1.8}.grid{display:grid;gap:1rem;margin-top:2rem}.two-cols{grid-template-columns:repeat(2,1fr)}.info-card,.skills-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem;transition:border-color .2s,background .2s}.info-card:hover,.skills-card:hover{border-color:var(--border-2)}.info-card h3,.skills-card h3{font-family:Space Grotesk,sans-serif;font-size:1.15rem;font-weight:600;color:var(--text);margin-bottom:.9rem}.info-card li,.info-card p{color:var(--text-soft);line-height:1.75;font-size:.93rem}.info-card ul{margin-top:.4rem;padding-left:1.1rem}.plain-list{margin-top:.5rem;padding-left:1.1rem}.skills-card{margin-top:0}.skills-list{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.skills-list span{border-radius:8px;border:1px solid var(--border);background:var(--surface-2);padding:.42rem .85rem;font-size:.84rem;font-weight:500;color:var(--text-soft);transition:border-color .2s,color .2s,background .2s}.skills-list span:hover{border-color:var(--border-2);color:var(--accent);background:var(--accent-glow)}.project-tools{margin-top:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:1.1rem;box-shadow:var(--shadow)}.project-search-label{display:block;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.project-search{width:100%;padding:.72rem 1rem;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:var(--text);font-size:.93rem;transition:border-color .2s}.project-search::placeholder{color:var(--text-soft)}.project-search:focus{outline:none;border-color:var(--border-2);box-shadow:0 0 0 3px var(--accent-glow)}.project-filters{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.5rem}.filter-chip{border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-soft);font-size:.78rem;font-weight:500;padding:.35rem .8rem;transition:all .18s ease}.filter-chip:hover{border-color:var(--border-2);color:var(--accent)}.filter-chip.is-active{border-color:var(--accent);background:var(--accent-glow);color:var(--accent);font-weight:600}.tech-strip-label{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;color:var(--text-soft);margin-bottom:1rem}.tech-strip{display:flex;flex-wrap:wrap;gap:.55rem}.tech-badge{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:8px;font-size:.8rem;font-weight:600;color:var(--badge-color, var(--accent));border:1px solid color-mix(in srgb,var(--badge-color, var(--accent)) 40%,transparent);background:color-mix(in srgb,var(--badge-color, var(--accent)) 10%,transparent);transition:transform .18s,background .18s,box-shadow .18s}.tech-badge:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--badge-color, var(--accent)) 20%,transparent);box-shadow:0 6px 20px color-mix(in srgb,var(--badge-color, var(--accent)) 25%,transparent)}.project-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.1rem}.live-badge{font-size:.68rem;font-weight:700;letter-spacing:.07em;color:var(--green);border:1px solid rgba(104,211,145,.4);background:#68d3911a;border-radius:999px;padding:.2rem .65rem;animation:pulse-live 2.5s ease-in-out infinite}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.55}}.project-card--live{border-color:#68d3912e}.project-card--live:before{background:linear-gradient(135deg,rgba(104,211,145,.06),transparent)}.project-card--live:hover{border-color:#68d39180;box-shadow:0 20px 50px #0006,0 0 0 1px #68d39147}.projects-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.project-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:.75rem;min-height:280px;padding:1.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .24s,box-shadow .24s,border-color .24s;overflow:hidden}.project-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--accent-glow),transparent);opacity:0;transition:opacity .3s;pointer-events:none}.project-card:hover{transform:translateY(-6px);border-color:var(--border-2);box-shadow:0 20px 50px #0006,0 0 0 1px var(--border-2)}.project-card:hover:before{opacity:1}.project-index{color:var(--accent);font-weight:700;font-size:.75rem;letter-spacing:.12em;margin-bottom:.1rem}.project-card h3{font-family:Space Grotesk,sans-serif;font-size:1rem;font-weight:600;color:var(--text);line-height:1.35}.project-card>p{color:var(--text-soft);font-size:.87rem;line-height:1.7}.project-stack{margin-top:auto;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);border-top:1px solid var(--border);padding-top:.7rem}.project-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.4rem}.project-card a{font-weight:600;font-size:.82rem;color:var(--accent);display:inline-flex;align-items:center;gap:.3rem;transition:color .18s}.project-card a:hover{color:#90cdf4}.project-empty{margin-top:1rem;color:var(--text-soft);font-size:.93rem}.contact-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.contact-actions{margin-top:1.2rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.copy-email-btn,.contact-mail-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:.62rem 1.1rem;font-size:.85rem;font-weight:600;transition:transform .2s,box-shadow .2s}.copy-email-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.copy-email-btn:hover{transform:translateY(-1px);border-color:var(--border-2)}.contact-mail-btn{border:1px solid var(--accent-2);color:var(--bg);background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 24px #4299e14d}.contact-mail-btn:hover{transform:translateY(-1px);box-shadow:0 12px 32px #4299e166}.contact-item{display:flex;align-items:center;gap:1rem;padding:1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .22s,border-color .22s,box-shadow .22s}.contact-item:hover{transform:translateY(-4px);border-color:var(--border-2);box-shadow:0 16px 40px #0000004d}.contact-item h3{font-family:Space Grotesk,sans-serif;font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.contact-item p{color:var(--text-soft);font-size:.84rem}.icon{width:46px;height:46px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--border-2);background:var(--accent-glow)}.icon svg{width:22px;height:22px;fill:var(--accent)}.to-top-btn{position:fixed;right:max(1rem,3vw);bottom:1.5rem;z-index:40;width:44px;height:44px;border:1px solid var(--border-2);border-radius:12px;background:var(--surface);color:var(--accent);font-size:1.1rem;font-weight:700;box-shadow:0 8px 24px #0006;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .22s,transform .22s}.to-top-btn.show{opacity:1;transform:translateY(0);pointer-events:auto}.to-top-btn:hover{background:var(--accent-glow)}.floating-toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:45;padding:.6rem 1rem;border-radius:10px;border:1px solid var(--border-2);background:var(--bg-3);color:var(--text);font-size:.84rem;box-shadow:0 8px 28px #00000080}.brand:focus-visible,.top-nav-links a:focus-visible,.top-nav-cta:focus-visible,.copy-email-btn:focus-visible,.contact-mail-btn:focus-visible,.filter-chip:focus-visible,.to-top-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:translateY(0)}.site-footer{text-align:center;padding:2rem 1rem;color:var(--text-soft);font-size:.82rem;border-top:1px solid var(--border);width:min(1160px,92%);margin:0 auto}@media(max-width:1024px){.hero{grid-template-columns:1fr}.hero-panel{max-width:520px}.projects-grid,.contact-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.top-nav{grid-template-columns:1fr auto;grid-template-areas:"brand cta" "nav nav";gap:.6rem;padding:.7rem .8rem}.brand{grid-area:brand}.top-nav-links{grid-area:nav;justify-self:stretch;width:100%;overflow-x:auto;scrollbar-width:none}.top-nav-links::-webkit-scrollbar{display:none}.top-nav-links a{white-space:nowrap}.top-nav-cta{grid-area:cta;font-size:.78rem;padding:.48rem .75rem}.section{padding:3.5rem 0}.hero{padding-top:2.5rem}.hero-stats,.two-cols,.projects-grid,.contact-grid{grid-template-columns:1fr}.project-card{min-height:220px}}@media(max-width:520px){.brand-copy small{display:none}.contact-actions{flex-direction:column;align-items:stretch}.copy-email-btn,.contact-mail-btn{width:100%}.floating-toast{width:calc(100% - 2rem);text-align:center}.project-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.2rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
