:root{--bg: #fbfaf8;--bg-soft: #f2f0eb;--text: #1c1b1a;--muted: #6c6862;--faint: #97928a;--line: #e4e0d8;--accent: #b5482f;--max: 780px}:root[data-theme=dark]{--bg: #121211;--bg-soft: #1b1b19;--text: #ece9e3;--muted: #a39e95;--faint: #756f66;--line: #2a2926;--accent: #e08a6f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #121211;--bg-soft: #1b1b19;--text: #ece9e3;--muted: #a39e95;--faint: #756f66;--line: #2a2926;--accent: #e08a6f}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:20;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--line)}nav{max-width:var(--max);margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-family:Newsreader,serif;font-weight:500;font-size:1.05rem;letter-spacing:-.01em}.brand span{color:var(--faint);font-weight:400}.nav-links{display:flex;gap:1.35rem;font-size:.85rem;color:var(--muted)}.nav-links a{transition:color .15s ease}.nav-links a:hover{color:var(--text)}.nav-right{display:flex;align-items:center;gap:1.35rem}.theme-toggle,.hamburger{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);cursor:pointer;transition:all .15s ease}.theme-toggle:hover,.hamburger:hover{color:var(--text);border-color:var(--accent)}.theme-toggle svg{width:16px;height:16px}.hamburger svg{width:18px;height:18px}.hamburger{display:none}.mobile-nav-overlay{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:var(--bg);flex-direction:column;align-items:center;justify-content:center;padding-top:4rem}.mobile-nav-links{display:flex;flex-direction:column;align-items:center;gap:2.25rem;font-size:1.15rem}.mobile-nav-links a{color:var(--muted);transition:color .15s ease}.mobile-nav-links a:hover{color:var(--text)}@media(max-width:560px){.nav-links{display:none}.hamburger{display:inline-flex;position:relative;z-index:110}}@media(min-width:561px){.mobile-nav-overlay{display:none}}main{max-width:var(--max);margin:0 auto;padding:0 1.5rem}section{padding:3.5rem 0;border-top:1px solid var(--line)}section:first-of-type{border-top:none}.label{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:1.6rem}.hero{padding-top:4.5rem;padding-bottom:3rem}.hero .eyebrow{font-family:JetBrains Mono,monospace;font-size:.78rem;letter-spacing:.08em;color:var(--muted);margin-bottom:1.1rem}.hero h1{font-family:Newsreader,serif;font-weight:500;font-size:clamp(2.6rem,8vw,3.8rem);line-height:1.02;letter-spacing:-.02em;margin-bottom:1.6rem}.hero p{color:var(--muted);font-size:1.05rem;margin-bottom:1.1rem;max-width:56ch}.hero p strong{color:var(--text);font-weight:500}.socials{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}.socials a{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;transition:all .15s ease;background:var(--bg)}.socials a:hover{color:var(--text);border-color:var(--accent);transform:translateY(-1px)}.socials svg{width:15px;height:15px}.entry{display:grid;grid-template-columns:7.5rem 1fr;gap:1.25rem;padding:1.1rem 0;border-top:1px solid var(--line)}.entry:first-of-type{border-top:none;padding-top:0}.entry .when{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--faint);padding-top:.15rem}.entry .role{font-family:Newsreader,serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em}.entry .org{color:var(--accent);font-size:.92rem;margin-top:.1rem}.entry .desc{color:var(--muted);font-size:.92rem;margin-top:.5rem}@media(max-width:560px){.entry{grid-template-columns:1fr;gap:.35rem}.entry .when{padding-top:0}}.skill-group{margin-bottom:1.5rem}.skill-group:last-child{margin-bottom:0}.skill-group h3{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:.7rem}.chips{display:flex;flex-wrap:wrap;gap:.45rem}.chips span{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);border-radius:6px;padding:.3rem .65rem}.projects{display:grid;gap:.6rem}.project{display:block;border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.25rem;background:var(--bg);transition:all .15s ease}.project:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px -16px color-mix(in srgb,var(--accent) 60%,transparent)}.project .top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.project h3{font-family:Newsreader,serif;font-size:1.15rem;font-weight:500}.project .tag{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--faint);white-space:nowrap}.project p{color:var(--muted);font-size:.9rem;margin-top:.35rem}.arrow{color:var(--faint);transition:transform .15s ease;display:inline-block}.project:hover .arrow{transform:translate(2px,-2px);color:var(--accent)}.pagination{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.6rem}.page-btn,.page-num{font-family:JetBrains Mono,monospace;font-size:.8rem;min-width:32px;height:32px;padding:0 .5rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);cursor:pointer;transition:all .15s ease}.page-btn:hover:not(:disabled),.page-num:hover{color:var(--text);border-color:var(--accent)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-num.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.cursor{font-weight:300;color:var(--accent)}.cursor--blink{animation:blink .7s step-end infinite}@keyframes blink{50%{opacity:0}}footer{max-width:var(--max);margin:0 auto;padding:2.5rem 1.5rem 4rem;border-top:1px solid var(--line);color:var(--faint);font-size:.83rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}footer a:hover{color:var(--text)}
