@charset "UTF-8";
:root{--ink:#0b0b0b;--surface:#141414;--paper:#f3f0e9;--muted:#a5a5a5;--line:#303030;--pad:clamp(24px,4.3vw,72px);--ease:cubic-bezier(.22,1,.36,1);color-scheme:dark;font-family:Arial,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--ink);color:var(--paper);font-size:17px;line-height:1.65}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:disabled{cursor:default;color:var(--muted)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--paper);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12;font-weight:500}h1:focus,main:focus{outline:none}h2{font-size:clamp(38px,5.2vw,76px);letter-spacing:-.055em}h3{font-size:clamp(23px,2.4vw,36px);letter-spacing:-.035em}p{max-width:68ch}p+p{margin-top:20px}svg{display:block;width:100%;height:auto}img{display:block;max-width:100%;object-fit:contain}::selection{background:var(--paper);color:var(--ink)}[hidden]{display:none!important}.shell{max-width:1600px;margin:auto;padding-left:var(--pad);padding-right:var(--pad)}.mono,.eyebrow,.caption{font-family:Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.6;letter-spacing:.045em}.eyebrow{text-transform:uppercase}.muted,.caption{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:16px;z-index:200;background:var(--paper);color:var(--ink);padding:12px 20px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{height:88px;position:fixed;inset:0 0 auto;z-index:60;display:flex;align-items:center;gap:35px;padding:0 var(--pad);background:#0b0b0bf2;border-bottom:1px solid #ffffff0d}.wordmark{display:flex;align-items:center;gap:13px;font-size:13px;letter-spacing:.015em;white-space:nowrap;min-height:44px}.wordmark>span:first-child{font-weight:700}.wordmark-slash{color:#6a6a6a}.wordmark-field{font-size:11px;letter-spacing:.08em}.desktop-nav{display:flex;gap:28px;margin-left:auto;align-items:center}.desktop-nav a{font-size:13px;position:relative;padding:12px 0}.desktop-nav a:after{content:"";position:absolute;bottom:6px;left:0;right:0;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ease)}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:18px}.language-button,.cv-button{min-height:44px;font-size:12px}.language-button span,.cv-button span{margin-left:8px}.cv-button{border:1px solid #666;padding:0 15px;min-height:36px}.cv-button:hover{border-color:var(--paper)}.menu-button{display:none;width:44px;height:44px;padding:10px}.menu-button span{display:block;height:1px;background:var(--paper);margin:7px 0}
main{min-height:calc(100svh - 230px);padding-top:88px}.no-js{padding-top:100px;padding-bottom:100px}.no-js h1{font-size:clamp(42px,8vw,110px);margin:30px 0}.hero{position:relative;min-height:730px;height:calc(100svh - 88px);max-height:1100px;overflow:hidden;isolation:isolate}.hero:after{content:"";position:absolute;bottom:0;left:var(--pad);right:var(--pad);height:1px;background:var(--line)}.hero-meta{position:relative;z-index:5;padding-top:35px;display:flex;justify-content:space-between;align-items:flex-start}.hero-name{font-size:14px;letter-spacing:.16em}.hero-role{margin-top:5px;font-size:12px;color:var(--muted)}.hero-edition{text-align:right;max-width:210px}.hero-title{position:absolute;top:91px;left:50%;width:calc(100% - var(--pad)*1.45);transform:translate(-50%,var(--maker-y,0px));font-size:clamp(124px,24.4vw,386px);font-weight:900;letter-spacing:-.075em;line-height:.86;text-align:center;opacity:var(--maker-opacity,1);z-index:-1}.hero-title span{display:block}.hero-stage{position:absolute;inset:100px 0 115px;max-width:1600px;margin:auto;pointer-events:none}.portrait-pair{position:absolute;left:8%;bottom:-45px;width:49%;height:100%;max-height:690px;filter:grayscale(1);pointer-events:none}.portrait-pose{position:absolute;inset:0;transition:opacity 720ms var(--ease);display:flex;align-items:flex-end}.portrait-pose>svg,.portrait-pose>img{width:100%;height:100%;object-fit:contain;object-position:bottom}.portrait-pose.pointing{opacity:0}.pose-b .portrait-pose.assembly{opacity:0}.pose-b .portrait-pose.pointing{opacity:1}.hero .portrait-pair{max-width:720px}.portrait-note{position:absolute;left:19%;bottom:28px;font-size:10px;letter-spacing:.02em;color:#b0b0b0;z-index:4}.hero-arm{position:absolute;right:2%;bottom:-45px;width:42%;pointer-events:auto;transform:rotate(-4deg)}.hero-stage .object-button{padding:0}.object-button{position:relative;display:block;min-width:44px;min-height:44px;touch-action:pan-y}.object-button .object-hover{display:block;filter:grayscale(1);transform:translateY(0) scale(1);transition:filter 340ms ease-out,transform 320ms var(--ease)}.object-button:hover .object-hover,.object-button:focus-visible .object-hover,.object-button.selected .object-hover{filter:grayscale(0);transform:translateY(-5px) scale(1.03)}.object-tilt{display:block;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform 100ms linear}.object-float{display:block;animation:float 8s ease-in-out infinite;animation-delay:var(--delay,0s);animation-play-state:paused}.scene-visible .object-float{animation-play-state:running}.page-hidden .object-float{animation-play-state:paused!important}.hero-component{position:absolute;pointer-events:auto;transform:translateY(var(--component-y,0px))}.hero-component.c-pi{width:17%;left:0;top:35%;--delay:-3s}.hero-component.c-motor{width:18%;right:3%;top:4%;--delay:-1s}.hero-component.c-camera{width:12%;left:49%;top:25%;--delay:-5s}.hero-component.c-esp32{width:11%;right:31%;top:2%;--delay:-7s}.hero-component.c-encoder{width:11%;left:1%;bottom:1%;--delay:-2s}.hero-component.c-gear{width:9%;right:0;bottom:10%;--delay:-4s}.hero-object-number{position:absolute;top:25%;left:15%;color:#a5a5a5;font-family:Consolas,monospace;font-size:10px;pointer-events:none}.hero-bottom{position:absolute;bottom:25px;left:var(--pad);right:var(--pad);display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px;z-index:5}.hero-claim{font-size:clamp(21px,2.1vw,32px);letter-spacing:-.04em;line-height:1.2}.hero-specialties{color:var(--muted);margin-top:9px}.hero-controls{display:flex;align-items:center;gap:24px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;padding:12px 20px;border:1px solid #71716e;font-size:13px;line-height:1.5;transition:background 180ms,color 180ms,border-color 180ms}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button:hover{border-color:var(--paper);background:#222}.button.light:hover{background:#d3d0c9;color:var(--ink)}.button .arrow,.text-link .arrow{display:inline-block;transition:transform 180ms}.button:hover .arrow,.text-link:hover .arrow{transform:translateX(3px)}.text-link{display:inline-flex;gap:22px;align-items:center;min-height:44px;font-size:13px;border-bottom:1px solid #666}.scroll-hint{position:absolute;right:var(--pad);top:50%;writing-mode:vertical-rl;display:flex;align-items:center;gap:14px;color:var(--muted);z-index:8;font-size:10px;letter-spacing:.08em;min-width:44px;min-height:120px}.scroll-hint:after{content:"";height:55px;width:1px;background:#747474}.hero .hero-arm .object-button:focus-visible{outline-offset:-30px}
.section{padding-top:116px;padding-bottom:116px}.section-label{display:flex;align-items:center;gap:18px;margin-bottom:40px}.section-label:before{content:"";width:25px;height:1px;background:var(--muted)}.intro-section{display:grid;grid-template-columns:1fr 2fr;gap:50px;border-bottom:1px solid var(--line)}.intro-copy{font-size:clamp(25px,3.1vw,45px);line-height:1.45;letter-spacing:-.035em;max-width:900px}.intro-copy .muted{color:#777}.intro-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:40px;align-items:center}.gallery-header,.section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:45px}.gallery-header h2{max-width:700px}.gallery-header>p{max-width:290px;font-size:14px;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:auto auto;border-top:1px solid var(--line);border-left:1px solid var(--line)}.gallery-item{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;padding:20px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;text-align:left}.gallery-item.large{grid-row:span 2;min-height:680px;background:#101010}.gallery-item>.object-hover{width:100%;margin:auto}.gallery-item .workshop-svg{width:100%;aspect-ratio:1.16;max-height:230px}.gallery-item.large .workshop-svg{max-height:580px;aspect-ratio:auto}.gallery-meta{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;position:relative;z-index:2}.gallery-meta .mono{font-size:11px}.gallery-name{font-size:17px;line-height:1.4}.gallery-type{display:block;color:var(--muted);font-size:11px;margin-top:4px}.gallery-caption{display:flex;justify-content:space-between;margin-top:18px;color:var(--muted);font-size:12px;gap:20px}.gallery-extra{display:grid;grid-template-columns:1fr 2fr;border-bottom:1px solid var(--line);padding:22px 0;gap:50px;align-items:center}.gallery-extra .object-button{height:170px;width:220px;margin:auto}.gallery-extra .workshop-svg{height:170px;width:100%}.gallery-extra p{font-size:14px;color:var(--muted)}.selected-work{background:var(--surface)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 28px}.project-card{min-width:0}.project-media{display:block;position:relative;overflow:hidden;background:#1b1c1a;aspect-ratio:1.25;isolation:isolate}.project-media:after{content:"";position:absolute;inset:10px;border:1px solid #ffffff07;pointer-events:none}.project-media .workshop-svg{width:100%;height:100%;filter:grayscale(1);transform:scale(.95);transition:transform 400ms var(--ease),filter 300ms}.project-media:hover .workshop-svg{transform:scale(.974)}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform 300ms}.project-media:hover img{transform:scale(1.025)}.media-caption{position:absolute;left:20px;bottom:16px;font-size:11px;color:#b7b7ae}.project-number{position:absolute;top:20px;left:20px;font-size:11px;color:#a5a5a5}.project-card .project-heading{display:flex;justify-content:space-between;gap:20px;margin-top:20px}.project-heading h3{font-size:25px}.project-subtitle{font-size:14px;color:var(--muted);margin-top:6px}.project-heading>.arrow{font-size:25px}.project-meta{display:flex;justify-content:space-between;gap:14px;margin-top:14px;color:var(--muted);font-size:11px}.project-tech{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:15px;font-size:12px;color:#aaa}.project-card.featured{grid-column:span 2;display:grid;grid-template-columns:1.65fr 1fr;align-items:center;gap:45px}.project-card.featured .project-media{aspect-ratio:1.5}.project-card.featured h3{font-size:clamp(30px,3vw,48px)}.project-card.featured .project-meta{flex-direction:column}.home-work-list{margin-top:55px;border-top:1px solid var(--line)}.home-work-row{min-height:94px;display:grid;grid-template-columns:60px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line)}.home-work-row h3{font-size:24px}.home-work-row:hover{background:#ffffff03}.home-work-row .mono{color:var(--muted)}.contact-band{display:grid;grid-template-columns:1fr auto;align-items:end;gap:30px}.contact-band h2{max-width:900px}.contact-band .eyebrow{margin-bottom:30px}.contact-band .round-link{width:96px;height:96px;border:1px solid #747474;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:32px;transition:background 200ms,color 200ms}.round-link:hover{background:var(--paper);color:var(--ink)}
.page-top{padding-top:70px;padding-bottom:56px}.page-top .eyebrow{color:var(--muted);margin-bottom:24px}.page-title{font-size:clamp(54px,9vw,144px);letter-spacing:-.065em;line-height:1.03;text-transform:uppercase;overflow-wrap:anywhere}.page-lead{margin-top:30px;color:var(--muted);font-size:18px;max-width:680px}.about-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;padding-bottom:100px}.about-portrait{height:680px;position:relative;background:#141514;overflow:hidden}.about-portrait .portrait-pair{left:0;width:100%;height:95%;bottom:10px}.about-portrait .portrait-note{left:20px;bottom:18px}.about-copy .large-copy{font-size:clamp(23px,2.3vw,34px);line-height:1.5;letter-spacing:-.025em}.about-copy .mono{margin-bottom:26px;color:var(--muted)}.about-copy .text-link{margin-top:30px}.education{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--line);gap:50px;padding-top:55px;padding-bottom:55px}.education h3{margin-bottom:14px}.education p{color:var(--muted)}.skills-list{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.skill-group{border-top:1px solid var(--line);padding:30px 0 40px}.skill-group h3{font-size:22px;margin-bottom:20px}.skill-group p{font-size:15px;color:var(--muted);line-height:1.9}.experience-layout{display:grid;grid-template-columns:340px 1fr;gap:70px;padding-bottom:110px}.timeline{border-top:1px solid var(--line);align-self:start}.timeline button{display:block;text-align:left;width:100%;padding:28px 18px 30px 25px;border-bottom:1px solid var(--line);position:relative;min-height:140px}.timeline button:before{content:"";position:absolute;left:0;top:38px;width:6px;height:6px;border:1px solid #777;border-radius:50%}.timeline button[aria-selected=true]:before{background:var(--paper);border-color:var(--paper)}.timeline button[aria-selected=true]{background:#ffffff05;border-bottom-color:var(--paper)}.timeline .mono{color:var(--muted)}.timeline strong{display:block;font-size:25px;font-weight:400;letter-spacing:-.035em;margin:8px 0 0}.timeline small{display:block;font-size:14px;margin-top:4px;color:var(--muted)}.experience-detail{min-height:770px;position:relative}.experience-detail .detail-intro{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;gap:20px;min-height:240px}.experience-art{width:260px;max-width:43%;filter:grayscale(1)}.detail-intro .eyebrow{color:var(--muted);margin-bottom:14px}.detail-groups{display:grid;gap:27px}.detail-group{display:grid;grid-template-columns:30px 1fr;gap:15px;border-top:1px solid var(--line);padding-top:25px}.detail-group .mono{color:var(--muted)}.detail-group h3{font-size:22px;margin-bottom:12px}.detail-group p{font-size:16px;color:#b6b6b6}.detail-animate{animation:detailIn 300ms var(--ease)}
.work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:44px;flex-wrap:wrap}.filters,.view-controls{display:flex;gap:10px}.filters button,.view-controls button{min-height:44px;padding:7px 13px;color:var(--muted);font-size:13px;border:1px solid transparent;white-space:nowrap}.filters button[aria-pressed=true]{color:var(--paper);border-color:#777}.view-controls button[aria-pressed=true]{color:var(--paper);text-decoration:underline;text-underline-offset:7px}.view-controls{gap:0}.work-count{color:var(--muted);margin-bottom:20px}.work-page{padding-bottom:110px}.work-grid.index-view{display:block}.index-view .project-card{display:grid;grid-template-columns:140px 1fr;gap:30px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.index-view .project-media{aspect-ratio:1.4}.index-view .media-caption,.index-view .project-number{display:none}.index-view .project-heading{margin-top:0}.index-view .project-heading h3{font-size:30px}.index-view .project-tech{margin-top:7px}.index-view .project-meta{margin-top:9px}.result-enter{animation:detailIn 280ms var(--ease)}
.case-top{padding-top:44px}.case-top>.text-link{margin-bottom:45px}.case-title{font-size:clamp(44px,7.4vw,112px);letter-spacing:-.06em;max-width:1150px;line-height:1.08;overflow-wrap:anywhere}.case-subtitle{font-size:clamp(24px,3vw,42px);color:var(--muted);margin-top:14px;letter-spacing:-.035em}.case-facts{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:40px;border-top:1px solid var(--line);margin-top:45px;padding:22px 0 36px}.case-facts dt{color:var(--muted);font-family:Consolas,monospace;font-size:11px;margin-bottom:8px}.case-facts dd{margin:0;font-size:14px}.case-hero{aspect-ratio:1.9;background:#191a18;position:relative;margin:0;overflow:hidden}.case-hero svg{width:100%;height:100%;filter:grayscale(1)}.case-hero>img,.case-hero>button,.case-hero>button>img{width:100%;height:100%;object-fit:cover}.case-hero>button{padding:0}.case-hero figcaption{position:absolute;bottom:20px;left:24px;right:24px;font-size:12px;color:#bbb}.case-content{display:grid;grid-template-columns:1fr 2fr;gap:70px;padding-top:80px;padding-bottom:95px}.case-aside{position:sticky;top:120px;align-self:start}.case-aside .mono{color:var(--muted);margin-bottom:16px}.case-aside p{font-size:14px;color:var(--muted)}.case-section{padding-bottom:42px;margin-bottom:36px;border-bottom:1px solid var(--line)}.case-section h2{font-size:30px;margin-bottom:20px;letter-spacing:-.035em}.case-section p{color:#b6b6b6}.system-strip{padding:24px;background:#151713;border:1px solid #33382e;font-family:Consolas,monospace;font-size:14px!important;line-height:1.8;color:#c0c5b8!important}.evidence-note{border-left:1px solid #a5a5a5;padding-left:22px}.case-next{display:flex;justify-content:space-between;gap:40px;border-top:1px solid var(--line);padding-top:40px}.case-next h3{margin-top:12px}.case-next>.arrow{font-size:50px}.project-video{width:100%;max-height:650px;margin-bottom:50px}
.contact-page{min-height:75svh;padding-bottom:90px;position:relative}.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;margin-top:55px}.email-link{display:block;font-size:clamp(20px,3.1vw,47px);letter-spacing:-.04em;overflow-wrap:anywhere;border-bottom:1px solid #666;padding-bottom:18px;line-height:1.4}.email-link:hover{border-color:var(--paper)}.copy-button{margin-top:20px}.contact-socials{display:grid;border-top:1px solid var(--line)}.contact-socials a,.contact-socials button{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding:20px 0;text-align:left;font-size:19px}.contact-details{display:flex;gap:70px;margin-top:65px}.contact-details .mono{color:var(--muted);margin-bottom:8px}.contact-details p{font-size:14px}.not-found{min-height:70svh;padding-top:100px;padding-bottom:90px}.not-found h1{font-size:clamp(80px,18vw,240px);letter-spacing:-.06em;line-height:1}.not-found p{margin:25px 0}.site-footer{display:flex;justify-content:space-between;align-items:end;gap:35px;padding-top:45px;padding-bottom:38px;border-top:1px solid var(--line);font-size:12px}.site-footer>div:first-child>a{font-weight:700;letter-spacing:.04em}.site-footer p{font-size:12px;color:var(--muted);margin-top:8px}.footer-links{display:flex;gap:22px}.site-footer>.mono{font-size:10px;color:#949494}.footer-links a{min-height:44px;display:flex;align-items:center}.site-footer a:hover{color:#bbb}
.route-curtain{position:fixed;inset:88px 0 0;background:#101010;z-index:45;pointer-events:none;transform:scaleY(0);transform-origin:bottom}.route-out main{opacity:0;transform:translateY(-8px);transition:opacity 160ms,transform 160ms}.route-out .route-curtain{transform:scaleY(1);transition:transform 240ms var(--ease)}.route-in main{animation:routeIn 340ms var(--ease)}.route-in .route-curtain{transform:scaleY(0);transform-origin:top;transition:transform 320ms var(--ease)}.reveal{opacity:1}.motion-ready .reveal.pending{opacity:0;transform:translateY(20px)}.reveal.visible{animation:reveal 600ms var(--ease) both;animation-delay:var(--reveal-delay,0ms)}
dialog{color:var(--paper);border:1px solid #555;background:#141414;padding:32px;max-width:calc(100% - 40px);max-height:calc(100svh - 60px);overflow:auto}dialog::backdrop{background:#000c}dialog[open]{animation:dialogIn 260ms var(--ease)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:35px}.dialog-top>button{min-width:44px;min-height:44px;font-size:13px;border-bottom:1px solid #666}.content-dialog{width:520px}.content-dialog h2{font-size:42px}.content-dialog p{margin-bottom:28px;color:var(--muted);font-size:15px}.cv-options{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cv-option{border-top:1px solid #555;padding-top:18px;font-size:15px}.cv-option span{display:block;font-size:12px;color:var(--muted);margin-top:8px}.cv-option a{display:flex;justify-content:space-between;gap:20px;min-height:44px;align-items:center;border-bottom:1px solid #888}.menu-dialog{margin:0 0 auto auto;width:min(520px,100%);height:100svh;max-height:100svh;max-width:100%;border:0;padding:28px var(--pad)}.menu-dialog nav{display:flex;flex-direction:column;gap:10px;margin:65px 0}.menu-dialog nav a{font-size:clamp(30px,7vw,48px);letter-spacing:-.04em;line-height:1.5}.menu-dialog nav a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}.image-dialog{padding:18px;width:min(1200px,95vw)}.image-dialog img{max-height:78svh;margin:auto}.object-panel{position:fixed;right:var(--pad);bottom:28px;width:370px;max-width:calc(100vw - 40px);background:#1b1c19;border:1px solid #72766a;padding:25px;z-index:70;box-shadow:0 15px 60px #0008;animation:detailIn 240ms var(--ease)}.object-panel-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.object-panel h2{font-size:27px;letter-spacing:-.035em;margin-top:10px}.object-panel p{font-size:14px;margin-top:16px;color:#bcbeb6;line-height:1.6}.object-panel button[data-close-object]{min-height:44px;min-width:44px;margin-top:-15px;margin-right:-12px;font-size:23px}.object-panel .text-link{margin-top:16px}.object-panel .caption{font-size:11px;color:#aaa}.object-panel:focus{outline:1px solid var(--paper)}#tooltip{position:fixed;z-index:75;max-width:250px;padding:12px 15px;background:#23261f;color:var(--paper);border:1px solid #656d59;pointer-events:none;font-size:12px;line-height:1.5;animation:tooltipIn 200ms var(--ease)}#tooltip strong{display:block;font-size:13px;font-weight:500}#tooltip span{color:#b5bbac;font-size:11px}
@keyframes float{0%,100%{transform:translateY(-4px) rotate(-1deg)}50%{transform:translateY(4px) rotate(1deg)}}@keyframes reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes detailIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes routeIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes dialogIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes tooltipIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero-title{font-size:386px;width:1500px}.hero-stage{left:50%;right:auto;width:1600px;transform:translateX(-50%)}}
@media(max-width:1100px){.desktop-nav{gap:18px}.site-header{gap:24px}.header-actions{gap:12px}.wordmark{gap:9px}.wordmark-field{font-size:10px}.hero{min-height:700px}.hero-controls{gap:18px}.hero-bottom{grid-template-columns:1fr}.hero-controls{justify-content:flex-end;margin-top:-43px}.hero-claim{font-size:23px;max-width:350px}.hero-specialties{font-size:10px}.hero-stage{bottom:150px}.portrait-pair{left:7%;width:52%}.hero-arm{width:44%;right:0}.hero-title{top:120px}.gallery-item.large{min-height:560px}.gallery-item{padding:15px}.gallery-name{font-size:15px}.gallery-type{font-size:10px}.experience-layout{grid-template-columns:290px 1fr;gap:40px}.about-layout{gap:45px}.about-portrait{height:580px}.contact-layout{gap:40px}.case-content{gap:45px}.project-meta{flex-direction:column;gap:3px}}
@media(max-width:860px){.desktop-nav{display:none}.header-actions{margin-left:auto;gap:16px}.menu-button{display:block}.site-header{height:76px}main{padding-top:76px}.route-curtain{top:76px}.hero{height:calc(100svh - 76px);min-height:700px}.hero-meta{padding-top:27px}.hero-title{top:133px}.hero-stage{top:140px;bottom:160px}.hero-claim{font-size:24px;max-width:none}.hero-bottom{display:flex;flex-direction:column;align-items:stretch;gap:16px}.hero-controls{justify-content:flex-start;margin-top:0}.hero-stage .portrait-pair{width:60%;left:0;bottom:-20px}.hero-arm{width:48%;bottom:-15px}.hero-component.c-pi{top:24%;left:-3%;width:20%}.hero-component.c-motor{top:0;width:23%;right:3%}.hero-component.c-camera{top:21%;left:53%;width:16%}.hero-component.c-esp32{top:-5%;right:25%;width:16%}.hero-component.c-encoder,.hero-component.c-gear{display:none}.hero-edition{font-size:10px}.hero-name{font-size:13px}.hero-role{font-size:11px}.hero-specialties{font-size:12px}.scroll-hint{right:12px;font-size:9px}.intro-section{grid-template-columns:1fr;gap:5px}.section{padding-top:80px;padding-bottom:80px}.intro-copy{font-size:31px}.gallery-header{align-items:flex-start}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item.large{grid-row:span 1;grid-column:span 2;min-height:460px}.gallery-item.large .workshop-svg{max-height:430px}.gallery-item.large>.object-hover{max-width:500px}.gallery-item .workshop-svg{max-height:230px}.gallery-extra{grid-template-columns:1fr 1fr;gap:30px}.gallery-header>p{font-size:13px;max-width:220px}.gallery-header h2{font-size:44px}.project-card.featured{grid-template-columns:1fr;gap:0}.project-card.featured .project-heading{margin-top:22px}.project-card.featured .project-meta{flex-direction:row}.project-card.featured h3{font-size:32px}.project-card .project-heading h3{font-size:23px}.project-meta{font-size:10px}.about-layout{grid-template-columns:1fr 1fr;gap:28px;align-items:start}.about-portrait{height:500px}.about-copy .large-copy{font-size:24px}.education{grid-template-columns:1fr;gap:18px}.experience-layout{grid-template-columns:1fr;gap:35px}.timeline{display:flex}.timeline button{width:50%;min-height:145px}.timeline strong{font-size:24px}.experience-detail{min-height:700px}.detail-intro h2{font-size:42px}.contact-layout{grid-template-columns:1fr;gap:45px}.contact-socials{grid-template-columns:1fr 1fr 1fr;gap:25px}.contact-socials a,.contact-socials button{font-size:17px}.site-footer{flex-wrap:wrap}.site-footer>.mono{width:100%;font-size:10px}.case-content{grid-template-columns:1fr}.case-aside{position:static;max-width:600px}.case-facts{gap:25px}.case-facts dd{font-size:13px}.page-top{padding-top:55px}.page-title{font-size:clamp(54px,10vw,100px)}}
@media(max-width:560px){:root{--pad:22px}body{font-size:16px}.wordmark{font-size:12px;gap:9px}.wordmark-field{display:none}.header-actions{gap:12px}.cv-button{padding:0 10px;min-height:44px}.language-button span{display:none}.site-header{gap:14px}.hero{height:auto;min-height:850px}.hero-meta{padding-top:24px;display:block}.hero-name{font-size:12px;letter-spacing:.1em}.hero-role{max-width:250px;font-size:11px}.hero-edition{display:none}.hero-title{top:122px;font-size:25vw;width:calc(100% - 28px);letter-spacing:-.075em}.hero-stage{top:170px;bottom:195px}.hero-stage .portrait-pair{width:94%;height:80%;left:0;bottom:auto;top:-35px;max-height:440px}.hero .portrait-pair .pointing{transform:translateX(-25px)}.hero-arm{width:62%;bottom:-18px;right:-10px;transform:rotate(-7deg)}.hero-component.c-pi{width:29%;top:30%;left:-5%}.hero-component.c-motor{width:31%;right:-6%;top:8%}.hero-component.c-camera{width:22%;top:44%;left:39%}.hero-component.c-esp32{width:23%;right:3%;top:-5%}.hero .portrait-note{left:14%;bottom:12px;font-size:9px;max-width:130px}.hero-bottom{bottom:28px;gap:23px}.hero-claim{font-size:26px;max-width:300px}.hero-specialties{font-size:10px;letter-spacing:0}.hero-controls{gap:20px;flex-wrap:wrap}.hero-controls .button{gap:20px;padding:12px 15px;font-size:12px}.hero-controls .text-link{font-size:12px;gap:8px}.scroll-hint{top:44%;right:0;font-size:8px;min-width:29px;min-height:100px}.scroll-hint:after{height:30px}.section{padding-top:65px;padding-bottom:65px}.section-label{margin-bottom:26px;font-size:11px}.intro-copy{font-size:27px}.intro-bottom{align-items:flex-start;gap:20px;flex-direction:column}.intro-bottom .mono{font-size:11px}.gallery-header,.section-header{display:block;margin-bottom:30px}.gallery-header h2{font-size:41px}.gallery-header>p{margin-top:24px;max-width:330px;font-size:14px}.gallery-item.large{min-height:340px;padding:18px}.gallery-item.large .workshop-svg{max-height:320px}.gallery-item{padding:16px 12px}.gallery-item .workshop-svg{max-height:160px}.gallery-meta .mono{font-size:10px}.gallery-name{font-size:14px}.gallery-type{font-size:10px;line-height:1.5}.gallery-caption{display:block;font-size:11px;line-height:1.7}.gallery-extra{grid-template-columns:110px 1fr;gap:15px}.gallery-extra .object-button{width:110px;height:140px}.gallery-extra .workshop-svg{height:140px}.gallery-extra p{font-size:12px}.work-grid{grid-template-columns:1fr;gap:40px}.project-card.featured{grid-column:auto}.project-card.featured .project-media{aspect-ratio:1.25}.project-card.featured .project-meta{flex-direction:column}.project-heading h3,.project-card.featured h3,.project-card .project-heading h3{font-size:27px}.project-meta{flex-direction:column;font-size:11px}.project-tech{font-size:11px;gap:5px 14px}.media-caption{font-size:10px;left:16px;bottom:14px}.project-number{left:16px;top:16px}.section-header .text-link{margin-top:25px}.home-work-row{grid-template-columns:25px 1fr auto;gap:14px;min-height:110px}.home-work-row h3{font-size:21px}.home-work-row .mono{font-size:10px}.contact-band{grid-template-columns:1fr 55px;gap:15px}.contact-band h2{font-size:39px}.contact-band .round-link{width:55px;height:55px;font-size:25px}.contact-band .eyebrow{font-size:10px;margin-bottom:22px}.site-footer{padding-top:30px;gap:22px}.footer-links{gap:22px}.site-footer>.mono{font-size:10px}.page-top{padding-top:42px;padding-bottom:36px}.page-title{font-size:clamp(42px,12vw,66px)}.page-top .eyebrow{font-size:10px;margin-bottom:20px}.page-lead{font-size:16px;line-height:1.65;margin-top:24px}.about-layout{grid-template-columns:1fr;padding-bottom:65px;gap:35px}.about-portrait{height:470px}.about-portrait .portrait-pair{left:0;width:100%}.about-copy .large-copy{font-size:25px}.about-copy .mono{font-size:11px;margin-bottom:18px}.education{padding-top:36px;padding-bottom:36px}.education h3{font-size:26px}.education p{font-size:15px}.skills-list{grid-template-columns:1fr;gap:0}.skill-group{padding:24px 0 30px}.skill-group h3{font-size:22px;margin-bottom:14px}.skills-section{padding-top:25px}.experience-layout{padding-bottom:65px;gap:25px}.timeline{flex-direction:column}.timeline button{width:100%;min-height:115px;padding:22px 16px 22px 24px}.timeline button:before{top:31px}.timeline strong{font-size:25px}.timeline .mono{font-size:11px}.experience-detail{min-height:780px}.experience-detail .detail-intro{min-height:210px;padding-top:10px}.detail-intro h2{font-size:35px}.detail-intro .eyebrow{font-size:10px}.experience-art{max-width:45%}.detail-group{gap:10px;grid-template-columns:25px 1fr;padding-top:22px}.detail-group h3{font-size:21px}.detail-group p{font-size:15px}.work-toolbar{gap:5px;padding:10px 0}.filters{gap:0;flex-wrap:wrap}.filters button{font-size:12px;padding:7px 10px}.view-controls button{font-size:12px;padding:7px 10px}.work-count{font-size:11px}.index-view .project-card{grid-template-columns:75px 1fr;gap:17px;padding:22px 0}.index-view .project-heading h3{font-size:22px}.index-view .project-subtitle{font-size:12px}.index-view .project-meta{font-size:10px}.index-view .project-tech{font-size:10px}.work-page{padding-bottom:65px}.case-top{padding-top:25px}.case-top>.text-link{margin-bottom:28px}.case-title{font-size:clamp(35px,10vw,55px)}.case-subtitle{font-size:25px}.case-facts{grid-template-columns:1fr 1fr;gap:24px 20px;margin-top:30px;padding-top:20px}.case-facts>div:last-child{grid-column:span 2}.case-facts dt{font-size:10px}.case-facts dd{font-size:12px}.case-hero{aspect-ratio:1.15}.case-hero figcaption{font-size:10px;left:16px;bottom:14px}.case-content{padding-top:40px;padding-bottom:60px;gap:40px}.case-section{margin-bottom:28px;padding-bottom:30px}.case-section h2{font-size:26px;margin-bottom:17px}.case-section p{font-size:16px}.system-strip{font-size:13px!important;padding:20px}.case-next{gap:20px}.case-next .mono{font-size:10px}.case-next h3{font-size:25px}.case-next>.arrow{font-size:35px}.contact-layout{margin-top:20px}.contact-socials{grid-template-columns:1fr;gap:0}.contact-socials a,.contact-socials button{font-size:20px}.contact-details{flex-direction:column;gap:24px;margin-top:40px}.email-link{font-size:clamp(19px,6vw,30px)}.object-panel{right:20px;bottom:20px;padding:22px;width:340px}.object-panel p{font-size:13px}.object-panel h2{font-size:25px}.content-dialog{padding:24px}.content-dialog h2{font-size:36px}.cv-options{gap:14px}.cv-option{font-size:14px}.content-dialog p{font-size:14px}.not-found{padding-top:70px}.hero-object-number{font-size:8px}}
@media(max-width:359px){:root{--pad:20px}.header-actions{gap:8px}.hero{min-height:840px}.hero-claim{font-size:24px}.hero-controls{gap:13px}.hero-controls .button{font-size:11px;padding:12px;gap:12px}.hero-controls .text-link{font-size:11px}.hero-specialties{font-size:9px}.wordmark-slash{display:none}.hero-meta{padding-top:25px}.gallery-name{font-size:13px}.gallery-type{font-size:9px}.gallery-item{padding:14px 10px}.gallery-extra{grid-template-columns:90px 1fr}.gallery-extra .object-button{width:90px}.contact-band h2{font-size:34px}.project-heading h3{font-size:25px}.filters button{padding:7px 9px}}
.experience-layout>*,.detail-intro>div,.detail-group>div{min-width:0}.experience-art{flex:0 1 260px}.detail-intro h2{overflow-wrap:anywhere}.hero-stage .object-button{width:100%}
/* Keep technical captions legible on small screens as well as desktop. */
.hero-name,.hero-role,.hero-edition,.hero-specialties,.portrait-note,.gallery-type,.gallery-meta .mono,.gallery-caption,.media-caption,.project-number,.project-meta,.project-tech,.site-footer>.mono,.work-count,.case-facts dt,.case-facts dd,.case-hero figcaption,.object-panel .caption,.about-copy .mono,.detail-intro .eyebrow,.page-top .eyebrow,.contact-band .eyebrow,.timeline .mono,.index-view .project-meta,.index-view .project-tech,.intro-bottom .mono,.home-work-row .mono{font-size:12px}
.hero-object-number{font-size:12px}.wordmark-field{font-size:12px}.hero .portrait-note{font-size:12px;line-height:1.5}.hero-specialties{max-width:420px}.portrait-note{left:18%;max-width:250px}.language-button,.cv-button,.filters button,.view-controls button{min-width:44px;min-height:44px}.scroll-hint{min-width:44px}#tooltip span{font-size:12px}
@media(max-width:560px){.hero .portrait-note{left:12%;bottom:0;max-width:160px}.hero-role{max-width:280px}.hero-stage{bottom:200px}.hero-arm{width:70%;right:-6%;bottom:-28px}.hero-specialties{max-width:300px}.gallery-type{font-size:12px}.gallery-name{font-size:16px}.gallery-item{min-height:230px}.gallery-item.large{min-height:350px}.gallery-caption{font-size:12px}.hero-component.c-camera{left:38%;top:45%}.hero-component.c-esp32{right:1%;top:-3%}}
@media(max-width:560px) and (max-height:850px){.hero{height:calc(100svh - 76px);min-height:730px}.hero-stage .portrait-pair{top:-10px;height:86%}.hero-title{top:115px}.hero-stage{top:160px}}
@media(max-width:560px){.hero-component:not(.c-motor) .object-float{animation:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.object-float,.object-tilt{animation:none!important;transform:none!important}.hero-title{transform:translate(-50%,0)!important;opacity:1!important}.hero-component{transform:none!important}.motion-ready .reveal.pending{opacity:1;transform:none}.route-out main{transition:opacity 50ms!important}.route-in main{animation:routeIn 60ms!important}.route-curtain{display:none}}
