:root{--bg:#0f1115;--surface:#181b22;--border:#262a33;--text:#e8eaee;--muted:#9aa0ab;--accent:#d19226;--accent-hover:#e8ad47;--radius:14px;--max-width:1080px;--header-height:64px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}[data-theme=light]{--bg:#fafafa;--surface:#fff;--border:#e4e6eb;--text:#15171c;--muted:#5b6270;--accent:#d19226;--accent-hover:#ad781c}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{width:min(100% - 2rem, var(--max-width));margin-inline:auto}.header{z-index:10;height:var(--header-height);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.header__logo{font-size:1.25rem;font-weight:700}.header__logo .logo__dot,.hero__title span{color:var(--accent)}.header__nav{align-items:center;gap:1.5rem;display:flex}.header__nav a{color:var(--muted);transition:color .2s}.header__nav a:hover{color:var(--text)}.theme-toggle{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:50%;width:36px;height:36px;font-size:1rem;transition:border-color .2s}.theme-toggle:hover{border-color:var(--accent)}.btn{border:1px solid #0000;border-radius:999px;padding:.75rem 1.5rem;font-weight:600;transition:background .2s,border-color .2s,transform .2s;display:inline-block}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{border-color:var(--border)}.btn--ghost:hover{border-color:var(--accent)}.hero{min-height:calc(100vh - var(--header-height));background:radial-gradient(ellipse at 70% 20%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 60%);align-items:center;display:flex}.hero__inner{animation:.8s both fade-up}.hero__eyebrow{color:var(--accent);margin-bottom:.5rem;font-weight:600}.hero__title{letter-spacing:-.03em;font-size:clamp(3rem,9vw,5.5rem);line-height:1.05}.hero__subtitle{max-width:36rem;color:var(--muted);margin-top:1.25rem;font-size:1.25rem}.hero__actions{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section{padding-block:6rem}.section__title{letter-spacing:-.02em;margin-bottom:2.5rem;font-size:2rem}.grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.5rem;transition:transform .2s,border-color .2s;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-4px)}.card__title{margin-bottom:.5rem;font-size:1.25rem}.card__text{color:var(--muted);flex:1;margin-bottom:1rem}.card__links{gap:1rem;margin-top:1.25rem;font-weight:600;display:flex}.card__links a,.contact__links a{color:var(--accent)}.card__links a:hover,.contact__links a:hover{text-decoration:underline}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tags li{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);border-radius:999px;padding:.2rem .7rem;font-size:.8rem}.tags--large li{padding:.35rem 1rem;font-size:.95rem}.skills-group__title{color:var(--text);margin-bottom:.75rem;font-size:1rem}.skills-group+.skills-group{margin-top:.5rem}.about{max-width:42rem;color:var(--muted);gap:1.5rem;font-size:1.1rem;display:grid}.contact{color:var(--muted);justify-items:start;gap:1.5rem;font-size:1.1rem;display:grid}.contact__links{gap:1.5rem;font-weight:600;display:flex}.footer{border-top:1px solid var(--border);color:var(--muted);text-align:center;padding-block:2rem;font-size:.9rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__inner{animation:none}.card,.btn{transition:none}}@media (width<=520px){.header__nav{gap:.75rem;padding-left:.3rem;font-size:.83rem}.header__nav a,.header__logo{white-space:nowrap}.header__logo{font-size:1.1rem}.theme-toggle{width:32px;height:32px}}
