/* Domus / febef: editorial résumé, responsive and print surfaces. Contract: ../README.md. */
@font-face { font-family:'Atkinson Hyperlegible'; src:url('fonts/atkinson-regular-latin.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Atkinson Hyperlegible'; src:url('fonts/atkinson-bold-latin.woff2') format('woff2'); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:'Fraunces'; src:url('fonts/fraunces-latin.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Montserrat'; src:url('fonts/montserrat-latin.woff2') format('woff2'); font-style:normal; font-weight:600 700; font-display:swap; }
:root { color-scheme:dark; --bg:#151619; --panel:#202226; --fg:#D1D2D4; --muted:#A9AFB8; --line:#393E46; --control:#737B87; --accent:#FF9857; --build:#A5DB83; --theory:#81C9EA; --platform:#E5BB70; --solution:#83D8C8; --lab:#BAA2E8; --ink:#151619; --serif:'Fraunces',Georgia,serif; --sans:'Atkinson Hyperlegible',Arial,sans-serif; --display:'Montserrat',var(--sans); }
:root[data-theme='light'] { color-scheme:light; --bg:#E4E5E7; --panel:#EAEBED; --fg:#202226; --muted:#5A606A; --line:#C7CBD2; --control:#757B84; --accent:#A64408; --build:#3D6C24; --theory:#196180; --platform:#79530C; --solution:#075F55; --lab:#69439D; --ink:#FFFFFF; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.65 var(--sans); position:relative; isolation:isolate; }
body::before { content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; background:url('grain.svg') repeat; opacity:.035; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; }
button { background:none; border:0; }
button:focus-visible,a:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
button:hover,a:hover { color:var(--accent); }
.skip { position:fixed; top:-100px; padding:16px; z-index:10; background:var(--accent); color:var(--ink); }
.skip:focus { top:0; }
.topbar { height:78px; margin:0 4%; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:24px; }
#mobile-nav-slot { display:none; }
.wordmark { display:flex; align-items:center; gap:9px; min-height:44px; flex-shrink:0; }
.nerd-signature { color:var(--muted); font:400 16px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:0; white-space:nowrap; }
.handle { font:14px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:0; color:var(--muted); }

.brand-point { color:var(--accent); }
.edition { font:12px/1.4 monospace; letter-spacing:1px; margin-left:0; color:var(--muted); }
.tools { margin-left:auto; display:flex; gap:23px; align-items:center; }
.tools button { min-height:44px; min-width:35px; font-size:14px; }
#theme { font-size:25px; }
.contact-top { border-bottom:1px solid color-mix(in srgb,var(--accent) 70%,transparent); padding-bottom:3px; font-size:14px; }
.contact-top span { margin-left:19px; }
.journal-header-link { min-height:44px; display:inline-flex; align-items:center; font-size:13px; color:var(--muted); white-space:nowrap; }
.journal-header-link:hover,.journal-header-link:focus-visible { color:var(--accent); }
.layout { display:grid; grid-template-columns:180px minmax(0,1fr); max-width:1510px; margin:0 auto; padding:0 4%; gap:50px; }
.rail { align-self:start; position:sticky; top:35px; padding-top:54px; }
.rail-label,.eyebrow,.folio,.rail-bottom,.lab-label,.stack-line>span,.dialog-top { font:12px/1.6 monospace; letter-spacing:1.2px; }
.rail-label { color:var(--muted); margin-bottom:24px; }
.rail-rule { width:36px; border-top:1px solid var(--line); margin-bottom:24px; }
.hero-divider { border-top:1px solid var(--line); margin-top:36px; }
.contact-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; margin-top:26px; }
.contact-invitation { color:var(--muted); margin:0; font-size:14px; }
.nav-track { position:relative; display:flex; flex-direction:column; gap:12px; }
.rail nav a { padding:6px 27px; font-size:13px; color:var(--muted); width:fit-content; }
.nav-label { display:inline-block; }
.nav-marker { position:absolute; top:0; left:0; pointer-events:none; color:var(--accent); opacity:.6; font:700 12px/1.5 monospace; white-space:nowrap; }
.nav-track.is-ready .nav-marker { transition:transform 300ms cubic-bezier(.22,.7,.25,1); }
.rail nav a:hover,.rail nav a:focus-visible { color:var(--fg); }
.rail nav a.active { color:var(--accent); }
.rail-bottom { margin-top:130px; color:var(--muted); display:flex; flex-direction:column; gap:9px; font-size:12px; }

main { min-width:0; }
.hero { padding:49px 0 29px; position:relative; }
@media print { body::before { display:none; } }
.eyebrow { color:var(--muted); }
.hero>.eyebrow { display:flex; justify-content:space-between; }
.folio { color:var(--muted); }
h1 { font:400 clamp(42px,5.4vw,78px)/1.08 var(--serif); letter-spacing:-2.2px; margin:36px 0 30px; max-width:900px; }
h1 em { font-weight:400; color:var(--fg); }
.export-site-link { display:none; }
.export-focus { display:block; max-width:75ch; margin:0; color:var(--fg); font:600 14px/1.6 var(--sans); }
.name-point { color:var(--accent); }
.intro-row { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; align-items:start; }
.intro-row h2 { font:600 23px/1.4 var(--display); letter-spacing:-.6px; margin:0; }
.intro-row p { color:var(--muted); margin:0; max-width:65ch; }
.headline-line { display:flex; align-items:center; color:var(--accent); margin-bottom:7px; }
#headline { display:grid; width:fit-content; max-width:100%; }
#headline .headline-phrase { grid-area:1/1; opacity:0; transform:translateY(7px); pointer-events:none; }
#headline .headline-phrase.is-current { opacity:1; transform:none; }
@media (prefers-reduced-motion:no-preference) {
  #headline { animation:headline-enter 700ms cubic-bezier(.2,.7,.2,1) both; }
  #headline .headline-phrase { transition:opacity 240ms ease,transform 320ms ease; }
}
@keyframes headline-enter { from { transform:translateY(9px); } to { transform:translateY(0); } }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.hero-bottom { margin-top:43px; padding-top:25px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; }
.text-link { font-size:14px; }
.text-link span { color:var(--accent); margin-left:18px; }
.hero-bottom>span { color:var(--muted); font:12px monospace; }
.section { padding:72px 0 0; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:27px; }
.section-heading h2 { margin:8px 0 0; padding-bottom:.12em; font:600 39px/1.3 var(--display); letter-spacing:-1.45px; }
.section-heading h2 span { color:var(--accent); }
.outline { padding:8px 15px; border:1px solid var(--line); border-radius:3px; font-size:14px; }
.outline:hover { border-color:var(--accent); }
.focus-bar { display:flex; align-items:center; gap:22px; padding:17px 0; border-top:1px solid var(--line); }
.focus-bar>span { color:var(--muted); font-size:14px; white-space:nowrap; }
.focus-options { display:flex; gap:8px; flex-wrap:wrap; }
.focus-options button { border:1px solid var(--line); padding:5px 13px; border-radius:30px; font-size:14px; }
.focus-options button[aria-pressed=true] { background:var(--accent); color:var(--ink); border-color:var(--accent); }
.focus-status { margin:0 0 18px; font-size:13px; color:var(--muted); }
.experience-row { display:grid; grid-template-columns:131px minmax(0,1fr) 44px; gap:20px; padding:27px 0; border-top:1px solid var(--line); position:relative; transition:background .2s; }
.experience-row.matched { background:var(--panel); box-shadow:inset 3px 0 var(--accent); padding-left:15px; }
.period { font:13px/1.6 monospace; color:var(--muted); padding-top:6px; }
.experience-row h3 { font:600 23px/1.25 var(--display); margin:0 0 3px; letter-spacing:-.5px; }
.experience-row .role { color:var(--accent); margin:0 0 10px; font-size:14px; }
.experience-row .summary { margin:0; color:var(--muted); max-width:660px; }
.experience-inline-detail { display:none; }
.tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.tags span { font:12px monospace; padding:3px 7px 3px 0; color:var(--muted); }
.expand { position:relative; border:1px solid var(--line); border-radius:50%; width:40px; height:40px; padding:0; font-size:0; align-self:start; margin-top:3px; }
.expand::before,.expand::after { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:currentColor; }
.expand::before { width:14px; height:2px; }
.expand::after { width:2px; height:14px; }
.expand:hover { border-color:var(--accent); background:var(--panel); }
.principles { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; border-top:1px solid var(--line); padding-top:24px; }
.availability-note { color:var(--muted); max-width:65ch; padding:16px 0; border-top:1px solid var(--line); }
.contact-buttons { display:flex; flex-wrap:wrap; gap:8px; }
/* A compact visual pill inside a 44px target preserves touch accessibility. */
.social-link { position:relative; isolation:isolate; display:inline-flex; align-items:center; min-height:36px; padding:0 8px; font-size:12px; font-weight:500; color:var(--social-fg); }
.social-link::before { content:''; position:absolute; inset:5px 0; z-index:-1; border:1px solid var(--social-border); border-radius:3px; background:var(--social-bg); transition:background 180ms,border-color 180ms; }
.linkedin { --social-fg:#65B5F0; --social-bg:#151619; --social-border:#335772; --social-hover:#1D3041; }
.whatsapp { --social-fg:#7DDB9B; --social-bg:#151619; --social-border:#39674A; --social-hover:#193524; }
.email { --social-fg:#F3A15D; --social-bg:#151619; --social-border:#715036; --social-hover:#35281F; }
:root[data-theme='light'] .linkedin { --social-fg:#075C99; --social-bg:#E4E5E7; --social-border:#7F9AAF; --social-hover:#D2DFE9; }
:root[data-theme='light'] .whatsapp { --social-fg:#176B36; --social-bg:#E4E5E7; --social-border:#86AA90; --social-hover:#D6E7DA; }
:root[data-theme='light'] .email { --social-fg:#914008; --social-bg:#E4E5E7; --social-border:#B09076; --social-hover:#E6D8CC; }
.social-link:hover,.social-link:focus-visible { color:var(--social-fg); }
.social-link:hover::before,.social-link:focus-visible::before { background:var(--social-hover); border-color:var(--social-fg); }
.consulting-copy { color:var(--muted); max-width:65ch; font-size:16px; margin-top:24px; }
#technology-toggle { cursor:pointer; color:var(--theory); padding:16px 0; width:fit-content; }
.technology-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:40px; row-gap:0; padding:12px 0 20px; }
.technology-groups section { --tech-tone:var(--build); border-top:1px solid var(--line); padding:21px 0 27px; }
.technology-groups section[data-tech-tone='theory'] { --tech-tone:var(--theory); }
.technology-groups section[data-tech-tone='platform'] { --tech-tone:var(--platform); }
.technology-groups section[data-tech-tone='solution'] { --tech-tone:var(--solution); }
.technology-groups section[data-tech-tone='lab'] { --tech-tone:var(--lab); }
.technology-groups h3 { display:flex; align-items:center; gap:11px; margin:0 0 15px; color:var(--fg); font:600 15px/1.35 var(--display); }
.technology-groups svg { width:20px; height:20px; color:var(--tech-tone); flex:none; }
.technology-groups ul { display:flex; flex-wrap:wrap; gap:8px 17px; list-style:none; margin:0; padding:0; }
.technology-groups li { color:var(--muted); font:14px/1.45 var(--sans); }
.technology-trigger { color:var(--muted); border:1px solid transparent; border-radius:4px; padding:5px 7px; margin:-5px -7px; min-height:32px; text-align:left; }
.technology-trigger:hover,.technology-trigger:focus-visible { color:var(--fg); border-color:var(--tech-tone); background:color-mix(in srgb,var(--tech-tone) 8%,transparent); }
.technology-tooltip { position:fixed; z-index:30; width:min(340px,calc(100vw - 24px)); max-height:50dvh; overflow:auto; padding:15px 18px; border:1px solid var(--line); border-radius:7px; background:color-mix(in srgb,var(--panel) 90%,transparent); box-shadow:0 12px 35px #0005; backdrop-filter:blur(12px); color:var(--fg); font:13px/1.45 var(--sans); }
.technology-tooltip[hidden] { display:none; }
.technology-tooltip strong { display:block; font:600 15px/1.35 var(--display); }
.technology-tooltip p { margin:6px 0 9px; color:var(--fg); }
.technology-tooltip span { color:var(--muted); font:11px/1.4 var(--sans); }
.technology-tooltip ul { margin:4px 0 0; padding-left:17px; color:var(--muted); }
.technology-tooltip li+li { margin-top:2px; }
@media(max-width:760px) { .technology-groups { grid-template-columns:1fr; } }
.journal { max-width:820px; padding:55px 6% 80px; margin:auto; }
.journal h1 { font:600 clamp(32px,5vw,55px)/1.12 var(--display); letter-spacing:-1px; }
.journal p { max-width:65ch; color:var(--muted); }
.journal-nav { display:flex; gap:24px; margin:24px 0; font-size:14px; }
.journal-nav a[aria-current='page'] { color:var(--accent); }
.topic-link { display:block; padding:23px 0; border-top:1px solid var(--line); }
.topic-link h2 { margin:8px 0; font:600 26px/1.3 var(--display); }
.topic-link p { margin:0; }
.topic-link:hover h2 { color:var(--theory); }
.post-preview { display:grid; grid-template-columns:120px minmax(0,1fr); gap:24px; padding:16px 0; }
.post-date { padding-top:3px; color:var(--theory); font:12px/1.6 monospace; letter-spacing:1px; }
.post-preview-link { display:block; min-width:0; }
.post-preview-link .eyebrow { color:var(--muted); }
.post-preview h2,.post-preview h3 { margin:8px 0; font:600 26px/1.3 var(--display); }
.post-preview p { margin:0; }
.post-preview:hover h2,.post-preview:hover h3 { color:var(--theory); }
.featured-projects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; padding-top:8px; }
.featured-project-card { display:flex; flex-direction:column; align-items:flex-start; min-height:0; padding:8px 0 18px 16px; border-left:2px solid var(--line); }
.featured-project-card:hover { border-left-color:var(--lab); }
.featured-project-card .eyebrow { color:var(--lab); }
.featured-project-card h3 { margin:10px 0 8px; font:600 25px/1.2 var(--display); }
.featured-project-card p { margin:0 0 16px; color:var(--muted); }
.featured-project-card .text-link { margin-top:auto; }
.principle-number { font:13px monospace; color:var(--accent); }
.principles h3 { font:600 24px/1.3 var(--display); margin:24px 0 13px; }
.principles p { color:var(--muted); margin:0; font-size:16px; }
.stack-line { margin-top:36px; padding:21px 0 0; }
.stack-line>span { color:var(--muted); }
.stack-line>h3 { color:var(--muted); font:12px/1.6 monospace; letter-spacing:1.2px; margin:0 0 8px; }
.section-intro { max-width:68ch; color:var(--muted); margin:0 0 28px; }
.stack-line p { margin:7px 0 0; }
.lab-card { color:var(--fg); padding:12px 0 30px; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.lab-card h3 { font:600 37px/1.2 var(--display); letter-spacing:-1px; margin:25px 0 0; }
.lab-card p { margin:0 0 26px; }
.lab-tags { display:flex; flex-wrap:wrap; gap:7px; }
.lab-tags span { color:var(--muted); padding:3px 12px 3px 0; font:13px monospace; }
.education { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; padding:35px 0 0; }
.education p { color:var(--muted); font-size:16px; }
.education-lead { color:var(--fg)!important; max-width:62ch; }
.print-contributions { display:none; }
footer { padding:70px 0 27px; }
.footer-email { font:600 clamp(22px,3.4vw,49px)/1.4 var(--display); display:block; margin:20px 0 35px; overflow-wrap:anywhere; }
.footer-email span { color:var(--accent); }
.footer-bottom { border-top:1px solid var(--line); padding-top:20px; display:flex; justify-content:space-between; gap:20px; font-size:14px; color:var(--muted); }
.footer-bottom>div { display:flex; gap:23px; }
.footer-bottom button { padding:0; font-size:14px; }
.preview-note { font-size:12px; color:var(--muted); margin-top:24px; }
dialog { background:var(--bg); color:var(--fg); border:1px solid var(--line); width:min(640px,92vw); max-height:85dvh; padding:30px; }
dialog::backdrop { background:#000a; backdrop-filter:blur(5px); }
.dialog-top { display:flex; align-items:center; justify-content:space-between; color:var(--muted); }
.dialog-top button { font-size:30px; min-width:44px; min-height:44px; }
dialog h2 { font:600 42px/1.15 var(--display); margin:22px 0 12px; }
dialog h3 { font:600 14px/1.4 var(--display); margin:25px 0 6px; color:var(--accent); }
dialog p { color:var(--muted); }
.detail-contribution-list { display:grid; gap:16px; margin-top:10px; }
.detail-contribution-item { border-left:1px solid var(--line); padding-left:14px; }
.detail-contribution-item h4 { color:var(--fg); font:12px/1.5 monospace; letter-spacing:.8px; margin:0 0 4px; }
.detail-contribution-item p { margin:0; }
/* The map is narrative exploration; chronology stays available in the classic view. */
.timeline { display:block; }
/* Orange owns navigation. Secondary colors identify work themes, never alternate page skins. */
[data-tone] { --tone:var(--accent); }
[data-tone='theory'] { --tone:var(--theory); }
[data-tone='platform'] { --tone:var(--platform); }
[data-tone='solution'] { --tone:var(--solution); }
[data-tone='lab'] { --tone:var(--lab); }


.work-options { display:flex; gap:30px; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.work-option { display:flex; align-items:center; gap:9px; text-align:left; padding:13px 0; font-size:16px; color:var(--muted); border-bottom:2px solid transparent; transition:border-color .18s; }

.work-option[aria-pressed=true] { color:var(--tone); border-bottom-color:color-mix(in srgb,var(--tone) 75%,transparent); }
.work-option:hover { color:var(--fg); }
.option-index { font:12px monospace; color:var(--muted); }
.option-arrow { margin-left:auto; color:var(--muted); transition:transform .18s; }
.work-option:hover .option-arrow { transform:translate(3px,-3px); color:var(--tone); }
.work-panel { padding:28px 0 8px; min-height:360px; max-width:760px; }
.work-panel { min-height:280px; }
.rail-actions { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin-top:20px; }
.rail-actions button,.rail-actions a { display:inline-flex; align-items:center; min-height:44px; padding:6px 4px; text-align:left; font-size:13px; color:var(--muted); }
.rail-actions button:hover,.rail-actions a:hover { color:var(--accent); }
#education-details>summary { cursor:pointer; padding:15px 0; color:var(--muted); }
#education-details { border-top:1px solid var(--line); margin-top:44px; }
#education-details .education { padding:0 0 20px; }
.closing-contact h2 { font:600 clamp(29px,4vw,42px)/1.2 var(--display); margin:0 0 16px; }
.closing-contact p { color:var(--muted); max-width:60ch; }
.minimal-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; border-top:1px solid var(--line); margin-top:48px; padding:22px 0; font-size:12px; color:var(--muted); }
#quick-search h2 { font:600 26px/1.3 var(--display); margin:0 0 18px; }
#search-input { display:block; width:100%; min-height:44px; margin-top:8px; padding:10px 12px; background:var(--panel); color:var(--fg); border:1px solid var(--control); font:inherit; }
#search-input:focus-visible,[tabindex='-1']:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
#search-results { list-style:none; margin:0; padding:0; }
#search-results a { display:block; padding:12px 5px; min-height:44px; border-top:1px solid var(--line); }
#search-status { font-size:14px; }
@media(max-width:760px) { .rail-actions { flex-direction:row; gap:18px; margin-top:8px; } }
@media print { .closing-contact,#quick-search { display:none!important; } }
.work-number { display:none; }
.work-body h3 { font:600 30px/1.25 var(--display); letter-spacing:-.5px; max-width:680px; margin:17px 0; }
.work-body>.eyebrow,.work-evidence strong { color:var(--tone); }
.work-body h3 { text-decoration:underline; text-decoration-color:color-mix(in srgb,var(--tone) 72%,transparent); text-decoration-thickness:1.5px; text-underline-offset:8px; }
.work-body>p { max-width:670px; color:var(--muted); }
.work-evidence { padding-top:8px; margin-top:20px; }
.work-evidence strong { font:13px monospace; color:var(--tone); }
.work-evidence p { margin:8px 0 20px; }
.work-provenance summary { cursor:pointer; font-size:14px; color:var(--muted); padding:7px 0; width:fit-content; }
.work-provenance p { color:var(--muted); font-size:14px; }
summary:focus-visible,.atlas-viewport:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.background { border-top:1px solid var(--line); margin-top:50px; }
.background .section-heading h2 { font-size:30px; }
#career-background>summary { cursor:pointer; font-size:16px; color:var(--muted); padding:15px 0; }
.editorial-note { padding:24px 0; margin:25px 0 0; border-top:1px solid var(--line); }
.editorial-note .formats { display:flex; flex-wrap:wrap; gap:12px; font:13px monospace; color:var(--muted); }
.editorial-note p { color:var(--muted); max-width:680px; }
.outline,.expand { border-color:var(--control); }
.project-card { padding:32px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.project-card h3 { font:600 38px/1.2 var(--display); margin:18px 0; }
.project-card h3 span { display:none; }
.project-card p { color:var(--muted); }
.project-card details { align-self:center; padding:8px 0; }
.project-card summary { cursor:pointer; color:var(--accent); font-size:16px; }
.project-card summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
/* Color marks meaning, not containers: orange for action, blue for ideas, violet for the lab. */
#approach { --section-accent:var(--theory); }
#lab { --section-accent:var(--lab); }
#work { --section-accent:var(--accent); }
#journal-preview { --section-accent:var(--theory); }
#background { --section-accent:var(--accent); }
#technologies { --section-accent:var(--build); }
#approach { --section-accent:var(--lab); }
.section .section-heading h2 { text-decoration-color:var(--section-accent); }
.section .section-heading .eyebrow,.section .section-heading h2 span { color:var(--section-accent); }
#approach .principle-number { color:var(--lab); }
#approach .principles article::after { background:var(--lab); }
#technology-toggle { color:var(--build); }
#approach .section-heading .eyebrow,#lab .section-heading .eyebrow,
#approach .section-heading h2 span,#lab .section-heading h2 span { color:var(--section-accent); }
#approach .principle-number { color:var(--section-accent); }
.editorial-note .formats { color:var(--theory); }
#lab .lab-label,#lab .project-card h3,#lab .project-card summary { color:var(--lab); }
#project-status { color:var(--build); }
#explore { color:var(--accent); font-weight:600; }
.wordmark:hover .nerd-signature,.wordmark:focus-visible .nerd-signature { color:var(--accent); }
.nerd-signature { transition:none; }
.text-link,.footer-email,.work-provenance summary { text-decoration:underline; text-decoration-color:transparent; text-underline-offset:6px; transition:text-decoration-color 200ms ease,color 200ms ease; }
.text-link:hover,.text-link:focus-visible,.footer-email:hover,.footer-email:focus-visible { text-decoration-color:color-mix(in srgb,var(--accent) 75%,transparent); }
.work-provenance summary:hover,.work-provenance summary:focus-visible { color:var(--tone); text-decoration-color:color-mix(in srgb,var(--tone) 75%,transparent); }
.principles article { position:relative; padding-bottom:32px; }
.principles article::after { content:''; position:absolute; left:0; bottom:0; width:42px; height:2px; background:var(--theory); transform:scaleX(.35); transform-origin:left; transition:transform 220ms ease; }
.principles article:hover::after { transform:scaleX(1); }
@media print { .headline-line,#lab .project-card h3,#project-status { color:var(--fg); } .principles article::after { display:none; } }
@media(min-width:1600px) { .layout { gap:70px; } }
@media(max-width:1050px) { .layout { grid-template-columns:130px minmax(0,1fr); gap:25px; } .edition { margin-left:10px; } .intro-row { gap:25px; } .experience-row { grid-template-columns:105px minmax(0,1fr) 40px; gap:14px; } .lab-card { gap:25px; padding:12px 0 25px; } }
@media(max-width:760px) { .topbar { height:75px; } .edition { display:none; } .tools { gap:13px; } .layout { display:block; padding:0 6%; } .rail { position:static; padding:20px 0 0; } .rail-label,.rail-bottom { display:none; } .rail nav { flex-direction:row; gap:22px; overflow-x:auto; padding:8px 0; } .rail nav a { white-space:nowrap; } .rail nav a span { display:none; } .hero { padding-top:28px; } h1 { font-size:clamp(40px,9vw,64px); letter-spacing:-1.4px; margin:28px 0; } .intro-row { grid-template-columns:1fr; gap:20px; } .intro-row p { max-width:none; } .hero-bottom { margin-top:28px; } .hero-bottom>span { display:none; } .section { padding-top:43px; } .section-heading h2 { font-size:35px; } .focus-bar { align-items:flex-start; flex-direction:column; gap:10px; } .experience-row { grid-template-columns:minmax(0,1fr) 40px; } .period { grid-column:1/-1; } .experience-row h3 { font-size:23px; } .principles { grid-template-columns:1fr; gap:25px; } .principles h3 { margin:10px 0; } .lab-card,.education { grid-template-columns:1fr; gap:25px; } .lab-card h3 { margin-top:16px; } .footer-bottom { flex-direction:column; } .post-preview,.featured-projects { grid-template-columns:1fr; } .post-preview { gap:8px; } .featured-project-card { min-height:0; } }
/* The moving signature replaces numeric menu prefixes, including on small screens. */
@media(min-width:761px) and (max-width:1050px) { .layout { grid-template-columns:180px minmax(0,1fr); } }
@media(max-width:760px) {
  .nav-track { flex-direction:row; gap:8px; width:max-content; min-width:100%; }
  .rail nav a .nav-label { display:inline-block; }
  html { scroll-padding-top:100px; }
  .topbar { position:sticky; top:0; z-index:8; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:48px 40px; align-items:center; height:88px; min-height:0; margin:0; padding:0 5%; gap:0; background:var(--bg); }
  .topbar .wordmark { grid-column:1; grid-row:1; }
  .topbar .tools { grid-column:2; grid-row:1; width:auto; margin:0; justify-content:flex-end; flex-wrap:nowrap; gap:5px; }
  .topbar .tools button { min-width:40px; min-height:40px; }
  .topbar .contact-top { display:none; }
  #mobile-nav-slot { display:block; grid-column:1/-1; grid-row:2; min-width:0; height:40px; overflow-x:auto; scrollbar-width:thin; }
  #mobile-nav-slot nav { width:max-content; min-width:100%; }
  #mobile-nav-slot .nav-track { gap:8px; padding-inline:16px; }
  #mobile-nav-slot nav a { display:flex; align-items:center; min-height:40px; padding:3px 19px; font-size:12px; white-space:nowrap; }
  .rail { padding-top:8px; }
  .rail-rule { display:none; }
  .rail-actions { margin-top:0; }
  .rail-actions { justify-content:space-between; }
  .rail-actions button,.rail-actions a { white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; animation:none!important; } }
@media(max-width:760px) { .work-panel { padding:24px 0; min-height:0; } .work-options { gap:18px; } .work-body h3 { font-size:31px; } .work-option { padding:13px 0; font-size:14px; gap:7px; } .option-arrow { display:none; } .project-card { grid-template-columns:1fr; gap:15px; } .section-heading { align-items:flex-start; flex-wrap:wrap; } }
@media(max-width:760px) { .intro-row { gap:10px; } }
@media print { #career-atlas { display:none; } .timeline { display:block; } }
@media print { :root,:root[data-theme='dark'] { --bg:white; --fg:black; --muted:#333; --line:#bbb; --accent:#243c10; --panel:white; --ink:black; color-scheme:light; } .topbar,.rail,.hero-bottom,.focus-bar,.focus-status,.outline,.expand,.preview-note,dialog,.footer-bottom button { display:none!important; } .layout { display:block; padding:0; } .hero { padding:0; } h1 { font-size:48px; margin:12px 0; letter-spacing:-2px; } h1 br { display:none; } h1 em { margin-left:10px; } .section { padding-top:24px; } .section-heading h2 { font-size:28px; } .experience-row { padding:14px 0; break-inside:avoid; grid-template-columns:120px 1fr; } .experience-row.matched { box-shadow:none; background:none; padding-left:0; } .lab-card { border:1px solid #bbb; padding:20px; } footer { padding-top:24px; } .footer-email { font-size:24px; } }
/* Only entry and user feedback move; all content is readable without animation support. */
@keyframes settle-in { from { transform:translateY(12px); } to { transform:translateY(0); } }
@media(prefers-reduced-motion:no-preference) {
  .hero h1 { animation:settle-in .55s ease-out both; }
  .intro-row { animation:settle-in .55s .1s ease-out both; }
  .project-card { transition:transform .2s; }
  .project-card:hover { transform:translateY(-3px); }
  .text-link { display:inline-block; transition:transform .2s; }
  .text-link:hover { transform:translateX(4px); }
}
@media print { .background details>div { display:block; } .work-options { display:none; } }

/* Larger targets, resilient reflow, visible keyboard focus and system high contrast. */
.tools button,.expand { min-width:44px; min-height:44px; }
.rail nav a { min-height:44px; display:flex; align-items:center; }
.footer-bottom button,.footer-bottom a,.journal-nav a,.contact-top { min-height:44px; display:inline-flex; align-items:center; }
summary { min-height:44px; }
main:focus:not(:focus-visible) { outline:none; }
main:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.work-option { max-width:100%; overflow-wrap:anywhere; }
dialog h2,.journal h1 { overflow-wrap:anywhere; }
@media(max-width:380px) { .wordmark { gap:5px; } .contact-top { font-size:12px; } }
@media(forced-colors:active) {
  body::before { display:none; }
  .work-option[aria-pressed=true] { border-color:Highlight; }
  :focus-visible { outline:2px solid Highlight!important; }
  .contact-buttons a,.expand { border-color:ButtonText; }
  .social-link { color:LinkText; }
  .social-link::before { background:Canvas; border-color:LinkText; }
}
