/* The home page: an engineer's drawing desk. */
.home-page .hero{background:radial-gradient(ellipse at 85% 35%,#21445266,transparent 55%),linear-gradient(145deg,#10283c,#0b1a2b 70%)}
.home-page .hero-inner{padding:64px 28px 0}
.hero-layout{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);gap:44px;align-items:center}
.hero-copy{min-width:0}
.hero-eyebrow{font:11px/1.6 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);margin:0 0 24px}
.home-page .status{font-size:12px;line-height:1.6;align-items:flex-start;max-width:42ch;margin-bottom:20px}
.home-page .status .pip{flex:none;margin-top:6px;width:6px;height:6px}
.home-page h1.title{font-size:clamp(40px,4.8vw,61px);line-height:1.08;letter-spacing:-.035em;max-width:16ch}
.home-page h1.title .u{color:var(--amber)}
.home-page h1.title .u svg{display:none}
.home-page .lede{font-size:17px;line-height:1.65;margin-top:24px;max-width:51ch}
.home-page .role-line{font-size:11px;line-height:1.8;max-width:45ch;letter-spacing:.02em}
.home-page .hero .actions{gap:10px;margin-top:26px}
.home-page .hero .btn{padding:12px 17px;font-size:14px}
.assembly-card{min-width:0;position:relative;margin:0;border:1px solid #365260;background:linear-gradient(140deg,#143246aa,#0a1b29cc);box-shadow:14px 14px 0 #07131d55}
.assembly-card::before,.assembly-card::after{content:"";position:absolute;width:6px;height:6px;border:1px solid var(--amber);pointer-events:none}
.assembly-card::before{top:-4px;left:-4px}.assembly-card::after{bottom:-4px;right:-4px}
.assembly-heading{display:flex;justify-content:space-between;gap:12px;padding:17px 20px;border-bottom:1px solid #365260;font:9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.07em;color:var(--muted)}
.assembly-heading>span:first-child{color:var(--amber)}
.assembly-drawing{display:block;width:100%;height:auto;max-height:540px}
.assembly-card figcaption{padding:0 20px 18px;display:flex;flex-direction:column;gap:4px}
.assembly-card figcaption>span:first-child{font:27px/1.1 "Caveat",cursive;color:var(--ink)}
.assembly-note{font:9px/1.7 "IBM Plex Mono",monospace;color:var(--muted)}
.assembly-toggle{display:flex;justify-content:space-between;gap:20px;align-items:center;width:100%;padding:15px 20px;background:#162f3d;border:0;border-top:1px solid #365260;color:var(--cyan);font:11px/1.6 "IBM Plex Mono",monospace;cursor:pointer}
.assembly-toggle[hidden]{display:none}
.assembly-toggle:hover{background:#204251;color:var(--ink)}
.assembly-toggle span{font-size:20px;color:var(--amber)}
.joint-stack{transform:translateY(0);transition:transform 1s cubic-bezier(.22,.7,.22,1)}
.assembly-card.is-assembled .joint-stack{transform:translateY(120px)}
.joint-bolt{transform:translateY(-145px)}
.joint-top-washer{transform:translateY(-30px)}
.joint-top-plate{transform:translateY(60px)}
.joint-bottom-plate{transform:translateY(230px)}
.joint-bottom-washer{transform:translateY(314px)}
.joint-nut{transform:translateY(369px)}
.joint-bolt,.joint-top-washer,.joint-top-plate,.joint-bottom-plate,.joint-bottom-washer,.joint-nut{transition:transform 1s cubic-bezier(.22,.7,.22,1)}
.assembly-callouts,.assembly-labels,.joint-clamp{transition:opacity .25s}
.joint-clamp{opacity:0;transform:translateY(120px)}
.assembly-card.is-assembled .joint-bolt,.assembly-card.is-assembled .joint-top-washer,.assembly-card.is-assembled .joint-top-plate,.assembly-card.is-assembled .joint-bottom-plate,.assembly-card.is-assembled .joint-bottom-washer,.assembly-card.is-assembled .joint-nut{transform:translateY(0)}
.assembly-card.is-assembled .assembly-callouts,.assembly-card.is-assembled .assembly-labels{opacity:0}
.assembly-card.is-assembled .joint-clamp{opacity:1}
.assembly-demo-link{font:10px/1.7 "IBM Plex Mono",monospace;color:var(--cyan);margin-top:8px;text-decoration:underline;text-underline-offset:3px}
.assembly-note{font-size:10px;line-height:1.7;max-width:48ch}
.home-page .specbar{margin-top:54px;background:#07152055;border-bottom:1px solid var(--line)}
.home-page .spec{padding:24px 18px 28px}
.home-page .spec .fig{color:var(--amber)}
.home-page .spec .cap{font-size:12px}
.featured-work{padding:46px 0 64px;background:#081724bb}
.featured-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}
.featured-heading h2{font-size:19px;font-weight:600}
.featured-heading>span{font:10px "IBM Plex Mono",monospace;color:var(--muted);white-space:nowrap}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.feature-card{min-width:0;display:flex;flex-direction:column;border:1px solid #2a4150;background:#102637;transition:border-color .2s,transform .2s}
.feature-card:hover,.feature-card:focus-visible{border-color:var(--amber);transform:translateY(-5px)}
.feature-art{height:180px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#214655,#0e2232)}
.feature-art img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.feature-card:hover img{transform:scale(1.04)}
.feature-art svg{display:block;width:100%;height:100%}
.feature-tag{position:absolute;top:14px;left:14px;font:9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.06em;padding:5px 7px;background:#091b2ae8;color:#c3d4dd;z-index:1}
.feature-history .feature-tag{background:#e9e3d5;color:#37452f}
.feature-copy{padding:24px;flex:1;display:flex;flex-direction:column}
.feature-copy h3{font-size:25px;letter-spacing:-.025em}
.feature-copy p{font-size:14px;line-height:1.6;color:#a9bdca;margin:13px 0 25px}
.feature-link{margin-top:auto;display:flex;justify-content:space-between;gap:8px;color:var(--cyan);font:10px/1.7 "IBM Plex Mono",monospace}
.feature-link>span{color:var(--amber);font-size:17px}
.home-page #experience .sec-head::before,.home-page #about .sec-head::before,.home-page #toolkit .sec-head::before,.home-page #education .sec-head::before,.home-page #offclock .sec-head::before{display:block;font:10px/1.7 "IBM Plex Mono",monospace;letter-spacing:.12em;color:var(--cyan);margin-bottom:16px}
.home-page #experience .sec-head::before{content:"01 / THE WORK"}
.home-page #about .sec-head::before{content:"02 / THE PERSON"}
.home-page #toolkit .sec-head::before{content:"03 / THE TOOLKIT"}
.home-page #education .sec-head::before{content:"04 / THE FOUNDATION"}
.home-page #offclock .sec-head::before{content:"05 / THE WORKSHOP"}
.home-page .sec-head .sketch{opacity:.5}
.home-page #experience .job{border-left:1px solid var(--line);padding-left:26px;position:relative}
.home-page #experience .job::before{content:"";position:absolute;top:45px;left:-4px;width:7px;height:7px;background:var(--amber);box-shadow:0 0 0 5px var(--bg)}
.home-page #experience .job .co{font-family:"Archivo",sans-serif;font-size:20px;line-height:1.3;margin-top:12px;color:var(--ink)}
.home-page #about{background:linear-gradient(110deg,#142e40,#0c1e2f)}
.home-page #toolkit .kit-col{background:#11293b99;padding:22px;border-top:2px solid #3c6574}
.home-page #toolkit .kit-grid{gap:14px}
.home-page #offclock{background:radial-gradient(ellipse at 0 80%,#193e4b66,transparent 65%)}
.home-page .contact{background:linear-gradient(120deg,#263733,#142c3e);border-top:2px solid var(--amber)}
.home-page .contact h2{font-size:clamp(40px,6vw,68px)}
@media(min-width:1400px){.home-page .hero-inner{padding-top:80px}.hero-layout{gap:64px}}
@media(max-width:1000px){.hero-layout{gap:28px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.home-page h1.title{font-size:46px}.home-page .hero-inner{padding-top:48px}.assembly-heading{font-size:8px;padding:14px}.feature-copy{padding:20px}.feature-copy h3{font-size:22px}}
@media(max-width:760px){.hero-layout{grid-template-columns:1fr;gap:36px}.home-page h1.title{font-size:clamp(40px,8vw,60px);max-width:17ch}.home-page .hero-inner{padding:42px 24px 0}.home-page .lede{max-width:58ch}.hero-eyebrow{margin-bottom:18px}.assembly-card{width:100%;max-width:440px;justify-self:center}.assembly-drawing{max-height:440px}.assembly-heading{font-size:9px;padding:15px 20px}.home-page .specbar{margin-top:44px}.feature-grid{grid-template-columns:1fr}.feature-card{display:grid;grid-template-columns:38% minmax(0,1fr)}.feature-art{height:100%;min-height:200px}.feature-tag{font-size:8px;left:9px;top:10px}.feature-copy{padding:24px}.feature-copy h3{font-size:24px}.feature-copy p{margin-bottom:20px}.featured-work{padding-top:36px}.featured-heading{align-items:flex-start}.featured-heading h2{max-width:15ch;line-height:1.3}.home-page #experience .job{padding-left:20px}}
@media(max-width:440px){.home-page .hero-inner{padding-left:20px;padding-right:20px}.home-page .spec{padding:22px 12px}.feature-card{display:flex}.feature-art{height:180px;min-height:0}.feature-copy{padding:22px}.featured-heading>span{font-size:9px}.assembly-heading{font-size:8px}.home-page #toolkit .kit-col{padding:20px}.home-page .hero .actions{align-items:stretch}.home-page .hero .btn{justify-content:center}}
@media(prefers-reduced-motion:reduce){.joint-stack,.joint-bolt,.joint-top-washer,.joint-top-plate,.joint-bottom-plate,.joint-bottom-washer,.joint-nut,.joint-clamp,.assembly-callouts,.assembly-labels,.feature-card,.feature-art img{transition:none}.feature-card:hover,.feature-card:focus-visible{transform:none}}

/* Compact learning groups and an in-flow personal introduction. */
.training-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px;border-top:1px solid var(--line)}
.training-groups article{padding:22px 0;border-bottom:1px solid var(--line);min-width:0}
.training-groups h4{font:600 17px/1.3 "Archivo",sans-serif;margin:0 0 9px}
.training-groups article>p:last-child{font-size:14px;color:var(--muted);line-height:1.6;margin:0;max-width:54ch}
.training-provider{font:10px/1.6 "IBM Plex Mono",monospace;color:var(--cyan);margin:0 0 10px}
.off-intro{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.home-page .off .doodle{position:static;display:block;transform:none;font-size:25px;line-height:1.2}
.off-intro h3{font-size:28px;line-height:1.2}
.home-page .off p{max-width:76ch}
.home-page .off .off-background{font-size:14px;color:var(--muted);padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:620px){.training-groups{grid-template-columns:1fr}.off-intro h3{font-size:24px}.home-page .off .doodle{font-size:23px}}
