* { box-sizing: border-box; }
body { margin: 0; background: #0f0d0b; color: #ece7dd; font-family: 'IBM Plex Mono', monospace; -webkit-font-smoothing: antialiased; overflow: hidden; }
::selection { background: #e0503a; color: #0f0d0b; }
a { color: #e0503a; text-decoration: none; }
a:hover { color: #ef6a54; }
.serif { font-family: 'Newsreader', Georgia, serif; }
#tscroll::-webkit-scrollbar { width: 10px; }
#tscroll::-webkit-scrollbar-track { background: transparent; }
#tscroll::-webkit-scrollbar-thumb { background: #2a2620; border: 3px solid #17140f; }
#tscroll::-webkit-scrollbar-thumb:hover { background: #3a352c; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:100; padding:12px 20px; background:#ece7dd; color:#17140f; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
[data-inputline] { flex-wrap:wrap; }
[data-inputline] label { color:#c9c3b6; font-size:12px; }
[data-command] { flex:1; min-width:60px; width:0; min-height:44px; padding:8px; border:1px solid #8b857a; background:#17140f; color:#f3efe6; caret-color:#f17a63; font:16px 'IBM Plex Mono',monospace; }
[data-command]::placeholder { color:#a39d90; opacity:1; }
[data-inputline] button { font:inherit; color:#ece7dd; background:#17140f; border:1px solid #8b857a; padding:8px 12px; min-height:44px; cursor:pointer; }
#command-help { flex-basis:100%; margin:0; font-size:12px; color:#b8b1a4; }
#command-help a { text-decoration:underline; display:inline-block; padding-block:4px; }
[data-terminal] :is(input,button,[tabindex]):focus-visible { outline:2px solid #f17a63; outline-offset:2px; }
/* The status dot stays steady; only the brief opening sequence moves. */
.term-head [aria-hidden] { animation:none !important; }
@keyframes lineIn { from { opacity:0; transform: translateY(6px); } to { opacity:1; transform:none; } }
.cmd-chip { transition: color .18s, border-color .18s, background .18s; min-height:38px; display:inline-flex; align-items:center; }
.cmd-chip:hover { color:#0f0d0b !important; background:#e0503a !important; border-color:#e0503a !important; }
/* visible keyboard focus */
.cmd-chip:focus-visible, a:focus-visible, [data-scroll]:focus-visible { outline:2px solid #e0503a; outline-offset:2px; }
/* mobile / small screens */
@media (max-width:720px) {
  .stage { padding:0 !important; }
  [data-terminal] { max-height:none !important; height:100% !important; border-left:0 !important; border-right:0 !important; }
  .coord { display:none !important; }
  .term-chrome { padding:11px 14px !important; }
  .term-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:168px; }
  .term-head { align-items:flex-start !important; padding:15px 16px !important; gap:13px !important; flex-wrap:nowrap !important; }
  .term-portrait { width:50px !important; height:62px !important; }
  .term-id { flex:1 1 auto; }
  .term-id h1 { font-size:20px !important; }
  .term-write { flex:0 0 auto; margin-left:0 !important; align-self:flex-start !important; padding:5px 9px !important; font-size:10px !important; white-space:nowrap; }
  .stat-row { display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:16px 12px !important; }
  [data-scroll] { padding:18px 16px !important; font-size:13.5px !important; line-height:1.75 !important; }
  /* readable body prose in serif on mobile (terminal chrome/labels stay mono) */
  .prose { font-family:'Newsreader', Georgia, serif !important; font-size:16.5px !important; line-height:1.6 !important; letter-spacing:normal !important; }
  .prose span { letter-spacing:normal !important; }
  [data-inputline] { padding:13px 16px !important; }
  .chips { padding:14px 16px calc(18px + env(safe-area-inset-bottom, 0px)) !important; gap:9px !important; }
  .chips .cmd-chip { padding:11px 15px !important; min-height:44px !important; }
  .eg-kv { grid-template-columns:90px 1fr !important; }
  .eg-ls { grid-template-columns:repeat(2,1fr) !important; }
  .eg-xp { grid-template-columns:1fr !important; gap:4px !important; }
  .eg-xp > span:first-child { margin-bottom:2px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-delay:0s !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
@supports (height:100dvh) { .stage { height:100dvh; } }
.stage { height:100dvh !important; }
.term-actions { display:flex; flex-wrap:wrap; gap:12px 24px; padding:10px 24px; border-bottom:1px solid rgba(236,231,221,.12); font-size:12px; flex-shrink:0; }
.term-actions a { padding-block:4px; min-height:44px; display:inline-flex; align-items:center; }
.term-actions .experience-link, .welcome-links .experience-link { background:#e0503a; color:#0f0d0b; border:1px solid #e0503a; padding:8px 12px; font-weight:500; }
.term-actions .experience-link:hover, .welcome-links .experience-link:hover { background:#ef6a54; }
.welcome-title { font-size:30px; color:#f3efe6; line-height:1.1; margin-bottom:10px; }
.welcome-title > span { color:#e0503a; font-style:italic; }
.welcome-summary { max-width:860px; color:#b8b1a4; line-height:1.8; margin:0; }
.welcome-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:900px; margin:16px 0; padding:14px 0; border-block:1px solid rgba(236,231,221,.13); }
.welcome-facts strong { display:block; font:26px/1.3 'Newsreader',Georgia,serif; color:#f3efe6; }
.welcome-facts > div:nth-child(2) strong { color:#e0503a; }
.welcome-facts span { font-size:11px; color:#a39d90; }
.welcome-career { max-width:900px; margin-top:16px; }
.welcome-label { color:#a39d90; font-size:11px; margin-bottom:6px; }
.welcome-role { display:grid; grid-template-columns:190px 1fr; gap:18px; padding:6px 0; }
.welcome-role > span { color:#a39d90; font-size:12px; }
.welcome-role strong { font-weight:400; color:#ece7dd; }
.welcome-role > div { display:flex; flex-wrap:wrap; gap:5px 18px; }
.welcome-role strong { color:#e0503a; }
.welcome-role > div > span { color:#ece7dd; }
.welcome-role-summary { flex-basis:100%; margin:0; color:#b8b1a4; font-size:12px; line-height:1.7; }
.welcome-focus { color:#b8b1a4; max-width:720px; font-size:13px; line-height:1.7; margin:18px 0 0; }
.welcome-evidence .career-evidence { margin-top:0; border-top:0; }
.welcome-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; margin:18px 0 8px; font-size:12px; }
.welcome-links a { display:inline-flex; align-items:center; min-height:44px; border-bottom:1px solid rgba(224,80,58,.5); padding-block:8px; }
.term-head { flex-wrap:wrap; }
.term-id { flex:1; }
[data-scroll] { min-height:100px; }
[data-inputline]:focus-within { box-shadow:inset 3px 0 #e0503a; }
.chips { gap:6px !important; }
.terminal-experience { max-width:980px; }
.terminal-experience-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:20px; }
.terminal-experience h2 { margin:0; font:32px/1.15 'Newsreader',Georgia,serif; color:#f3efe6; }
.terminal-experience-heading a { font-size:12px; text-decoration:underline; text-underline-offset:4px; min-height:44px; display:inline-flex; align-items:center; }
.terminal-role { padding:22px 0; border-top:1px solid rgba(236,231,221,.16); }
.terminal-role-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.terminal-company { margin:0 0 6px; color:#f17a63; font-size:12px; }
.terminal-current { display:inline-block; margin-left:10px; color:#b8b1a4; font-size:10px; border:1px solid #655d50; padding:0 6px; vertical-align:middle; }
.terminal-role h3 { margin:0; color:#f3efe6; font:24px/1.2 'Newsreader',Georgia,serif; }
.terminal-period { margin:2px 0 0; color:#a39d90; font-size:11px; flex-shrink:0; }
.terminal-role-summary { max-width:78ch; margin:12px 0 0; color:#c9c3b6; font-size:13px; line-height:1.8; }
.terminal-role-details { margin-top:6px; }
.terminal-experience summary { cursor:pointer; min-height:44px; padding-block:10px; color:#c9c3b6; font-size:12px; }
.terminal-experience summary:focus-visible { outline:2px solid #f17a63; outline-offset:2px; }
.terminal-role-details ul { margin:0 0 16px; padding-left:20px; max-width:78ch; color:#b8b1a4; }
.terminal-role-details li { padding-left:4px; margin:8px 0; }
.terminal-role-details .career-evidence { padding-top:16px; }
.terminal-role-details .career-evidence h4 { font-size:13px; font-weight:500; margin:0 0 12px; color:#ece7dd; }
.terminal-earlier { border-top:1px solid rgba(236,231,221,.16); }
.terminal-earlier > summary { font-size:14px; padding-block:16px; }
.terminal-earlier > summary span { color:#a39d90; font-size:11px; margin-left:12px; }
@media (max-width:720px) {
  .terminal-experience-heading { flex-wrap:wrap; padding-bottom:12px; gap:0 12px; }
  .terminal-experience h2 { font-size:28px; }
  .terminal-role { padding-block:20px; }
  .terminal-role-heading { flex-direction:column; gap:8px; }
  .terminal-role h3 { font-size:24px; }
  .terminal-role-summary { font:17px/1.55 'Newsreader',Georgia,serif; }
  .terminal-role-details ul { font-size:13px; }
}
@media (max-width:720px) {
  .term-head { flex-wrap:wrap !important; }
  .term-write { display:none; }
  .term-actions { padding:4px 16px; gap:0 15px; font-size:12px; }
  .term-actions a { min-height:44px; display:inline-flex; align-items:center; }
  .term-actions .experience-link { margin-block:4px; }
  .welcome-title { font-size:26px; }
  .welcome-facts { gap:10px; margin:18px 0; padding:14px 0; }
  .welcome-facts strong { font-size:20px; }
  .welcome-facts span { font-size:10px; display:block; line-height:1.6; margin-top:4px; }
  .welcome-role { grid-template-columns:1fr; gap:0; padding:7px 0; }
  .welcome-role > span { font-size:10px; }
  .welcome-role strong { font-size:12px; }
  .welcome-role > div > span { font-size:11px; }
  .chips { padding:8px 12px max(8px,env(safe-area-inset-bottom)) !important; flex-wrap:nowrap !important; overflow-x:auto; }
  .chips .cmd-chip { min-height:44px !important; padding:7px 12px !important; font-size:12px !important; flex-shrink:0; }
  .term-id h1 { font-size:24px !important; }
}
@media (max-height:650px) and (min-width:721px) {
  .stage { padding:0 !important; }
  .term-head { padding:10px 22px !important; }
  .term-portrait { width:42px !important; height:52px !important; }
  .term-chrome { padding-block:7px !important; }
}
/* At high zoom or in landscape, allow the document to grow instead of clipping controls. */
@media (max-height:700px) {
  body { overflow:auto; }
  .stage { height:auto !important; min-height:100dvh; align-items:flex-start !important; }
  [data-terminal] { height:auto !important; max-height:none !important; overflow:visible !important; }
  [data-scroll] { flex:none !important; max-height:60dvh; min-height:180px; }
}
@media (forced-colors:active) {
  [data-command], .cmd-chip { border:1px solid ButtonText !important; }
  [data-terminal] :focus-visible { outline:2px solid Highlight !important; }
}
