@font-face{font-family:Poppins;src:url('../fonts/poppins-regular-webfont.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#0b100e;--surface:#101813;--raised:#162019;--text:#edf2ed;--muted:#a6b1a8;--accent:#bdff83;--line:#2b382f;--trace:#405c48;--radius:8px;--max:1240px;--sans:Poppins,Arial,sans-serif;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.75;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}p,h1,h2,h3,h4,figure{margin:0}p{color:var(--muted)}h1,h2,h3,h4{font-family:Arial,Helvetica,sans-serif;letter-spacing:-.045em;line-height:1.1;font-weight:500}h1{font-size:clamp(3rem,6.7vw,6rem)}h2{font-size:clamp(2.4rem,4.4vw,4rem)}h3{font-size:1.8rem}h4{font-size:1.2rem;letter-spacing:-.02em}img,svg{max-width:100%;display:block}svg{overflow:visible}::selection{color:var(--bg);background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.eyebrow,.section-index,.overline,.tag,.meta-label{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-size:.8125rem;line-height:1.6}.eyebrow{color:var(--accent);margin-bottom:26px}.section-index{color:var(--accent);white-space:nowrap}.overline,.meta-label{color:var(--muted)}.accent{color:var(--accent)}.text-link{font-size:.9375rem;display:inline-flex;gap:12px;align-items:center;min-height:44px;border-bottom:1px solid var(--line)}.text-link:hover{color:var(--accent);border-color:var(--accent)}.arrow{font-family:Arial,sans-serif;font-size:1.25em}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:13px 23px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--bg);font-size:.9375rem;line-height:1.5;transition:background .2s,transform .2s}.button:hover{background:#d0ffa8;transform:translateY(-2px)}.button-quiet{background:transparent;color:var(--text);border-color:var(--line)}.button-quiet:hover{background:var(--raised)}.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.skip-link{position:fixed;top:8px;left:16px;z-index:100;padding:12px 18px;background:var(--accent);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:20;background:rgba(11,16,14,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;gap:12px;align-items:center;font-family:Arial,sans-serif;font-size:.9375rem;line-height:1.3;letter-spacing:.01em}.monogram{width:38px;height:38px;border:1px solid var(--accent);display:grid;place-items:center;font-family:var(--mono);font-size:1rem;color:var(--accent)}.site-nav{display:flex;align-items:center;gap:30px}.site-nav a{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.site-nav a:hover,.site-nav a[aria-current]{color:var(--accent)}.site-nav .nav-outbound{color:var(--text);margin-left:14px;border-bottom:1px solid var(--line)}.menu-toggle{display:none;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:4px;min-height:44px;padding:8px 13px;font-size:.875rem}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:24px;align-items:center;padding-block:96px 76px;position:relative}.hero-copy{position:relative;z-index:1}.hero h1{font-size:clamp(3.5rem,6.4vw,5.75rem);max-width:720px;line-height:1.035;letter-spacing:-.055em}.hero-description{max-width:490px;font-size:1.0625rem;margin:28px 0 32px}.hero-description strong{color:var(--text);font-weight:400}.hero-footnote{font-family:var(--mono);font-size:.8125rem;color:var(--muted);margin-top:28px}.hero-figure{align-self:stretch;display:flex;flex-direction:column;justify-content:center;position:relative;margin-right:-22px;background:radial-gradient(ellipse at center,rgba(84,126,62,.09),transparent 66%)}.hero-figure svg{width:100%;height:auto}.hero-figure figcaption{display:flex;justify-content:space-between;gap:15px;font-family:var(--mono);font-size:.75rem;color:var(--muted);letter-spacing:.06em;padding:0 35px;margin-top:-10px}.schematic .wire{stroke:var(--trace);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.schematic .active-wire{stroke:var(--accent);stroke-width:1.5;fill:none}.schematic .module{fill:var(--surface);stroke:var(--trace);stroke-width:1}.schematic .core{fill:#18261a;stroke:var(--accent);stroke-width:1.5}.schematic text{font-family:var(--mono);fill:var(--muted);font-size:13px;letter-spacing:.05em}.schematic .core-title{font-family:Arial,sans-serif;font-size:28px;letter-spacing:.02em;fill:var(--text)}.schematic .small{font-size:11px}.schematic .pin{stroke:var(--trace);fill:var(--bg);stroke-width:1.5}.schematic .live-pin{stroke:var(--accent);fill:var(--bg);stroke-width:1.5}.schematic .signal{stroke:var(--accent);stroke-width:2;fill:none;stroke-dasharray:5 400;animation:signal 1.6s linear 3}.hero-facts{display:grid;grid-template-columns:1fr 1.15fr 1fr;padding-block:27px;border-block:1px solid var(--line)}.fact{padding:0 30px;border-right:1px solid var(--line)}.fact:first-child{padding-left:0}.fact:last-child{border:0}.fact p{font-size:.9375rem;margin-top:6px;color:var(--text)}.fact .overline{font-size:.75rem}.section{padding-block:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:42px}.section-heading .section-index{display:block;margin-bottom:15px}.section-heading p{max-width:420px;font-size:.9375rem}.section-heading .text-link{white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.project-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#6a835f;transform:translateY(-4px)}.project-visual{position:relative;aspect-ratio:2.12;padding:20px 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;background-image:radial-gradient(#294331 1px,transparent 1px);background-size:24px 24px;background-color:#111b14}.project-visual svg{width:100%;height:100%;overflow:visible}.project-card:nth-child(2) .project-visual{background-color:#141b1d;background-image:radial-gradient(#2b3d43 1px,transparent 1px)}.project-card:nth-child(3) .project-visual{background-color:#191b12;background-image:radial-gradient(#40442b 1px,transparent 1px)}.project-copy{padding:29px 30px 26px;flex:1;display:flex;flex-direction:column}.project-copy .overline{font-size:.75rem;color:var(--accent);margin-bottom:12px}.project-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.project-title h3{font-size:1.65rem;letter-spacing:-.035em}.project-title .arrow{color:var(--accent);font-size:1.5rem}.project-copy p{font-size:.9375rem;margin-block:16px 25px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.tag{font-size:.75rem;letter-spacing:0;text-transform:none;padding:4px 9px;border:1px solid var(--line);color:var(--muted);border-radius:3px}.project-svg text{font-family:var(--mono);font-size:12px;fill:#b9c7bc}.project-svg .svg-title{font-size:18px;fill:var(--text)}.project-svg .svg-small{font-size:10px;fill:var(--muted)}.project-svg .svg-accent{fill:var(--accent)}.project-svg rect{fill:#131c16;stroke:#53654f}.project-svg path,.project-svg line{fill:none;stroke:#637e59;stroke-width:1.5}.project-svg circle{fill:var(--bg);stroke:var(--accent)}.section-surface{border-block:1px solid var(--line);background:var(--surface)}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px}.about-layout h2{margin:18px 0 25px}.about-layout .lead{color:var(--text);font-size:1.1875rem;line-height:1.75}.about-layout p+p{margin-top:20px}.about-layout .actions{margin-top:26px}.focus-list{display:grid;align-content:start;gap:32px;padding-top:6px}.focus-item{display:grid;grid-template-columns:38px 1fr;gap:18px;padding-bottom:27px;border-bottom:1px solid var(--line)}.focus-item:last-child{border:0;padding:0}.focus-icon{width:35px;height:35px;color:var(--accent)}.focus-item h3{font-size:1.4rem;line-height:1.3;margin-bottom:9px}.focus-item p{font-size:.9375rem}.focus-item .stack{font-family:var(--mono);font-size:.8125rem;color:var(--accent);margin-top:14px}.experience-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px}.column-heading{font-family:var(--mono);font-size:.875rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-bottom:32px}.timeline-item{position:relative;padding:0 0 32px 24px;border-left:1px solid var(--line)}.timeline-item:before{content:'';position:absolute;width:7px;height:7px;top:8px;left:-4px;border:1px solid var(--accent);background:var(--bg)}.timeline-item:last-child{padding-bottom:0}.timeline-item .overline{font-size:.75rem;color:var(--accent);margin-bottom:10px}.timeline-item h3{font-size:1.375rem;letter-spacing:-.02em;line-height:1.3}.timeline-item h4{font-family:var(--sans);font-weight:400;letter-spacing:0;font-size:.875rem;color:var(--text);margin-block:7px 12px;line-height:1.5}.timeline-item p{font-size:.9375rem}.recognition{border-top:1px solid var(--line);padding-block:55px}.recognition-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.recognition-grid h3{font-size:1.125rem;line-height:1.35;margin:12px 0 8px;letter-spacing:-.015em}.recognition-grid p{font-size:.875rem}.recognition-grid .overline{font-size:.75rem;color:var(--accent)}.quotes-section{border-top:1px solid var(--line);padding-block:65px}.quotes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 34px}.quotes-grid blockquote{margin:0;border-left:1px solid var(--line);padding-left:20px;font-size:.875rem}.quotes-grid blockquote p{color:var(--muted)}.quotes-grid cite{display:block;color:var(--text);font-style:normal;margin-top:14px}.contact-section{padding-block:100px;background:var(--surface);border-top:1px solid var(--line)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:95px}.contact-layout h2{margin:17px 0 24px}.contact-layout p{max-width:420px;font-size:.9375rem}.contact-email{font-size:clamp(1rem,2vw,1.35rem);color:var(--accent);margin-block:23px 15px;overflow-wrap:anywhere}.social-links{display:flex;flex-wrap:wrap;gap:22px}.social-links a{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;gap:7px}.social-links a:hover{color:var(--accent)}.contact-meta{font-family:var(--mono);font-size:.8125rem;color:var(--muted);margin-top:30px}.contact-meta a{display:inline-block;min-height:44px}.contact-form{display:grid;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:grid;gap:8px}.field label{font-size:.875rem;color:var(--text)}.field input,.field textarea{width:100%;min-width:0;padding:11px 13px;background:var(--bg);border:1px solid #445048;border-radius:4px;color:var(--text);font-size:1rem;line-height:1.6}.field textarea{resize:vertical;min-height:124px}.field input::placeholder,.field textarea::placeholder{color:#7f8b82}.form-submit{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.form-note{font-size:.8125rem!important}.form-status{font-size:.875rem;min-height:0;color:var(--accent)}.form-status:empty{display:none}.form-status[data-state=error]{color:#ffb1a1}.site-footer{padding:28px 0;border-top:1px solid var(--line)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;font-family:var(--mono);font-size:.75rem;color:var(--muted);flex-wrap:wrap}.footer-inner a{display:inline-flex;min-height:44px;align-items:center}.footer-inner a:hover{color:var(--accent)}.footer-secondary{display:flex;gap:20px}.anchor-alias{display:block;position:relative;scroll-margin-top:100px}.page-intro{padding:75px 0 52px;border-bottom:1px solid var(--line)}.page-intro h1{margin-block:22px;max-width:930px;font-size:clamp(3rem,5.8vw,5rem)}.page-intro .intro-text{font-size:1.125rem;max-width:720px}.breadcrumbs{display:flex;gap:12px;align-items:center;font-family:var(--mono);font-size:.8125rem;color:var(--muted);flex-wrap:wrap}.breadcrumbs a{min-height:44px;display:inline-flex;align-items:center}.breadcrumbs a:hover{color:var(--accent)}.project-collection{padding-block:55px 90px}.collection-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:28px}.collection-heading h2{font-size:1.7rem}.archive-list{border-top:1px solid var(--line)}.archive-link{display:grid;grid-template-columns:55px 1.1fr 1.2fr 30px;align-items:center;gap:24px;padding:28px 16px;border-bottom:1px solid var(--line);transition:background .2s}.archive-link:hover{background:var(--surface)}.archive-link h3{font-size:1.35rem}.archive-link p{font-size:.875rem}.archive-link .arrow{color:var(--accent)}.archive-number{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.detail-hero{padding-block:55px 70px}.detail-hero .project-visual{aspect-ratio:3.4;min-height:220px;border:1px solid var(--line);border-radius:var(--radius);padding:24px 100px}.project-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);margin:32px 0 0;padding-block:24px;gap:30px}.project-facts dt{font-family:var(--mono);color:var(--muted);font-size:.75rem;letter-spacing:.07em;text-transform:uppercase}.project-facts dd{font-size:.9375rem;margin:7px 0 0}.detail-layout{display:grid;grid-template-columns:1.6fr .8fr;gap:90px;padding-bottom:80px}.prose h2{font-size:2rem;margin-block:0 23px}.prose h2:not(:first-child){margin-top:40px}.prose p{margin-bottom:20px}.prose ul{padding-left:20px;color:var(--muted);margin-block:20px 30px}.prose li{padding-left:5px;margin-bottom:12px}.detail-aside{align-self:start;border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:var(--surface)}.detail-aside h2{font-size:1.25rem;margin-bottom:24px}.detail-aside .tags{margin-bottom:25px}.detail-aside .button{width:100%;margin-bottom:12px}.detail-aside p{font-size:.875rem;margin-top:15px}.related-project{padding-block:50px;border-top:1px solid var(--line)}.related-project a{display:flex;align-items:center;justify-content:space-between;gap:30px}.related-project h2{font-size:2.1rem;margin-top:12px}.related-project .arrow{font-size:2rem;color:var(--accent)}.data-table{width:100%;border-collapse:collapse;margin-block:24px;font-size:.9375rem}.data-table caption{text-align:left;color:var(--muted);margin-bottom:12px;font-size:.875rem}.data-table th,.data-table td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--line)}.data-table th{color:var(--text);font-weight:400}.data-table td{color:var(--muted)}.data-table td:last-child{color:var(--accent)}.diagram-key{font-family:var(--mono);font-size:.75rem!important;margin-top:12px;text-align:center}.no-js-note{display:block;font-size:.875rem;color:var(--muted);margin-top:10px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted)}

/* A small chip package around the existing initials. */
.brand .monogram {
  position: relative;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border: 0;
  transition: filter .25s ease;
}
.chip-mark { position: absolute; inset: 0; width: 100%; height: 100%; }
.chip-pins { fill: none; stroke: var(--accent); stroke-width: 1.6; opacity: .7; }
.chip-body { fill: var(--surface); stroke: var(--accent); stroke-width: 1.2; }
.chip-die { fill: #142015; stroke: #415835; stroke-width: .7; }
.chip-notch { fill: var(--accent); }
.chip-initials { position: relative; font-size: .875rem; line-height: 1; letter-spacing: -.05em; }
.brand:is(:hover, :focus-visible) .monogram { filter: drop-shadow(0 0 7px #bdff8338); }

/* Current travels around the border and along the diagram's connections. */
.project-card {
  position: relative;
  isolation: isolate;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.project-card:is(:hover, :focus-visible, .is-energized) {
  border-color: #769d5a;
  box-shadow: 0 0 0 1px #bdff830d, 0 12px 34px #00000029;
}
.project-card::after {
  content: '';
  position: absolute;
  inset: -30% -70%;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(110deg, transparent 43%, #bdff8313 50%, transparent 57%);
  transform: translateX(-28%);
}
.card-current {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
}
.card-current-trace {
  fill: none;
  stroke: var(--accent);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-dasharray: 18 82;
  opacity: 0;
  filter: drop-shadow(0 0 3px #bdff8380);
}
.project-svg .card-signal {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-dasharray: 12 88;
  opacity: 0;
  pointer-events: none;
  filter: drop-shadow(0 0 3px #bdff8366);
}
.project-card:is(:hover, :focus-visible, .is-energized) .card-current-trace {
  animation: edge-current 2.7s linear 1;
}
.project-card:is(:hover, :focus-visible, .is-energized) .card-signal {
  animation: trace-current 1.35s ease-in-out 2;
}
.project-card:is(:hover, :focus-visible, .is-energized)::after {
  animation: card-sheen 2.7s ease-in-out 1;
}
@keyframes edge-current {
  0% { stroke-dashoffset: 0; opacity: 0; }
  10% { opacity: 1; }
  85% { opacity: 1; }
  100% { stroke-dashoffset: -100; opacity: 0; }
}
@keyframes trace-current {
  0% { stroke-dashoffset: 0; opacity: 0; }
  15% { opacity: 1; }
  75% { opacity: 1; }
  100% { stroke-dashoffset: -100; opacity: 0; }
}
@keyframes card-sheen {
  0% { transform: translateX(-28%); opacity: 0; }
  20%, 75% { opacity: 1; }
  100% { transform: translateX(28%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .card-current, .card-signal, .project-card::after { display: none; }
  .project-card:is(:hover, :focus-visible, .is-energized) { transform: none; }
}
@media (forced-colors: active) {
  .chip-pins, .chip-body, .chip-die { stroke: CanvasText; }
  .card-current, .card-signal, .project-card::after { display: none; }
}
@media print {
  .card-current, .card-signal, .project-card::after { display: none; }
}

@keyframes signal{to{stroke-dashoffset:-405}}
@media(min-width:1500px){.hero{padding-block:115px 95px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.hero{gap:5px;padding-block:75px 60px}.hero h1{font-size:clamp(3.25rem,6.4vw,4.5rem)}.hero-figure{margin-right:-15px}.hero-description{font-size:1rem}.site-nav{gap:22px}.about-layout,.experience-layout,.contact-layout{gap:48px}.detail-layout{gap:50px}.project-copy{padding:25px}.hero-figure figcaption{padding-inline:15px}}
@media(max-width:800px){.container{width:calc(100% - 40px)}.header-inner{min-height:74px;flex-wrap:wrap;gap:0}.brand{font-size:.875rem}.menu-toggle{display:inline-block}.site-nav{width:100%;padding:10px 0 18px;gap:0;justify-content:space-between;flex-wrap:wrap}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.site-nav a{padding:8px 10px}.site-nav .nav-outbound{margin-left:0;border:0}.hero{grid-template-columns:1fr;padding-block:62px 38px;gap:30px}.hero h1{font-size:clamp(3.25rem,9.5vw,5rem);max-width:660px}.hero-description{max-width:540px}.hero-figure{width:min(520px,100%);margin:0;justify-self:center}.hero-figure svg{margin-top:-24px}.hero-figure figcaption{margin-top:-25px}.hero-facts{grid-template-columns:1fr 1fr;gap:24px 0}.fact{padding:0 20px}.fact:nth-child(2){border:0}.fact:last-child{padding:24px 0 0;border-top:1px solid var(--line);grid-column:1/-1}.section{padding-block:70px}.section-heading{gap:22px;align-items:start}.section-heading p{max-width:310px}.project-grid{gap:20px}.project-visual{padding:14px 15px;aspect-ratio:1.8}.project-title h3{font-size:1.45rem}.project-copy{padding:22px}.about-layout,.experience-layout,.contact-layout{grid-template-columns:1fr;gap:45px}.about-layout h2{max-width:600px}.focus-list{gap:25px}.focus-item:last-child{padding-bottom:0}.experience-layout{gap:48px}.recognition-grid{gap:24px}.recognition-grid h3{font-size:1rem}.quotes-grid{grid-template-columns:1fr 1fr;gap:30px}.contact-section{padding-block:70px}.contact-layout p{max-width:580px}.contact-meta{margin-top:18px}.detail-layout{grid-template-columns:1fr;gap:32px}.detail-aside{max-width:600px}.detail-hero .project-visual{padding:24px;aspect-ratio:2.6}.archive-link{grid-template-columns:34px 1fr 24px;gap:15px;padding-inline:0}.archive-link p{grid-column:2;grid-row:2}.archive-link .arrow{grid-column:3;grid-row:1/3}.page-intro{padding-top:45px}.project-facts{gap:20px}}
@media(max-width:540px){html{scroll-padding-top:88px}.container{width:calc(100% - 36px)}.brand-name{max-width:105px}.hero{padding-top:45px;gap:22px}.eyebrow{font-size:.75rem;letter-spacing:.05em;margin-bottom:21px}.hero h1{font-size:clamp(2.6rem,11.5vw,4rem);letter-spacing:-.045em}.hero-description{margin-top:24px}.hero .actions{gap:10px}.button{padding-inline:18px;gap:13px}.hero-footnote{font-size:.75rem}.hero-figure{margin-top:15px}.hero-figure figcaption{font-size:.6875rem;gap:8px;margin-top:-16px}.hero-facts{display:block;padding-block:8px}.fact,.fact:first-child,.fact:last-child{padding:18px 0;border:0;border-bottom:1px solid var(--line)}.fact:last-child{border:0}.fact p{font-size:.875rem}.section-heading{flex-direction:column;gap:18px;margin-bottom:28px}.section-heading p{max-width:none}.project-grid{grid-template-columns:1fr;gap:24px}.project-visual{aspect-ratio:2.05;padding:18px}.project-title h3{font-size:1.625rem}.project-copy p{margin-bottom:22px}.section{padding-block:58px}.about-layout .lead{font-size:1.0625rem}.recognition-grid{grid-template-columns:1fr;gap:27px}.recognition-grid article+article{border-top:1px solid var(--line);padding-top:25px}.recognition-grid h3{font-size:1.125rem}.quotes-grid{grid-template-columns:1fr}.contact-section{padding-block:58px}.form-row{grid-template-columns:1fr}.form-submit{align-items:flex-start;flex-direction:column;gap:12px}.form-submit .button{width:100%}.footer-inner{gap:8px}.footer-secondary{gap:18px;flex-wrap:wrap}.page-intro h1{font-size:2.9rem}.page-intro .intro-text{font-size:1rem}.collection-heading{align-items:start;flex-direction:column;gap:8px}.archive-link h3{font-size:1.25rem}.project-facts{grid-template-columns:1fr;padding:22px 0;gap:22px}.project-facts dd{margin-top:4px}.detail-hero .project-visual{padding:16px;min-height:180px;aspect-ratio:2}.prose h2{font-size:1.8rem}.detail-aside{padding:22px}.related-project h2{font-size:1.65rem}.data-table{font-size:.8125rem}.data-table td,.data-table th{padding:12px 7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.project-card:hover{transform:none}}
@media(max-width:540px){.hero-figure figcaption{font-size:.75rem;flex-direction:column;gap:2px}.hero-figure .schematic .small{display:none}.hero-figure .schematic text{font-size:17px;letter-spacing:0}.hero-figure .schematic .core-title{font-size:28px}.hero-figure .schematic text:not(.core-title){font-family:Arial,sans-serif}.project-svg .svg-small{display:none}.project-svg text{font-size:15px;letter-spacing:0}.project-svg .svg-title{font-size:20px}.project-visual .project-svg{font-family:Arial,sans-serif}}
@media(forced-colors:active){.schematic .wire,.schematic .active-wire,.schematic .module,.schematic .core,.project-svg path,.project-svg rect{stroke:CanvasText}.schematic text,.project-svg text{fill:CanvasText}}
@media print{:root{--bg:#fff;--surface:#fff;--text:#111;--muted:#333;--accent:#245226;--line:#aaa}body{font-size:11pt}.container{width:100%}.site-header{position:static}.site-nav,.menu-toggle,.hero-figure,.project-visual,.contact-form,.site-footer,.quotes-section{display:none!important}.hero,.about-layout,.experience-layout,.contact-layout,.detail-layout{display:block}.hero{padding:35px 0}.hero h1{font-size:36pt}.section,.contact-section{padding-block:25px}.project-card,.timeline-item{break-inside:avoid}.project-grid{gap:15px}.button{border-color:#777}.project-copy{padding:16px}.section-heading{margin-bottom:22px}.recognition{padding-block:25px}h2{font-size:24pt}}
/* Engineering case studies reuse the portfolio's circuit palette and motion. */
.work-intro{max-width:720px;margin:-12px 0 32px;color:var(--muted);line-height:1.8}
.card-evidence{display:flex;align-items:center;gap:8px;margin:24px 0 0!important;padding-top:17px;border-top:1px solid var(--line);font-family:var(--mono);font-size:.72rem!important;color:var(--muted)}
.card-evidence strong{color:var(--accent);font-weight:400}
.evidence-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;flex:none;box-shadow:0 0 9px #bdff8340}
.engineering-band{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center;margin-top:30px;padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.engineering-band h3{font-size:1.5rem;margin:9px 0 10px}.engineering-band p{max-width:560px;margin:0;font-size:.875rem;color:var(--muted);line-height:1.8}
.engineering-band-links{display:flex;flex-direction:column;align-items:flex-start;justify-self:end;gap:17px}
.code-sample{overflow-x:auto;padding:22px 24px;margin:20px 0;background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius);font-family:var(--mono);font-size:.875rem;line-height:1.9;color:var(--accent)}
.notebook-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);padding:30px 0;gap:32px}
.notebook-stats div{display:flex;flex-direction:column;gap:9px}.notebook-stats strong{font:400 clamp(2rem,5vw,3.6rem)/1.2 var(--mono);color:var(--accent)}.notebook-stats span{font-size:.8125rem;color:var(--muted)}
.notebook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.notebook-card{padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.notebook-card h3{font-size:1.65rem;margin:14px 0}.notebook-card p{font-size:.9rem;color:var(--muted);line-height:1.8}
.notebook-links{list-style:none;padding:0;margin:24px 0;display:grid;gap:14px}.notebook-links .text-link{font-size:.875rem}
.notebook-command{display:block;padding:14px 0 0;margin-top:24px;border-top:1px solid var(--line);font-family:var(--mono);color:var(--accent);font-size:.82rem}
.notebook-resources{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;padding:35px 0 95px}.notebook-resources h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:14px 0 22px}.notebook-resources p{font-size:.9rem;color:var(--muted);line-height:1.9}
@media(max-width:760px){.engineering-band,.notebook-grid,.notebook-resources{grid-template-columns:1fr;gap:26px}.engineering-band-links{justify-self:start}.engineering-band,.notebook-card{padding:24px}.notebook-stats{gap:18px}.notebook-stats span{font-size:.72rem}.card-evidence{flex-wrap:wrap}.notebook-resources{padding-bottom:60px}}
