:root{color-scheme:dark;--ground: #080C13;--plate: #0B1220;--plate-2: #101B2A;--grid: #1B293D;--axis: #24354A;--ink: #EEF5F7;--ink-2: #9FB3C8;--ink-3: #8295A5;--series-1: #38BDF8;--series-2: #E9A13B;--series-3: #2DD4BF;--logo-chip: #FFFFFF;--hairline: 1px;--r-xs: 2px;--r-chip: 999px;--fs-100: .6875rem;--fs-200: .75rem;--fs-300: .8125rem;--fs-400: .875rem;--fs-500: 1rem;--fs-600: 1.0625rem;--fs-700: 1.25rem;--fs-800: 1.5rem;--fs-900: 2.6rem;--fs-display: clamp(2.4rem, 5.2vw, 3.75rem);--lh-display: 1.02;--lh-heading: 1.15;--lh-sub: 1.2;--lh-body: 1.65;--measure-tight: 22ch;--measure-body: 56ch;--measure-prose: 66ch;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--section-gap: var(--space-9);--t-tap: .12s;--t-hover: .18s;--t-reveal: .3s;--ease-out: cubic-bezier(.215, .61, .355, 1);--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}[id]{scroll-margin-top:88px}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-600);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0}h1{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:700;letter-spacing:-.015em}h2{font-size:var(--fs-800);line-height:var(--lh-heading);font-weight:600}h3{font-size:var(--fs-700);line-height:var(--lh-sub);font-weight:600}h1,h2,h3{text-wrap:balance}p{margin:0 0 var(--space-4);max-width:var(--measure-prose);text-wrap:pretty}a{color:var(--series-2);text-decoration-thickness:1px;text-underline-offset:2px}a:hover,a:focus-visible{color:var(--series-2)}:focus-visible{outline:2px solid var(--series-2);outline-offset:2px}::selection{background:var(--series-2);color:var(--ground)}img{max-width:100%;height:auto}#root{display:flex;flex-direction:column;min-height:100vh}#root>main{flex:1 0 auto}.container{max-width:1120px;margin:0 auto;padding:0 var(--space-5)}@media (max-width: 480px){.container{padding:0 var(--space-4)}}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.kicker{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-300);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-64px;z-index:100;background:var(--plate);color:var(--ink);border:var(--hairline) solid var(--grid);border-radius:var(--r-xs);padding:10px var(--space-4);transition:top var(--t-tap) ease}.skip-link:focus-visible{top:12px}.nav{position:sticky;top:0;z-index:10;height:64px;background:color-mix(in srgb,var(--plate) 97%,transparent);backdrop-filter:saturate(1.2) blur(6px);-webkit-backdrop-filter:saturate(1.2) blur(6px);border-bottom:var(--hairline) solid var(--grid)}@supports not (backdrop-filter: blur(6px)){.nav{background:var(--plate)}}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}.nav-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-height:44px}.nav-wordmark{font-family:var(--font-display);font-weight:700;font-size:var(--fs-700);color:var(--ink)}.nav-brand,.nav-wordmark{color:var(--ink)}.nav-tabs{display:flex;align-items:center;gap:8px}@media (max-width: 639px){.nav-wordmark{display:none}.nav-tabs{gap:6px}.nav-tabs .btn{padding:8px 10px;font-size:var(--fs-400)}span.chip,span.proof-chip{white-space:normal}}@media (max-width: 479px){.nav-inner{gap:8px}.nav-tabs{gap:4px}.nav-tabs .btn{padding:8px 6px;font-size:var(--fs-300)}}@media (max-width: 379px){.nav-tabs{gap:3px}.nav-tabs .btn{padding:8px 5px;font-size:var(--fs-200)}}@media (max-width: 359px){.nav-brand{display:none}}.btn{--btn-lift: -1px;--btn-label: var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;min-width:44px;padding:10px var(--space-4);border-radius:var(--r-xs);background:var(--plate);color:var(--btn-label);border:var(--hairline) solid var(--grid);font-family:var(--font-body);font-size:var(--fs-500);font-weight:600;text-decoration:none;transition:transform var(--t-tap) var(--ease-out),border-color var(--t-tap) ease,background-color var(--t-tap) ease}.btn-primary{--btn-label: var(--ground);background:var(--series-2);border-color:var(--series-2);color:var(--btn-label)}.btn-current{--btn-lift: 0px;background:var(--plate-2);color:var(--btn-label);border-color:var(--ink-3);box-shadow:inset 0 calc(-1 * var(--hairline)) 0 var(--series-2)}.btn:hover,.btn:focus-visible{border-color:var(--series-2);color:var(--btn-label);transform:translateY(var(--btn-lift))}.btn:active{transform:none}.plate{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border:var(--hairline) solid var(--grid);border-radius:var(--r-xs);background:var(--plate)}.plate-label{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-200);font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0}.plate-footnote{margin:0;padding-top:var(--space-3);border-top:var(--hairline) solid var(--grid);color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-400);line-height:1.5;max-width:none}.plate-footnote a{overflow-wrap:anywhere}.plate>.plate-footnote:last-child{margin-top:auto}.axis-rule{position:relative;height:5px;margin-bottom:var(--space-4);border-top:var(--hairline) solid var(--grid);background-image:linear-gradient(90deg,var(--axis) 0 var(--hairline),transparent var(--hairline));background-repeat:repeat-x;background-size:25% 5px;background-position:0 0}.readout{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;font-variant-numeric:tabular-nums}.readout-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);min-width:0}.readout-value{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-700);font-weight:600;line-height:1.2}.readout-unit,.readout-label{color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-400);line-height:1.4}.readout-unit{color:var(--ink-2)}.sample-point{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:var(--series-1);box-shadow:0 0 0 var(--hairline) var(--grid)}.sample-point-annotated{background:var(--series-2)}.sample-point-off{background:var(--ink-3)}.callout{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--series-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-300);line-height:1.4}.callout:before{content:"";width:var(--callout-leader, 18px);height:var(--hairline);flex:none;background:var(--series-2)}.data-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:var(--fs-400)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);border-bottom:var(--hairline) solid var(--grid);text-align:left;vertical-align:baseline}.data-table th{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-200);font-weight:400;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.data-table td{color:var(--ink)}.data-table tbody tr:nth-child(2n){background:var(--plate-2)}.data-table-num{font-family:var(--font-mono);white-space:nowrap}.chip,.proof-chip{display:inline-flex;align-items:center;gap:6px;padding:var(--space-1) var(--space-3);border-radius:var(--r-chip);border:var(--hairline) solid var(--grid);background:var(--plate);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-300);color:var(--ink);white-space:nowrap}.proof-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--series-3);flex:none}.chip-rail{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.section{padding-top:var(--section-gap)}@media (max-width: 639px){:root{--section-gap: 48px}.plate{padding:var(--space-4);gap:var(--space-2)}.section-head{margin-bottom:var(--space-4)}.hero-band{padding-bottom:var(--space-6)}}.section h2{font-size:clamp(1.75rem,4.4vw,var(--fs-900))}.section~.section{padding-top:calc(var(--section-gap) * .66)}.section~.section h2{font-size:var(--fs-800)}.section.section--rank-1{padding-top:var(--section-gap)}.section.section--rank-1 h2{font-size:clamp(1.75rem,4.4vw,var(--fs-900))}.section.section--rank-2{padding-top:calc(var(--section-gap) * .66)}.section.section--rank-2 h2{font-size:var(--fs-800)}.section-head{margin-bottom:var(--space-6)}.section-head h2{margin-top:0}@media (max-width: 767px){:root{--section-gap: var(--space-8)}}.card{background:var(--plate);border:var(--hairline) solid var(--grid);border-radius:var(--r-xs);padding:var(--space-5);transition:transform var(--t-hover) var(--ease-out),border-color var(--t-hover) var(--ease-out)}.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}@media (min-width: 768px){.card-grid{grid-template-columns:repeat(2,1fr)}.card-grid-3{grid-template-columns:repeat(3,1fr)}}.card h3 a{color:var(--ink)}@media (max-width: 767px){.card h3 a,.system-copy h3 a{display:inline-block;padding-block:10px;margin-block:-10px}}.hero{padding-top:var(--space-7)}.hero .kicker{margin-bottom:var(--space-4);font-size:var(--fs-400)}.hero h1{max-width:var(--measure-tight);margin-bottom:var(--space-5)}.hero-subhead{font-size:var(--fs-700);line-height:1.45;max-width:46ch;margin-bottom:var(--space-4);text-wrap:pretty}.hero-availability{margin-bottom:0}.hero-availability .proof-chip{font-size:var(--fs-500);line-height:1.4;white-space:normal}.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.hero-email-plain{font-family:var(--font-mono);font-size:var(--fs-400);color:var(--ink-2);margin-top:var(--space-4)}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:start}.hero-layout{grid-template-areas:"lead" "rail" "tail"}.hero-lead{grid-area:lead}.hero-side{grid-area:rail}.hero-tail{grid-area:tail}@media (min-width: 1024px){.hero-layout{grid-template-columns:minmax(0,56fr) minmax(360px,44fr);grid-template-areas:"lead rail" "tail rail";gap:var(--space-6) var(--space-8)}.hero-aws{padding-top:var(--space-4);border-top:var(--hairline) solid var(--grid)}}.hero-aws{max-width:62ch;margin:0 0 var(--space-6);padding:0 0 var(--space-4);border-bottom:var(--hairline) solid var(--grid);font-size:var(--fs-500);line-height:1.6;color:var(--ink-2);text-wrap:pretty}.section-exit{margin:var(--space-6) 0 0;font-size:var(--fs-400)}.skills-block{margin-top:var(--space-6);padding-top:var(--space-6);border-top:var(--hairline) solid var(--grid)}.systems-sweep{margin:0 0 var(--space-7);min-width:0}.hero-readout{display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.hero-readout-row{display:grid;grid-template-columns:minmax(0,1fr) 68px minmax(120px,168px);align-items:baseline;column-gap:var(--space-4);padding:var(--space-2) 0;border-top:var(--hairline) solid var(--grid)}.hero-readout-row:last-child{border-bottom:var(--hairline) solid var(--grid)}.hero-readout-repo{font-size:var(--fs-400)}.hero-readout-value{color:var(--ink);font-size:var(--fs-500);font-weight:600;text-align:right}.hero-readout-unit{color:var(--ink-3);font-size:var(--fs-300)}.hero-readout-lead{margin-bottom:var(--space-3);max-width:var(--measure-body);color:var(--ink-2);font-size:var(--fs-500)}.hero-readout-name{display:flex;flex-direction:column;gap:2px}.hero-readout-what{color:var(--ink-2);font-size:var(--fs-300)}@media (max-width: 1023px){.hero-readout,.hero-readout-lead{max-width:34rem}}.hero-readout-plain{display:block;color:var(--ink-3);font-family:var(--font-sans);font-size:var(--fs-300)}.hero-readout-aside{margin-bottom:var(--space-6);font-size:var(--fs-300)}.hero-readout-aside a{color:var(--ink-2);letter-spacing:.02em}.hero-readout-aside a:hover,.hero-readout-aside a:focus-visible{color:var(--series-2)}.hero-band{background:var(--plate);padding-bottom:var(--space-7);border-bottom:var(--hairline) solid var(--grid);position:relative;isolation:isolate;overflow:hidden;contain:paint}.hero{position:relative;z-index:2}.hero .kicker{color:var(--ink-2)}.hero h1,.hero-subhead{color:var(--ink)}.hero-band .hero-email-plain{color:var(--ink-2)}.system-list{display:grid;gap:var(--space-5)}.system-feature{display:grid;grid-template-columns:1fr;gap:var(--space-6);align-items:stretch}.system-copy,.system-evidence{min-width:0}.system-summary{margin-top:var(--space-3);font-size:var(--fs-600)}.system-proof{color:var(--ink);font-weight:600}.system-aside{color:var(--ink-2)}.system-caveat{color:var(--ink-2);font-size:var(--fs-400)}.system-evidence{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-6);padding-top:var(--space-2);border-top:var(--hairline) solid var(--grid)}@media (max-width: 639px){.system-feature,.system-evidence{gap:var(--space-4)}}.system-diagram{display:flex;flex-wrap:wrap;position:relative;align-items:center;justify-content:center;row-gap:0;column-gap:10px;min-height:176px;padding-right:var(--space-3);color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-200)}.diagram-stage,.diagram-node,.diagram-sstables span{display:inline-flex;align-items:center;justify-content:center;min-width:52px;min-height:40px;padding:6px var(--space-2);border:var(--hairline) solid var(--ink-3);background:var(--ground)}@media (max-width: 639px){.system-diagram{display:none}}.diagram-stage{border-radius:var(--r-xs);white-space:nowrap}.diagram-flow{position:relative;width:24px;height:var(--hairline);flex:0 1 24px;background:var(--ink-3)}.diagram-flow:after{content:"";position:absolute;right:-1px;top:-3px;width:6px;height:6px;border-top:var(--hairline) solid var(--ink-3);border-right:var(--hairline) solid var(--ink-3);transform:rotate(45deg)}.diagram-nodes,.diagram-sstables{display:grid;gap:6px}.diagram-node{min-width:42px;min-height:42px;padding:0;border-radius:50%}.diagram-node.is-leader{border-color:var(--series-3);color:var(--series-3)}.diagram-sstables span{min-height:28px;border-radius:var(--r-xs)}.diagram-caption{flex:0 0 100%;margin-top:var(--space-3);text-align:center;color:var(--ink-2)}.diagram-ann .diagram-node{min-width:58px;min-height:40px;padding:6px 10px;border-radius:var(--r-xs);white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:0;padding-top:var(--space-4);border-top:var(--hairline) solid var(--grid)}.metric-grid div{display:flex;min-width:0;flex-direction:column}.metric-grid dd{order:-1;margin:0;color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-500);font-weight:600}.metric-grid dt{margin-top:var(--space-1);color:var(--ink-2);font-size:var(--fs-200);line-height:1.35}@media (min-width: 1024px){.system-feature{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.system-evidence{padding-top:0;padding-left:var(--space-6);border-top:0;border-left:var(--hairline) solid var(--grid)}}@media (max-width: 479px){.system-feature{padding:20px}.system-diagram{min-height:150px;column-gap:3px;font-size:var(--fs-100)}.diagram-stage,.diagram-sstables span{min-width:42px;padding-right:var(--space-1);padding-left:var(--space-1)}.diagram-flow{width:8px;flex-basis:8px}.metric-grid{grid-template-columns:1fr}}.climbing-route{margin:0;max-width:440px}@media (max-width: 639px){.climbing-route{max-width:320px}}.climb-topo{position:relative;aspect-ratio:1 / 1}.climb-wall{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.climb-wall-face{fill:var(--plate-2);stroke:var(--grid);stroke-width:1px;vector-effect:non-scaling-stroke}.climb-wall-seam{fill:none;stroke:var(--grid);stroke-width:1px;vector-effect:non-scaling-stroke}.climb-wall-bolt{fill:var(--axis)}.climb-route-path{fill:none;stroke:var(--series-2);stroke-width:1.5px;stroke-dasharray:5 6;vector-effect:non-scaling-stroke;opacity:.65}.climb-hold{position:absolute;left:var(--hold-x);top:var(--hold-y);width:34px;height:18px;transform:translate(-50%,-50%) rotate(var(--hold-rotate));border-radius:58% 42% 52% 48%/68% 54% 46% 32%;box-shadow:0 0 0 var(--hairline) var(--grid);display:flex;align-items:center;justify-content:center}.climb-hold-route{background:var(--series-2)}.climb-num{font-family:var(--font-mono);font-style:normal;font-weight:600;font-size:var(--fs-100);line-height:1;color:var(--ground)}.climb-hold-jug{width:40px;height:22px;border-radius:62% 38% 58% 42%/72% 62% 38% 28%}.climb-hold-edge{width:28px;height:14px;border-radius:35% 65% 42% 58%/66% 44% 56% 34%}.climb-hold-start{width:32px;height:18px}.climb-hold-top{box-shadow:0 0 0 var(--hairline) var(--grid),0 0 0 3px var(--plate-2),0 0 0 4px var(--series-2)}.climb-hold-off-route{width:20px;height:11px;background:var(--ink-3);opacity:.55}.climb-label{position:absolute;z-index:2;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-100);letter-spacing:.08em;padding:2px 5px;border:var(--hairline) solid var(--axis);border-radius:var(--r-xs);background:var(--plate)}.climb-label-start{left:8%;bottom:4%}.climb-label-top{right:8%;top:1%}.page-head-band{background:var(--plate);padding-bottom:var(--space-7);position:relative;isolation:isolate;overflow:hidden}.page-head-band h1{color:var(--ink)}.page-head-band .page-dek{color:var(--ink-2)}.page-head{padding-top:var(--space-8)}.page-head h1{margin-bottom:var(--space-4)}.page-dek{font-size:var(--fs-700);line-height:1.45;color:var(--ink-2);max-width:var(--measure-body)}.alt-timeline{list-style:none;position:relative;margin:var(--space-6) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-6)}.alt-timeline:before{content:"";position:absolute;top:4px;bottom:4px;left:7px;width:2px;background:var(--grid)}.alt-timeline-item{position:relative;margin-left:36px}.alt-timeline-item:before{content:"";position:absolute;top:26px;left:-34px;width:12px;height:12px;border-radius:50%;background:var(--series-2);border:2px solid var(--ground);z-index:1}.alt-timeline-item:after{content:"";position:absolute;top:33px;left:-28px;width:28px;height:2px;background:var(--grid)}.alt-timeline-label{position:relative;margin-left:36px;z-index:1}.alt-timeline-label h3{margin:0;font:inherit}.alt-timeline-label span{display:inline-block;background:var(--plate);border:var(--hairline) solid var(--grid);border-radius:var(--r-chip);padding:6px var(--space-4);font-family:var(--font-mono);font-size:var(--fs-200);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}@media (min-width: 900px){.alt-timeline{display:grid;grid-template-columns:1fr 1fr;gap:40px 88px}.alt-timeline:before{left:50%;margin-left:-1px}.alt-timeline-item{margin-left:0}.alt-timeline-item.tl-left{grid-column:1}.alt-timeline-item.tl-right{grid-column:2}.alt-timeline-item.tl-left:before{left:auto;right:-50px}.alt-timeline-item.tl-right:before{left:-50px}.alt-timeline-item.tl-left:after{left:auto;right:-44px;width:44px}.alt-timeline-item.tl-right:after{left:-44px;width:44px}.alt-timeline-label{grid-column:1 / -1;justify-self:center;margin-left:0}}.role-card{position:relative}.role-card-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start}.role-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:var(--hairline) solid var(--grid);border-radius:var(--r-xs);background:var(--logo-chip);overflow:hidden}.role-logo-pad{padding:6px 5px}.role-logo-img{width:100%;height:100%;object-fit:contain}.role-logo-wide{width:100%;height:auto}.role-org{font-weight:600;margin-top:2px}.role-meta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-400);color:var(--ink-2);margin-top:var(--space-1)}.role-bullets{margin:var(--space-3) 0 0;padding-left:20px}.role-bullets li{margin-bottom:var(--space-2);max-width:var(--measure-prose)}.hobby-intro{max-width:var(--measure-body);margin-bottom:var(--space-6);color:var(--ink-2)}.hobby-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:start;padding-bottom:var(--space-6);border-bottom:var(--hairline) solid var(--grid)}@media (min-width: 1024px){.hobby-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-6);row-gap:var(--space-2);grid-template-rows:auto auto auto}}.hobby-blurb{margin:0 0 var(--space-2);font-size:var(--fs-700);color:var(--ink)}.hobby-lead{margin:0 0 var(--space-4);font-size:var(--fs-500);line-height:1.6;color:var(--ink-2);text-wrap:pretty}.hobby-cell .plate:not(.climbing-route){max-width:none}.feed-fig{margin:0}.feed-list{margin:0;display:flex;flex-direction:column}.feed-row{padding:var(--space-3) 0;border-top:var(--hairline) solid var(--grid)}.feed-row:first-child{border-top:0;padding-top:0}.feed-list dt{font-family:var(--font-mono);font-size:var(--fs-200);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.feed-list dd{margin:var(--space-1) 0 0;font-size:var(--fs-400);color:var(--ink)}.hobby-cell{display:flex;flex-direction:column;align-items:stretch}@media (min-width: 1024px){.hobby-cell{display:grid;grid-template-rows:subgrid;grid-row:span 3}.hobby-cell>figure{align-self:start}.hobby-cell>.hobby-lead{align-self:start}}.edu-card{max-width:720px}@media (min-width: 1024px){.edu-card{max-width:none}}.edu-card .edu-degree{margin-top:var(--space-1)}.edu-card .role-meta{margin-top:6px}.edu-detail{margin:var(--space-2) 0 0;font-size:var(--fs-400)}.edu-coursework{margin:var(--space-3) 0 0;font-family:var(--font-mono);font-size:var(--fs-300);line-height:1.7;color:var(--ink-3);max-width:none}.skills-row{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}@media (min-width: 768px){.skills-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--space-5);align-items:baseline}}.skills-line{margin:0;font-family:var(--font-mono);font-size:var(--fs-300);line-height:1.8;color:var(--ink-2);max-width:none}.skills-label{font-family:var(--font-mono);font-size:var(--fs-300);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.no-repo-tag{font-family:var(--font-mono);font-size:var(--fs-300);color:var(--ink-2)}.project-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3);margin-top:var(--space-1)}.project-links{margin-top:var(--space-3);font-size:var(--fs-400)}.contact-band{margin-top:var(--section-gap);background:color-mix(in srgb,var(--plate) 78%,var(--plate));border-top:var(--hairline) solid var(--grid);border-bottom:var(--hairline) solid var(--grid)}.contact-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:var(--space-8);align-items:start;padding-top:var(--space-8);padding-bottom:var(--space-8)}.contact-copy .kicker{margin-bottom:var(--space-3)}.contact-copy h2{margin-bottom:var(--space-4);font-size:var(--fs-800)}.contact-copy p:last-child{margin-bottom:0;color:var(--ink-2)}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.contact-email{width:100%;color:var(--ink-2);font-size:var(--fs-300)}.cta-text-link{display:inline-flex;align-items:center;gap:.3em;min-height:44px}@media (max-width: 767px){.contact-layout{grid-template-columns:1fr;gap:var(--space-6);padding-top:var(--space-7);padding-bottom:var(--space-7)}}.footer{background:var(--plate);border-top:none;padding:var(--space-7) 0;margin-top:0}.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.footer-email{font-size:var(--fs-400);color:var(--ink-2)}.footer-colophon{margin-top:var(--space-6);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-300);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:8px 24px}.footer-colophon p{margin:0;max-width:none}.footer-email,.footer-colophon{color:var(--ink-2)}.not-found{padding-top:var(--section-gap);padding-bottom:var(--section-gap)}.not-found h1{margin-bottom:var(--space-4)}.not-found-plate{max-width:420px;margin:0 0 var(--space-6)}.nf-axis,.nf-tick{fill:none;stroke:var(--axis);stroke-width:1px;vector-effect:non-scaling-stroke}.nf-note{fill:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-200)}.not-found .cta-row{margin-top:var(--space-6)}.nav-brand svg{transition:transform var(--t-tap) ease}.nav-brand:hover svg,.nav-brand:focus-visible svg{transform:translateY(-1px)}.card-live:hover,.card-live:focus-within{transform:translateY(-2px);border-color:var(--series-2)}.card-live:hover h3 a,.card-live:focus-within h3 a{text-decoration-thickness:2px}.role-card:hover,.edu-card:hover{border-color:var(--ink-3)}.alt-timeline-item:before{transition:transform var(--t-hover) var(--ease-out)}.alt-timeline-item:after{transition:background-color var(--t-hover) ease}.alt-timeline-item:hover:before,.alt-timeline-item:focus-within:before{transform:scale(1.35)}.alt-timeline-item:hover:after,.alt-timeline-item:focus-within:after{background:color-mix(in srgb,var(--series-2) 40%,var(--grid))}.chip,.proof-chip{transition:border-color .15s ease,background-color .15s ease}.chip:hover{border-color:color-mix(in srgb,var(--series-2) 25%,var(--grid));background:color-mix(in srgb,var(--series-2) 4%,var(--plate))}a{transition:color var(--t-tap) ease,text-decoration-thickness var(--t-tap) ease}a:hover,a:focus-visible{text-decoration-thickness:2px;text-underline-offset:3px}.arrow{display:inline-block;transition:transform var(--t-hover) var(--ease-out)}a:hover .arrow,a:focus-visible .arrow{transform:translate(4px)}.card-grid>.reveal>.card{height:100%}.card-grid .card{display:flex;flex-direction:column}.card-grid .card>p{margin-bottom:0}.card-grid .card>.chip-rail:last-child,.card-grid .card>.project-links:last-child{margin-top:auto;padding-top:12px}#progress-rail{--scroll-progress: 0;--scroll-position: 0%;position:absolute;left:12px;right:12px;bottom:-3px;height:7px;z-index:2;pointer-events:none}.route-progress:before,.route-progress-fill{content:"";position:absolute;top:3px;left:0;right:0}.route-progress:before{top:0;height:7px;background:linear-gradient(270deg,var(--axis) 0 var(--hairline),transparent var(--hairline)) repeat-x right 0 top 3px / 25% 4px,linear-gradient(var(--grid),var(--grid)) no-repeat 0 3px / 100% var(--hairline)}.route-progress-fill{height:var(--hairline);background:var(--series-2);transform:scaleX(var(--scroll-progress));transform-origin:left center;will-change:transform}.route-progress-marker{position:absolute;top:3px;left:clamp(6px,var(--scroll-position),calc(100% - 6px));width:7px;height:7px;border-radius:50%;background:var(--series-2);box-shadow:0 0 0 var(--hairline) var(--plate);transform:translate(-50%,-50%);will-change:left}.kbd-fab{position:fixed;right:20px;bottom:20px;z-index:30;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-xs);background:var(--plate);color:var(--ink-2);border:var(--hairline) solid var(--ink-3);cursor:pointer;transition:transform var(--t-hover) var(--ease-out),border-color var(--t-hover) ease,color var(--t-hover) ease}.kbd-fab:hover,.kbd-fab:focus-visible{transform:translateY(-1px);border-color:var(--series-2);color:var(--series-2)}.kbd-fab:active{transform:none}@media (max-width: 639px){.kbd-fab{right:14px;bottom:14px}}@media (pointer: coarse),(max-width: 639px){.kbd-fab{display:none}}.kbd-help{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--space-5);opacity:0;transition:opacity var(--t-hover) ease}.kbd-help.is-open{opacity:1}.kbd-help[hidden]{display:none}.kbd-help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ground) 66%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.kbd-help-card{position:relative;width:min(420px,100%);background:var(--plate);border:var(--hairline) solid var(--ink-3);border-radius:var(--r-xs);padding:var(--space-5);transform:translateY(8px) scale(.98);transition:transform var(--t-hover) var(--ease-out)}.kbd-help.is-open .kbd-help-card{transform:none}.kbd-help-title{font-family:var(--font-display);font-size:var(--fs-700);font-weight:600;margin:0 0 var(--space-4)}.kbd-help-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.kbd-help-list a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:10px var(--space-3);border-radius:var(--r-xs);color:var(--ink);text-decoration:none;transition:background-color var(--t-tap) ease}.kbd-help-list a:hover,.kbd-help-list a:focus-visible{background:color-mix(in srgb,var(--series-2) 10%,var(--plate));color:var(--ink)}.kbd-combo{display:inline-flex;gap:var(--space-1);flex:none}.kbd-help kbd,.kbd-help-foot kbd{font-family:var(--font-mono);font-size:var(--fs-200);line-height:1;min-width:22px;padding:5px 6px;text-align:center;color:var(--ink);background:var(--ground);border:var(--hairline) solid var(--ink-3);border-radius:var(--r-xs)}.kbd-help-foot{margin:var(--space-2) 0 20px;font-family:var(--font-mono);font-size:var(--fs-200);color:var(--ink-2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kbd-help-close{width:100%}@media (prefers-reduced-motion: no-preference){.js .reveal{opacity:0;transform:translateY(14px);transition:opacity var(--t-reveal) ease-out,transform var(--t-reveal) var(--ease-out);transition-delay:var(--reveal-delay, 0ms)}.js .reveal.is-in{opacity:1;transform:none}}@media print{:root{--ground: #ffffff;--plate: #ffffff;--plate-2: #f2f4f7;--grid: #c4ccd4;--axis: #6b7885;--ink: #10161d;--ink-2: #414d59;--ink-3: #55606b;--series-1: #0b3a6b;--series-2: #8a5a00;--series-3: #2f7d4f}html,body{background:#fff!important;color:#10161d!important}.js .reveal,.js .hero>*,.js .page-head>*{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}.hero-band,.page-head-band,.contact-band,.nav{background:#fff!important;box-shadow:none!important}.card,.system-feature,.role-card,.edu-card{background:#fff!important;border:1px solid #c4ccd4!important;box-shadow:none!important;break-inside:avoid}a{color:#0b3a6b!important;text-decoration:underline}.btn,.btn-primary,.btn-current{background:#fff!important;color:#0b3a6b!important;border-color:#6b7885!important;box-shadow:none!important;transform:none!important}.hero,.hero-layout{display:block!important}.hero-tail{margin-top:0!important}#progress-rail,.kbd-fab,.kbd-help,.climbing-route,.about-visual,.system-diagram{display:none!important}.hero-band:before,.hero-band:after,.page-head-band:before,.page-head-band:after{display:none!important}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal,.hero>*,.page-head>*{opacity:1;transform:none}.btn{--btn-lift: 0px}.card-live:hover,.card-live:focus-within,.kbd-fab:hover,.kbd-fab:focus-visible,.kbd-fab:active,.kbd-help-card,.kbd-help.is-open .kbd-help-card{transform:none}}
