/* QI — one shared palette, a compact header, and room for the work. */
:root {
 color-scheme:dark; --background-color:#1a0f0a; --card-background:#271912; --text-color:#e8dfd0; --heading-color:#faf0e6; --primary-color:#f5eddb; --accent-color:#d2b48c; --muted-text:#bfb09b; --border-color:#4f382a; --light-gray:#4f382a; --secondary-color:#342319; --hover-background:#342319; --shadow-color:rgba(0,0,0,.16); --primary-color-rgb:245,237,219; --accent-color-rgb:210,180,140; --border-radius:10px; --border-radius-lg:14px; --border-radius-pill:999px; --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --font-body:var(--font-sans); --font-display:var(--font-sans); --font-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace; --shadow:0 8px 24px var(--shadow-color); --shadow-hover:0 12px 28px var(--shadow-color); --header-height:76px;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-20:80px;
 --measure-prose:68ch;--radius-control:6px;--radius-card:10px;--duration-fast:160ms;--ease-ui:cubic-bezier(.2,.7,.2,1);
}
[data-theme="light"] {
 color-scheme:light; --background-color:#faf7f1; --card-background:#fffdf8; --text-color:#33251b; --heading-color:#28180f; --primary-color:#332015; --accent-color:#79512d; --muted-text:#6c5a49; --border-color:#d9c9b6; --light-gray:#d9c9b6; --secondary-color:#eee5d8; --hover-background:#eee5d8; --shadow-color:rgba(62,35,14,.07); --primary-color-rgb:51,32,21; --accent-color-rgb:121,81,45;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-offset,var(--header-height)) + 24px)}
body{margin:0;background:var(--background-color);color:var(--text-color);font:1rem/1.7 var(--font-sans);-webkit-font-smoothing:antialiased}
button,input{font:inherit}button{cursor:pointer}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent-color)}
button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--accent-color);outline-offset:5px;border-radius:3px}
[hidden]{display:none!important}
img{max-width:100%;height:auto;display:block}svg{flex-shrink:0}
h1,h2,h3,h4{color:var(--heading-color);line-height:1.2;margin:0 0 1rem;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.2vw,4.5rem);font-weight:650}
h2{font-size:clamp(1.65rem,3vw,2.2rem);font-weight:620}
h3{font-size:1.3rem;font-weight:620}p{margin:0 0 1.25rem}li+li{margin-top:.6rem}ul{padding-left:1.25rem}
code,pre{font-family:var(--font-mono)}
::selection{background:var(--accent-color);color:var(--background-color)}
.container{width:min(1120px,calc(100% - 64px));margin-inline:auto}.reading-width{max-width:820px}
main>section{padding-block:56px;border-top:1px solid var(--border-color)}
section,[id]{scroll-margin-top:calc(var(--header-offset,var(--header-height)) + 24px)}
.eyebrow{color:var(--muted-text);font:.8125rem/1.6 var(--font-mono);letter-spacing:0;text-transform:none;margin-bottom:12px}
.muted,.feed-meta{color:var(--muted-text)}.accent-dot{color:var(--accent-color)}
.text-link,.see-more{display:inline-flex;gap:.5rem;align-items:center;min-height:44px;font-weight:550;text-decoration:none;background:none;border:0;color:var(--text-color);padding:0}
.text-link:hover,.see-more:hover{text-decoration:underline}
.button-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:1.5rem}
.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:48px;padding:10px 20px;border:1px solid var(--border-color);border-radius:6px;font-size:.9375rem;font-weight:600;text-decoration:none;background:var(--card-background);color:var(--text-color);transition:background-color .18s ease,border-color .18s ease}
.button:hover{background:var(--hover-background);color:var(--heading-color);border-color:var(--accent-color)}
.button-primary{background:var(--primary-color);color:var(--background-color);border-color:var(--primary-color)}
.button-primary:hover{background:var(--accent-color);color:var(--background-color)}
.button-secondary{background:transparent}.button-small{font-size:.875rem;min-height:44px;padding:8px 14px}
.skip-to-content{position:fixed;left:1rem;top:-100px;z-index:2000;padding:12px 20px;background:var(--primary-color);color:var(--background-color)}
.skip-to-content:focus{top:8px}
/* Navigation */
.site-header{position:sticky;top:0;z-index:100;background:var(--background-color);border-bottom:1px solid var(--border-color)}
.site-header-inner{min-height:var(--header-height);width:min(1240px,calc(100% - 64px));margin:auto;display:flex;align-items:center;gap:32px}
.brand{display:inline-flex;align-items:center;gap:16px;min-height:44px;text-decoration:none;color:var(--heading-color);white-space:nowrap}
.brand-mark{font-size:1.6rem;line-height:1;font-weight:750;letter-spacing:-.08em}.brand-mark>span{color:var(--accent-color)}
.brand-name{font-size:.875rem;font-weight:550}
#main-nav{display:flex;align-items:center;gap:6px;margin-left:auto}
#main-nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;font-size:.875rem;text-decoration:none;border-radius:5px;color:var(--muted-text)}
#main-nav a:hover,#main-nav a[aria-current="page"]{color:var(--heading-color);background:var(--hover-background)}
#main-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px}
#main-nav .nav-contact{color:var(--heading-color);border:1px solid var(--border-color);margin-left:6px}
.header-actions{display:flex;gap:8px}
.theme-toggle{width:44px;height:44px;padding:0;display:grid;place-items:center;background:transparent;color:var(--accent-color);border:1px solid var(--border-color);border-radius:50%}
.theme-toggle:hover{background:var(--hover-background)}
.mobile-menu-toggle{display:none;min-height:44px;align-items:center;gap:10px;border:1px solid var(--border-color);border-radius:5px;color:var(--text-color);background:transparent;padding:6px 12px;font-size:.875rem}
.site-footer{width:min(1240px,calc(100% - 64px));margin:32px auto 0;border-top:1px solid var(--border-color);padding:28px 0}
.footer-top,.footer-bottom{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.footer-top p{margin:0;color:var(--muted-text);font-size:.9375rem}.footer-top>a:last-child{margin-left:auto;font-size:.9375rem;min-height:44px;display:inline-flex;align-items:center}
.footer-bottom{justify-content:space-between;margin-top:20px;font-size:.8125rem;color:var(--muted-text)}
.footer-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-links a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
/* Expand small text links without moving the glyphs or overlapping their neighbors. */
.site-header .brand,.site-footer .brand,.footer-links>a{position:relative}
.site-header .brand::after,.site-footer .brand::after,.footer-links>a::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
.footer-clock{font-family:var(--font-mono);font-size:.75rem}
.progress-wrap{position:fixed;bottom:22px;right:22px;z-index:80;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-color);background:var(--card-background);color:var(--text-color);font-size:1.2rem;box-shadow:var(--shadow)}
/* Page rhythm */
.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:60px;align-items:center;padding:76px 0 68px;border:0}
.home-hero h1{font-size:clamp(2.5rem,4.6vw,4rem);margin-bottom:.65rem}
.hero-role{color:var(--heading-color);font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.18;letter-spacing:-.035em;margin-bottom:1.5rem}
.hero-intro{max-width:585px;color:var(--muted-text);font-size:1.0625rem;line-height:1.75}
.hero-aside{text-align:center;display:flex;flex-direction:column;align-items:center}
.hero-aside p{color:var(--muted-text);font-family:var(--font-mono);font-size:.75rem;line-height:1.7;margin:20px 0 0}
.portrait-button{display:block;padding:0;background:transparent;border:1px solid var(--border-color);border-radius:50%;overflow:hidden;flex-shrink:0}
.portrait-button img{width:100%;height:100%;object-fit:cover}
.hero-aside .portrait-button{width:185px;height:185px}
.ascii-cat{color:var(--accent-color);line-height:1.15;font-size:.875rem;padding:0;margin:22px 0 0}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-color);margin-right:8px}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}
.section-heading-row h2{margin-bottom:0}
.section-heading-row p:not(.eyebrow){margin:12px 0 0;max-width:630px;color:var(--muted-text)}
.section-heading-row>a{flex-shrink:0}
/* Inline emphasis so key terms stand out instead of a wall of muted text. */
.em{color:var(--accent-color);font-weight:650}
.em-mark{color:var(--heading-color);font-weight:600;background:linear-gradient(transparent 62%,rgba(var(--accent-color-rgb),.35) 62%);padding:0 .05em;border-radius:2px}
.page-heading{padding:64px 0 48px}
.page-lede{font-size:1.125rem;color:var(--text-color);line-height:1.7;max-width:60ch}
.page-heading .page-lede{margin-bottom:0}.back-link{margin-bottom:32px}
.page-heading h1{font-size:clamp(2rem,3.6vw,3.25rem);max-width:24ch}
.hero-current{margin:0;color:var(--muted-text);font-size:.875rem}
.hero-current .text-link{font-size:inherit;text-decoration:underline;text-underline-offset:4px}
.page-lede,.hero-intro,.project-content>p{text-wrap:pretty}
.about-heading{display:flex;justify-content:space-between;align-items:center;gap:32px}.about-heading .portrait-button{width:160px;height:160px}
.about-prose p{max-width:68ch}
/* Work */
.project-grid-enhanced{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.project-card-enhanced{background:transparent;border:0;border-bottom:1px solid var(--border-color);border-radius:0;overflow:visible;min-width:0;display:flex;flex-direction:column;position:relative;box-shadow:none;transform:none;transition:none}
.project-preview{aspect-ratio:16/9;display:grid;place-items:center;min-height:0;overflow:hidden;background:#f1ebe0;border:1px solid var(--border-color);border-radius:10px;padding:16px;text-decoration:none;transition:border-color var(--duration-fast) var(--ease-ui)}
.project-preview>img{width:100%;height:100%;min-height:0;object-fit:contain;border-radius:4px;box-shadow:none;transform:none;transition:none}
.project-content{padding:20px 0 24px;flex:1;display:flex;flex-direction:column}
.project-content .eyebrow{font-size:.8125rem;margin-bottom:10px}.project-content h3{font-size:1.55rem}
.project-preview:hover,.project-card-enhanced:focus-within .project-preview{border-color:var(--accent-color)}
.project-content h3 a:hover,.project-content h3 a:focus-visible{text-decoration:underline;text-underline-offset:.2em}
.project-content h3 a{text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px}
.project-title-arrow{font-size:1.25rem;color:var(--accent-color)}.project-content>p{color:var(--muted-text);font-size:1rem;line-height:1.7;max-width:52ch}
.project-content>.project-note{font-size:.875rem;line-height:1.6;color:var(--text-color);margin:0 0 16px;max-width:52ch}
.tags{display:flex;flex-wrap:wrap;gap:6px 16px}.tags span{display:inline-flex;align-items:center;min-height:26px;border:0;border-radius:0;padding:0;font:.8125rem/1.5 var(--font-mono);color:var(--muted-text)}
.project-actions{display:flex;gap:20px;flex-wrap:wrap;padding-top:20px;margin-top:auto}
.project-actions a{font-size:.875rem;font-weight:550;min-height:44px;display:inline-flex;align-items:center;gap:6px;text-decoration:none}.project-actions a:hover{text-decoration:underline}
.project-diagram{height:100%;padding:26px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(ellipse at top right,rgba(var(--accent-color-rgb),.09),transparent 70%),var(--card-background);color:var(--text-color)}
.diagram-label,.diagram-note{font-family:var(--font-mono);font-size:.6875rem;color:var(--accent-color);letter-spacing:.07em}
.diagram-note{letter-spacing:0;color:var(--muted-text)}
.chain-nodes,.local-flow{display:flex;align-items:center;gap:10px;font:.8125rem var(--font-mono)}
.chain-nodes>span{border:1px solid var(--border-color);padding:12px 14px;border-radius:5px;flex:1;white-space:nowrap}
.chain-nodes small{display:block;margin-top:14px;color:var(--accent-color);font-size:.6875rem}
.local-flow>span{border:1px solid var(--border-color);border-radius:5px;padding:16px 14px}.local-flow b,.policy-flow b{color:var(--accent-color)}
.policy-flow{display:flex;align-items:center;justify-content:center;gap:12px;font:.8125rem var(--font-mono);flex:1}
.policy-flow>span{padding:15px 12px;border:1px solid var(--border-color);border-radius:5px;text-align:center}
.privacy-fields{display:flex;gap:8px;flex-wrap:wrap}.privacy-fields span{font:.8125rem var(--font-mono);padding:8px 12px;border:1px solid var(--border-color);border-radius:4px}
.project-index a{display:flex;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--border-color);text-decoration:none}
.project-index a>span:first-child{font-size:1.25rem;color:var(--heading-color)}.project-index a>span:nth-child(2){margin-left:auto;color:var(--muted-text);font-size:.875rem}
.project-story{max-width:68ch}.project-story section{margin:0 0 40px}.project-story h2{font-size:1.5rem;line-height:1.3;margin-bottom:12px}.project-story p{font-size:1.0625rem;line-height:1.8}
.project-status{margin-block:24px;padding:24px;border:1px solid var(--border-color);border-radius:8px;background:var(--card-background)}.project-status h2{font-size:1.15rem}.project-status p{margin:0;color:var(--muted-text)}
.project-evidence{margin:44px 0}.project-evidence>a{display:block;padding:12px;background:var(--secondary-color);border:1px solid var(--border-color);border-radius:10px}.project-evidence>a:focus-visible{outline:3px solid var(--accent-color);outline-offset:4px}.project-evidence img{width:100%;height:auto;max-height:520px;object-fit:contain;border-radius:6px;background:var(--card-background)}
figcaption{color:var(--muted-text);font-size:.875rem;padding-top:12px}
/* Contributions and writing */
.pr-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pr-showcase-card{padding:22px;border:1px solid var(--border-color);border-radius:10px;min-width:0;display:flex;flex-direction:column}
.pr-repo{font:.75rem/1.5 var(--font-mono);color:var(--muted-text);overflow-wrap:anywhere;margin-bottom:16px}
.pr-showcase-card h3{font-size:1rem;line-height:1.5;letter-spacing:-.015em}.pr-showcase-card h3 a{text-decoration:none}.pr-showcase-card h3 a:hover{text-decoration:underline}
.pr-card-footer{margin-top:auto;padding-top:16px;display:flex;gap:10px;align-items:center;color:var(--muted-text);font-size:.75rem;flex-wrap:wrap}
.pr-badge-merged{color:#ddc4ff;background:#412c53;padding:2px 7px;border-radius:4px;font-size:.75rem}
[data-theme="light"] .pr-badge-merged{color:#4c2578;background:#eee2fc}
.feed-status{grid-column:1/-1;color:var(--muted-text);padding:20px 0}.feed-meta{font-size:.75rem;margin-top:16px}
.recent-blog-list{display:grid}
.recent-blog-item{display:grid;grid-template-columns:120px minmax(0,1fr) 20px;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--border-color);text-decoration:none;transition:background-color var(--duration-fast) var(--ease-ui)}
.recent-blog-item time{font:.75rem var(--font-mono);color:var(--muted-text)}
.recent-blog-item h3{margin:0;font-size:1.125rem;line-height:1.5;letter-spacing:-.015em}
.recent-blog-item:hover,.recent-blog-item:focus-visible{background:var(--card-background)}
.writing-entry{padding:32px 0;border-bottom:1px solid var(--border-color)}.writing-entry:first-child{padding-top:0}
.writing-entry time{font:.8125rem var(--font-mono);color:var(--muted-text)}.writing-entry h2{font-size:1.6rem;margin-top:14px}.writing-entry h2 a{text-decoration:none}.writing-entry p{color:var(--muted-text)}
.writing-original{margin-top:40px;color:var(--muted-text)}
.article-body{max-width:min(100%,720px);margin-inline:auto;font-size:1.125rem;line-height:1.8;overflow-wrap:anywhere}.article-body :is(p,li){max-width:var(--measure-prose)}.article-body h2,.article-body h3{margin-top:2.5rem}.article-body figure{margin:28px 0}
.article-body a{text-decoration-thickness:1px;text-underline-offset:.2em}.article-body a:hover{text-decoration-thickness:2px}
.article-body img{width:auto;max-width:100%;height:auto;margin:auto;border-radius:8px}
.article-body pre{max-width:100%;overflow:auto;padding:20px;background:var(--card-background);font-size:.875rem}
.article-body blockquote{border-left:2px solid var(--accent-color);margin:24px 0;padding-left:24px;color:var(--muted-text)}
.article-meta{color:var(--muted-text);font-size:.875rem}
.article-summary{margin-bottom:16px}
.article-meta{margin-top:16px}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.article-layout .article-body{width:100%;min-width:0}
.article-body h2[id],.article-body h3[id]{scroll-margin-top:calc(max(var(--header-offset,var(--header-height)),120px) + 24px)}
.article-outline{min-width:0}
.article-outline h2{font-size:.9375rem;line-height:1.5;letter-spacing:0;margin-bottom:8px}
.article-outline ul{list-style:none;padding:0;margin:0}
.article-outline li+li{margin-top:0}
.article-outline a{display:block;min-height:44px;padding:10px 0;font-size:.875rem;line-height:1.5}
.article-end{margin-inline:auto}
@media(min-width:1024px){
  .article-layout.has-outline{grid-template-columns:220px minmax(0,1fr);gap:48px}
  .article-outline{align-self:start;position:sticky;top:calc(var(--header-offset,var(--header-height)) + 24px);max-height:calc(100dvh - var(--header-offset,var(--header-height)) - 48px);overflow:auto}
}
@media print{.article-layout.has-outline{display:block}.article-outline{display:none}}
/* Experience */
.experience-summary{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:52px;align-items:center}.experience-summary h2{font-size:1.8rem}
.experience-summary p:not(.eyebrow){color:var(--muted-text)}
.experience-summary-meta{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;color:var(--muted-text);font:.8125rem/1.7 var(--font-mono);padding-left:24px;border-left:1px solid var(--border-color)}
.experience-summary-meta span:first-child{color:var(--accent-color)}
.experience-list{margin-top:32px;border-top:1px solid var(--border-color)}
.experience-entry{display:grid;grid-template-columns:minmax(180px,.38fr) minmax(0,1fr);gap:6px 40px;padding:32px 0;border-bottom:1px solid var(--border-color)}
.experience-entry-heading{grid-row:1/5}.experience-entry-heading h3{font-size:1.3rem;line-height:1.3;margin:8px 0 5px}.experience-entry-heading p{margin:0}
.experience-entry-meta{font:.8125rem/1.55 var(--font-mono);color:var(--accent-color)}
.experience-entry>p{margin:0;line-height:1.7;max-width:68ch}.experience-entry ul{padding-left:1.25rem;margin:12px 0 0;max-width:68ch}.experience-entry li{font-size:.9375rem;line-height:1.7;margin:0 0 7px}
.experience-entry .tags{margin-top:12px}.experience-entry .exp-photo{margin:18px 0 0;max-width:580px}
.education-list article{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:24px 0;border-bottom:1px solid var(--border-color)}
.education-list h3{font-size:1.125rem;margin-bottom:6px}.education-list p{margin:0;color:var(--muted-text)}.education-list>article>span{font-size:.875rem;white-space:nowrap}
.reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.reference-card{margin:8px 0 0;padding:18px 0 0;border:0;border-top:1px solid var(--border-color)}
.reference-card blockquote{margin:0;font-size:1rem;line-height:1.8}.reference-card figcaption{display:grid;gap:3px;margin-top:18px;font-size:.8125rem}.reference-card figcaption strong{color:var(--heading-color)}
.resume-entry{margin:32px 0}.resume-entry h3{margin-bottom:6px}.resume-entry .muted{font-size:.875rem}
/* Life and contact */
.life-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.life-links>a{border:1px solid var(--border-color);border-radius:8px;padding:22px;text-decoration:none;display:grid;gap:12px}
.life-links a>span:first-child{color:var(--muted-text);font-size:.8125rem}.life-links strong{font-weight:550;font-size:1rem;line-height:1.5}.life-links a>span:last-child{color:var(--accent-color)}
.section-jumps{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0 0}.section-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid var(--border-color);border-radius:999px;text-decoration:none;font-size:.875rem}
.contact-section h2{font-size:clamp(2.5rem,4vw,3.5rem)}.contact-section>p:not(.eyebrow){color:var(--muted-text)}
.gpg-details{margin-top:36px;font-size:.875rem;color:var(--muted-text)}summary{cursor:pointer;padding-block:12px;width:fit-content}
.gpg-details code,.fingerprint{display:block;font-size:.875rem;overflow-wrap:anywhere;color:var(--text-color);line-height:1.8}
.gpg-details .button-row a{min-height:44px;display:inline-flex;align-items:center}
.contact-container{max-width:780px}.contact-card{border:1px solid var(--border-color);border-radius:14px;background:var(--card-background);padding:32px}
.contact-identity{display:flex;gap:20px;align-items:center}.contact-identity .portrait-button{width:76px;height:76px}
.contact-identity h2{font-size:1.5rem;margin-bottom:4px}.contact-identity p{font-size:.875rem;color:var(--muted-text);margin:0}
.contact-email{display:flex;justify-content:space-between;gap:16px;margin:32px 0 16px;font-size:clamp(1.5rem,4vw,2.25rem);text-decoration:none;color:var(--heading-color)}
.contact-socials{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin-top:32px}
.contact-socials a{display:grid;gap:4px;padding:16px 0;border-top:1px solid var(--border-color);text-decoration:none}
.contact-socials strong{font-weight:600}.contact-socials span{color:var(--muted-text);font-size:.8125rem}
.contact-key{border-top:0}.contact-key h2{font-size:1.5rem}
.cat-corner{display:flex;align-items:center;gap:20px;padding:0 0 48px}.cat-corner pre{font-size:.8125rem;line-height:1.2;color:var(--accent-color)}#cat-message{font-family:var(--font-mono);color:var(--accent-color)}
.status-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;border:1px solid var(--border-color);border-radius:8px;background:var(--primary-color);color:var(--background-color);z-index:2000;max-width:calc(100% - 32px);margin:0;font-size:.875rem;pointer-events:none;box-shadow:var(--shadow)}
.status-toast:empty{display:none}
html:not(.js) .theme-toggle,html:not(.js) [data-copy],html:not(.js) [data-print],html:not(.js) #cat-button{display:none}
.profile-dialog{padding:0;border:1px solid var(--border-color);border-radius:14px;background:var(--card-background);max-width:min(600px,calc(100vw - 40px));overflow:visible}.profile-dialog::backdrop{background:rgba(0,0,0,.8)}
.profile-dialog>img{border-radius:14px;max-height:calc(100dvh - 80px);width:auto;object-fit:contain}
.dialog-close{position:absolute;top:12px;right:12px;z-index:1;width:44px;height:44px;border-radius:50%;border:1px solid #aaa;background:#1a0f0a;color:#fff;font-size:1.75rem;line-height:1}
.error-page{min-height:65vh;padding-block:96px}.error-page h1{max-width:800px}.error-page p:not(.eyebrow){color:var(--muted-text)}
.command-dialog{width:min(560px,calc(100vw - 32px));padding:28px;background:var(--card-background);color:var(--text-color);border:1px solid var(--border-color);border-radius:12px}
.command-dialog::backdrop{background:rgba(0,0,0,.6)}.command-dialog h2{font-size:1.4rem;padding-right:36px}.command-dialog nav{display:grid}.command-dialog nav a{padding:10px 0}.command-dialog p{font-size:.875rem;color:var(--muted-text)}
@media(max-width:1000px){
 .brand-name{display:none}.site-header-inner{gap:16px}.home-hero{gap:32px;grid-template-columns:minmax(0,1fr) 190px}
 .project-diagram{padding:20px}.chain-nodes{gap:6px}.chain-nodes>span{padding:10px 7px;font-size:.75rem}
 .local-flow{gap:6px;font-size:.75rem}.local-flow>span{padding:12px 8px}.policy-flow{gap:8px;font-size:.75rem}.policy-flow>span{padding:12px 8px}
}
@media(max-width:767px){
 :root{--header-height:64px}.container,.site-header-inner,.site-footer{width:calc(100% - 40px)}
 .site-header-inner{justify-content:space-between;flex-wrap:wrap;gap:0}.brand-name{display:inline;font-size:.8125rem}.brand{gap:10px}.header-actions{margin-left:auto}
 .js .mobile-menu-toggle{display:inline-flex}#main-nav{order:3;width:100%;margin:0;padding:4px 0 16px;flex-wrap:wrap}
 .js #main-nav{display:none}.js #main-nav.active{display:flex;flex-direction:column;align-items:stretch}
 #main-nav a{padding:12px 14px;min-height:48px;font-size:1rem}#main-nav .nav-contact{margin:4px 0 0}
 .home-hero{grid-template-columns:minmax(0,1fr);padding:48px 0;gap:30px}.home-hero h1{font-size:2.75rem}.hero-role{font-size:2rem}.hero-intro{font-size:1rem}
 .hero-aside{flex-direction:row;text-align:left;gap:16px}.hero-aside .portrait-button{width:64px;height:64px}.hero-aside p{margin:0;font-size:.6875rem}.hero-aside .ascii-cat{margin:0 0 0 auto;font-size:.75rem}
 main>section{padding-block:38px}.section-heading-row{flex-wrap:wrap;gap:12px;margin-bottom:20px}.section-heading-row>a{min-height:44px;display:inline-flex;align-items:center}
 .project-grid-enhanced,.reference-grid,.life-links,.pr-showcase-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 .project-content{padding:20px 0 24px}.project-content h3{font-size:1.375rem;line-height:1.3}.project-diagram{padding:20px}.project-preview{aspect-ratio:16/9}
 .chain-nodes>span{padding:12px 8px}.chain-nodes small{margin-top:8px}.diagram-note{font-size:.625rem}
 .page-heading{padding:48px 0 36px}.page-lede br{display:none}.about-heading{align-items:flex-start}.about-heading .portrait-button{width:72px;height:72px}.about-heading h1{font-size:2.25rem}
 .experience-summary{display:block}.experience-summary-meta{margin-top:24px;gap:6px}
 .experience-entry{display:block;padding:26px 0}.experience-entry-heading{margin-bottom:15px}.education-list article{flex-direction:column;gap:12px}
 .recent-blog-item{grid-template-columns:minmax(0,1fr) 20px;gap:8px 20px}.recent-blog-item time{grid-column:1/-1}
 .project-index a{flex-wrap:wrap;gap:10px}.project-index a>span:nth-child(2){font-size:.75rem}
 .contact-card{padding:24px}.contact-identity{gap:16px}.contact-identity .portrait-button{width:64px;height:64px}.contact-identity h2{font-size:1.25rem}.contact-email{font-size:1.75rem}
 .contact-socials{gap:8px 18px}.contact-socials span{font-size:.75rem}
 .footer-top{gap:12px}.footer-top .brand{display:none}.footer-top>a:last-child{margin-left:0}.footer-bottom{gap:8px}.footer-links{gap:18px}.footer-clock{flex-basis:100%}
}
@media(max-width:374px){.container,.site-header-inner,.site-footer{width:calc(100% - 32px)}.brand-name{display:none}.hero-aside .ascii-cat{display:none}.contact-card{padding:20px}.contact-socials{grid-template-columns:minmax(0,1fr)}.about-heading .portrait-button{display:none}.project-diagram{padding:16px}.local-flow>span{padding:10px 6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
