:root{color-scheme:light;--header-bg:#f8f8f3ed;--surface:#fff;--reader-bg:#eeeee9;--switch-track:#e3e5db;--switch-thumb:#fff}
:root[data-theme="dark"]{color-scheme:dark;--ink:#e9ece2;--muted:#a5ad9c;--bg:#171a16;--line:#363e30;--lime:#3f5128;--header-bg:#171a16ed;--surface:#242a20;--reader-bg:#12150f;--switch-track:#39442e;--switch-thumb:#d9e9b1}
body{background:var(--bg)}header{background:var(--header-bg)}.header-actions{display:flex;align-items:center;gap:22px;flex-shrink:0}
header .theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;width:66px;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:30px;background:var(--switch-track);color:#6b725e;isolation:isolate;cursor:pointer}
.theme-toggle svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.theme-sun,.theme-moon{position:relative;z-index:1;pointer-events:none}.theme-thumb{position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:var(--switch-thumb);box-shadow:0 1px 5px #0002;transition:transform .2s ease;pointer-events:none}[data-theme="dark"] .theme-thumb{transform:translateX(32px)}[data-theme="dark"] .theme-moon{color:#28351c}
[data-theme="dark"] a:focus-visible,[data-theme="dark"] button:focus-visible{outline-color:#ccdf9e}
[data-theme="dark"] .project .image-wrap{background:var(--surface)}[data-theme="dark"] .round-link:hover span{color:var(--ink)}[data-theme="dark"] .progress{background:#bfd68f}[data-theme="dark"] nav a:hover,[data-theme="dark"] .text-link:hover{color:#cddd9a}
body:has(.reader){background:var(--reader-bg)}.reader-top p,.reader-top>span,.page figcaption{color:var(--muted)}aside{background:var(--surface)}aside a{border-color:var(--line)}dialog{background:var(--reader-bg);color:var(--ink)}.lightbox-toolbar{background:var(--surface)}.reader-bar option{background:var(--surface);color:var(--ink)}[data-theme="dark"] footer{background:#10130e}[data-theme="dark"] .reader-bar{background:#242c1ef5;border-color:#536044}
@media(max-width:700px){.header-actions{gap:8px}header .theme-toggle{width:58px;height:32px;padding:0 6px}.theme-thumb{width:24px;height:24px}[data-theme="dark"] .theme-thumb{transform:translateX(26px)}nav{gap:14px}header{gap:12px}.theme-toggle svg{width:14px;height:14px}#project-name{max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* Keep navigation centered in the viewport, independent of side content widths. */
header:has(>nav){display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
header>nav{grid-column:2;justify-self:center}
header:has(>nav)>.brand{justify-self:start}
header:has(>nav)>.header-actions{justify-self:end}

.project-cta{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:12px;padding-top:12px}@media(max-width:700px){.project-cta{font-size:11px;gap:6px}}

.hero-bottom{margin-bottom:0}.about-jump{display:flex;justify-content:flex-end;margin-top:36px}@media(max-width:700px){.about-jump{margin-top:28px}}

.archive-link{position:relative;isolation:isolate;overflow:hidden}
.archive-link::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lime);transform:scaleX(0);transform-origin:left center;transition:transform .55s cubic-bezier(.22,1,.36,1);pointer-events:none}
.archive-link:hover::before,.archive-link:focus-visible::before{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.archive-link::before{transition:none}}


.contact-items{display:flex;align-items:center;flex-wrap:wrap;gap:24px 48px}.contact-copy{display:inline-flex;align-items:center;gap:14px;border:0;border-bottom:1px solid #777d69;padding:8px 0;background:transparent;color:inherit;font-size:clamp(18px,2.6vw,36px);line-height:1.5;transition:color .2s,border-color .2s}.contact-copy svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.contact-icons{display:inline-flex;align-items:center;gap:6px}.icon-separator{font-size:16px;color:#b4baa9}.contact-copy:hover,.contact-copy:focus-visible{color:#cddd9a;border-color:#cddd9a}.copy-status{min-height:26px;margin-top:16px;color:#cddd9a;font-size:13px}footer .contact-copy:focus-visible{outline-color:#cddd9a}@media(max-width:700px){.contact-items{gap:20px}.contact-copy{gap:10px}.contact-copy svg{width:22px;height:22px}}

.contact-items{align-items:flex-start}.contact-item{min-width:0}.contact-copy{border-bottom:0}.contact-item .copy-status{margin-top:8px;text-align:left}

.education .education-label{font-size:10px;letter-spacing:1.2px;margin:0 0 12px}.brand{letter-spacing:-2px}

.about-grid{grid-template-columns:1fr 1.15fr;align-items:start;gap:7%}.about-intro h3{font-size:clamp(25px,3vw,44px);line-height:1.6;letter-spacing:-.8px}.about-intro>.text-link{margin-top:32px;padding-bottom:5px;border-bottom:1px solid var(--line);font-size:13px}.bio-section+.bio-section{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.bio-section h4{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;margin:0 0 20px;color:var(--ink)}.bio-section h4>span{font-size:10px;font-weight:400;letter-spacing:1.4px;color:var(--muted)}.about .bio-section p{font-size:14px;line-height:1.95;margin:0 0 14px}.about .bio-section p:last-child{margin-bottom:0}.bio-entry+.bio-entry{margin-top:25px}.bio-entry-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.bio-entry-head b{font-weight:500;font-size:16px}.bio-entry-head time{font-size:11px;letter-spacing:.3px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.bio-meta{display:block;margin-top:5px;color:var(--muted);font-size:12px}@media(max-width:700px){.about-grid{grid-template-columns:1fr;gap:36px}.about-intro h3{font-size:clamp(23px,6vw,32px)}.bio-section+.bio-section{margin-top:26px;padding-top:24px}.bio-entry-head b{font-size:15px}}

.about .bio-section .experience-description{margin:14px 0 0;font-size:13px;line-height:2}.bio-section .bio-entry+.bio-entry{margin-top:30px}

.contact-button{display:inline-flex;align-items:center;justify-content:center;min-width:124px;min-height:48px;padding:12px 28px;background:var(--ink);color:var(--bg);border:1px solid var(--ink);border-radius:8px;font-size:14px;font-weight:500;transition:border-radius .25s,background-color .25s,color .25s,border-color .25s}.contact-button:hover{border-radius:0;background:transparent;border-color:#000000;color:#000000;transform:none;box-shadow:none}.contact-button:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.contact-button{transition:none}.contact-button:hover{transform:none}}

.about-intro>.contact-button{margin-top:32px}

[data-theme="dark"] .contact-button:hover{border-color:#ffffff;color:#ffffff;background:transparent;border-radius:0}.detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.detail-header>a{justify-self:start;font-size:14px}.detail-header>.header-actions{justify-self:end}.detail-title{font-size:14px}@media(max-width:700px){.detail-header>a,.detail-title{font-size:12px}}

footer .contact-item .copy-status{margin-top:2px}

header>a[href="index.html"]:hover,header>a[href="index.html"]:focus-visible{color:#687d36}
[data-theme="dark"] header>a[href="index.html"]:hover,[data-theme="dark"] header>a[href="index.html"]:focus-visible{color:#cddd9a}
