@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap";:root{--ink: #e9eef3;--muted: #9aa6b2;--panel: #0e1420;--panel2: #0b111a;--accent: #6EF3C5;--accent2: #32C39A;--accent-ink: #091218;--link: #6EF3C5;--danger: #ff8f8f;--border: #1a2433;--chip: rgba(255,255,255,.06);--shadow: 0 30px 70px rgba(0,0,0,.35);--radius: 18px;--maxw: 1160px;--page-bg: #060a12;--aurora: radial-gradient(1200px 600px at -10% -10%, rgba(110,243,197,.12), transparent 60%), radial-gradient(900px 500px at 120% 10%, rgba(50,195,154,.12), transparent 60%), linear-gradient(180deg, #070b13, #0a1120 40%, #090e18 100%);color-scheme:dark}:root[data-theme=light]{--ink: #0a0f18;--muted: #4b5563;--panel: #ffffff;--panel2: #f7fafc;--accent: #2F6B4F;--accent2: #4D8D70;--accent-ink: #ffffff;--link: #2F6B4F;--danger: #b42318;--border: #e5e7eb;--chip: #f1f5f4;--shadow: 0 18px 50px rgba(2,6,23,.1);--page-bg: #eef3f1;--aurora: radial-gradient(1200px 600px at -10% -10%, rgba(47,107,79,.1), transparent 60%), radial-gradient(900px 500px at 120% 10%, rgba(77,141,112,.1), transparent 60%), linear-gradient(180deg, #f4f8f6, #eef3f1 40%, #f3f6f5 100%);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page-bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.65}img{max-width:100%;height:auto}a{color:var(--link)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}h1,h2,h3{letter-spacing:-.02em;line-height:1.2}.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}.skip-link{position:absolute;left:16px;top:-100px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:10px;font-weight:700}.skip-link:focus{top:12px}.muted{color:var(--muted)}.small{font-size:.875rem}.aurora-bg{position:relative;min-height:100dvh;background:var(--aurora);overflow-x:hidden}.shell{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:310px 1fr;gap:24px;padding:26px 20px 80px}.sidebar{position:sticky;top:20px;align-self:start}.content{min-width:0}.sidebar-card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.sidebar-card:after{content:"";position:absolute;inset:0;background:radial-gradient(400px 120px at 20% -10%,rgba(110,243,197,.12),transparent 60%);pointer-events:none}.avatar img{display:block;width:92px;height:92px;object-fit:cover;border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow)}.brand{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:14px 0 4px}.role{margin:0 0 14px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chips span{display:inline-block;padding:6px 10px;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--ink);background:var(--chip);border:1px solid var(--border)}.menu{display:grid;gap:10px;margin-bottom:14px}.menu a{position:relative;z-index:1;display:block;border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:700;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.menu a:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.menu .ghost{text-align:center}.links{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.links a{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--panel);text-decoration:none;color:var(--ink);font-weight:600}.links a:hover{background:var(--accent);color:var(--accent-ink);border-color:transparent}.toggle{position:relative;z-index:1;width:100%;background:linear-gradient(120deg,var(--accent),var(--accent2));color:var(--accent-ink);border:none;border-radius:12px;padding:10px 12px;font:inherit;font-weight:800;cursor:pointer}.toggle:hover{filter:brightness(1.05)}.section{margin-bottom:26px;scroll-margin-top:16px}.panel{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.panel h2{font-size:clamp(22px,3.5vw,32px);margin:0 0 16px}.panel h2.subhead{font-size:clamp(20px,3vw,26px);margin-top:36px}.hero{padding:0}.hero-inner{background:radial-gradient(800px 220px at 10% -10%,rgba(110,243,197,.12),transparent 60%),radial-gradient(900px 240px at 90% -20%,rgba(50,195,154,.1),transparent 60%),linear-gradient(180deg,var(--panel),transparent 30%);border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow);padding:38px 28px 28px;overflow:hidden}.eyebrow{color:var(--muted);font-weight:600;margin-bottom:8px}.headline{font-size:clamp(28px,5vw,44px);font-weight:800;margin:0 0 12px}.headline .gradient{background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}:root:not([data-theme=light]) .headline .gradient{background-image:linear-gradient(120deg,var(--accent),#baf3df)}.subtext{color:var(--muted);max-width:70ch;margin-bottom:18px}.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:4px;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font:inherit;text-decoration:none;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.btn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.btn.primary{background:linear-gradient(120deg,var(--accent),var(--accent2));color:var(--accent-ink);border-color:transparent}:root:not([data-theme=light]) .btn.primary{background:linear-gradient(120deg,var(--accent),#baf3df)}.btn[disabled]{opacity:.7;cursor:wait;transform:none}.marquee{display:flex;gap:22px;overflow:hidden;position:relative}.marquee span{opacity:.85;color:var(--muted);white-space:nowrap;animation:marq 18s linear infinite}@keyframes marq{0%{transform:translate(0)}to{transform:translate(-50%)}}.caret{display:inline-block;margin-left:2px;opacity:.85;animation:blink 1s steps(1,end) infinite}@keyframes blink{50%{opacity:0}}.about{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start}.about img{width:220px;height:220px;object-fit:cover;border-radius:16px;border:1px solid var(--border)}.about p{margin-top:0}.bullets{margin:10px 0 14px;padding-left:1.2rem}.bullets li{margin-bottom:6px}.bullets li::marker{color:var(--accent)}.featured-list{display:grid;gap:20px}.featured{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;padding:18px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel2)}.featured-img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top;border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow)}.featured h3{font-size:24px;margin:0 0 2px}.tagline{color:var(--accent);font-weight:700;margin:0 0 6px}.featured .bullets{color:var(--muted)}.tech-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 16px;padding:0}.tech-list li{font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--chip);border:1px solid var(--border)}.card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.card{display:flex;flex-direction:column;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel2);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top;border-bottom:1px solid var(--border)}.card-body{display:flex;flex-direction:column;flex:1;padding:16px}.card-body h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:19px;margin:0 0 6px}.card-body p{margin:0 0 14px}.card-body .tech-list{margin-top:auto}.badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 8px}.more-link{margin:16px 0 0}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:14px}.skill-group{padding:16px;border-radius:14px;border:1px solid var(--border);background:var(--panel2)}.skill-group h3{color:var(--accent);font-size:17px;margin:0 0 8px}.skill-group ul{list-style:none;margin:0;padding:0}.skill-group li{padding:5px 0;border-bottom:1px solid var(--border)}.skill-group li:last-child{border-bottom:none}.resume-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0 0;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}.contact address{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;font-style:normal}.contact address span{display:block;width:100%;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border)}.contact address a{display:inline-flex;align-items:center;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font-weight:700;text-decoration:none;overflow-wrap:anywhere}.contact address a:hover{background:var(--accent);color:var(--accent-ink);border-color:transparent}.contact-form{display:grid;gap:14px}.field label{display:block;font-weight:700;margin-bottom:4px}.field input,.field textarea{width:100%;border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}.field [aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.9rem;margin:4px 0 0}.contact-form .btn{justify-self:start}.form-status{margin:0;min-height:1.5em;color:var(--muted)}footer{text-align:center;color:var(--muted);padding:20px 20px 60px}.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:none}.backtotop{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;position:fixed;right:18px;bottom:18px;z-index:40;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font-weight:800;cursor:pointer;box-shadow:var(--shadow)}.backtotop.show{opacity:1;visibility:visible}.backtotop:hover{background:var(--accent);color:var(--accent-ink);border-color:transparent}@media(max-width:1080px){.shell{grid-template-columns:1fr}.sidebar{position:static}.menu{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}}@media(max-width:760px){.shell{padding:16px 16px 72px;gap:16px}.panel{padding:18px}.hero-inner{padding:26px 18px 20px}.featured,.card-grid,.contact-grid{grid-template-columns:1fr}.featured{padding:14px}.about{grid-template-columns:1fr}.sidebar-card .chips,.sidebar-card .links{display:none}.sidebar-card{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:16px}.avatar img{width:64px;height:64px}.brand{font-size:22px;margin:0}.role{margin:0}.avatar{grid-row:span 2}.menu,.toggle{grid-column:1 / -1}.menu{margin:14px 0 10px;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.menu a{padding:8px 10px;text-align:center}.about img{width:140px;height:140px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.marquee span,.caret{animation:none}.btn,.card,.menu a{transition:none}}
