:root{--font-sans: "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg: #fafafa;--text: #222;--muted: #555;--accent: #2563eb;--accent-2: #00d4ff;--card-bg: #ffffff;--card: #ffffff;--card-shadow: rgba(0, 0, 0, .1);--card-shadow-hover: rgba(0, 0, 0, .15);--border: #e5e5e5;--glass: rgba(10, 20, 30, .04);--glass-2: rgba(10, 20, 30, .02);--radius: 14px;--maxw: 1100px;color-scheme:light}:root[data-theme=dark],:root[data-theme=dark] *{--bg: #0f1724;--text: #e6eef8;--muted: #9aa4b2;--accent: #7c5cff;--accent-2: #00d4ff;--card-bg: #0b1220;--card: #0b1220;--card-shadow: rgba(0, 0, 0, .6);--card-shadow-hover: rgba(0, 0, 0, .8);--border: #24292f;--glass: rgba(255, 255, 255, .04);--glass-2: rgba(255, 255, 255, .02);color-scheme:dark}[data-theme=light]{--bg: #fafafa;--card: #ffffff;--muted: #555;--accent: #2563eb;--accent-2: #00d4ff;--glass: rgba(10, 20, 30, .04);--glass-2: rgba(10, 20, 30, .02);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);background:radial-gradient(1200px 600px at 10% 10%,rgba(124,92,255,.08),transparent 10%),radial-gradient(900px 400px at 90% 90%,rgba(0,212,255,.05),transparent 10%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;padding:32px;display:flex;justify-content:center}.wrap{width:100%;max-width:var(--maxw);margin:0 auto}nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;background:transparent;border-radius:10px;transition:background .24s ease,box-shadow .24s ease,transform .2s ease,backdrop-filter .24s ease;will-change:background,box-shadow,transform}nav.nav--scrolled{background:color-mix(in srgb,var(--card-bg) 86%,transparent);box-shadow:0 8px 24px #0206170f;transform:translateY(-1px);-webkit-backdrop-filter:blur(6px) saturate(110%);backdrop-filter:blur(6px) saturate(110%)}nav .brand{display:flex;align-items:center;gap:10px;transition:transform .18s ease}nav .brand img{height:32px;width:32px;object-fit:contain;border-radius:6px;transition:transform .18s ease,box-shadow .18s ease}nav a,nav .nav-link{color:var(--text);text-decoration:none;padding:8px 10px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;transition:color .18s ease,background .18s ease,transform .14s cubic-bezier(.2,.9,.3,1),opacity .16s ease;position:relative}nav a:after,nav .nav-link:after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2, var(--accent)));transform:scaleX(0);transform-origin:left center;transition:transform .22s cubic-bezier(.2,.9,.3,1),opacity .18s ease;opacity:0}nav a:hover,nav .nav-link:hover,nav a:focus,nav .nav-link:focus{color:var(--accent);transform:translateY(-3px)}nav a:hover:after,nav .nav-link:hover:after,nav a:focus:after,nav .nav-link:focus:after{transform:scaleX(1);opacity:1}nav a.active,nav .nav-link.active{color:var(--accent)}nav a.active:after,nav .nav-link.active:after{transform:scaleX(1);opacity:1}nav a:active,nav .nav-link:active{transform:translateY(-1px) scale(.997)}@media (max-width: 720px){nav{padding:8px}nav .brand img{height:28px;width:28px}nav a,nav .nav-link{padding:6px 8px}}@media (prefers-reduced-motion: reduce){nav,nav a,nav .brand,nav .brand img,nav a:after{transition:none!important;animation:none!important}}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.brand{display:flex;align-items:center;gap:12px}.logo{width:54px;height:54px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:inline-grid;place-items:center;font-weight:800;font-family:Space Grotesk;box-shadow:0 6px 18px #00000059}.brand h1{font-size:18px;margin:0}nav{display:flex;gap:12px;align-items:center}nav a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:10px;font-weight:600;font-size:14px;transition:all .18s ease}nav a:hover{color:var(--accent);background:var(--glass)}.btn{display:inline-flex;gap:8px;align-items:center;padding:10px 14px;border-radius:12px;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;text-decoration:none;border:none;cursor:pointer;box-shadow:0 8px 24px #5c4bc826,inset 0 -1px #ffffff0a}.ghost{background:transparent;border:1px solid rgba(255,255,255,.06);color:var(--muted);padding:9px 12px;border-radius:10px}main{display:grid;grid-template-columns:1fr 420px;gap:28px;align-items:start}@media (max-width:980px){main{grid-template-columns:1fr;padding-bottom:40px}header{flex-direction:column;align-items:flex-start;gap:12px}}.hero{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);padding:28px;border-radius:var(--radius);box-shadow:0 6px 30px #02061799;border:1px solid var(--glass);overflow:hidden}.hero .eyebrow{color:var(--accent);font-weight:700;font-family:Space Grotesk;margin-bottom:12px}.hero h2{font-size:32px;margin:0 0 10px;line-height:1.05}.hero p{margin:0 0 18px;color:var(--muted)}.cta-row{display:flex;gap:12px;flex-wrap:wrap}.profile-info{margin-top:18px;display:flex;gap:18px;align-items:center}.avatar{width:92px;height:92px;border-radius:16px;background:linear-gradient(135deg,var(--accent-2),var(--accent));display:grid;place-items:center;font-family:Space Grotesk;font-weight:800;font-size:36px;color:#fff;flex-shrink:0;box-shadow:0 10px 30px #0c0c1e80;border:1px solid rgba(255,255,255,.04)}.meta small{display:block;color:var(--muted);margin-bottom:8px}aside{position:relative;border-radius:var(--radius);padding:20px;background:linear-gradient(180deg,var(--card),transparent);border:1px solid var(--glass);min-height:200px}.card-title{font-weight:700;margin-bottom:10px}.socials{display:flex;gap:10px;flex-wrap:wrap}.chip{padding:8px 12px;border-radius:999px;background:var(--glass-2);color:var(--muted);font-weight:600;font-size:14px}.skills{display:grid;gap:12px}.skill{display:flex;flex-direction:column;gap:6px}.skill .label{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.bar{height:10px;background:#ffffff0a;border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0%;transition:width .9s cubic-bezier(.2,.9,.2,1)}.projects{background:linear-gradient(180deg,rgba(255,255,255,.01),transparent);padding:18px;border-radius:var(--radius);border:1px solid var(--glass)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tag{padding:8px 10px;border-radius:999px;background:var(--glass);color:var(--muted);cursor:pointer;font-weight:600}.tag.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 6px 18px #00000040}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width:720px){.grid{grid-template-columns:1fr}}.proj{border-radius:12px;padding:12px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);border:1px solid var(--glass);display:flex;gap:12px;align-items:flex-start}.proj-thumb{width:90px;height:64px;border-radius:8px;background:linear-gradient(135deg,var(--accent-2),var(--accent));display:grid;place-items:center;color:#fff;font-weight:700}.proj h4{margin:0 0 6px}.proj p{margin:0;color:var(--muted);font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061799;display:none;align-items:center;justify-content:center;z-index:60}.modal{width:90%;max-width:920px;background:var(--card);padding:22px;border-radius:14px;border:1px solid var(--glass);box-shadow:0 30px 80px #020617b3;color:inherit}.modal .m-grid{display:grid;grid-template-columns:1fr 320px;gap:18px}@media (max-width:900px){.modal .m-grid{grid-template-columns:1fr}}.m-image{height:220px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#fff;font-weight:800;font-size:24px}.m-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.m-tags .chip{background:transparent;border:1px solid rgba(255,255,255,.05);color:var(--muted)}.github-stats{margin-top:48px;text-align:center}.github-grid{display:flex;justify-content:center;flex-wrap:nowrap;gap:24px;align-items:flex-start;max-width:100%;box-sizing:border-box}.stat-card{flex:1 1 0;display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%}.github-grid img{height:clamp(220px,28vw,360px);width:auto;max-width:min(100%,calc((100vw - 96px)/2));max-height:420px;object-fit:contain;display:block;border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);transition:transform .3s ease,box-shadow .3s ease}.github-grid img:hover{transform:scale(1.03);box-shadow:0 4px 12px var(--card-shadow-hover)}@media (max-width: 720px){.github-grid{flex-wrap:wrap}.stat-card{flex:1 1 100%}.github-grid img{width:100%;height:auto;max-width:100%}}#contact{color:var(--text);padding-bottom:64px;box-sizing:border-box}#contact .contact-form{display:grid;gap:12px;align-items:start}#contact input,#contact textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card-bg);color:var(--text);box-sizing:border-box;transition:border-color .14s ease,box-shadow .14s ease,transform .06s ease;font-size:.98rem;outline:none}#contact input::placeholder,#contact textarea::placeholder{color:var(--muted);opacity:.9}#contact textarea{min-height:120px;resize:vertical}#contact input:focus,#contact textarea:focus{border-color:var(--accent);box-shadow:0 0 0 6px #2563eb0f}#contact .btn.btn-sm{padding:8px 12px 8px 14px;font-size:.92rem;border-radius:8px;box-shadow:0 8px 18px #1018280f;transition:transform .09s cubic-bezier(.2,.9,.3,1),box-shadow .12s ease;margin-bottom:8px;width:auto;white-space:nowrap;justify-self:start;align-self:start}#contact .btn.btn-sm:active{transform:translateY(1px) scale(.995);box-shadow:0 4px 10px #1018280a}#contact .btn.btn-sm:focus{outline:none;box-shadow:0 0 0 6px #2563eb14}#contact .btn[disabled]{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}:root[data-theme=dark] #contact input,:root[data-theme=dark] #contact textarea{background:var(--card);border:1px solid var(--border)}.reveal{opacity:0;transform:translateY(12px);transition:all .6s cubic-bezier(.15,.9,.25,1)}.reveal.visible{opacity:1;transform:translateY(0)}.floating{animation:floaty 6s ease-in-out infinite}@keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}.muted{color:var(--muted)}.flex{display:flex;gap:12px;align-items:center}.right{margin-left:auto}.success-msg{color:var(--accent);margin-top:12px;font-weight:500}.error-msg{color:#e63946;margin-top:12px;font-weight:500}.footer{width:100%;padding:48px 20px 32px;background:linear-gradient(180deg,var(--card-bg) 0%,var(--bg) 100%);color:var(--text);text-align:center;border-top:1px solid var(--border);box-shadow:0 -2px 8px var(--card-shadow);transition:background .3s ease,color .3s ease}.footer-content{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}.footer-logo{font-size:1.4rem;font-weight:600;color:var(--accent);margin-bottom:4px}.footer-tagline{color:var(--muted);font-size:.95rem;margin-bottom:8px}.footer-socials{display:flex;gap:20px;justify-content:center;margin-top:10px}.footer-socials a{font-size:1.4rem;color:var(--muted);transition:transform .25s ease,color .25s ease}.footer-socials a:hover{color:var(--accent);transform:translateY(-3px) scale(1.1)}.footer-copy{font-size:.85rem;color:var(--muted);margin-top:12px;opacity:.8}:root[data-theme=light] .footer{background:linear-gradient(180deg,#f9f9f9,#fff);border-top:1px solid #e5e5e5}:root[data-theme=dark] .footer{background:linear-gradient(180deg,#111418,#0c0f13);border-top:1px solid #1f242c}footer{position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;width:100vw;border-radius:0;box-sizing:border-box;background:var(--card-bg);color:var(--muted);border-top:1px solid var(--border);box-shadow:0 -2px 12px var(--card-shadow);padding:20px 24px}.footer-content,footer>.wrap-inner{max-width:var(--maxw, 1100px);margin:0 auto;padding:0 12px;box-sizing:border-box}:root[data-theme=light] footer{background:var(--card-bg)}:root[data-theme=dark] footer{background:var(--card-bg)}
