@font-face{font-family:Bitter;src:url('/assets/bitter-latin.woff') format('woff');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Karla;src:url('/assets/karla-latin.woff') format('woff');font-style:normal;font-weight:200 800;font-display:swap}

:root{
 --font-reading:Karla,'Trebuchet MS',sans-serif;
 --font-heading:Bitter,Georgia,serif;
 --ink:#25312f;--muted:#626c67;--blue:#122b35;--blue-hover:#244e5b;
 --paper:#fbfaf6;--soft:#f0f1eb;--line:#d6ddd6;
 --surface:#fffefa;--surface-raised:#e7ece5;--surface-inset:#e8efea;
 --accent-wash:#e5eeea;--accent-mid:#4a6d6e;--on-accent:#ffffff;
 --header-surface:rgba(251,250,246,.91);--diagram-text:#4d696c;
 color-scheme:light dark;
}
body{font-family:var(--font-reading);font-size:17px;line-height:1.6}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:500;letter-spacing:-.035em;line-height:1.12;text-wrap:balance}
.hero h1{font-size:clamp(54px,6.3vw,92px);letter-spacing:-.045em;line-height:1.08}
.hero h1 span{letter-spacing:-.035em}
.case-header h1{font-size:clamp(45px,5.1vw,72px);line-height:1.12}
.page-intro h1{font-size:clamp(48px,6vw,80px);line-height:1.12}
.featured-card.large h3{font-size:clamp(36px,4vw,48px);line-height:1.14;letter-spacing:-.03em}
.featured-card.large p:not(.eyebrow){font-size:17px;line-height:1.65}
.featured-copy h3{font-size:32px;line-height:1.15}
.brand,.eyebrow,.brief-label,.meta,.case-role,.outcome,.skill,.nav-links{font-family:var(--font-reading)}
.brand{font-size:16px;letter-spacing:-.025em;font-weight:650}
.brand-mark{font-family:var(--font-heading);background:var(--blue);color:var(--on-accent)}
.brand-dot{color:inherit}
.outcome strong{font-family:var(--font-heading);font-size:27px;letter-spacing:-.025em}
.stage-caption,.stage-mini figcaption,.gallery-item figcaption,.case-media figcaption{font-family:var(--font-reading)}
.hero{background:linear-gradient(180deg,var(--paper),var(--soft))}
.site-header,.case-nav{background:var(--header-surface);border-color:var(--line)}
.nav-links a{color:var(--muted)}
.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--ink)}
.nav-links .nav-contact,.button.secondary,.skill{background:var(--surface-raised);color:var(--ink)}
.button{color:var(--on-accent)}
.button.secondary:hover{background:var(--line)}
.button.outline{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.hero-intro,.case-overview p,.about-layout .lead{color:var(--muted)}
.stage-rings,.stage-rings:before,.stage-rings:after,.stage-note{border-color:var(--line)}
.stage-mini,.skip{background:var(--surface)}
.stage-caption{background:var(--header-surface);color:var(--ink)}
.featured-copy .eyebrow{color:var(--muted)}
.featured-card.large .eyebrow,.featured-card.large p{color:#c5d3d0}
.featured-media .media-label{background:var(--surface);color:var(--ink)}
.featured-media,.featured-card.large .featured-media,.featured-card.feature-chamber.large .featured-media,.feature-arm .featured-media{background:var(--surface-inset)}
.process-step,.footer-bottom,.design-section,.experience-item{border-color:var(--line)}
.contact{background:var(--soft)}
.filter-button{background:var(--soft);color:var(--muted)}
.filter-button:hover{background:var(--surface-raised)}
.filter-button[aria-pressed=true],.filter-button[aria-pressed=true]:hover{background:var(--blue);color:var(--on-accent)}
.case-media figcaption{background:var(--header-surface);color:var(--ink)}
.case-media.robot-arm img,.case-media.cryogenic-chamber img{background:var(--surface-inset)}
.compare-media,.gallery-button,.lightbox-photo{background:var(--surface-inset)}
.gallery-button .expand,.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink)}
.segmented{background:var(--surface-raised)}
.diagram{background:var(--surface);border-color:var(--line)}
.diagram figcaption,.dialog-toolbar{border-color:var(--line)}
.diagram>button{background:#fff!important}
.dialog{background:var(--surface);color:var(--ink)}
.close-dialog,.lightbox-controls button{background:var(--surface-raised);color:var(--ink)}
.inside-section,.torque-section{background:var(--soft)}
.photo-explorer,.build-journey,.torque-explorer{background:var(--surface);border-color:var(--line)}
.explorer-tabs,.journey-tabs,.point-choices,.point-choice,.explorer-note,.torque-result{border-color:var(--line)}
.explorer-tabs button[aria-selected=true],.photo-point[aria-pressed=true],.journey-tabs button[aria-selected=true]>span{color:var(--on-accent)}
.photo-point{background:var(--surface);color:var(--blue)}
.journey-tabs button>span{border-color:var(--line)}
.journey-art,.torque-visual{background:var(--surface-inset)}
.journey-lesson,.engineering-link{border-color:var(--line)}
.engineering-link:hover{background:var(--accent-wash);border-color:var(--accent-mid)}
.clips-section{background:var(--paper)}
.milestone{background:#122b35;color:#fff}
.torque-visual>p,.example-badge{color:var(--diagram-text)}
.example-badge{border-color:var(--line)}
.torque-meter{background:var(--surface-raised)}
.torque-result>output{font-family:var(--font-heading);font-size:52px;letter-spacing:-.04em}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-color:var(--blue)}
::selection{background:var(--blue);color:var(--on-accent)}

.theme-picker{position:relative;flex:none}
.theme-picker summary{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:100px;cursor:pointer;list-style:none;color:var(--ink);font-size:12px}
.theme-picker summary::-webkit-details-marker{display:none}
.theme-picker summary svg{width:17px;height:17px;flex:none}
.theme-picker summary:hover,.theme-picker[open] summary{background:var(--surface-raised)}
.theme-options{position:absolute;top:calc(100% + 13px);right:0;width:208px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 14px 40px #0002;z-index:60}
.theme-options button{position:relative;display:block;width:100%;padding:10px 35px 10px 12px;border-radius:9px;background:transparent;text-align:left;color:var(--ink);font-size:14px;font-weight:600;line-height:1.3}
.theme-options button span{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.theme-options button:hover,.theme-options button[aria-pressed=true]{background:var(--accent-wash)}
.theme-options button[aria-pressed=true]:after{content:'✓';position:absolute;right:14px;top:15px;color:var(--blue);font-size:16px}
.theme-ready body,.theme-ready .site-header,.theme-ready .case-nav,.theme-ready .theme-options,.theme-ready .about-sidebar,.theme-ready .contact{transition:background-color .24s ease,color .24s ease,border-color .24s ease}
@media(min-width:521px) and (max-width:900px){.nav-links{gap:16px}.theme-picker summary{padding-inline:8px}.theme-picker summary>span{display:none}}
@media(max-width:520px){.theme-picker{margin-top:12px}.theme-picker summary{justify-content:flex-start;padding:11px 12px}.theme-options{position:static;width:100%;margin-top:8px;box-shadow:none}.nav-links{background:var(--header-surface)!important}}

.portrait-profile{margin:0 0 32px;padding:0 0 30px;border-bottom:1px solid var(--line)}
.portrait-profile img{width:200px;height:200px;max-width:100%;object-fit:cover;border-radius:18px;border:1px solid var(--line)}
.portrait-profile figcaption{margin-top:19px}
.portrait-profile strong{display:block;font-family:var(--font-heading);font-size:23px;font-weight:500;letter-spacing:-.025em}
.portrait-profile span{display:block;font-size:12px;color:var(--muted);margin-top:6px}
.about-sidebar h3{font-size:23px}
.about-sidebar .skills{gap:7px}
.about-sidebar .skill{font-size:11px;padding:8px 11px}

@media(prefers-color-scheme:dark){
:root:not([data-theme="light"]){
  --ink:#e5ece5;--muted:#adb9b1;--blue:#a0c9c3;--blue-hover:#b7dcd5;
  --paper:#111a19;--soft:#182321;--line:#34433d;
  --surface:#1c2926;--surface-raised:#283a34;--surface-inset:#21342e;
  --accent-wash:#243c35;--accent-mid:#a3c6bc;--on-accent:#112824;
  --header-surface:rgba(17,26,25,.92);--diagram-text:#bed3c9;
 color-scheme:dark}
:root:not([data-theme="light"]) .text-art{background:linear-gradient(120deg,#223a34,#1c2926)}
:root:not([data-theme="light"]) .text-art .art-number{color:#779b91}
:root:not([data-theme="light"]) .nav-links{background:transparent}
:root:not([data-theme="light"]) .featured-card:not(.large){border:1px solid var(--line)}
:root:not([data-theme="light"]) .featured-card.feature-chamber.large{background:#122b35;border:1px solid #36504c}
:root:not([data-theme="light"]) .featured-card.large{background:#152522}
:root:not([data-theme="light"]) .featured-card.large h3{color:#f0f4ec}
:root:not([data-theme="light"]) .featured-card.large .text-link{color:#b1d9d0}
:root:not([data-theme="light"]) .journey-art svg text,:root:not([data-theme="light"]) .torque-visual svg text{fill:var(--diagram-text)}
:root:not([data-theme="light"]) .journey-art svg [fill="#d9e9e7"],:root:not([data-theme="light"]) .journey-art svg [fill="#dce5e5"]{fill:#2c4840}
:root:not([data-theme="light"]) .journey-art svg [fill="#c4d5ce"]{fill:#486b5e}
:root:not([data-theme="light"]) .journey-art svg [fill="#577b80"]{fill:#91b5a9}
:root:not([data-theme="light"]) .journey-art svg [stroke="#577b80"],:root:not([data-theme="light"]) .torque-visual svg [stroke="#577b80"]{stroke:#91b5a9}
:root:not([data-theme="light"]) .journey-art svg [stroke="#94b8ba"]{stroke:#658d80}
:root:not([data-theme="light"]) .torque-visual svg [stroke="#c8d6d7"]{stroke:#506c60}
:root:not([data-theme="light"]) .torque-visual svg [stroke="#a2b9bb"]{stroke:#638b7b}
:root:not([data-theme="light"]) .torque-visual svg [stroke="#c3d8d7"]{stroke:#a5c5b6}
:root:not([data-theme="light"]) .torque-visual svg [fill="#122b35"],:root:not([data-theme="light"]) .journey-art svg [fill="#122b35"]{fill:#476f62}
:root:not([data-theme="light"]) .torque-visual svg [fill="#eef5f4"]{fill:#d9e8dd}
:root:not([data-theme="light"]) .diagram{border-color:#46594f}
:root:not([data-theme="light"]) .code-panel{border:1px solid var(--line);background:#101715}
:root:not([data-theme="light"]) .code-explanation p{color:#b3c0b8}
:root:not([data-theme="light"]) .code-tabs button{color:#a5b4ab}
:root:not([data-theme="light"]) .code-tabs button[aria-selected=true],:root:not([data-theme="light"]) .copy-code{background:#293c33}
:root:not([data-theme="light"]) .toast{background:#d5e5d9;color:#14251c}
:root:not([data-theme="light"]) .journey-photo img{border:1px solid #46594f}
}
:root[data-theme="dark"]{
  --ink:#e5ece5;--muted:#adb9b1;--blue:#a0c9c3;--blue-hover:#b7dcd5;
  --paper:#111a19;--soft:#182321;--line:#34433d;
  --surface:#1c2926;--surface-raised:#283a34;--surface-inset:#21342e;
  --accent-wash:#243c35;--accent-mid:#a3c6bc;--on-accent:#112824;
  --header-surface:rgba(17,26,25,.92);--diagram-text:#bed3c9;
 color-scheme:dark}
:root[data-theme="dark"] .text-art{background:linear-gradient(120deg,#223a34,#1c2926)}
:root[data-theme="dark"] .text-art .art-number{color:#779b91}
:root[data-theme="dark"] .nav-links{background:transparent}
:root[data-theme="dark"] .featured-card:not(.large){border:1px solid var(--line)}
:root[data-theme="dark"] .featured-card.feature-chamber.large{background:#122b35;border:1px solid #36504c}
:root[data-theme="dark"] .featured-card.large{background:#152522}
:root[data-theme="dark"] .featured-card.large h3{color:#f0f4ec}
:root[data-theme="dark"] .featured-card.large .text-link{color:#b1d9d0}
:root[data-theme="dark"] .journey-art svg text,:root[data-theme="dark"] .torque-visual svg text{fill:var(--diagram-text)}
:root[data-theme="dark"] .journey-art svg [fill="#d9e9e7"],:root[data-theme="dark"] .journey-art svg [fill="#dce5e5"]{fill:#2c4840}
:root[data-theme="dark"] .journey-art svg [fill="#c4d5ce"]{fill:#486b5e}
:root[data-theme="dark"] .journey-art svg [fill="#577b80"]{fill:#91b5a9}
:root[data-theme="dark"] .journey-art svg [stroke="#577b80"],:root[data-theme="dark"] .torque-visual svg [stroke="#577b80"]{stroke:#91b5a9}
:root[data-theme="dark"] .journey-art svg [stroke="#94b8ba"]{stroke:#658d80}
:root[data-theme="dark"] .torque-visual svg [stroke="#c8d6d7"]{stroke:#506c60}
:root[data-theme="dark"] .torque-visual svg [stroke="#a2b9bb"]{stroke:#638b7b}
:root[data-theme="dark"] .torque-visual svg [stroke="#c3d8d7"]{stroke:#a5c5b6}
:root[data-theme="dark"] .torque-visual svg [fill="#122b35"],:root[data-theme="dark"] .journey-art svg [fill="#122b35"]{fill:#476f62}
:root[data-theme="dark"] .torque-visual svg [fill="#eef5f4"]{fill:#d9e8dd}
:root[data-theme="dark"] .diagram{border-color:#46594f}
:root[data-theme="dark"] .code-panel{border:1px solid var(--line);background:#101715}
:root[data-theme="dark"] .code-explanation p{color:#b3c0b8}
:root[data-theme="dark"] .code-tabs button{color:#a5b4ab}
:root[data-theme="dark"] .code-tabs button[aria-selected=true],:root[data-theme="dark"] .copy-code{background:#293c33}
:root[data-theme="dark"] .toast{background:#d5e5d9;color:#14251c}
:root[data-theme="dark"] .journey-photo img{border:1px solid #46594f}
:root[data-theme="light"]{color-scheme:light}

@media(max-width:1100px){.featured-card.large .featured-copy{padding:34px}.featured-card.large h3{font-size:40px}.case-header h1{font-size:clamp(43px,5.1vw,64px)}}
@media(max-width:760px){
 .hero h1{font-size:clamp(48px,10.5vw,72px)}
 .case-header h1{font-size:clamp(41px,7.5vw,57px)}
 .page-intro h1{font-size:clamp(42px,8vw,60px)}
 .featured-card.large h3{font-size:39px}.featured-card.large .featured-copy{padding:32px 28px}
 .portrait-profile{display:flex;align-items:center;gap:22px;padding-bottom:27px;margin-bottom:27px}
 .portrait-profile img{width:150px;height:150px;flex-shrink:0}
 .portrait-profile strong{font-size:21px}
 .about-sidebar{padding:30px}
}
@media(max-width:520px){
 .hero h1{font-size:clamp(40px,10.5vw,55px);letter-spacing:-.04em}
 .page-intro h1{font-size:clamp(37px,8.8vw,46px)}
 .case-header h1{font-size:clamp(37px,8.8vw,46px)}
 .featured-card.large h3{font-size:36px}
 .portrait-profile{flex-direction:column;align-items:flex-start;gap:0}
 .portrait-profile img{width:180px;height:180px}
 .portrait-profile figcaption{margin-top:18px}
 .torque-result>output{font-size:46px}
 .nav-links{background:var(--header-surface)}
}

/* Keep navigation comfortable on narrower tablets as well as phones. */
@media(min-width:521px) and (max-width:700px){
 .menu-button{display:block}
 .nav-links{display:none;position:absolute;left:0;right:0;top:63px;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 20px;background:var(--header-surface)!important;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #00000006}
 .nav-links.open{display:flex}
 .nav-links a{padding:13px 8px;font-size:14px}
 .nav-links .nav-contact{margin-top:7px;text-align:center}
 .theme-picker{margin-top:12px}
 .theme-picker summary{justify-content:flex-start;padding:11px 12px}
 .theme-picker summary>span{display:inline}
 .theme-options{position:static;width:100%;margin-top:8px;box-shadow:none}
}

/* Readable photo notes without overlay controls or clipped copy. */
.photo-details{margin:0;padding-left:1.25em;color:var(--ink)}
.photo-details li{padding-left:.3em;margin-bottom:25px}
.photo-details li:last-child{margin-bottom:0}
.photo-details strong{display:block;font-family:var(--font-heading);font-size:21px;line-height:1.3;font-weight:500}
.photo-details .detail-label{display:block;color:var(--blue);font-size:11px;margin:5px 0 9px}
.photo-details p{font-size:15px;line-height:1.75;color:var(--muted);margin:0;overflow-wrap:anywhere}
.explorer-scene{align-items:start}
.annotated-photo{align-self:start}
.annotated-photo>img{object-fit:contain}
.gallery-photo{height:300px;display:flex;align-items:center;justify-content:center;background:var(--surface-inset);border-radius:20px;overflow:hidden}
.gallery-photo img{width:100%;height:100%;object-fit:contain}
.gallery-item figcaption ul{margin:0;padding-left:1.2em}
.gallery-item figcaption{font-size:14px;line-height:1.65}
.featured-card.large{height:auto}
.featured-card.large .featured-copy{min-width:0;overflow-wrap:anywhere}
.photo-explorer>.explorer-scene[hidden]{display:none!important}
.photo-explorer>.explorer-scene{grid-area:auto}
.photo-explorer>.explorer-tabs{grid-area:auto}
.dialog{overflow-y:auto}
@media(max-width:1100px){.gallery-photo{height:240px}}
@media(max-width:760px){.gallery-photo{height:260px;border-radius:15px}.photo-details strong{font-size:20px}}
@media(max-width:520px){.gallery-grid,.gallery-grid.two{grid-template-columns:1fr}.gallery-photo{height:auto;min-height:220px;max-height:460px}.gallery-photo img{height:auto;max-height:460px}.photo-details p{font-size:15px}}

/* Content stays visible even if an entrance animation never fires. */
.js .reveal:not(.revealed){opacity:1;transform:none}
.js .reveal.revealed{animation:content-enter .5s var(--ease) both}
@keyframes content-enter{from{opacity:.65;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.js .reveal.revealed{animation:none}}

/* Lead with the chamber; give Omnirobot a secondary feature treatment. */
.stage-photo img{object-fit:contain;background:var(--surface-inset)}
.stage-caption{font-size:11px;line-height:1.45}
.stage-mini figcaption{font-size:9px;letter-spacing:.08em;line-height:1.4}
.featured-card.feature-omni.large{min-height:360px}
.featured-card.feature-omni.large .featured-media{min-height:360px}
.featured-card.feature-omni.large .featured-copy{padding:36px 42px}
.featured-card.feature-omni.large h3{font-size:36px}
.featured-card.feature-omni.large p:not(.eyebrow){font-size:16px}
@media(max-width:760px){.featured-card.feature-omni.large .featured-copy{padding:30px}.featured-card.feature-omni.large .featured-media{height:320px;min-height:320px}.featured-card.feature-omni.large h3{font-size:33px}}

/* Subsystem-by-subsystem attribution, with visible role and team context. */
.contribution-map{margin-top:54px;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:var(--surface)}
.scope-intro{padding:36px 38px;background:var(--soft)}
.scope-intro .eyebrow{font-size:11px;margin-bottom:16px;color:var(--blue)}
.case-overview .scope-intro h2{font-size:clamp(30px,3.4vw,44px);line-height:1.15}
.case-overview .scope-intro>p:last-child{font-size:16px;line-height:1.65;max-width:650px;margin-top:18px}
.scope-explorer{display:grid;grid-template-columns:minmax(245px,.72fr) minmax(0,1.6fr)}
.scope-tabs{padding:22px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.scope-tabs button{display:flex;align-items:center;gap:12px;width:100%;padding:18px 14px;border:1px solid transparent;border-radius:15px;text-align:left;background:transparent;color:var(--muted);transition:background .2s,border-color .2s,color .2s}
.scope-tabs button:hover{background:var(--soft)}
.scope-tabs button[aria-selected=true]{border-color:var(--accent-mid);background:var(--accent-wash);color:var(--ink)}
.scope-number{font-size:11px;font-variant-numeric:tabular-nums;color:var(--blue)}
.scope-tabs strong{font-size:14px;display:block;font-weight:650;line-height:1.4}
.scope-tabs small{font-size:11px;display:block;margin-top:5px;line-height:1.4}
.scope-arrow{margin-left:auto;color:var(--blue)}
.scope-panels{min-width:0}
.scope-panel{padding:32px}
.scope-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:26px;flex-wrap:wrap}
.case-overview .scope-heading .eyebrow{font-size:10px;margin:0 0 10px;color:var(--blue)}
.scope-heading h3{font-size:29px;line-height:1.2}
.scope-role{border:1px solid var(--line);border-radius:100px;background:var(--soft);padding:6px 10px;color:var(--blue);font-size:10px;line-height:1.5}
.scope-details{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(140px,.8fr);gap:25px;align-items:start}
.scope-my-work h4{font:650 12px var(--font-reading);display:flex;align-items:center;gap:8px;letter-spacing:0;margin-bottom:15px}
.scope-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none}
.scope-my-work ul{padding-left:1.15em;margin:0;color:var(--ink)}
.scope-my-work li{font-size:15px;line-height:1.65;margin-bottom:12px;padding-left:3px}
.scope-photo{margin:0;background:var(--surface-inset);border-radius:13px;overflow:hidden}
.scope-photo img{width:100%;height:235px;object-fit:contain}
.scope-photo figcaption{padding:9px 12px;font-size:10px;line-height:1.5;color:var(--muted)}
.scope-team{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}
.case-overview .scope-team .eyebrow{font-size:10px;color:var(--blue);margin-bottom:10px}
.case-overview .scope-team>p:last-child{font-size:14px;line-height:1.65}
.scope-status{margin-top:20px;padding:14px 16px;border-radius:12px;background:var(--soft)}
.scope-status>span{display:block;font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.1em;color:var(--blue);margin-bottom:7px}
.case-overview .scope-status p{font-size:13px;line-height:1.6}
@media(max-width:900px){.scope-explorer{grid-template-columns:1fr}.scope-tabs{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;padding:16px}.scope-panel{padding:28px}.scope-photo img{height:240px}}
@media(max-width:520px){.scope-intro{padding:27px 24px}.case-overview .scope-intro h2{font-size:32px}.scope-tabs{gap:6px;padding:12px}.scope-tabs button{padding:13px 9px;gap:8px;align-items:start}.scope-tabs strong{font-size:12px}.scope-tabs small{font-size:10px}.scope-arrow{display:none}.scope-panel{padding:24px}.scope-heading h3{font-size:26px}.scope-details{grid-template-columns:1fr}.scope-photo img{height:260px}.scope-my-work li{font-size:14px}.scope-number{padding-top:2px}}
