@font-face{font-family:Grace;src:url('/assets/case-studies/serif.woff2')}@font-face{font-family:Grace;src:url('/assets/case-studies/serif-italic.woff2');font-style:italic}@font-face{font-family:Space;src:url('/assets/case-studies/sans.woff2')}
:root{--night:#080d13;--ink:#182b30;--ivory:#eae3d6;--amber:#cbb895;--muted:#a5b1b5;--paper:#e9e5dc;--line:#d4c4a82e;color-scheme:dark;font-family:Space,Arial,sans-serif;background:var(--night);color:var(--ivory);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:72px}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,summary{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #bc934e;outline-offset:6px}button:hover,a:hover{color:var(--amber)}img,video{display:block;width:100%;height:auto}figure,p,h1,h2,h3{margin:0}p{font-size:clamp(15px,1.15vw,18px);line-height:1.8}h2,h3{font-family:Grace,Georgia,serif;font-weight:400}h2{font-size:clamp(52px,5.7vw,91px);line-height:.99;letter-spacing:-.035em}h3{font-size:clamp(31px,2.65vw,43px);line-height:1.06;letter-spacing:-.015em}em{font-weight:400}p+p{margin-top:20px}.eyebrow{font-size:10px;font-weight:400;line-height:1.6;letter-spacing:1.65px}.muted{color:var(--muted)}.muted-dark{color:#536368}.section{padding:72px max(7%,calc((100vw - 1440px)/2)) 100px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:65px;padding-top:18px;border-top:1px solid var(--line)}.section-top a{font-size:12px}.skip{position:fixed;top:12px;left:15px;z-index:100;transform:translateY(-160%);padding:12px;background:var(--paper);color:var(--ink)}.skip:focus{transform:none}.masthead{position:absolute;left:0;top:0;width:100%;height:70px;padding:0 4%;z-index:10;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.4px}.masthead>a span{opacity:.5;margin-left:14px}.masthead>div{display:flex;gap:22px}.masthead button{font-size:10px;letter-spacing:.4px;padding:10px 0}.masthead #tour{color:var(--amber)}
.hero{background:var(--night);padding-bottom:22px}.hero-stage{position:relative;width:100%;aspect-ratio:16/9;container-type:inline-size;overflow:hidden}.hero-art{position:absolute;left:0;top:4.6875cqw;width:100%;height:51.5625cqw;overflow:hidden;mask-image:radial-gradient(ellipse at 54% 49%,black 39%,transparent 78%)}.hero-art>img{width:100%;height:100%;object-fit:cover;transform-origin:64% 48%;transform:scale(1.04);filter:brightness(.85) saturate(.8)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#080d1396,transparent 70%),linear-gradient(0deg,#080d13,transparent 65%)}.hero-eyebrow{position:absolute;top:8.4375cqw;left:6.77cqw;color:var(--amber);font-size:clamp(9px,.82cqw,16px)}h1{position:absolute;left:6.51cqw;top:30.57cqw;font-family:Grace,Georgia,serif;font-weight:400;font-size:7.448cqw;line-height:1.015;letter-spacing:-.245cqw}h1 .title-line{display:block;white-space:pre;padding-bottom:.573cqw}h1 .glyph{display:inline-block}.hero-deck{position:absolute;left:6.98cqw;top:50.1cqw;color:#b4b9b9;font-size:1.354cqw}.hero-foot{display:flex;align-items:center;justify-content:space-between;padding:22px 7%;font-size:10px;letter-spacing:1.5px;color:#a1acae;gap:20px}.hero-foot>a{color:var(--ivory)}.hero-foot>a span{margin-left:25px;font-size:19px}.hero-foot button{font-size:10px}
.bench{background:linear-gradient(160deg,#080d13,#0d1b22 85%);padding-top:90px}.bench-grid{display:grid;grid-template-columns:.85fr 1.3fr;gap:8%;align-items:start}.bench-copy{padding-top:25px}.bench-copy h2{margin-bottom:35px}.bench-copy p{max-width:470px;color:#abb9bd}.bench-copy .lead{color:var(--ivory);font-size:clamp(17px,1.5vw,23px);line-height:1.6;margin-bottom:25px}.project-meta{margin-top:45px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:13px}.project-meta>div{display:grid;grid-template-columns:85px 1fr;gap:12px}dt{font-size:9px;color:var(--amber);letter-spacing:1.2px}dd{font-size:11px;line-height:1.65;margin:0;color:#b4bfc2}.bench-film{padding-top:80px}.film-aperture{position:relative;overflow:hidden;background:#060a0e}.film-aperture video{aspect-ratio:16/9;object-fit:contain}.film-toggle{position:absolute;right:15px;bottom:15px;background:#09131ddb;backdrop-filter:blur(8px);padding:10px 15px;border:1px solid #f2e7d633;color:#fff1da;font-size:11px}.film-toggle:hover{background:#172c38}figcaption{font-size:9px;letter-spacing:.95px;line-height:1.7;margin-top:14px;color:var(--muted);display:flex;justify-content:space-between;gap:20px}.film-note{font-family:Grace,Georgia,serif;margin-top:45px;font-size:clamp(25px,2.35vw,38px);line-height:1.3;color:#e7dfd0}.film-note em{color:#9eafb3}
.paper{--line:#24383c30;background:var(--paper);color:var(--ink);color-scheme:light}.paper .section-top{border-color:#24383c30}.architecture{padding-bottom:75px}.architecture-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:55px}.architecture-heading p{max-width:340px;color:#526267}.assembly{position:relative;isolation:isolate;background:#c4c4c4;overflow:hidden}.assembly figure img{aspect-ratio:1800/1012;object-fit:cover}.assembly figcaption{background:var(--paper);margin-top:0;padding-top:18px;color:#526267}.assembly-lines{position:absolute;top:0;left:0;width:100%;height:auto;color:#665742;pointer-events:none}.assembly-lines path{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:450;stroke-dashoffset:0}.assembly-lines circle{fill:#cdbb97;stroke:#33464b}.assembly-lines path.active{stroke:#403020;stroke-width:2}.annotation{position:absolute;pointer-events:none;font-size:9px;letter-spacing:1px;background:#eae3d6ed;color:#223940;padding:6px 10px}.annotation.stages{left:5%;top:13%}.annotation.cam{left:62%;top:13%}.annotation.drive{right:9%;top:77%}.mechanism-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:5%;margin:42px 0 35px}.part{padding:18px 0 25px;text-align:left;border-top:1px solid #233b3f33;color:var(--ink)}.part .eyebrow{color:#596967;display:block;margin-bottom:19px}.part strong{font-family:Grace,Georgia,serif;font-size:34px;font-weight:400;line-height:1.05;display:block;margin-bottom:18px}.part>span:last-child{font-size:13px;line-height:1.8;display:block;max-width:280px}.part.active{border-top:2px solid #997a4c;padding-top:17px}.part:hover{color:#80643e}.technical{border-top:1px solid #233b3f30;border-bottom:1px solid #233b3f30}.technical summary{cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;font-size:13px;list-style:none}.technical summary::-webkit-details-marker{display:none}.technical[open] summary>span{transform:rotate(45deg)}.technical-body{display:grid;grid-template-columns:1fr .7fr;gap:7%;padding:15px 0 35px;align-items:center}.technical-body img{max-height:360px;object-fit:contain}
.handoff{background:#0c1a21}.handoff-heading{display:grid;grid-template-columns:1fr .8fr;gap:12%;align-items:center}.handoff-heading>div{color:#acb9bc}.coupling-pair{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4%;margin:65px 0 30px}.coupling-pair img{aspect-ratio:16/10;object-fit:contain;background:#fefefe}.coupling-pair figure:nth-of-type(2) img{object-fit:cover;background:var(--night)}.pair-bridge{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);display:grid;place-items:center;background:#10212a;width:40px;height:40px;border:1px solid #ac96765c;border-radius:50%;color:var(--amber);font-size:22px}.handoff-bottom{display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:4%;padding-top:20px}.handoff-bottom .trace{width:85%;color:#bfa985;opacity:.7}.handoff-bottom p{font-family:Grace,Georgia,serif;font-size:32px;line-height:1.2;max-width:400px}.handoff-bottom .eyebrow{font-size:8px}.trace path{stroke-dasharray:900;stroke-dashoffset:0}.trace .trace-axis{stroke-dasharray:4 7}
.build{background:#0a141a;padding-top:45px}.build h2{margin-bottom:58px}.build-grid{display:grid;grid-template-columns:1fr 1.05fr .85fr;gap:5%;align-items:start}.build-first{padding-top:95px}.build-control{padding-top:175px}.build-first>img{aspect-ratio:4/5;object-fit:cover}.build-control>img{aspect-ratio:1;object-fit:cover}.build-video{position:relative}.build-video video{aspect-ratio:608/1080;object-fit:contain;background:#070d11;max-height:520px}.build-grid h3{font-size:31px;margin:20px 0 15px}.build-grid p{font-size:13px;line-height:1.8;color:#aebabe}.build-grid figcaption{font-size:8px}
.results{background:#e9e5dc;padding-bottom:80px}.results-heading{display:grid;grid-template-columns:1.2fr .65fr;gap:9%;align-items:end;margin-bottom:55px}.results-heading h2{font-size:clamp(48px,5.15vw,83px)}.results-heading p{color:#526267}.outcomes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5%;margin-bottom:45px}.outcomes>div{padding-top:22px;border-top:1px solid #24383c40}.outcomes .eyebrow{color:#76633f;font-size:9px}.outcomes h3{margin:20px 0 15px;font-size:36px}.outcomes p{font-size:14px;color:#526267}.table-scroll{overflow:auto;padding-bottom:25px}table{border-collapse:collapse;width:100%;min-width:570px;text-align:left;font-size:12px;line-height:1.65}caption{text-align:left;font-size:11px;color:#596967;margin:10px 0 25px}th,td{padding:15px 18px 15px 0;border-bottom:1px solid #263f3929;font-weight:400}thead th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#7c6540}tbody th{width:26%}.measurement{display:grid;grid-template-columns:.55fr 1fr;gap:12%;align-items:center;margin:70px 0 60px}.measurement figure{max-width:310px;margin-left:10%}.measurement img{max-height:320px;object-fit:cover;object-position:center 40%}.measurement figcaption{font-size:8px;color:#65706c}.measurement h3{font-size:48px;margin:22px 0 25px}.measurement p{max-width:560px;font-size:15px}.measurement .muted-dark{font-size:12px}.current-state{border-top:1px solid #233b3f33;padding-top:30px;display:grid;grid-template-columns:.45fr 1fr;gap:5%}.current-state p{font-size:14px;max-width:640px}.current-state .eyebrow{color:#7c6540}
.closing{padding-top:55px;padding-bottom:30px}.closing-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:12%;margin-bottom:90px}.closing h2{font-size:60px;margin-bottom:30px}.closing-grid p{font-size:13px;color:#9eafb4}.source-list details{border-bottom:1px solid var(--line)}.source-list summary{cursor:pointer;font-size:14px;padding:20px 0;list-style:none;display:flex;justify-content:space-between}.source-list details p{padding:0 0 20px;line-height:1.8}.source-list a{display:inline-block;font-size:12px;color:var(--amber);margin-bottom:18px}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;padding-top:25px;font-size:9px;letter-spacing:1px}.footer-bottom a{font-size:13px;letter-spacing:0}
.chapter-nav{position:fixed;right:17px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:13px;mix-blend-mode:difference;color:#e7e5e2;opacity:0;transition:opacity .4s}.chapter-nav.visible{opacity:1}.chapter-nav a{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:9px}.chapter-nav span{opacity:.4}.chapter-nav b{font-weight:400;font-size:9px;max-width:0;overflow:hidden;opacity:0;transition:max-width .3s,opacity .3s}.chapter-nav a.active span{opacity:1}.chapter-nav a:hover b,.chapter-nav a:focus-visible b{opacity:1;max-width:80px}.tour-status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:30;padding:12px 20px;background:#0a141ae8;border:1px solid #cebb924f;color:var(--ivory);font-size:11px;border-radius:3px;box-shadow:0 10px 40px #0004}.tour-status[hidden]{display:none}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}.js .reveal.seen{opacity:1;transform:none}.film-aperture{clip-path:inset(0 0 0 0)}.js .bench-film:not(.seen) .film-aperture{clip-path:inset(0 0 0 85%)}.js .bench-film.seen .film-aperture{transition:clip-path 1.5s cubic-bezier(.22,1,.36,1)}
@media(min-width:1800px){.hero-stage{max-width:1920px;margin:auto}}
@media(max-width:1000px){.section{padding-left:6%;padding-right:6%}.bench-grid{gap:6%;grid-template-columns:1fr 1.1fr}.bench-copy h2{font-size:53px}.bench-copy p{font-size:14px}.bench-film{padding-top:75px}.section-top .eyebrow{font-size:8px}.chapter-nav{right:8px}.architecture-heading{gap:30px}.architecture-heading p{max-width:260px;font-size:14px}.annotation{font-size:7px;padding:4px 7px}.part strong{font-size:28px}.part>span:last-child{font-size:12px}.handoff-heading{gap:7%}.handoff-heading p{font-size:14px}.build-grid{gap:4%}.build-grid h3{font-size:27px}.results-heading{gap:5%}.results-heading p{font-size:14px}.outcomes h3{font-size:30px}.closing h2{font-size:50px}}
@media(max-width:700px){:root{scroll-padding-top:25px}.desktop{display:none}.masthead{height:62px;padding:0 6%}.masthead>a{font-size:9px;letter-spacing:1px}.masthead>div{gap:16px}.masthead button{font-size:9px}.hero-stage{aspect-ratio:auto;height:calc(100svh - 88px);min-height:580px}.hero-art{top:16%;height:62%;width:156%;left:-30%;mask-image:radial-gradient(ellipse at 54% 48%,black 30%,transparent 73%)}.hero-art>img{object-fit:cover}.hero-eyebrow{left:6%;top:15%;font-size:9px;max-width:260px;line-height:1.8}.hero h1{left:6%;top:auto;bottom:12%;font-size:11.7cqw;letter-spacing:-.5cqw;line-height:1.02}.hero h1 .title-line{padding-bottom:5px}.hero-deck{left:6%;top:auto;bottom:5%;font-size:12px;max-width:245px;line-height:1.7}.hero-foot{padding:0 6%;gap:18px;align-items:start;font-size:8px;letter-spacing:.8px}.hero-foot>span{display:none}.hero-foot>a{max-width:230px}.hero-foot>a span{margin-left:9px}.hero-foot button{font-size:9px;padding-top:4px}.section{padding:50px 7% 60px}.section-top{margin-bottom:40px;gap:15px}.section-top .eyebrow{font-size:8px;letter-spacing:1px}.section-top>span:last-child{max-width:140px;text-align:right}h2{font-size:54px}.bench-grid,.handoff-heading,.results-heading,.closing-grid{grid-template-columns:1fr;gap:30px}.bench-copy{padding:0}.bench-copy h2{font-size:58px}.bench-copy p{max-width:none;font-size:15px}.bench-copy .lead{font-size:19px}.project-meta{margin-top:30px}.bench-film{padding-top:15px}.film-note{margin-top:28px;font-size:27px}.bench-film figcaption{font-size:8px;gap:20px}.architecture-heading{display:block;margin-bottom:30px}.architecture-heading h2{font-size:49px}.architecture-heading p{max-width:none;margin-top:25px;font-size:15px}.assembly{margin-left:-4%;margin-right:-4%}.assembly figcaption{font-size:7px;gap:10px}.annotation{font-size:5px;padding:3px;letter-spacing:.5px}.mechanism-notes{grid-template-columns:1fr;gap:0;margin:28px 0 15px}.part{display:grid;grid-template-columns:66px 1fr;column-gap:15px;padding:20px 0}.part .eyebrow{font-size:8px;grid-row:1/3}.part strong{font-size:29px;margin-bottom:8px}.part strong br{display:none}.part>span:last-child{max-width:none;font-size:13px}.part.active{padding-top:19px}.technical summary{font-size:12px}.technical-body{grid-template-columns:1fr;gap:20px}.technical-body p{font-size:14px}.handoff-heading p{font-size:15px}.coupling-pair{grid-template-columns:1fr;gap:35px;margin-top:35px}.coupling-pair figcaption{font-size:8px}.pair-bridge{top:50%;left:50%;rotate:90deg;width:30px;height:30px;font-size:17px}.handoff-bottom{grid-template-columns:1fr;gap:15px}.handoff-bottom .trace{width:90%}.handoff-bottom p{font-size:29px}.handoff-bottom .eyebrow{font-size:7px}.build-grid{grid-template-columns:1fr 1fr;gap:25px}.build h2{font-size:56px;margin-bottom:35px}.build-first{padding-top:50px}.build-control{padding-top:10px;grid-column:1/3;display:grid;grid-template-columns:1fr 1fr;column-gap:25px;align-items:start}.build-control>img{grid-row:1/4}.build-control figcaption{margin-top:0}.build-grid h3{font-size:26px;margin-top:15px}.build-grid p{font-size:12px}.build-grid figcaption{font-size:7px;letter-spacing:.5px}.build-video video{max-height:400px}.build-video .film-toggle{font-size:9px;right:6px;bottom:8px;padding:8px}.results-heading h2{font-size:49px}.results-heading p{font-size:15px}.outcomes{grid-template-columns:1fr;gap:25px}.outcomes>div{padding-top:18px}.outcomes h3{font-size:35px;margin:12px 0}.outcomes p{font-size:14px}.measurement{grid-template-columns:.7fr 1fr;gap:22px;margin:40px 0}.measurement figure{margin:0}.measurement img{max-height:230px}.measurement figcaption{font-size:6px}.measurement h3{font-size:31px;margin:13px 0 15px}.measurement p{font-size:12px;line-height:1.65}.measurement .eyebrow{font-size:7px}.measurement .muted-dark{font-size:10px}.current-state{grid-template-columns:1fr;gap:15px}.current-state p{font-size:13px}.closing h2{font-size:50px}.closing-grid{margin-bottom:45px}.footer-bottom{flex-direction:column;font-size:8px;gap:18px}.chapter-nav{display:none}.tour-status{font-size:10px;width:90%;text-align:center;bottom:12px;padding:10px}.closing .section-top>a{font-size:10px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.film-aperture{clip-path:none!important;transition:none!important}.chapter-nav{transition:none}}
.motion-paused .reveal{opacity:1;transform:none;transition:none}.motion-paused .film-aperture{clip-path:none!important;transition:none!important}
.intro-pending .hero-stage{opacity:0}
.js .assembly:not(.seen) .assembly-lines path{stroke-dashoffset:450}.js .assembly.seen .assembly-lines path{transition:stroke-dashoffset 1.8s cubic-bezier(.22,1,.36,1),stroke .3s;transition-delay:.3s}
.js .handoff-bottom:not(.seen) .trace path:not(.trace-axis){stroke-dashoffset:900}.js .handoff-bottom.seen .trace path:not(.trace-axis){transition:stroke-dashoffset 2.2s cubic-bezier(.22,1,.36,1)}
.motion-paused .assembly-lines path,.motion-paused .trace path:not(.trace-axis){stroke-dashoffset:0!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.js .assembly-lines path,.js .trace path:not(.trace-axis){stroke-dashoffset:0!important;transition:none!important}}

/* Selected Phase C hero: same image, full brightness and readable two-line title. */
#hero-image{filter:brightness(1) saturate(.8)}
@media(max-width:700px){#hero-title{font-size:8.1vw}}

/* Revision two: show the machine while fonts settle; reveal complete title lines. */
.intro-pending .hero-stage{opacity:1}
.intro-pending #hero-title,.intro-pending .hero-deck{opacity:0}
#hero-image{transform:scale(1.01)}
