@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f3f2e9;--ink:#173b31;--muted:#67736a;--line:#cdd3c5;--lime:#d6eb84}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,canvas:focus-visible{outline:3px solid #a8be58;outline-offset:6px}header,main,footer{max-width:1536px;margin:auto}header{height:110px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-weight:800;font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-2px}.brand span{color:#7e9279;margin:0 3px}nav{display:flex;gap:38px;align-items:center;font-size:14px}nav .nav-contact{border-bottom:1px solid var(--ink);padding:12px 0}.nav-contact span{margin-left:20px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:5%;padding:75px 6% 65px;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;line-height:1.8}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#739a43;margin-right:8px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(56px,6.3vw,96px);line-height:1.06;letter-spacing:-5px;margin:26px 0}em{font-family:Georgia,serif;font-weight:400}h1 em{color:#7b8c53}.intro{font-size:17px;line-height:1.8;max-width:440px;color:#5b6d60}.actions{display:flex;gap:28px;align-items:center;margin-top:32px}.button{display:inline-flex;gap:35px;align-items:center;background:var(--ink);color:var(--paper);padding:18px 24px;font-size:13px;border:1px solid var(--ink);transition:background .2s}.button:hover{background:#2c5141;text-decoration:none}.text-link{font-size:13px;font-weight:600}.hero-note{display:flex;flex-direction:column;gap:7px;margin-top:54px;font-size:11px;color:var(--muted)}.hero-note span:first-child{font-size:9px;letter-spacing:1.5px}.arena{margin:0;align-self:stretch;min-height:480px;background:#142f28;color:#d9e2cd;position:relative;display:flex;flex-direction:column;border:1px solid #304b3f;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:32px 32px}.figure-top,.figure-bottom{display:flex;justify-content:space-between;align-items:center;padding:25px;font-size:9px;letter-spacing:1px}.figure-top{border-bottom:1px solid #ffffff16}.live{color:var(--lime)}canvas{width:100%;height:340px;display:block;cursor:grab;touch-action:pan-y;flex:1;min-height:260px}.figure-bottom{letter-spacing:0;gap:10px}.figure-bottom strong{display:block;letter-spacing:1.5px;font-size:11px;margin-bottom:7px}.figure-bottom span{color:#95ac98;font-size:10px}.figure-bottom button{background:transparent;border:1px solid #57715d;color:#d9e2cd;padding:10px;font-size:10px;cursor:pointer}.arena figcaption{font-size:9px;color:#9bb39c;text-align:center;padding:0 15px 15px}.credentials{margin:0 6%;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.credentials>span{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.credentials b{font-size:11px;letter-spacing:0;color:var(--ink);display:block;margin-top:8px;font-weight:500}.section{padding:95px 6%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}h2{font-size:clamp(36px,4vw,58px);line-height:1.15;letter-spacing:-2.5px;margin-bottom:0}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:3px}.project{position:relative;border-top:1px solid var(--line);padding:35px 0}.project-index{font-size:11px;color:#89937f;margin-bottom:25px}.featured{display:grid;grid-template-columns:60px 1.1fr 1fr;gap:25px;padding-bottom:45px}.project h3{font-size:29px;letter-spacing:-1px;line-height:1.3;margin-bottom:18px}.project p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:470px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}.tags span{font-size:9px;border:1px solid var(--line);padding:7px 10px}.project-link{display:inline-block;font-size:12px;border-bottom:1px solid #9ba88d;padding-bottom:6px}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:60px}.arena-diagram{background:#e6e9dc;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:48px;overflow:hidden}.arena-diagram small{font-size:8px;letter-spacing:1px;line-height:1.7;color:#78856f}.field{position:relative;width:180px;height:130px;border:1px solid #8c9c71;transform:rotate(-25deg) skew(12deg);display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:15px;box-shadow:12px 15px 0 #d0d6be}.field i{border:1px solid #99a781}.field span{position:absolute;inset:0;display:grid;place-items:center;font-size:30px;letter-spacing:-2px;color:#627a45}.robocon{background:var(--ink);color:var(--paper)}.robocon>.eyebrow{color:#b0c0a5}.story{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:35px}.story h2{font-size:clamp(45px,5vw,74px);line-height:1.15}.story h2 em{color:var(--lime)}.story>div{padding-top:8px}.story-lead{font-size:18px;line-height:1.5}.story p:not(.story-lead){font-size:14px;color:#bbcabb;line-height:1.85}.story .text-link{display:inline-block;margin-top:15px;color:var(--lime)}.about{display:grid;grid-template-columns:1fr 1fr;gap:11%;align-items:center}.about h2{margin-bottom:25px}.about>div>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.85}.skills>div{padding:25px 0 20px 45px;border-bottom:1px solid var(--line);position:relative}.skills>div:first-child{border-top:1px solid var(--line)}.skills span{position:absolute;left:0;top:30px;font-size:10px;color:#8a977d}.skills h3{font-size:16px;margin:0 0 12px}.skills p{font-size:12px!important;margin:0}.contact{background:#e4e9d8;margin:0 6%;padding:55px 5%;border-top:1px solid #bec8ad}.contact h2{font-size:clamp(42px,6vw,80px)}.contact-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:35px;gap:25px}.contact-bottom p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}footer{padding:40px 6%;display:flex;align-items:center;gap:30px;font-size:10px}footer span{flex:1;color:var(--muted);margin-left:20px}.skip{position:absolute;top:-100px;padding:15px;background:var(--ink);color:white;z-index:10}.skip:focus{top:10px}@media(min-width:1500px){.hero{padding-top:95px;padding-bottom:85px}}@media(max-width:800px){header{height:85px}nav{gap:18px;font-size:12px}.hero{padding-top:45px;grid-template-columns:1fr;gap:40px}h1{font-size:70px;letter-spacing:-4px}.hero-note{margin-top:30px}.arena{min-height:400px}canvas{height:280px}.credentials{flex-wrap:wrap;row-gap:25px}.section{padding:65px 6%}.section-heading{align-items:start;gap:20px}.section-heading>p{max-width:180px}.featured{grid-template-columns:30px 1fr;gap:10px}.arena-diagram{grid-column:2;margin-top:25px;min-height:240px}.project-pair{gap:30px}.story{gap:7%}.about{gap:7%}h2{letter-spacing:-1.5px}.contact{padding:40px 6%}.contact-bottom{align-items:start;flex-direction:column}footer{flex-wrap:wrap;gap:20px}footer span{margin-left:0}}@media(max-width:480px){nav>a:first-child{display:none}h1{font-size:60px}.intro{font-size:15px}.section-heading{display:block}.section-heading>p{max-width:none;margin-top:20px}.project-pair,.story,.about{grid-template-columns:1fr}.project-pair{gap:0}.story>div{margin-top:35px}.skills{margin-top:30px}.credentials>span{width:45%}.figure-top,.figure-bottom{padding:18px}.contact h2{font-size:45px}footer span{flex-basis:70%}.project h3{font-size:27px}.button{gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.robotics-project{display:grid;grid-template-columns:.9fr 1.1fr;gap:45px;align-items:center;padding:42px 0}.project-visual{margin:0;background:#e9eee9;border:1px solid var(--line)}.project-visual img{display:block;width:100%;height:auto}.project-visual figcaption{font-size:10px;color:var(--muted);padding:15px 18px}.robotics-copy details{font-size:12px;line-height:1.75;margin:22px 0;color:var(--muted)}.robotics-copy summary{color:var(--ink);font-weight:600;cursor:pointer;padding:5px 0}.robotics-copy details p{font-size:12px!important;margin:10px 0}.bridge-diagram{background:var(--ink);padding:35px;color:var(--paper);text-align:center}.bridge-diagram>.eyebrow{color:var(--lime)}.bridge-diagram>div{display:flex;flex-direction:column;gap:10px;margin:25px auto;max-width:270px}.bridge-diagram span{border:1px solid #769176;padding:15px;font-size:13px}.bridge-diagram b{font-weight:400;color:var(--lime)}.bridge-caption{color:var(--lime)!important;font-size:11px!important;line-height:1.6!important}.bridge-diagram small{font-size:8px;letter-spacing:1px;color:#b2c3a9}@media(max-width:800px){.robotics-project{grid-template-columns:1fr;gap:25px}.project-visual{max-width:650px}.bridge-diagram{padding:30px 20px}}

.lab-showcase{border-bottom:1px solid var(--line)}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.media-grid article{min-width:0}.media-grid img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:#142f28;border:1px solid var(--line)}.media-grid .eyebrow{margin-top:22px}.media-grid h3{font-size:21px;letter-spacing:-.6px;line-height:1.35}.media-grid p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9}.reel{margin-top:65px;background:#e4e9d8;padding:30px}.reel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.reel h3{font-size:26px;letter-spacing:-1px;margin-bottom:20px}.reel-tabs{display:flex;gap:7px;flex-wrap:wrap}.reel-tabs button{background:transparent;color:var(--ink);border:1px solid #b3c09e;padding:10px 13px;font-size:11px;cursor:pointer}.reel-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.reel video{width:100%;max-height:610px;display:block;background:#10251e;aspect-ratio:1100/620;object-fit:contain}.reel>p{font-size:11px;line-height:1.8;color:var(--muted);margin:15px 0 22px}.reel-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.build-notes{display:grid;grid-template-columns:1fr 1fr;gap:35px 55px;margin-top:65px}.build-notes h3{font-size:23px;line-height:1.4;letter-spacing:-.6px}.build-notes article{border-top:1px solid var(--line);padding-top:22px;scroll-margin-top:30px}.build-notes p:not(.eyebrow),.build-notes details{font-size:12px;line-height:1.9;color:var(--muted)}.build-notes summary{font-weight:600;color:var(--ink);cursor:pointer}.build-notes details p{margin-top:15px}.build-notes>div h3{font-size:31px}@media(max-width:800px){.media-grid{grid-template-columns:1fr;gap:35px}.media-grid img{max-height:360px}.reel{padding:18px}.reel-heading{display:block}.reel-tabs{margin-bottom:20px}.build-notes{grid-template-columns:1fr;gap:25px}.reel-actions{gap:20px}.reel-actions .button{font-size:11px}.reel video{min-height:180px}nav{gap:18px}}@media(max-width:480px){nav>a:nth-child(2){display:none}}

.perception-hero{min-height:400px}.perception-hero video{width:100%;height:auto;max-height:420px;object-fit:contain;background:#10251e;flex:1}.perception-hero .figure-bottom{padding-bottom:18px}@media(max-width:480px){nav>a:first-child{display:block}nav>a:nth-child(2){display:block}}

