@font-face{font-family:Space;src:url('assets/space-grotesk-variable.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-variable.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root{--bg:#101211;--ink:#f0f0e9;--muted:#a8b0aa;--accent:#e69d71;--line:#ffffff20;--pad:clamp(24px,5.5vw,100px);--ease:cubic-bezier(.22,1,.36,1);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img,video{display:block;max-width:100%}img{height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,model-viewer:focus-visible{outline:2px solid var(--accent);outline-offset:7px}::selection{background:var(--accent);color:#111}h1,h2,h3{font-family:Space,Arial,sans-serif;font-weight:400;letter-spacing:-.055em}h2{font-size:clamp(48px,6.2vw,100px);line-height:1.02}h3{font-size:32px;line-height:1.2}.wrap{padding-left:var(--pad);padding-right:var(--pad)}.eyebrow{font-size:9px;font-weight:500;letter-spacing:.16em;line-height:1.8;color:var(--muted)}.skip-link{position:fixed;left:20px;top:-70px;z-index:30;padding:12px;background:var(--ink);color:#111}.skip-link:focus{top:15px}
.site-header{height:82px;position:fixed;inset:0 0 auto;z-index:8;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;transition:background .3s,backdrop-filter .3s;background:linear-gradient(#0006,transparent)}.site-header.scrolled{background:#101211e8;backdrop-filter:blur(15px)}.wordmark{font-family:Space,sans-serif;font-size:14px;letter-spacing:-.035em;white-space:nowrap}.site-header nav{display:flex;align-items:center;gap:35px;font-size:11px}.site-header a:hover{color:var(--accent)}
.hero{height:100svh;min-height:620px;max-height:1200px;position:relative;isolation:isolate;overflow:hidden;background:#202a25}.hero-film,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-film{object-fit:cover;object-position:50% 45%;z-index:-3}.hero-shade{z-index:-2;background:linear-gradient(90deg,#07110c93,transparent 85%),linear-gradient(0deg,#0a120de6,transparent 75%,#0a120d30)}.hero-topline{position:absolute;top:120px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:8px;letter-spacing:.16em;color:#dddcd5}.hero-content{position:absolute;left:var(--pad);right:var(--pad);bottom:128px;display:flex;align-items:flex-end;gap:6vw;justify-content:space-between}.hero h1{font-size:clamp(90px,10.8vw,190px);line-height:.9;letter-spacing:-.075em;animation:rise-in 1.3s var(--ease) both}.hero h1>span{color:var(--accent)}.hero-intro{padding-bottom:5px;max-width:320px;animation:rise-in 1.3s .15s var(--ease) both}.hero-intro p{font-size:12px;line-height:1.85;color:#dedfd7}.text-link{display:inline-flex;align-items:center;gap:32px;padding:13px 0;font-size:11px;border-bottom:1px solid #ffffff60;line-height:1.5;transition:color .2s}.text-link>span{font-size:18px;color:var(--accent)}.text-link:hover{color:var(--accent)}.hero-intro .text-link{margin-top:20px}.hero-film-controls{position:absolute;right:var(--pad);bottom:80px;display:flex;gap:28px}.hero-film-controls button{background:none;border:0;padding:0;font-size:10px;color:#d5dbd4}.hero-film-controls button:hover{color:var(--accent)}.hero-foot{position:absolute;bottom:33px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:.1em;color:#c2c8c0}.film-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff15}.film-progress span{display:block;width:100%;height:100%;background:var(--accent);transform-origin:left;transform:scaleX(0)}
.work-intro{padding-top:100px;padding-bottom:100px}.work-intro-line{font-size:clamp(21px,3vw,40px);letter-spacing:-.04em;max-width:700px;line-height:1.4;margin-top:23px}.project-index{display:flex;gap:27px;flex-wrap:wrap;margin-top:40px;font-size:10px;color:#b6bdb4}.project-index a{padding:8px 0}.project-index a:hover{color:var(--accent)}
.project-chapter{padding-bottom:130px;scroll-margin-top:25px}.chapter-heading{position:relative;margin-bottom:45px}.chapter-heading>.eyebrow{margin-bottom:28px;color:#b9beb4}.chapter-heading h2>span{font-size:.4em;color:var(--accent);display:inline-block;vertical-align:middle;transition:translate .3s}.chapter-heading a:hover h2>span{translate:7px -7px}.chapter-summary{font-size:13px;line-height:1.9;color:var(--muted);max-width:370px;margin-top:25px}.nasa-chapter>.chapter-heading,.phi-chapter>.chapter-heading,.mini-chapter>.chapter-heading{display:grid;grid-template-columns:1fr .55fr;column-gap:8%}.chapter-heading>.eyebrow{grid-column:1/-1}.nasa-chapter>.chapter-heading>.chapter-summary,.phi-chapter>.chapter-heading>.chapter-summary,.mini-chapter>.chapter-heading>.chapter-summary{align-self:end;margin-bottom:7px}.chapter-foot{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px}.chapter-foot>span,.tool-line{font-size:10px;line-height:1.9;color:var(--muted)}.tool-line{margin:25px 0 15px}.chapter-foot .text-link{font-size:10px}
.nasa-spread{display:grid;grid-template-columns:64% 36%;width:100%;height:clamp(380px,46vw,780px)}.nasa-spread>a{position:relative;overflow:hidden}.chassis-view{background:#e9e7de;display:flex;align-items:center;justify-content:center}.chassis-view img{mix-blend-mode:multiply;width:100%;height:100%;object-fit:contain;transition:transform 1.4s var(--ease)}.nasa-photo img{width:100%;height:100%;object-fit:cover;object-position:54% 50%;transition:transform 1.4s var(--ease)}.nasa-spread a:hover img{transform:scale(1.025)}.nasa-photo:after,.wide-film:after,.frc-action:after,.firewatch-film:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0009,transparent 30%)}.media-caption{position:absolute;left:30px;bottom:24px;font-size:8px;letter-spacing:.11em;line-height:1.8;color:#f0f0e9;z-index:1}.dark-caption{color:#343932}.wide-film{position:relative;display:block;height:clamp(340px,52vw,820px);overflow:hidden}.wide-film video{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--ease)}.wide-film:hover video{transform:scale(1.025)}.wide-film .media-caption{left:var(--pad);bottom:35px}.media-open{position:absolute;right:var(--pad);bottom:35px;font-size:11px;z-index:1}
.ecu-chapter{padding-top:55px}.ecu-layout,.frc-layout{display:grid;grid-template-columns:40% 60%;align-items:center;gap:0}.ecu-layout .chapter-heading,.frc-layout .chapter-heading{margin-bottom:0;z-index:1}.model-stage{min-width:0;position:relative;height:600px}.model-stage:before{content:"";position:absolute;inset:10%;border-radius:50%;background:radial-gradient(ellipse,#667b5326,transparent 68%);z-index:-1}model-viewer{display:block;width:100%;height:100%;--poster-color:transparent;background:transparent}model-viewer img{width:100%;height:100%;object-fit:contain}.model-instruction{position:absolute;bottom:5px;left:35px;right:0;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:.1em;color:var(--muted);pointer-events:none}.model-status{color:var(--accent)}.frc-chapter{padding-top:20px}.frc-render{position:relative;display:block;min-width:0;height:600px}.frc-render>img{width:112%;max-width:112%;height:100%;object-fit:contain;transform:translateX(-5%)}.frc-render .media-caption{bottom:0;left:18%;font-size:7px;color:var(--muted)}.frc-action{display:block;width:55%;margin:25px 0 0 auto;aspect-ratio:16/9;position:relative;overflow:hidden}.frc-action video{width:100%;height:100%;object-fit:cover}
.firewatch-spread{display:grid;grid-template-columns:1.2fr .8fr;gap:8%;align-items:center;margin-top:55px}.firewatch-film{position:relative;display:block;overflow:hidden;aspect-ratio:4/3}.firewatch-film video{width:100%;height:100%;object-fit:cover}.detection-image{display:block;max-width:420px;margin-top:-70px}.detection-image img{width:100%;height:auto;object-fit:contain}.figure-caption{display:block;color:var(--muted);font-size:10px;line-height:1.8;margin-top:14px;letter-spacing:0}.camera-layout{display:grid;grid-template-columns:53% 40%;gap:7%;align-items:center}.camera-board{display:block;position:relative;height:500px}.camera-board img{width:100%;height:100%;object-fit:contain}.camera-board .media-caption{left:0;bottom:0;font-size:7px;color:var(--muted)}.camera-layout .chapter-heading h2{font-size:clamp(42px,5vw,82px)}.mini-chapter{padding-bottom:100px}.mini-film{width:calc(100% - var(--pad)*2);margin:auto;height:auto;aspect-ratio:16/9}.mini-film .media-caption{left:30px}.mini-film .media-open{right:30px}
.skills-section{padding-top:70px;padding-bottom:130px}.section-heading h2{font-size:clamp(44px,5vw,78px);margin-top:25px}.skill-rows{margin-top:50px}.skill-row{display:grid;grid-template-columns:1fr 1.2fr .5fr;align-items:center;gap:30px;padding:28px 0;border-top:1px solid var(--line)}.skill-row h3{font-size:23px;letter-spacing:-.04em}.skill-row p{font-size:11px;line-height:1.9;color:var(--muted)}.skill-row a{font-size:10px;text-align:right;color:#e0dfd6}.skill-row a:hover{color:var(--accent)}.about-section{padding-bottom:130px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:28px}.about-grid h2{font-size:clamp(40px,4.5vw,70px)}.about-grid p{font-size:14px;line-height:1.95;color:var(--muted);margin-bottom:20px}.site-footer{padding-top:55px;padding-bottom:35px;background:#191d19}.contact-link{display:flex;justify-content:space-between;align-items:center;font-family:Space,sans-serif;font-size:clamp(30px,6vw,90px);letter-spacing:-.06em;margin-top:35px}.contact-link span{font-size:.7em;color:var(--accent)}.footer-bottom{display:flex;justify-content:space-between;gap:25px;font-size:10px;margin-top:70px;color:#adb4a9}.footer-bottom>a:nth-child(2){margin-left:auto}
.js-motion .reveal{opacity:0;transform:translateY(65px);clip-path:inset(6% 0 0 0);transition:opacity 1s var(--ease),transform 1.25s var(--ease),clip-path 1.25s var(--ease)}.js-motion .reveal.visible{opacity:1;transform:translateY(0);clip-path:inset(0)}@keyframes rise-in{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}
dialog{margin:0;padding:0;border:0;width:100%;max-width:none;height:100%;max-height:none;background:var(--bg);color:var(--ink);overflow-x:hidden;overflow-y:auto}dialog::backdrop{background:#000c}.detail-header{position:sticky;top:0;background:#101211f5;backdrop-filter:blur(15px);z-index:3;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px var(--pad);border-bottom:1px solid var(--line)}.detail-header-label{font-size:8px;letter-spacing:.14em;color:var(--muted)}.close-detail,.close-reel{border:0;background:none;padding:8px;font-size:12px}.detail-intro{padding:65px var(--pad) 45px;max-width:1600px;margin:auto}.detail-meta{display:flex;justify-content:space-between;gap:30px;font-size:8px;letter-spacing:.12em;line-height:1.7;color:var(--accent);margin-bottom:25px}.detail-intro h2{font-size:clamp(48px,7.3vw,115px);max-width:1100px}.detail-summary{font-size:clamp(15px,1.7vw,23px);line-height:1.8;color:var(--muted);max-width:850px;margin-top:25px}.detail-toc{display:flex;gap:24px;flex-wrap:wrap;margin-top:30px;font-size:10px;color:var(--muted)}.detail-toc a{padding:5px 0;border-bottom:1px solid var(--line)}.detail-toc a:hover{color:var(--accent)}.detail-hero{height:clamp(300px,45vw,650px);margin:0 var(--pad);display:flex;justify-content:center;align-items:center;overflow:hidden}.detail-hero>img{width:100%;height:100%;object-fit:contain}.detail-hero.photo>img{object-fit:cover}.detail-hero.cad{background:#e9e7de}.detail-hero.cad>img{mix-blend-mode:multiply}.detail-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:210px minmax(0,1fr);gap:70px;padding:55px var(--pad) 70px}.detail-facts{margin:0;padding-top:20px;border-top:1px solid var(--line);height:max-content}.detail-facts dt{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.detail-facts dd{font-size:11px;line-height:1.8;margin:0 0 25px}.detail-prose{min-width:0}.detail-prose h3{font-size:31px;margin:45px 0 18px;scroll-margin-top:100px}.detail-prose h3:first-child{margin-top:0}.detail-prose p,.detail-prose li{font-size:13px;line-height:1.95;color:#b7bfb4;margin-bottom:20px}.detail-prose ul{padding-left:19px}.detail-prose figure{margin:35px 0}.detail-prose figure img{max-height:600px;max-width:100%;width:100%;object-fit:contain}.detail-prose figure a{display:block}.detail-prose figcaption,.detail-prose .figure-caption{font-size:10px;line-height:1.8;color:#9fa99b;margin-top:12px}.detail-prose video{width:100%;max-height:620px;object-fit:contain;background:#090b09}.detail-prose model-viewer{height:480px}.detail-prose .detail-note{border-left:1px solid var(--accent);padding-left:20px;font-size:11px}.detail-source{display:inline-flex;gap:20px;border-bottom:1px solid var(--line);font-size:11px;padding-bottom:9px;margin:15px 0 30px}.detail-end{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:35px var(--pad);border-top:1px solid var(--line)}.detail-end button{border:0;background:none;padding:8px 0;font-size:13px;text-align:left}.detail-end button:hover{color:var(--accent)}.detail-end>span{font-size:8px;color:var(--muted);letter-spacing:.1em}.detail-prose table{border-collapse:collapse;font-size:11px;width:100%;margin:25px 0;line-height:1.9}.detail-prose th,.detail-prose td{border-bottom:1px solid var(--line);text-align:left;padding:13px 12px 13px 0;vertical-align:top}.detail-prose th{font-weight:500;color:#d3d7ce}.detail-prose td{color:var(--muted)}.system-diagram{width:100%;height:auto;display:block;margin:25px 0}.system-diagram text{font-family:Manrope,Arial,sans-serif}.pipeline{display:flex;flex-wrap:wrap;align-items:center;gap:15px;font-size:11px;line-height:1.9;padding:25px 0;color:var(--muted)}.pipeline b{color:var(--accent);font-weight:400}.detail-prose img[src$="firewatch-purple.png"]{max-width:558px;margin:auto}
#reel-dialog{background:#090d0a;display:none;align-items:center;justify-content:center;padding:70px var(--pad);flex-direction:column}#reel-dialog[open]{display:flex}#reel-dialog video{max-width:1400px;width:100%;max-height:80vh}#reel-dialog p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:20px}.close-reel{position:absolute;right:var(--pad);top:20px}.noscript-note{padding:20px var(--pad);font-size:12px}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
.detail-hero>video{width:100%;height:100%;object-fit:contain}
/* Keep video on ordinary paint layers; transformed, clipped ancestors lost video frames in the preview browser. */
.hero-film{z-index:1;transform:none!important}.hero-shade{z-index:2}.hero-content,.hero-topline,.hero-film-controls,.hero-foot,.film-progress{z-index:3}
.video-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:0}
.hero>.video-fallback{object-fit:cover}.video-surface>video{position:relative;z-index:1;transform:none!important;transition:none!important}.hero>video{position:absolute}
.video-surface>video.buffering{opacity:0}.js-motion .reveal.visible{transform:none;clip-path:none}
.js-motion .reveal:has(video),.js-motion .reveal:has(model-viewer){opacity:1;transform:none;clip-path:none;transition:none}
.nasa-spread.single-visual{grid-template-columns:1fr;height:clamp(360px,52vw,760px)}.chassis-view img{width:90%;object-fit:contain}
.context-section{padding-top:100px;padding-bottom:20px}.context-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:25px;font-size:11px;color:var(--ink)}.context-links a:hover{color:var(--accent)}
.firewatch-spread.single-visual{display:block}.firewatch-spread.single-visual .detection-image{margin:0 auto;max-width:558px;width:100%}
.phi-chapter .wide-film{height:650px;background:#151b18}.phi-chapter .wide-film video{object-fit:contain}.phi-chapter .wide-film .video-fallback{object-fit:contain}
.flight-explorer{margin:35px 0}.flight-explorer label{display:block;font-size:12px;color:var(--ink);margin:20px 0 15px}.flight-explorer input{width:100%;accent-color:var(--accent)}.flight-explorer output{display:block;font-size:11px;color:var(--muted);line-height:1.9;margin-top:12px;font-variant-numeric:tabular-nums}
.phi-chapter{display:grid;grid-template-columns:46% 54%;align-items:center}.phi-chapter>.chapter-heading{display:block;padding-right:24px;margin-bottom:0}.phi-chapter .wide-film{width:calc(100% - var(--pad));background:transparent}.phi-chapter>.chapter-foot{grid-column:1/-1}
.phi-chapter h2{font-size:clamp(42px,4.8vw,80px)}
.detail-grid:has(.flight-explorer),.detail-grid:has(img[src$="nasa-architecture-v5-light.svg"]){display:block}
.detail-grid:has(.flight-explorer) .detail-facts,.detail-grid:has(img[src$="nasa-architecture-v5-light.svg"]) .detail-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-bottom:45px}
.detail-prose>p{max-width:820px}
.painted-video{position:relative;isolation:isolate}.painted-video>.canvas-source{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;z-index:0}
.painted-video>.video-paint{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1;display:none}
.painted-video.has-painted-frame>.video-paint{display:block}.hero>.video-paint{object-fit:cover}.mini-film>.video-paint{object-fit:cover}
.project-video{position:relative;width:100%;aspect-ratio:16/9;max-height:620px;margin:25px 0;background:#101211;overflow:hidden}
.project-video-controls{position:absolute;z-index:2;inset:auto 0 0;display:flex;justify-content:flex-end;gap:25px;padding:22px;background:linear-gradient(transparent,#000b)}
.project-video-controls button{border:0;background:none;padding:7px 0;color:#fff;font-size:11px}.project-video-controls button:hover{color:#efbf94}
.project-video:fullscreen{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;background:#000}
#reel-dialog .project-video{max-width:1400px;width:100%;max-height:80vh}
.detail-prose figure:has(img[src$="-light.svg"]){background:#fff;padding:16px 0 0;box-shadow:0 1px 3px #0002}
.detail-prose figure:has(img[src$="-light.svg"]) figcaption{background:var(--bg);padding-top:14px;margin-top:0}
.firewatch-spread.single-visual .detection-image{max-width:100%;width:100%;margin:0}.firewatch-spread .detection-image>img{width:100%;max-height:650px;object-fit:cover;object-position:50% 45%}
.firewatch-spread .figure-caption{padding-top:12px}.detail-prose>figure>img[src*="-light.svg"]{background:#fff}
@media(max-width:700px){.project-video{max-height:520px}.project-video-controls{padding:12px;gap:22px}.project-video-controls button{font-size:10px}.firewatch-spread .detection-image>img{max-height:420px;object-fit:contain}}
.detail-prose img[src$="phi-architecture-v5-light.svg"],.detail-prose img[src$="nasa-architecture-v5-light.svg"]{max-height:none}
@media(max-width:700px){.context-section{padding-top:60px;padding-bottom:10px}.nasa-spread.single-visual{height:340px}.chassis-view img{width:100%}.phi-chapter{display:block}.phi-chapter h2{font-size:clamp(42px,11.5vw,75px)}.phi-chapter .wide-film{height:560px;width:100%;margin-top:30px}.context-links{gap:20px;font-size:10px}.detail-grid:has(.flight-explorer) .detail-facts,.detail-grid:has(img[src$="nasa-architecture-v5-light.svg"]) .detail-facts{grid-template-columns:1fr 1fr;gap:0 25px}}
@media(min-width:1600px){.hero-content{bottom:160px}.project-chapter{padding-bottom:170px}}
@media(max-width:1050px){.hero h1{font-size:12vw}.hero-content{gap:30px}.hero-intro{max-width:235px}.hero-intro p{font-size:11px}.chapter-summary{font-size:12px}.ecu-layout,.frc-layout{grid-template-columns:42% 58%}.model-stage,.frc-render{height:480px}.camera-layout{grid-template-columns:48% 46%;gap:6%}.camera-board{height:400px}.camera-layout .chapter-heading h2{font-size:5.5vw}.skill-row{grid-template-columns:1fr 1fr}.skill-row a{grid-column:2;text-align:left}.detail-grid{grid-template-columns:170px minmax(0,1fr);gap:35px}}
@media(max-width:700px){:root{--pad:24px}html{scroll-padding-top:85px}.site-header{height:70px}.wordmark{font-size:12px}.site-header nav{gap:18px;font-size:9px}.site-header nav>a:nth-child(3){display:none}.hero{min-height:700px;max-height:1050px}.hero-topline{top:103px;font-size:7px}.hero-topline>span:last-child{display:none}.hero-content{bottom:160px;display:block}.hero h1{font-size:clamp(67px,15vw,105px);letter-spacing:-.07em}.hero-intro{margin-top:28px;max-width:310px}.hero-intro p{font-size:11px}.hero-intro .text-link{margin-top:12px}.hero-film{object-position:52% 50%}.hero-shade{background:linear-gradient(0deg,#08120ff0,transparent 115%),linear-gradient(90deg,#07110c50,transparent)}.hero-film-controls{left:var(--pad);right:auto;bottom:98px;gap:30px}.hero-film-controls button{font-size:10px}.hero-foot{bottom:28px;font-size:6px;line-height:1.8;align-items:flex-end}.hero-foot>span:last-child{text-align:right;max-width:170px}.work-intro{padding-top:65px;padding-bottom:65px}.work-intro-line{font-size:25px;line-height:1.45}.project-index{gap:10px 23px;font-size:10px;margin-top:25px}.project-chapter{padding-bottom:85px}.chapter-heading{margin-bottom:30px}.chapter-heading>.eyebrow{font-size:7px;margin-bottom:22px}h2{font-size:clamp(44px,11.5vw,75px)}.nasa-chapter>.chapter-heading,.phi-chapter>.chapter-heading,.mini-chapter>.chapter-heading{display:block}.chapter-summary{font-size:12px;line-height:1.9;max-width:330px;margin-top:22px}.nasa-spread{height:auto;grid-template-columns:1fr}.chassis-view{height:330px}.nasa-photo{height:260px}.nasa-photo img{object-position:50% 47%}.media-caption{left:24px;bottom:18px;font-size:6px}.chapter-foot{display:block;margin-top:18px}.chapter-foot>span{font-size:9px}.chapter-foot .text-link{font-size:10px;margin-top:8px;gap:25px}.wide-film{height:380px}.wide-film .media-caption{bottom:22px;font-size:6px;max-width:190px}.media-open{font-size:9px;bottom:22px}.ecu-chapter{padding-top:0}.ecu-layout,.frc-layout{grid-template-columns:1fr}.model-stage{height:390px;margin-top:20px}.model-instruction{left:0;bottom:0;font-size:7px}.frc-render{height:410px;margin-top:15px}.frc-render>img{width:100%;max-width:100%;transform:none}.frc-render .media-caption{left:0;font-size:6px}.frc-action{width:100%;margin-top:32px}.firewatch-spread{grid-template-columns:1fr;gap:30px;margin-top:30px}.firewatch-film{aspect-ratio:16/10}.detection-image{width:83%;margin:0 0 0 auto}.figure-caption{font-size:9px}.camera-layout{grid-template-columns:1fr;gap:30px}.camera-layout .chapter-heading{grid-row:1}.camera-layout .chapter-heading h2{font-size:11.5vw}.camera-board{height:320px}.mini-film{height:auto;aspect-ratio:4/3}.mini-film video{object-fit:cover}.mini-film .media-caption{left:18px}.mini-film .media-open{right:18px}.skills-section{padding-top:10px;padding-bottom:85px}.section-heading h2{font-size:42px}.skill-rows{margin-top:35px}.skill-row{display:block;padding:23px 0}.skill-row h3{font-size:24px}.skill-row p{font-size:11px;margin:14px 0}.skill-row a{font-size:10px}.about-section{padding-bottom:80px}.about-grid{display:block;margin-top:20px}.about-grid h2{font-size:40px;margin-bottom:30px}.about-grid p{font-size:12px}.site-footer{padding-top:40px}.contact-link{font-size:34px;margin-top:30px}.footer-bottom{font-size:8px;gap:15px;margin-top:50px}.detail-header{padding:18px var(--pad);gap:15px}.detail-header-label{display:none}.detail-intro{padding:45px var(--pad) 30px}.detail-meta{font-size:6.5px;gap:20px}.detail-intro h2{font-size:48px}.detail-summary{font-size:14px}.detail-toc{gap:15px;font-size:9px}.detail-hero{height:320px;margin:0}.detail-grid{display:block;padding-top:30px}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;margin-bottom:35px}.detail-facts dd{font-size:10px;margin-bottom:20px}.detail-prose h3{font-size:29px}.detail-prose p,.detail-prose li{font-size:12px}.detail-prose model-viewer{height:330px}.detail-prose table{font-size:10px}.detail-prose th,.detail-prose td{padding:12px 10px 12px 0}.detail-end{gap:20px}.detail-end button{font-size:11px;max-width:45%}.detail-end>span{display:none}#reel-dialog{padding:60px 0}#reel-dialog p{padding:0 var(--pad);font-size:10px}}
.compact-chapter{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:clamp(32px,5vw,90px);align-items:center}
.compact-chapter>.chapter-heading{display:block;padding:0;margin:0}.compact-chapter h2{font-size:clamp(42px,4.8vw,80px)}
.compact-chapter>.chapter-foot{grid-column:1/-1;padding:0;margin-top:28px}
.compact-chapter .nasa-spread.single-visual{display:block;height:clamp(280px,28vw,420px)}.compact-chapter .chassis-view{display:flex;height:100%}.compact-chapter .chassis-view img{width:100%;height:100%}
.compact-chapter .firewatch-spread{margin-top:0}.compact-chapter .detection-image>img{max-height:360px;object-fit:contain}.compact-chapter .figure-caption{font-size:9px}
.phi-platform{position:relative;display:block;width:calc(100% - var(--pad));height:clamp(300px,32vw,450px)}.phi-platform>img{width:100%;height:100%;object-fit:contain;filter:saturate(.8)}
.phi-platform .media-caption{left:0;bottom:0;color:var(--muted);font-size:7px}.phi-platform .media-open{right:0;bottom:0;font-size:10px}
@media(max-width:700px){.compact-chapter{display:block}.compact-chapter>.chapter-heading{margin-bottom:28px}.compact-chapter h2{font-size:clamp(42px,11.5vw,75px)}.compact-chapter .nasa-spread.single-visual{height:240px}.compact-chapter .chassis-view{height:100%}.compact-chapter .detection-image>img{max-height:260px}.phi-platform{width:calc(100% - 48px);height:300px;margin:20px 24px 0}.phi-platform .media-open{font-size:9px}.phi-platform .media-caption{max-width:180px;font-size:6px}}
.about-identity>img{width:170px;max-width:100%;height:auto;margin-top:28px;border-radius:20px}
.detail-prose .competition-caption{font-size:12px;line-height:1.85}.project-awards{list-style:none;padding:0!important;margin:20px 0 0}.project-awards li{margin:0 0 15px}.project-awards strong{display:block;color:var(--ink);font-weight:500}
.detail-prose .competition-photo{max-width:640px}.detail-prose .competition-photo img{max-height:540px}
@media(max-width:700px){.about-identity{margin-bottom:30px}.about-identity>img{width:130px;margin-top:20px}.about-identity h2{margin-bottom:0}.contact-link{font-size:clamp(22px,6.2vw,34px)}.detail-prose .competition-caption{font-size:11px}}
.frc-chapter{padding-bottom:58px}.ecu-chapter{padding-top:0;padding-bottom:70px}
@media(min-width:701px){.frc-render,.model-stage{height:clamp(360px,35vw,500px)}}
@media(max-width:700px){.frc-chapter{padding-bottom:45px}.ecu-chapter{padding-bottom:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none;clip-path:none}}
