.page-layout{width:min(1280px,calc(100% - 3rem));margin:0 auto;display:grid;grid-template-columns:250px minmax(0,860px);gap:3.5rem;justify-content:center;align-items:start}
.profile-rail{display:flex;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:visible;flex-direction:column;padding:.75rem .5rem .75rem 0}
.rail-identity,.rail-actions{border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1rem}
.rail-top-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.5rem}
.profile-photo{display:block;width:112px;height:112px;border:1px solid var(--accent);border-radius:50%;padding:4px}
.profile-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.rail-name{margin:0;font-size:1.3rem;line-height:1.2}
.rail-tagline,.rail-location{margin:.3rem 0;color:var(--muted);font-size:.88rem}
.mobile-profile{display:none}
.rail-now{font-size:.82rem;line-height:1.4}
.rail-now h2{font:600 .85rem/1.3 var(--mono);letter-spacing:.04em;margin:0 0 .55rem;color:var(--text)}
.rail-now h3{font:500 .72rem/1.3 var(--mono);margin:.65rem 0 .25rem;color:var(--muted)}
.rail-now ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.rail-now li{display:grid;gap:.08rem}
.rail-now a,.rail-quick-actions a{color:var(--text);text-decoration:none}
.rail-now a:hover,.rail-quick-actions a:hover{text-decoration:underline}
.now-label{font:500 .65rem/1.3 var(--mono);color:var(--muted)}
.now-label.planned{color:var(--violet)}
.rail-quick-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--line);font-size:.74rem}
.rail-quick-actions button,.rail-quick-actions a{font:inherit;border:0;padding:.15rem 0;background:transparent;cursor:pointer}
.copy-status{min-height:1.2em;margin:.25rem 0 0;color:var(--muted);font-size:.72rem}
.resume-actions{display:grid;grid-template-columns:minmax(0,1fr) 4.2rem;gap:.4rem}
.resume-actions .btn{min-height:2.75rem;display:flex;align-items:center;justify-content:center;text-align:center;padding:.3rem .4rem;line-height:1.15}
.rail-social{display:flex;gap:1rem;margin-top:.6rem}
.rail-social a{color:var(--muted);font-size:.87rem}
.page-body{max-width:860px;padding-block:clamp(3rem,7vw,6rem);min-width:0}
.page-body>h1{font-size:clamp(2.5rem,6vw,4.2rem);max-width:15ch;margin:.4rem 0 1rem}
.page-body h2{margin:2.5rem 0 1rem;font-size:clamp(1.45rem,3vw,2rem)}
.page-body p,.page-body li{max-width:68ch}
.page-body section{padding-block:.7rem}
.page-body .eyebrow{font:600 .72rem/1.4 var(--mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.page-body .lede{color:var(--muted);font-size:1.12rem;max-width:65ch}
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.page-body .card{padding:1.25rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--panel);min-width:0}
.page-body .card h2{margin:.3rem 0 .7rem;font-size:1.2rem}
.page-body .card h2 a{color:var(--text);text-decoration:none}
.page-body .card h2 a:hover{color:var(--accent)}
.tag-list{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0}
.tag-list li,.status-chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.15rem .55rem;font:500 .75rem/1.5 var(--mono);color:var(--muted)}
.status-chip{border-radius:4px}
.link-row,.pager{display:flex;flex-wrap:wrap;gap:.8rem}
.breadcrumbs{font-size:.85rem;color:var(--muted)}
.jump-links{position:sticky;top:0;z-index:2;display:flex;gap:.25rem;overflow:auto;background:var(--bg);padding:.5rem 0;border-bottom:1px solid var(--line)}
.jump-links a{padding:.45rem .65rem;white-space:nowrap}
.page-body details{border-bottom:1px solid var(--line);padding:.8rem 0}
.page-body summary{cursor:pointer;font-weight:650}
.contact-details{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.65rem 1.2rem}
.contact-details dt{font:600 .76rem var(--mono);color:var(--muted);text-transform:uppercase}
.contact-details dd{margin:0;overflow-wrap:anywhere}
.timeline{--line-x:.5rem;position:relative;list-style:none;margin:1.5rem 0;padding:0}
.timeline::before{content:"";position:absolute;left:var(--line-x);top:0;bottom:1rem;width:1px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .7s ease}
.timeline.line-drawn::before{transform:scaleY(1)}
.timeline li{position:relative;padding:0 0 1.5rem calc(var(--line-x) + 1.5rem)}
.timeline li::before{content:"";position:absolute;left:calc(var(--line-x) - 6px);top:.35rem;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.timeline li.ongoing::before{background:var(--bg);border:2px solid var(--accent)}
.timeline h2{font-size:1.15rem;margin:0 0 .3rem;font-weight:600}
.timeline p{margin:0;color:var(--muted)}
.site-footer{width:min(1280px,calc(100% - 3rem));margin:2rem auto 0;border-top:1px solid var(--line);padding:1.5rem 0;color:var(--muted);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.nav{width:min(1280px,calc(100% - 3rem));margin:auto;display:flex;align-items:center;gap:1rem;min-height:3.75rem}
.brand{margin-right:auto;color:var(--text);text-decoration:none;font-weight:700}
.nav-menu{display:flex;flex-direction:row;order:0;width:auto;gap:.25rem;padding:0;list-style:none}
.nav-menu a{display:block;padding:.45rem .5rem;text-decoration:none;color:var(--muted);font-size:.82rem}
.nav-menu a[aria-current=page]{color:var(--text);box-shadow:inset 0 -2px var(--accent)}
.nav-toggle{display:none}
.theme-toggle svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.7}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;pointer-events:none}
.scroll-progress::after{content:"";display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(var(--progress,0));transform-origin:left}
.print-button{font:inherit}
.palette-trigger{display:inline-flex;align-items:center;gap:.6rem;min-height:2.5rem;padding:.4rem .7rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel);color:var(--muted);font:500 .84rem var(--sans);cursor:pointer}
.palette-trigger kbd{font:500 .7rem var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:.1rem .3rem}
.terminal-app{padding:1rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--panel)}
.terminal-output{min-height:12rem;max-height:55vh;overflow:auto;padding:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-s);font: .88rem/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.terminal-command{color:var(--accent);margin-top:.7rem}
.terminal-form{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;gap:.65rem;margin-top:.75rem;font: .85rem var(--mono)}
.terminal-form input{min-width:0;min-height:2.75rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg);color:var(--text);padding:.55rem;font:inherit}
.terminal-command-list{columns:2;color:var(--muted);font: .8rem/1.8 var(--mono)}
html.js .terminal-command-list{display:none}
html:not(.js) .terminal-form{display:none}
.command-dialog{width:min(620px,calc(100% - 2rem));max-height:min(78vh,700px);padding:1rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--panel);color:var(--text);box-shadow:0 24px 80px color-mix(in srgb,var(--foreground) 26%,transparent)}
.command-dialog::backdrop{background:var(--dialog-scrim);backdrop-filter:blur(3px)}
.palette-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.palette-heading h2{font-size:1.1rem;margin:.2rem 0 .8rem}
.command-dialog input{width:100%;min-height:3rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg);color:var(--text);font:inherit}
#palette-results{max-height:48vh;overflow:auto;margin-top:.7rem}
#palette-results section{margin:.3rem 0}
#palette-results h3{margin:.8rem .4rem .3rem;font:600 .7rem var(--mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
#palette-results [role=option]{display:block;width:100%;padding:.7rem .6rem;border:0;border-radius:var(--r-s);background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}
#palette-results [role=option][aria-selected=true],#palette-results [role=option]:hover{background:color-mix(in srgb,var(--accent) 12%,var(--bg))}
.palette-show-all{margin:.2rem .5rem;padding:.4rem .5rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel);color:var(--accent);font:500 .78rem var(--sans);cursor:pointer}
.palette-empty{padding:.35rem .5rem;color:var(--muted);font-size:.85rem}
#palette-status{font-size:.8rem;color:var(--muted);margin:.7rem .2rem .1rem}
body:has(.page-layout) .site-header{display:block!important}
@media(max-width:1199px){
  .page-layout{width:min(860px,calc(100% - 2rem));display:block}
  .profile-rail{display:none}
  .mobile-profile{width:min(860px,calc(100% - 2rem));margin:.75rem auto 0;display:flex;align-items:center;gap:.85rem;color:var(--muted);font-size:.82rem}
  .mobile-profile img{width:56px;height:56px;object-fit:cover;border:1px solid var(--line);border-radius:50%;flex:none}
  .mobile-profile div{display:grid;gap:.12rem}
  .mobile-profile strong{color:var(--text);font-size:.95rem}
  .mobile-profile span{line-height:1.35}
  .page-body{padding-top:2.5rem}
  .nav{width:calc(100% - 2rem);flex-wrap:wrap}
  .nav-toggle{display:inline-block}
  .nav-menu{display:flex;order:5;width:100%;flex-direction:column;border-top:1px solid var(--line);padding:.5rem 0}
  .nav-menu a{padding:.65rem .5rem}
}
@media(max-width:600px){.card-grid{grid-template-columns:1fr}.site-footer{width:calc(100% - 2rem)}.page-body>h1{font-size:2.5rem}.contact-details{grid-template-columns:1fr;gap:.2rem}.contact-details dd{margin-bottom:.8rem}}
@media(max-width:600px){.nav{flex-wrap:nowrap;gap:.4rem}.nav .brand{flex:1;min-width:0;font-size:.9rem;white-space:nowrap}.nav .palette-trigger{white-space:nowrap;padding:.35rem .45rem;gap:.3rem;font-size:.78rem}.nav .icon-btn{min-height:2.3rem;padding:.35rem .5rem}.nav .theme-toggle{min-width:2.3rem;padding:.35rem}}
@media print{
  .site-header,.mobile-profile,.profile-rail,.site-footer,.scroll-progress,.skip,.jump-links,.print-button{display:none!important}
  .page-layout{display:block;width:100%;margin:0}
  .page-body{max-width:none;padding:0;color:var(--foreground)}
  .page-body a::after{content:" (" attr(href) ")";font-size:9pt;color:var(--muted)}
  .page-body details>*{display:block!important}
  body{background:var(--background)!important;color:var(--foreground)!important;font-size:10pt}
}
@media(prefers-reduced-motion:reduce){.timeline::before{transition:none;transform:none}.page-body *, .site-header *{scroll-behavior:auto}}

/* Shared comfortable paper palette; all component colors resolve through these tokens. */
:root{color-scheme:light dark;--dialog-scrim:#020609b8;--amber:#c5a16f}
[data-theme="dark"]{color-scheme:dark}
[data-theme="light"]{
  color-scheme:light;
  --background:#f3f0e8;--foreground:#1d2733;--surface:#faf8f3;--surface-elevated:#faf8f3;--muted-surface:#ebe7dd;--muted-foreground:#4a5663;--border:#d9d3c5;
  --accent:#1a6558;--accent-foreground:#fff;--primary:#2f7465;--primary-foreground:#fff;--focus-ring:#165f55;--success:#165f55;--violet:var(--accent);--violet-foreground:#fff;--amber:#805000;
  --terminal-background:#e9e5db;--terminal-foreground:#1d2733;--terminal-command:#1a6558;--terminal-prompt:#165f55;--terminal-border:#c9c2b4;--terminal-control-background:#faf8f3;--terminal-control-foreground:#1d2733;--terminal-control-border:#d9d3c5;
  --bg:var(--background);--panel:var(--surface);--line:var(--border);--text:var(--foreground);--muted:var(--muted-foreground);--accent-ink:var(--accent-foreground);--ok:var(--success);
  --contact-border:var(--border);--contact-background:var(--surface);--contact-text:var(--foreground);--contact-grid:linear-gradient(color-mix(in srgb,var(--border) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 4%,transparent) 1px,transparent 1px);--contact-index:var(--accent);--contact-file:var(--muted);--contact-accent:var(--accent);--contact-muted:var(--muted);--contact-link:var(--accent);--contact-action:var(--primary);--contact-action-ink:var(--primary-foreground);--contact-action-soft:var(--surface-elevated);--contact-action-soft-ink:var(--foreground);--contact-action-border:var(--border);--contact-list-border:var(--border);--dialog-scrim:color-mix(in srgb,var(--foreground) 30%,transparent)
}
[data-theme="light"] body{background-image:linear-gradient(to right,transparent 0,transparent calc(100% - 1px),color-mix(in srgb,var(--line) 4%,transparent) calc(100% - 1px)),radial-gradient(ellipse at 76% 4%,color-mix(in srgb,var(--accent) 3%,transparent),transparent 32rem)}
[data-theme="light"] .site-header{background:color-mix(in srgb,var(--bg) 94%,transparent);border-color:var(--line)}
[data-theme="light"] .profile-photo{border-color:var(--border);box-shadow:none}
[data-theme="light"] .pipeline-wrap,[data-theme="light"] .pipeline-wrap::before{box-shadow:none}
[data-theme="light"] .pipeline-wrap{background:var(--surface)}
[data-theme="light"] .pipeline{background:var(--surface-elevated)}
[data-theme="light"] .pipeline li{background:var(--surface)}
[data-theme="light"] .skill-group:hover,[data-theme="light"] .card:hover,[data-theme="light"] .toolkit-item{box-shadow:none}
[data-theme="light"] .btn.primary{box-shadow:none;color:var(--primary-foreground)}
[data-theme="light"] .btn.primary:hover{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
[data-theme="light"] .status-in-progress{color:var(--amber);border-color:var(--amber)}
[data-theme="light"] .status-dot,[data-theme="light"] .diagram-state i{box-shadow:none}
[data-theme="light"] .command-dialog{box-shadow:0 8px 24px color-mix(in srgb,var(--foreground) 6%,transparent)}
[data-theme="light"] .command-dialog::backdrop{background:var(--dialog-scrim);backdrop-filter:blur(2px)}
[data-theme="light"] .page-body{color:var(--foreground)}
[data-theme="light"] .page-body a{color:var(--accent)}
[data-theme="light"] .page-body .status-chip{color:var(--muted)}
[data-theme="light"] ::selection{background:color-mix(in srgb,var(--accent) 22%,var(--surface));color:var(--foreground)}
[data-theme="light"] *{scrollbar-color:var(--border) var(--background)}
[data-theme="light"] :focus-visible{outline-color:var(--focus-ring)}
.command-dialog::backdrop{background:var(--dialog-scrim)}
.status-in-progress{color:var(--amber);border-color:var(--amber)}
@media print{
  .page-body{color:var(--foreground)}
  body{background:var(--background)!important;color:var(--foreground)!important}
  .page-body a::after{color:var(--muted)}
}

.site-header .nav .icon-btn{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
[data-theme="light"] .site-header{background:var(--bg);border-color:var(--line)}
@media(min-width:1200px){
  .profile-rail{top:calc(var(--header-row-height) + 1rem);max-height:calc(100dvh - var(--header-row-height) - 2rem)}
  .mobile-profile{display:none}
}
@media(max-width:1199px){
  .page-layout{width:100%;display:block}
  .profile-rail{display:none}
  .mobile-profile{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:8px 12px;width:calc(100% - 2rem);max-width:860px;margin:12px auto 0;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-m)}
  .mobile-profile .mobile-photo{display:block;width:60px;height:60px;grid-row:1;border:1px solid var(--line);border-radius:50%;overflow:hidden}
  .mobile-profile .mobile-photo img{display:block;width:100%;height:100%;object-fit:cover}
  .mobile-profile-copy{display:grid;gap:2px;min-width:0}
  .mobile-profile-copy strong{color:var(--text);font-size:.95rem;line-height:1.3}
  .mobile-profile-copy span{display:block;min-width:0;color:var(--muted);font-size:.75rem;line-height:1.3;overflow-wrap:anywhere}
  .mobile-profile .resume-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0}
  .mobile-profile .resume-actions .btn{display:flex;align-items:center;justify-content:center;min-height:48px;height:auto;padding:7px;text-align:center;line-height:1.2}
  .mobile-profile .resume-actions .resume-view{white-space:nowrap}
  .main-content{width:min(1120px,calc(100% - 2rem));margin-inline:auto}
  .page-body{padding-top:clamp(1.75rem,5vw,3rem)}
}
