@font-face {
  font-family:Inter;
  src:url('/assets/fonts/Inter-Regular.woff2') format('woff2');
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:Inter;
  src:url('/assets/fonts/Inter-SemiBold.woff2') format('woff2');
  font-weight:600 900;
  font-display:swap;
}
@font-face {
  font-family:JetBrains Mono;
  src:url('/assets/fonts/JetBrainsMono-Regular.woff2') format('woff2');
  font-weight:400;
  font-display:swap;
}

:root {
  color-scheme:dark;
  --dark:#121914;
  --panel:#1b261e;
  --paper:#f5f6f2;
  --accent:#c5ed8c;
  --muted:#b4c0b7;
  --line:#435748;
  --soft-line:#2f4034;
  --mono:'JetBrains Mono',monospace;
  --sans:Inter,Arial,sans-serif;
}
* { box-sizing:border-box; }
html { background:#0c110e; scroll-behavior:smooth; scroll-padding-top:86px; }
body {
  margin:18px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--paper);
  font:16px/1.75 var(--sans);
  -webkit-font-smoothing:antialiased;
}
::selection { background:var(--accent); color:var(--dark); }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:default; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,[role=tabpanel]:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
}
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--mono); font-weight:400; letter-spacing:-.025em; line-height:1.3; }
h2 { font-size:clamp(1.75rem,3vw,2.55rem); margin-bottom:0; }
h2 em { font-style:normal; color:var(--accent); }
p { margin-bottom:1rem; }
.container { width:min(1256px,calc(100% - 80px)); margin-inline:auto; }
.mono,.section-path,.small-label { font-family:var(--mono); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link {
  position:fixed; left:20px; top:20px; z-index:99;
  padding:10px 18px; background:var(--accent); color:var(--dark);
  transform:translateY(-180%);
}
.skip-link:focus { transform:translateY(0); }
[hidden] { display:none!important; }
.enhanced-only { display:none; }
.js .enhanced-only { display:flex; }

/* Shared terminal chrome and real section tabs, matching the PDF. */
.site-header {
  position:sticky; top:0; z-index:20;
  background:var(--panel); border-bottom:1px solid var(--line);
}
.header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.wordmark { display:flex; align-items:center; gap:24px; }
.brand-mark { font:20px/1.2 var(--mono); color:var(--accent); white-space:nowrap; }
.brand-caption { font:10px/1.6 var(--mono); color:var(--muted); }
.brand-caption b { font-weight:400; color:var(--paper); }
#navigation { display:flex; align-items:stretch; gap:6px; margin-left:auto; font:12px/1.5 var(--mono); }
#navigation a { display:flex; align-items:center; gap:9px; padding:12px 15px; min-height:44px; white-space:nowrap; background:var(--dark); }
#navigation a:hover { background:#2d3a30; color:var(--accent); }
#navigation a[aria-current=location] { background:var(--accent); color:var(--dark); }
.nav-index { opacity:.75; }
.language-switch { display:flex; flex-shrink:0; border:1px solid var(--line); font:12px/1 var(--mono); }
.language-switch a { display:grid; place-items:center; min-width:44px; min-height:44px; color:var(--muted); }
.language-switch a:hover { background:#2d3a30; color:var(--paper); }
.language-switch a[aria-current=page] { background:var(--accent); color:var(--dark); }
.menu-toggle { display:none; }

/* The profile is a wide title followed by prose and the interactive navigator. */
.hero { border-bottom:1px solid var(--line); }
.hero-heading { padding-top:46px; }
.hero-heading .section-path { margin-bottom:17px; }
h1 { font-size:clamp(2rem,6.15vw,5.55rem); line-height:1.15; color:var(--accent); margin-bottom:13px; letter-spacing:-.035em; }
.name-part { display:inline-block; white-space:nowrap; }
.cursor-block { color:var(--accent); }
.hero-role { font:600 18px/1.5 var(--sans); margin:0; }
.hero-grid { display:grid; grid-template-columns:1fr 1.08fr; gap:70px; padding-block:36px 44px; align-items:start; }
.hero-copy,.hero-grid>* { min-width:0; }
.prompt-symbol { color:var(--accent); font-family:var(--mono); }
.hero-focus { font:20px/1.6 var(--mono); color:var(--accent); max-width:400px; margin-bottom:20px; }
.hero-description { color:var(--muted); font-size:16px; line-height:1.85; max-width:505px; margin-bottom:28px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:48px; border:1px solid transparent; padding:12px 20px; font:12px/1.7 var(--mono); transition:background .15s,border-color .15s; }
.button-accent { background:var(--accent); color:var(--dark); }
.button-accent:hover { background:#d8f6ae; }
.button-outline { border-color:var(--line); color:var(--paper); }
.button-outline:hover { border-color:var(--accent); background:var(--panel); }
.hero-location { margin:23px 0 0; color:var(--muted); font-size:12px; }
.hero-location>span { margin-inline:6px; }
.terminal { border:1px solid var(--line); background:var(--panel); min-width:0; }
.terminal-titlebar { display:flex; align-items:center; gap:13px; padding:11px 19px; background:var(--line); font:12px/1.5 var(--mono); }
.terminal-window-mark { color:var(--accent); }
.terminal-purpose { margin-left:auto; color:var(--paper); font-size:11px; }
.terminal-commands { gap:5px; padding:10px 14px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.terminal-commands button { font:12px/1.5 var(--mono); background:var(--dark); color:var(--muted); border:1px solid transparent; padding:6px 10px; min-height:34px; }
.terminal-commands button:hover { color:var(--accent); border-color:var(--line); }
.terminal-commands button[aria-pressed=true] { color:var(--dark); background:var(--accent); }
/* Command output expands the window; profile content must never need an inner scroll. */
.terminal-screen { min-height:272px; padding:20px 24px; font:12px/1.75 var(--mono); overflow-wrap:anywhere; }
.terminal-prompt { color:var(--paper); margin-bottom:18px; overflow-wrap:anywhere; }
.terminal-prompt>span:first-child { color:var(--accent); }
.terminal-path { color:var(--muted); }
.terminal-person { font:17px/1.4 var(--mono); color:var(--paper); margin-bottom:7px; }
.terminal-role { color:var(--muted); margin-bottom:18px; font-size:11px; }
.terminal-facts { display:grid; grid-template-columns:94px 1fr; gap:7px; margin:0; }
.terminal-facts dt { color:var(--muted); }
.terminal-facts dd { margin:0; overflow-wrap:anywhere; }
.terminal-facts dd span { color:var(--accent); }
.terminal-list { padding:0; margin:0; list-style:none; }
.terminal-list li { padding:7px 0; border-bottom:1px solid var(--soft-line); }
.terminal-list li:last-child { border:0; }
.terminal-list a { display:block; color:var(--paper); }
.terminal-list a:hover { color:var(--accent); }
.terminal-list small { display:block; font-size:11px; color:var(--muted); }
.terminal-help { margin:0; display:grid; grid-template-columns:100px 1fr; gap:7px; }
.terminal-help dt { color:var(--accent); }
.terminal-help dd { margin:0; color:var(--muted); }
.terminal-message { color:#eed9a5; overflow-wrap:anywhere; }
.terminal-input { gap:12px; align-items:center; margin:0 22px; padding:12px 0; border-top:1px solid var(--line); }
.terminal-input input { background:none; border:0; color:var(--paper); min-width:0; flex:1; font:12px/1.6 var(--mono); padding:5px 0; }
.terminal-input input::placeholder { color:var(--muted); opacity:1; }
.terminal-input button { padding:6px 8px; font:12px/1.6 var(--mono); border:1px solid var(--line); background:var(--dark); color:var(--accent); }
.terminal-status { padding:9px 19px; display:flex; justify-content:space-between; align-items:center; gap:14px; font-size:11px; background:var(--accent); color:var(--dark); }
.terminal-status button { border:0; background:none; padding:4px; color:inherit; font-size:11px; }
.terminal-status button:focus-visible { outline-color:var(--dark); }
.hero-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.hero-fact { display:flex; align-items:center; gap:24px; padding:24px; background:var(--panel); }
.fact-number { font:32px/1.2 var(--mono); color:var(--accent); white-space:nowrap; letter-spacing:-.05em; }
.fact-copy { font-size:12px; color:var(--muted); line-height:1.6; max-width:155px; }
.fact-copy strong { font-weight:400; }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:21px; font-size:11px; color:var(--muted); }
.hero-bottom a:hover { color:var(--accent); }

/* Content keeps the same prompt, line work and reading hierarchy as the CV. */
.section { padding-block:78px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:45px; margin-bottom:40px; }
.section-heading>div { min-width:0; }
.section-path { font-size:12px; color:var(--muted); margin-bottom:16px; }
.section-path>span { margin-right:14px; color:var(--accent); }
.section-intro { font-size:14px; line-height:1.8; color:var(--muted); max-width:350px; margin-bottom:2px; }
.experience-layout { display:grid; grid-template-columns:235px minmax(0,1fr); gap:48px; }
.career-map { align-self:start; position:sticky; top:113px; border:1px solid var(--line); padding:22px; background:var(--panel); }
.small-label { font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:26px; }
.career-item { display:flex; flex-direction:column; position:relative; border-left:1px solid var(--line); padding:0 0 25px 17px; font-size:12px; color:var(--muted); line-height:1.6; }
.career-item:before { content:''; position:absolute; width:7px; height:7px; top:6px; left:-4px; background:var(--accent); }
.career-item:last-child { padding-bottom:0; }
.career-item b { color:var(--paper); font-size:12px; font-weight:600; margin:5px 0; }
.career-period { color:var(--accent); font:11px/1.6 var(--mono); }
.career-item:hover b { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.experience-list { border-top:1px solid var(--line); }
.experience { border-bottom:1px solid var(--line); }
.experience summary { display:grid; grid-template-columns:minmax(0,1fr) 22px; gap:20px; padding:24px 0; cursor:pointer; list-style:none; }
.experience summary::-webkit-details-marker { display:none; }
.experience-meta { display:flex; align-items:center; gap:18px; margin-bottom:15px; }
.role-index { font:12px/1.5 var(--mono); background:var(--accent); color:var(--dark); padding:4px 10px; }
.experience-period { font:12px/1.6 var(--mono); color:var(--muted); }
.experience h3 { font-size:21px; line-height:1.45; margin-bottom:8px; }
.experience-company { color:var(--accent); font-size:14px; margin:0; }
.maintenance-note { display:block; color:var(--muted); font-size:12px; margin-top:9px; }
.disclosure-icon { font:24px/1 var(--mono); color:var(--accent); padding-top:43px; }
.disclosure-icon:before { content:'+'; }
.experience[open] .disclosure-icon:before { content:'−'; }
.experience summary:hover h3 { color:var(--accent); }
.experience-body { border-left:1px solid var(--line); padding:0 24px 6px; margin-bottom:28px; margin-left:8px; position:relative; }
.experience-body:before { content:''; width:7px; height:7px; position:absolute; top:0; left:-4px; background:var(--accent); }
.experience-context { font-size:13px; color:var(--muted); margin-bottom:18px; }
.experience ul { list-style:none; padding:0; margin:0 0 22px; font-size:15px; line-height:1.85; }
.experience li { position:relative; padding-left:21px; margin-bottom:10px; }
.experience li:before { content:'+'; position:absolute; left:0; color:var(--accent); font-family:var(--mono); }
.tags { display:flex; gap:7px; flex-wrap:wrap; }
.tag { font:11px/1.5 var(--mono); padding:5px 8px; border:1px solid var(--line); color:var(--muted); background:var(--panel); }

/* Skills read across wide rows, with an optional evidence navigator above. */
.skills-section { border-top:1px solid var(--line); }
.evidence-browser { border:1px solid var(--line); padding:25px 28px; margin-bottom:32px; flex-direction:column; background:var(--panel); }
.evidence-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.evidence-header h3 { font-size:15px; margin:0; }
.evidence-header .small-label { margin:0; }
.evidence-filters { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:20px; }
.evidence-filter { border:1px solid var(--line); background:var(--dark); color:var(--muted); padding:9px 14px; font:12px/1.5 var(--mono); min-height:38px; }
.evidence-filter[aria-pressed=true] { background:var(--accent); border-color:var(--accent); color:var(--dark); }
.evidence-filter:hover { border-color:var(--accent); }
.evidence-result { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
.evidence-link { display:block; border-top:1px solid var(--line); padding-top:12px; font-size:13px; color:var(--paper); }
.evidence-link small { display:block; color:var(--muted); font:11px/1.8 var(--mono); margin-top:4px; }
.evidence-link:hover { color:var(--accent); }
.evidence-empty { grid-column:1/-1; color:var(--muted); font-size:14px; margin:0; }
.skill-table-heading,.skill-group { display:grid; grid-template-columns:300px minmax(0,1fr); }
.skill-table-heading { background:var(--accent); color:var(--dark); font:12px/1.6 var(--mono); text-transform:uppercase; }
.skill-table-heading>span { padding:12px 22px; }
.skill-group { border-bottom:1px solid var(--line); min-width:0; }
.skill-group:nth-child(odd) { background:var(--panel); }
.skill-group h3 { padding:19px 22px; border-right:1px solid var(--line); margin:0; color:var(--accent); font-size:13px; line-height:1.75; letter-spacing:0; }
.skill-group p { padding:19px 24px; margin:0; color:var(--paper); font-size:14px; line-height:1.85; }
.credentials { display:grid; grid-template-columns:1.25fr 1fr .6fr; gap:40px; margin-top:42px; }
.credential { border-top:1px solid var(--accent); padding-top:20px; }
.credential h3 { color:var(--accent); font:13px/1.5 var(--mono); margin-bottom:16px; }
.credential p { font-size:13px; line-height:1.9; color:var(--muted); margin:0; }

/* All projects share the same editor pane; selection is a functional state. */
.projects-section { border-block:1px solid var(--line); background:var(--panel); }
.project-workbench { display:grid; grid-template-columns:290px minmax(0,1fr); border:1px solid var(--line); background:var(--dark); }
.explorer { background:var(--panel); border-right:1px solid var(--line); padding-top:22px; display:flex; flex-direction:column; min-width:0; }
.explorer-title { font-size:11px; padding-inline:20px; display:flex; justify-content:space-between; gap:10px; margin-bottom:22px; color:var(--paper); }
.explorer-title span { color:var(--muted); }
.project-tabs { display:flex; flex-direction:column; }
.project-tab { display:flex; align-items:flex-start; gap:12px; min-width:0; border:1px solid transparent; padding:17px 19px; color:var(--muted); }
.project-tab:hover { background:#2b3b2f; color:var(--accent); }
.project-tab[aria-selected=true] { background:var(--accent); color:var(--dark); }
.project-tab-index { font:12px/1.7 var(--mono); }
.project-tab-text { min-width:0; }
.project-tab-title { font:12px/1.6 var(--mono); display:block; overflow-wrap:anywhere; }
.project-tab-kind { display:block; font:11px/1.7 var(--sans); margin-top:5px; opacity:.85; }
.explorer-github { font-size:12px; margin:22px 20px; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); }
.explorer-github:hover { color:var(--accent); }
.project-panel { padding:32px 35px; min-height:520px; }
.project-panel:not(:first-child) { border-top:1px solid var(--line); }
.js .project-panel:not([hidden]) { border-top:0; }
.project-breadcrumb { font:11px/1.6 var(--mono); color:var(--muted); margin-bottom:30px; overflow-wrap:anywhere; }
.project-breadcrumb span { color:var(--accent); }
.project-badge { display:inline-block; border:1px solid var(--line); color:var(--muted); padding:5px 9px; font:11px/1.6 var(--mono); margin-bottom:20px; }
.project-panel h3 { font-size:30px; color:var(--accent); margin-bottom:20px; overflow-wrap:anywhere; }
.project-summary { font-size:16px; line-height:1.85; max-width:630px; margin-bottom:25px; }
.project-context { margin-bottom:26px; display:grid; grid-template-columns:120px 1fr; border-block:1px solid var(--line); padding-block:16px; gap:18px; }
.project-context dt { font:11px/1.8 var(--mono); text-transform:uppercase; color:var(--muted); }
.project-context dd { margin:0; font:12px/1.8 var(--mono); color:var(--paper); }
.project-link { font:12px/1.8 var(--mono); color:var(--accent); text-decoration:underline; text-underline-offset:6px; text-decoration-color:var(--line); }
.project-link:hover { text-decoration-color:var(--accent); }
.project-closed { color:var(--muted); font:12px/1.8 var(--mono); margin-bottom:13px; }
.projects-caption { font-size:12px; color:var(--muted); margin:21px 0 0; }
.projects-caption .mono { color:var(--accent); margin-right:14px; }

.contact-section { padding-block:74px; }
.contact-grid { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.contact-section h2 { font-size:clamp(1.6rem,3vw,2.65rem); }
.contact-description { color:var(--muted); font-size:15px; max-width:530px; margin-block:23px; }
.contact-email { display:inline-block; font:clamp(1rem,2vw,1.5rem)/1.7 var(--mono); border-bottom:1px solid var(--line); padding-bottom:7px; overflow-wrap:anywhere; }
.contact-email:hover { color:var(--accent); }
.contact-aside { min-width:255px; display:flex; flex-direction:column; gap:24px; border:1px solid var(--line); padding:25px; background:var(--panel); }
.contact-links { display:flex; gap:17px; justify-content:space-between; flex-wrap:wrap; font-size:13px; }
.contact-links a:hover { color:var(--accent); }
.site-footer { background:var(--accent); color:var(--dark); }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-block:15px; font:12px/1.7 var(--mono); }
.footer-inner a:hover { text-decoration:underline; text-underline-offset:4px; }
.site-footer a:focus-visible { outline-color:var(--dark); }

/* Decorative traces stay behind the profile, with no dashboard or readouts. */
.monitor-backdrop { position:fixed; z-index:-1; inset:0; pointer-events:none; user-select:none; overflow:hidden; background:var(--dark); }
.backdrop-chart { position:absolute; margin:0; padding:0; border:0; white-space:pre; font:16px/1 var(--mono); font-variant-ligatures:none; font-feature-settings:'calt' 0,'liga' 0; color:var(--accent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.backdrop-chart-cpu { left:27%; top:12%; opacity:.08; letter-spacing:2px; line-height:1.08; }
.backdrop-chart-network { left:-3%; top:53%; opacity:.19; color:#a1cfb7; }
.ambient-logs { position:absolute; right:3%; bottom:7%; width:340px; color:var(--accent); opacity:.11; }
.demo-log-viewport { --demo-log-row-height:25px; height:calc(var(--demo-log-row-height)*5); overflow:hidden; mask-image:linear-gradient(transparent,#000 25%,#000 70%,transparent); }
.demo-log-track { transition:none; }
.demo-log-row { display:grid; grid-template-columns:70px 1fr; gap:12px; height:var(--demo-log-row-height); font:11px/var(--demo-log-row-height) var(--mono); white-space:nowrap; }
.demo-log-kind { color:#83d8c6; }
.demo-log-text { overflow:hidden; }
.monitor-backdrop.is-running .demo-log-track.is-advancing { transform:translateY(calc(-1*var(--demo-log-row-height))); transition:transform .42s cubic-bezier(.2,.7,.2,1); }
.terminal-print { position:relative; }
.terminal-print>.print-source:before,.terminal-print>.print-source:after,.terminal-print>.print-copy:before,.terminal-print>.print-copy:after { content:none!important; }
.print-copy { position:absolute; inset:0; pointer-events:none; user-select:none; }
.terminal-print.is-printing>.print-source { opacity:0; }
.print-char { opacity:0; }
.print-char.is-visible { opacity:1; }
.print-char.is-caret { position:relative; }
.print-char.is-caret:after { content:''; position:absolute; left:100%; top:.05em; height:1em; width:.5em; background:var(--accent); box-shadow:0 0 12px #c5ed8c44; }
.motion-off .print-copy { display:none!important; }
.motion-off .print-source { opacity:1!important; }

/* Motion belongs to the portfolio's terminal language; the artwork is decorative. */
.reading-progress { position:absolute; bottom:-1px; left:0; width:100%; height:2px; background:var(--accent); transform:scaleX(var(--reading-progress,0)); transform-origin:left; pointer-events:none; }
.hero { position:relative; isolation:isolate; }
.hero-scene { position:absolute; z-index:-1; inset:0; overflow:hidden; pointer-events:none; background:radial-gradient(ellipse at 85% 12%,#c5ed8c12,transparent 58%),radial-gradient(ellipse at 5% 85%,#7cba5d0a,transparent 40%); }
.hero-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:17px; }
.hero-heading .hero-toolbar .section-path { margin:0; }
.motion-toggle { align-items:center; gap:9px; flex:none; border:1px solid var(--line); background:var(--dark); color:var(--muted); padding:7px 10px; min-height:34px; font:10px/1.6 var(--mono); }
.js:not(.motion-ready):not(.motion-off) .motion-toggle { display:none; }
.motion-toggle:hover:not(:disabled) { border-color:var(--accent); color:var(--accent); }
.motion-toggle-mark { width:7px; height:7px; border:1px solid currentColor; }
.motion-toggle[aria-pressed=true] .motion-toggle-mark { background:var(--accent); border-color:var(--accent); }
.motion-toggle:disabled { opacity:.8; }
.terminal { position:relative; box-shadow:10px 10px 0 #0c110e,10px 10px 0 1px var(--soft-line); }
.terminal:before,.terminal:after { content:''; position:absolute; z-index:1; width:32px; height:32px; border-color:var(--accent); border-style:solid; pointer-events:none; }
.terminal:before { top:-1px; left:-1px; border-width:1px 0 0 1px; }
.terminal:after { bottom:-1px; right:-1px; border-width:0 1px 1px 0; }
.terminal:focus-within:before,.terminal:focus-within:after { width:65px; height:65px; }
.section-heading .section-path:after { content:''; display:inline-block; width:54px; height:1px; vertical-align:middle; margin-left:20px; background:var(--accent); opacity:.65; }
.hero-fact { position:relative; border-bottom:1px solid var(--line); }
.hero-fact:after { content:''; position:absolute; bottom:-1px; left:0; height:1px; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; }
.project-workbench { box-shadow:10px 10px 0 #0c110e; }
.disclosure-icon { position:relative; }
.disclosure-icon:after { content:''; width:20px; height:20px; position:absolute; top:45px; left:-2px; border:1px solid var(--line); transform:scale(1.5); opacity:0; }
.experience summary:hover .disclosure-icon:after { opacity:1; }
.motion-ready .cursor-block { animation:cursor-settle 1.4s steps(1,end) 3; }
.motion-ready .terminal:before,.motion-ready .terminal:after { transition:width .4s ease,height .4s ease; }
.motion-ready .button { transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease; }
.motion-ready .hero-fact:after { transition:transform .4s ease; }
.motion-ready .career-item:before { transition:transform .25s ease; }
.motion-ready .skill-group,.motion-ready .project-tab,.motion-ready #navigation a,.motion-ready .evidence-filter,.motion-ready .terminal-commands button { transition:background .2s ease,color .2s ease,border-color .2s ease; }
.motion-ready .skill-group h3,.motion-ready .disclosure-icon:after { transition:transform .25s ease,opacity .25s ease; }
.motion-off *, .motion-off *:before, .motion-off *:after { animation:none!important; transition:none!important; }
.motion-off { scroll-behavior:auto; }
@keyframes cursor-settle { 0%,75%,100% { opacity:1; } 76%,99% { opacity:0; } }
@media(hover:hover) and (pointer:fine) {
  .motion-ready .button:hover { transform:translateY(-3px); box-shadow:0 5px 0 #0c110e; }
  .motion-ready .button:active { transform:translateY(0); box-shadow:none; }
  .terminal:hover:before,.terminal:hover:after { width:65px; height:65px; }
  .hero-fact:hover:after { transform:scaleX(1); }
  .career-item:hover:before { transform:scale(1.6); }
  .skill-group:hover { background:#253429; }
  .motion-ready .skill-group:hover h3 { transform:translateX(5px); }
}

@media(max-width:1150px) {
  .container { width:calc(100% - 60px); }
  .brand-caption { display:none; }
  #navigation a { padding-inline:12px; }
  .hero-grid { gap:38px; }
  .hero-fact { flex-direction:column; align-items:flex-start; gap:10px; }
  .experience-layout { grid-template-columns:210px minmax(0,1fr); gap:32px; }
  .career-map { padding:19px; }
  .section-heading { gap:30px; }
  .section-intro { max-width:310px; }
  .project-workbench { grid-template-columns:250px minmax(0,1fr); }
  .project-panel { padding:27px; }
  .project-panel h3 { font-size:26px; }
  .skill-table-heading,.skill-group { grid-template-columns:260px minmax(0,1fr); }
}
@media(max-width:900px) {
  html { scroll-padding-top:80px; }
  body { margin:12px; }
  .container { width:calc(100% - 48px); }
  .header-inner { gap:16px; min-height:76px; }
  .brand-mark { font-size:17px; }
  #navigation { gap:4px; font-size:11px; }
  #navigation a { padding-inline:9px; gap:6px; }
  .hero-heading { padding-top:34px; }
  .hero-grid { grid-template-columns:1fr; gap:28px; padding-top:28px; }
  .hero-copy { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; }
  .hero-focus { grid-column:1; font-size:19px; }
  .hero-description { grid-column:2; grid-row:1/4; margin-bottom:0; }
  .hero-actions { grid-column:1; }
  .hero-location { grid-column:1; margin-top:18px; }
  .terminal-screen { min-height:255px; }
  .section { padding-block:60px; }
  .section-heading { display:block; }
  .section-intro { max-width:580px; margin-top:20px; }
  .experience-layout { grid-template-columns:185px minmax(0,1fr); gap:25px; }
  .career-map { padding:17px; }
  .experience h3 { font-size:18px; }
  .experience-body { padding-right:0; padding-left:19px; }
  .project-workbench { grid-template-columns:230px minmax(0,1fr); }
  .project-panel { padding:23px; }
  .project-panel h3 { font-size:24px; }
  .project-context { grid-template-columns:1fr; gap:6px; }
  .evidence-header { align-items:flex-start; }
  .evidence-header .small-label { white-space:nowrap; }
  .skill-table-heading,.skill-group { grid-template-columns:220px minmax(0,1fr); }
  .skill-group h3,.skill-group p { padding-inline:18px; }
  .credentials { gap:24px; grid-template-columns:1.2fr 1fr; }
  .contact-grid { gap:30px; }
  .contact-aside { min-width:220px; padding:19px; }
  .footer-inner { font-size:11px; }
}
@media(min-width:701px) and (max-width:760px) {
  #navigation .nav-index { display:none; }
}
@media(max-width:700px) {
  html { scroll-padding-top:70px; }
  body { margin:10px; }
  .container { width:calc(100% - 32px); }
  .header-inner { min-height:66px; flex-wrap:wrap; gap:0 10px; }
  .wordmark { order:1; margin-right:auto; }
  .language-switch { order:2; font-size:11px; }
  .js .menu-toggle { order:3; }
  .brand-mark { font-size:17px; }
  .js .menu-toggle { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 0 8px 4px; background:none; border:0; color:var(--paper); font:12px/1.5 var(--mono); }
  .menu-toggle span { color:var(--accent); font-size:20px; }
  #navigation { order:4; width:100%; flex-direction:column; padding-block:12px; border-top:1px solid var(--line); font-size:12px; }
  .js #navigation:not(.is-open) { display:none; }
  #navigation a { min-height:44px; padding:11px 13px; }
  .hero-heading { padding-top:28px; }
  .backdrop-chart { font-size:13px; }
  .backdrop-chart-cpu { left:3%; top:15%; opacity:.06; letter-spacing:1px; }
  .backdrop-chart-network { left:-180px; top:53%; opacity:.14; }
  .ambient-logs { right:-60px; opacity:.07; }
  .hero-toolbar { gap:10px; }
  .hero-toolbar .section-path { font-size:10px; }
  .hero-toolbar .section-path>span { margin-right:8px; }
  .motion-toggle { font-size:9px; padding:7px; gap:7px; min-height:44px; }
  .terminal { box-shadow:5px 5px 0 #0c110e,5px 5px 0 1px var(--soft-line); }
  .project-workbench { box-shadow:5px 5px 0 #0c110e; }
  h1 { font-size:clamp(1.7rem,8.9vw,3.8rem); line-height:1.2; margin-bottom:16px; }
  .hero-role { font-size:14px; max-width:420px; }
  .hero-grid { padding-block:27px 28px; }
  .hero-copy { display:block; }
  .hero-focus { font-size:17px; margin-bottom:17px; max-width:350px; }
  .hero-description { font-size:15px; margin-bottom:23px; }
  .hero-location { font-size:11px; margin-top:18px; }
  .hero-actions { gap:9px; }
  .button { padding:11px 14px; gap:14px; font-size:11px; }
  .terminal-titlebar { padding:10px 13px; }
  .terminal-commands { padding:9px; gap:4px; }
  .terminal-commands button { padding:6px 7px; font-size:11px; }
  .terminal-screen { padding:19px 16px; min-height:287px; font-size:11px; }
  .terminal-person { font-size:16px; }
  .terminal-facts { grid-template-columns:80px 1fr; gap:8px; }
  .terminal-input { margin-inline:15px; gap:8px; }
  .terminal-input input { font-size:12px; }
  .terminal-status { padding:9px 12px; font-size:10px; gap:7px; }
  .terminal-status button { font-size:10px; }
  .hero-facts { gap:6px; }
  .hero-fact { padding:15px 10px; gap:10px; }
  .fact-number { font-size:clamp(1.1rem,4.6vw,1.8rem); letter-spacing:-.05em; }
  .fact-copy { font-size:10px; line-height:1.6; }
  .hero-bottom { display:block; font-size:10px; padding-block:17px; }
  .hero-bottom a { display:none; }
  .section { padding-block:47px; }
  .section-heading { margin-bottom:28px; }
  h2 { font-size:clamp(1.3rem,5.9vw,2rem); }
  .section-path { font-size:11px; margin-bottom:14px; }
  .section-intro { font-size:14px; margin-top:17px; }
  .experience-layout { display:block; }
  .career-map { display:none; }
  .experience summary { gap:12px; padding-block:22px; }
  .experience h3 { font-size:18px; }
  .experience-company { font-size:13px; }
  .experience-meta { gap:12px; }
  .experience-period { font-size:11px; }
  .role-index { font-size:11px; padding:4px 8px; }
  .experience-context,.maintenance-note { font-size:12px; }
  .experience-body { padding-left:17px; margin-left:3px; }
  .experience ul { font-size:15px; line-height:1.85; }
  .tag { font-size:10px; }
  .evidence-browser { padding:19px 17px; margin-bottom:25px; }
  .evidence-header { display:block; }
  .evidence-header h3 { font-size:14px; line-height:1.6; }
  .evidence-header .small-label { display:block; margin-top:9px; font-size:10px; }
  .evidence-filters { gap:6px; }
  .evidence-filter { padding:8px 10px; font-size:11px; min-height:38px; }
  .evidence-result { grid-template-columns:1fr; gap:12px; }
  .evidence-link { font-size:12px; }
  .evidence-link small { font-size:10px; }
  .skill-table-heading { display:none; }
  .skill-group { display:block; padding:17px; }
  .skill-group h3 { border:0; padding:0; margin-bottom:8px; font-size:12px; }
  .skill-group p { padding:0; font-size:14px; }
  .credentials { grid-template-columns:1fr; margin-top:30px; gap:24px; }
  .credential { padding-top:17px; }
  .credential h3 { margin-bottom:11px; }
  .project-workbench { grid-template-columns:1fr; }
  .explorer { border-right:0; border-bottom:1px solid var(--line); padding-top:17px; }
  .explorer-title { padding-inline:16px; margin-bottom:16px; }
  .project-tabs { gap:4px; padding:0 9px 10px; }
  .project-tab { padding:10px 12px; gap:10px; }
  .project-tab-text { flex:1; display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:5px 12px; }
  .project-tab-title,.project-tab-index { font-size:11px; }
  .project-tab-kind { font-size:10px; margin-top:0; }
  .explorer-github { display:none; }
  .project-panel { padding:22px 18px; min-height:470px; }
  .project-panel h3 { font-size:23px; }
  .project-breadcrumb { font-size:10px; margin-bottom:23px; }
  .project-summary { font-size:15px; }
  .project-context dd { font-size:11px; }
  .project-link { font-size:11px; }
  .projects-caption { font-size:11px; }
  .contact-section { padding-block:48px; }
  .contact-grid { display:block; }
  .contact-section h2 { font-size:clamp(1.2rem,5.6vw,2rem); }
  .contact-description { font-size:14px; }
  .contact-email { font-size:clamp(.85rem,4.3vw,1.2rem); }
  .contact-aside { margin-top:30px; }
  .footer-inner { flex-wrap:wrap; gap:9px 20px; font-size:10px; padding-block:13px; }
  .footer-inner>a:first-child { flex-basis:100%; }
  .footer-top { margin-left:auto; }
}
@media(max-width:370px) {
  .brand-mark span { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; }
  .print-copy { display:none!important; }
  .print-source { opacity:1!important; }
}
@media print {
  :root { color-scheme:light; --dark:white; --panel:white; --paper:black; --accent:#365a43; --muted:#333; --line:#bbb; }
  html,body { background:white; margin:0; border:0; }
  .site-header,.terminal,.hero-actions,.career-map,.hero-bottom,.project-tabs,.explorer,.evidence-browser,.contact-aside,.site-footer,.skip-link { display:none!important; }
  .hero-scene,.motion-toggle,.monitor-backdrop { display:none!important; }
  .print-copy { display:none!important; }
  .print-source { opacity:1!important; }
  *,*:before,*:after { animation:none!important; transition:none!important; box-shadow:none!important; }
  .container { width:100%; }
  .hero-grid,.hero-copy,.experience-layout,.project-workbench { display:block; }
  .hero-heading,.hero-grid,.section,.contact-section { padding-block:20px; }
  h1 { font-size:32pt; }
  h2 { font-size:22pt; }
  .hero-fact { border:1px solid var(--line); }
  .experience,.project-panel { break-inside:avoid; }
  .project-panel[hidden] { display:block!important; min-height:0; }
  .skill-table-heading { color:black; background:#eee; }
  .contact-email { font-size:16pt; }
}
