:root{--surface:#fff;--body:#485058;--signal:#e3eafb;--signal-ink:#17213a;color-scheme:light}
html[data-theme="dark"]{--paper:#121418;--surface:#191c21;--ink:#f1f0eb;--body:#c4c7cc;--muted:#989da5;--line:#353941;--blue:#7fa7ff;--signal:#202b42;--signal-ink:#edf2ff;--dark:#0b0f1b;color-scheme:dark}
body{transition:background-color .25s,color .25s}
.topbar{height:84px;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(14px)}
.brand b{font-size:20px}.brand span{font-size:13px}nav{gap:32px}nav a,.resume-link{font-size:14px;font-weight:500}
nav a{position:relative;padding:10px 0}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:var(--blue);transition:right .2s}nav a:hover:after{right:0}
.header-actions{display:flex;align-items:center;gap:14px}.theme-toggle{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;font-size:19px;transition:.2s}.theme-toggle:hover{border-color:var(--blue);color:var(--blue);transform:rotate(8deg)}.theme-toggle .moon{display:none}html[data-theme="dark"] .theme-toggle .sun{display:none}html[data-theme="dark"] .theme-toggle .moon{display:block}.language-toggle{height:42px;min-width:48px;padding:0 12px;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--ink);font:500 12px "IBM Plex Mono",monospace;cursor:pointer;transition:.2s}.language-toggle:hover{border-color:var(--blue);color:var(--blue)}
.signal-bar{min-height:82px;background:var(--signal);color:var(--signal-ink);gap:14px;font:500 13px Onest,sans-serif;border-top:1px solid color-mix(in srgb,var(--blue) 18%,transparent);border-bottom:1px solid color-mix(in srgb,var(--blue) 18%,transparent)}.signal-bar span{width:28px;height:28px;font:10px "IBM Plex Mono",monospace;color:var(--blue);border-color:color-mix(in srgb,var(--blue) 45%,transparent)}
.experience-main>p:not(.role-tag),.skill-columns p{color:var(--body)}.experience-aside img{background:#fff;border-radius:4px}.proof{background:var(--surface)}.quote{background:var(--signal);color:var(--signal-ink)}
html[data-theme="dark"] .portrait-wrap img{filter:saturate(.78) brightness(.88) contrast(1.08)}html[data-theme="dark"] .portrait-note{color:#fff;background:#1757e8}html[data-theme="dark"] .case-story{box-shadow:0 1px 0 var(--line),0 -1px 0 var(--line)}
@media(max-width:600px){.topbar{height:72px}.resume-link{display:none}.theme-toggle{width:38px;height:38px}.language-toggle{height:38px;min-width:44px}.header-actions{gap:8px}.hero{min-height:calc(100vh - 72px)}.signal-bar{min-height:72px;font-size:12px}}
