:root{--bg:#fff;--surface:#fafafa;--fg:#0a0a0a;--muted:#6b6b6b;--line:#e6e6e6;--line-strong:#0a0a0a;--accent:#0a0a0a;--accent-fg:#fff;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;--maxw:1080px;--pad:clamp(1.25rem, 5vw, 4rem);--radius:2px;--ease:cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{--bg:#0a0a0a;--surface:#141414;--fg:#f5f5f5;--muted:#8f8f8f;--line:#232323;--line-strong:#f5f5f5;--accent:#f5f5f5;--accent-fg:#0a0a0a}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background .3s var(--ease), color .3s var(--ease);margin:0;line-height:1.6}:root.theme-transition,:root.theme-transition *,:root.theme-transition :before,:root.theme-transition :after{transition:background-color .5s var(--ease), border-color .5s var(--ease), color .5s var(--ease), fill .5s var(--ease), box-shadow .5s var(--ease)!important}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}::selection{background:var(--fg);color:var(--bg)}.background{z-index:-1;pointer-events:none;will-change:transform;display:block;position:fixed;inset:0;transform:translateZ(0)}.container{width:100%;max-width:var(--maxw);padding-inline:var(--pad);margin-inline:auto}.section{border-top:1px solid var(--line);padding-block:clamp(3.5rem,9vw,7rem)}.section__label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;font-size:.75rem}.section__title{letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:1.1}.section__subtitle{color:var(--muted);max-width:46ch;margin-top:.75rem}.header{z-index:50;-webkit-backdrop-filter:saturate(160%)blur(8px);backdrop-filter:saturate(160%)blur(8px);border-bottom:1px solid var(--line);background:#fffc;position:sticky;top:0}:root[data-theme=dark] .header{background:#0a0a0ab3}.header__inner{justify-content:space-between;align-items:center;gap:1rem;height:64px;display:flex}.header__brand{font-family:var(--font-mono);letter-spacing:-.02em;font-size:1rem;font-weight:600}.header__brand span{color:var(--muted)}.header__nav{gap:1.75rem;display:none}@media (width>=720px){.header__nav{display:flex}}.header__nav a{color:var(--muted);transition:color .2s var(--ease);font-size:.9rem;position:relative}.header__nav a:after{content:"";background:var(--fg);width:0;height:1px;transition:width .25s var(--ease);position:absolute;bottom:-4px;left:0}.header__nav a:hover{color:var(--fg)}.header__nav a:hover:after{width:100%}.header__controls{align-items:center;gap:.5rem;display:flex}.control{border:1px solid var(--line);height:36px;color:var(--fg);border-radius:var(--radius);cursor:pointer;font-family:var(--font-mono);transition:border-color .2s var(--ease), background .2s var(--ease);background:0 0;justify-content:center;align-items:center;font-size:.8rem;display:inline-flex}.control:hover{border-color:var(--line-strong)}.control--icon{width:36px}.lang-switch{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.lang-switch__btn{min-width:40px;height:34px;color:var(--muted);cursor:pointer;font-family:var(--font-mono);letter-spacing:.05em;transition:color .2s var(--ease), background .2s var(--ease);background:0 0;border:0;font-size:.78rem}.lang-switch__btn+.lang-switch__btn{border-left:1px solid var(--line)}.lang-switch__btn:hover{color:var(--fg)}.lang-switch__btn[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.hero{padding-block:clamp(4rem,14vw,9rem)}.hero__role{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.85rem}.hero__name{letter-spacing:-.04em;margin-top:1rem;font-size:clamp(2.75rem,11vw,7rem);font-weight:800;line-height:.95}.hero__tagline{color:var(--muted);max-width:40ch;margin-top:1.75rem;font-size:clamp(1.05rem,2.4vw,1.4rem)}.hero__cta{background:var(--accent);color:var(--accent-fg);border-radius:var(--radius);transition:transform .2s var(--ease), opacity .2s var(--ease);align-items:center;gap:.6rem;margin-top:2.5rem;padding:.85rem 1.6rem;font-weight:500;display:inline-flex}.hero__cta:hover{opacity:.9;transform:translateY(-2px)}.hero__cta span{transition:transform .2s var(--ease)}.hero__cta:hover span{transform:translate(3px)}.about__text{max-width:30ch;font-size:clamp(1.15rem,2.6vw,1.6rem);font-weight:400;line-height:1.5}@media (width>=720px){.about__text{max-width:24ch}}.about__grid{gap:2rem;display:grid}@media (width>=720px){.about__grid{grid-template-columns:1fr 1.4fr;align-items:start}}.cards{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);gap:1px;margin-top:2.5rem;display:grid;overflow:hidden}@media (width>=560px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){.cards{grid-template-columns:repeat(3,1fr)}}.card{background:var(--bg);transition:background .25s var(--ease);padding:clamp(1.5rem,3vw,2rem)}.card:hover{background:var(--surface)}.card__index{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.card__title{letter-spacing:-.01em;margin-top:.75rem;font-size:1.15rem;font-weight:600}.card__text{color:var(--muted);margin-top:.5rem;font-size:.95rem}.stack__grid{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.chip{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg);transition:border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease);cursor:default;padding:.6rem 1rem;font-size:.9rem}.chip:hover{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.stack__note{color:var(--muted);font-size:.9rem;font-family:var(--font-mono);margin-top:1.5rem}.contact__email{letter-spacing:-.03em;border-bottom:2px solid var(--fg);transition:opacity .2s var(--ease);align-items:center;gap:.4rem;margin-top:1.5rem;padding-bottom:.2rem;font-size:clamp(1.5rem,6vw,3.5rem);font-weight:700;display:inline-flex}.contact__email svg{transition:transform .2s var(--ease)}.contact__email:hover{opacity:.6}.contact__email:hover svg{transform:translate(3px,-3px)}.footer{border-top:1px solid var(--line);padding-block:2.5rem}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer__text{font-family:var(--font-mono);color:var(--muted);font-size:.8rem}.footer__top{border:1px solid var(--line);border-radius:var(--radius);width:36px;height:36px;color:var(--fg);transition:border-color .2s var(--ease), transform .2s var(--ease);justify-content:center;align-items:center;display:inline-flex}.footer__top:hover{border-color:var(--line-strong);transform:translateY(-2px)}.card__icon{color:var(--fg);margin-bottom:.9rem;display:inline-flex}.hero__cta svg{transition:transform .2s var(--ease)}.hero__cta:hover svg{transform:translate(3px)}.notfound{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding-block:clamp(3rem,10vw,6rem);display:flex}.notfound__code{letter-spacing:-.04em;color:var(--fg);justify-content:center;align-items:center;gap:.08em;font-size:clamp(6rem,26vw,15rem);font-weight:800;line-height:1;animation:7s ease-in-out infinite nf-float;display:flex}.notfound__zero{border:.11em solid;border-radius:50%;width:.62em;height:.82em;margin:0 .05em;display:inline-block;position:relative}.notfound__orbit{border:1px solid var(--muted);opacity:.4;border-radius:50%;width:1.05em;height:1.05em;margin:-.525em 0 0 -.525em;animation:5s linear infinite nf-orbit;position:absolute;top:50%;left:50%}.notfound__orbit:before{content:"";background:var(--fg);border-radius:50%;width:.14em;height:.14em;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.notfound__title{letter-spacing:-.02em;margin-top:1.5rem;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700}.notfound__text{color:var(--muted);max-width:42ch;margin-top:.75rem}.notfound__cta{background:var(--accent);color:var(--accent-fg);border-radius:var(--radius);transition:transform .2s var(--ease), opacity .2s var(--ease);align-items:center;gap:.6rem;margin-top:2.25rem;padding:.85rem 1.6rem;font-weight:500;display:inline-flex}.notfound__cta svg{transition:transform .2s var(--ease)}.notfound__cta:hover{opacity:.9;transform:translateY(-2px)}.notfound__cta:hover svg{transform:translate(-3px)}@keyframes nf-orbit{to{transform:rotate(360deg)}}@keyframes nf-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.05em)}}@media (prefers-reduced-motion:reduce){.notfound__code,.notfound__orbit{animation:none}}
