@font-face{font-family:sans;src:url(../media/ibm_plex_sans_latin_400_normal-s.p.1-h52z97c7bce.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:sans;src:url(../media/ibm_plex_sans_latin_500_normal-s.p.2broe1i9movoa.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:sans;src:url(../media/ibm_plex_sans_latin_600_normal-s.p.11xxlm8n0_7w8.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:101.35%;descent-override:27.19%;line-gap-override:0.0%;size-adjust:101.13%}.hkyJWW_className{font-family:sans,sans Fallback}.hkyJWW_variable{--font-sans:"sans", "sans Fallback"}
@font-face{font-family:mono;src:url(../media/ibm_plex_mono_latin_400_normal-s.p.19gbeb610ur4n.woff2)format("woff2");font-display:swap}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.rP581a_className{font-family:mono,mono Fallback}.rP581a_variable{--font-mono:"mono", "mono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--page:#f7f8f5;--ink:#233630;--muted:#59675f;--line:#d8dfd8;--accent:#296b55;--plate:#dce4dc;--edge:#aab9ad;--cover:#edf0e8;--metal:#91ad99;--hole:#5b7164;--shadow:#c9d2c7;--dot:#92a798}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#18201e;--ink:#e5ede7;--muted:#b2bfb6;--line:#3c4b43;--accent:#9acbb0;--plate:#647b6b;--edge:#42594c;--cover:#94a996;--metal:#aac6b3;--hole:#263e31;--shadow:#101713;--dot:#789784}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{background:var(--page);color:var(--ink);font-family:var(--font-sans), sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65}::selection{background:color-mix(in srgb, var(--accent) 23%, transparent);color:var(--ink)}a{color:inherit;text-underline-offset:.28em;text-decoration-thickness:1px}a,summary{-webkit-tap-highlight-color:transparent}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}a,summary,.small-arrow{transition:color .16s,transform .18s}p,h1,h2,h3,figure{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--page);color:var(--ink);border:1px solid var(--accent);padding:.65rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-shell{z-index:1;max-width:1060px;margin:0 auto;padding:0 56px;position:relative}.eyebrow{font-family:var(--font-mono), monospace;color:var(--muted);font-size:.75rem;font-weight:400;line-height:1.6}.site-header{justify-content:space-between;align-items:center;gap:1.5rem;padding:34px 0 24px;display:flex}.wordmark{letter-spacing:-.035em;align-items:center;min-height:44px;padding:5px 0;font-size:1.1875rem;font-weight:500;text-decoration:none;display:inline-flex}.wordmark-dot{color:var(--accent)}.location{text-align:right}.story{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:36px;display:grid;position:relative}.story-copy{min-width:0}.intro{padding:80px 0 72px}.greeting{margin-bottom:20px}h1{letter-spacing:-.055em;margin-bottom:27px;font-size:clamp(2.75rem,5.2vw,3.875rem);font-weight:500;line-height:1.08}.intro-description{max-width:385px;color:var(--muted);font-size:1.0625rem;line-height:1.7}.scroll-cue{align-items:center;gap:13px;margin-top:34px;padding:5px 0;text-decoration:none;display:inline-flex}.scroll-cue:hover .eyebrow{color:var(--accent)}.scroll-line{background:var(--accent);transform-origin:top;width:1px;height:32px;transition:transform .2s}.scroll-cue:hover .scroll-line{transform:scaleY(1.2)}.section-label{font-size:.8125rem}.selected-work{scroll-margin-top:2rem}.project{border-bottom:1px solid var(--line);padding:35px 0 40px;scroll-margin-top:3rem}.project-context{margin-bottom:15px}.project h3{letter-spacing:-.035em;margin-bottom:16px;font-size:1.875rem;font-weight:500;line-height:1.2}.project-description,.detail-content p{max-width:395px;color:var(--muted);font-size:1rem;line-height:1.7}.project-detail{margin-top:15px}.project-detail summary{cursor:pointer;width:fit-content;min-height:44px;color:var(--accent);align-items:center;gap:10px;font-size:.8125rem;list-style:none;display:flex}.project-detail summary::-webkit-details-marker{display:none}.detail-plus{font-family:var(--font-mono), monospace;font-size:1rem;transition:transform .18s;display:inline-block}.project-detail[open] .detail-plus{transform:rotate(45deg)}.detail-content{padding:6px 0 2px 21px}.detail-content p{font-size:.9375rem}.text-link{min-height:44px;color:var(--accent);align-items:center;gap:.25rem;margin-top:8px;font-size:.8125rem;display:inline-flex}.visual-column{min-width:0;position:relative}.workbench{--robot-opacity:1;--vision-opacity:0;--systems-opacity:0;--mechanism:0;--alignment:0;--request-x:0px;--request-y:0px;--storage-signal:0;margin:0;padding-top:68px;position:sticky;top:max(40px,50svh - 260px)}.workbench-drawing{stroke-linejoin:round;stroke-linecap:round;width:100%;max-width:390px;height:auto;margin:0 auto;display:block;overflow:visible}.workbench-scene{transform-box:view-box;transform-origin:210px 220px}.scene-robot{opacity:var(--robot-opacity);transform:translateY(calc((1 - var(--robot-opacity)) * -6px))}.scene-vision{opacity:var(--vision-opacity);transform:translateY(calc((1 - var(--vision-opacity)) * 6px))}.scene-systems{opacity:var(--systems-opacity);transform:translateY(calc((1 - var(--systems-opacity)) * 6px))}.diagram-ground,.label-leader{fill:none;stroke:var(--line);stroke-width:1px}.diagram-label text{fill:var(--muted);font-family:var(--font-mono), monospace;stroke:none;font-size:13px}.robot-linkage{transform-box:view-box;transform-origin:179px 239px;transform:rotate(calc(var(--mechanism) * -8deg))}.mechanism-link{fill:var(--metal);stroke:var(--hole);stroke-width:1.5px}.mechanism-forearm{fill:var(--plate)}.joint{fill:var(--cover);stroke:var(--hole);stroke-width:1.5px}.joint-center{fill:var(--hole)}.gripper{fill:none;stroke:var(--accent);stroke-width:5px}.gripped-block{fill:var(--metal);stroke:var(--accent);stroke-width:1.5px}.robot-top{fill:var(--cover);stroke:var(--edge);stroke-width:1.5px}.robot-body{fill:var(--plate);stroke:var(--edge);stroke-width:1.5px}.robot-panel{fill:var(--hole)}.robot-panel-detail{fill:none;stroke:var(--metal);stroke-width:1px}.wheel{fill:var(--hole);stroke:var(--hole);stroke-width:1.5px}.wheel-hub{fill:var(--metal);stroke:var(--edge);stroke-width:1.5px}.wheel-axle{fill:var(--hole)}.image-frame{fill:color-mix(in srgb, var(--plate) 22%, var(--page));stroke:var(--edge);stroke-width:1.5px}.image-horizon{fill:none;stroke:var(--line);stroke-width:1px}.visible-person{fill:var(--plate);stroke:var(--edge);stroke-width:1.5px}.thermal-person{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:3 3}.thermal-offset{transform:translate(calc((1 - var(--alignment)) * 18px), calc((1 - var(--alignment)) * -9px))}.visible-box,.thermal-box{fill:none;stroke-width:1.5px}.visible-box{stroke:var(--edge)}.thermal-box{stroke:var(--accent);stroke-dasharray:3 3}.camera-connection{fill:none;stroke:var(--line);stroke-width:1.5px;stroke-dasharray:3 5}.camera-body{fill:var(--plate);stroke:var(--edge);stroke-width:1.5px}.camera-lens{fill:var(--metal);stroke:var(--hole);stroke-width:1.5px}.camera-indicator{fill:var(--accent)}.camera-mount,.visible-key{fill:none;stroke:var(--edge);stroke-width:2px}.thermal-key{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 3}.network-path{fill:none;stroke:var(--edge);stroke-width:1.5px}.storage-signal{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--storage-signal))}.request-signal{fill:var(--accent);transform:translate(var(--request-x), var(--request-y))}.application-frame{fill:var(--page);stroke:var(--edge);stroke-width:1.5px}.application-bar{fill:none;stroke:var(--edge);stroke-width:1px}.window-dot{fill:var(--edge)}.application-name{fill:var(--ink);font-family:var(--font-sans), sans-serif;stroke:none;font-size:21px;font-weight:500}.application-tile{fill:var(--plate)}.application-row{fill:none;stroke:var(--edge);stroke-width:3px}.monitor-foot{fill:none;stroke:var(--edge);stroke-width:2px}.server-enclosure{fill:var(--plate);stroke:var(--edge);stroke-width:1.5px}.server-unit{fill:var(--cover);stroke:var(--edge);stroke-width:1px}.server-status{fill:var(--accent)}.server-vents{fill:none;stroke:var(--hole);stroke-width:1px;opacity:.55}.storage-body,.storage-top{fill:var(--plate);stroke:var(--edge);stroke-width:1.5px}.storage-top{fill:var(--cover)}.storage-ring{fill:none;stroke:var(--edge);stroke-width:1.5px}.assembly-caption{justify-content:space-between;align-items:center;gap:18px;max-width:330px;margin:20px auto 0;display:flex}.assembly-caption .eyebrow{white-space:nowrap;font-size:.6875rem}.assembly-label{color:var(--accent);font-family:var(--font-mono), monospace;text-align:right;font-size:.75rem;line-height:1.5}.other-work{border-bottom:1px solid var(--line);padding:66px 0 55px}.other-work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:38px;margin-top:28px;display:grid}.small-project h3{letter-spacing:-.02em;margin-bottom:10px;font-size:1.125rem;font-weight:500;line-height:1.4}.small-project h3 a{align-items:center;gap:10px;min-height:32px;text-decoration:none;display:inline-flex}.small-arrow{color:var(--muted);font-size:.9375rem;display:inline-block}.small-project a:hover .small-arrow{color:var(--accent);transform:translate(2px,-2px)}.small-project p{color:var(--muted);font-size:.9375rem;line-height:1.65}.about{grid-template-columns:1fr 2fr;gap:44px;padding:58px 0 68px;display:grid}.about h2{letter-spacing:-.02em;font-size:1.125rem;font-weight:500;line-height:1.5}.about p{color:var(--muted);font-size:1rem;line-height:1.75}.about p+p{margin-top:16px}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:30px;padding:38px 0 35px;display:flex}.site-footer h2{letter-spacing:-.035em;margin-bottom:15px;font-size:1.75rem;font-weight:500;line-height:1.25}.email-link{align-items:center;gap:10px;min-height:32px;font-size:1rem;display:inline-flex}.email-link span{color:var(--muted);font-size:.875rem}.social-links{flex-wrap:wrap;gap:25px;font-size:.875rem;display:flex}.social-links a{align-items:center;gap:5px;min-height:44px;display:inline-flex}.colophon{justify-content:space-between;align-items:center;gap:20px;padding:0 0 32px;display:flex}.colophon .eyebrow{font-size:.6875rem}.back-to-top{padding:10px 0;text-decoration:none}.back-to-top:hover{text-decoration:underline}.cursor-field{z-index:0;pointer-events:none;background-image:radial-gradient(circle, var(--dot) 1px, transparent 1px);-webkit-mask-image:radial-gradient(210px circle at var(--cursor-x,-500px) var(--cursor-y,-500px), #000 0%, transparent 80%);mask-image:radial-gradient(210px circle at var(--cursor-x,-500px) var(--cursor-y,-500px), #000 0%, transparent 80%);opacity:0;background-size:26px 26px;transition:opacity .22s;position:fixed;inset:0}.cursor-field[data-active=true]{opacity:.3}@media (min-width:760px) and (max-height:620px){.workbench{padding-top:20px;top:12px}.workbench-drawing{max-width:340px}}@media (max-width:900px){.site-shell{padding:0 40px}.story{gap:20px}.assembly-caption{flex-direction:column;gap:5px}.assembly-label{text-align:center}.other-work-grid{gap:26px}}@media (max-width:759px){.site-shell{max-width:620px;padding:0 28px}.site-header{padding-top:25px}.story{flex-direction:column;gap:0;display:flex}.visual-column{z-index:2;background:var(--page);order:-1;height:195px;position:sticky;top:0}.visual-column:after{content:"";pointer-events:none;background:linear-gradient(var(--page), transparent);height:20px;position:absolute;top:calc(100% - 1px);left:0;right:0}.workbench{padding-top:3px;position:relative;top:0}.workbench-drawing{width:220px;height:170px}.diagram-label{display:none}.assembly-caption{justify-content:center;margin:0;display:flex}.assembly-caption .eyebrow{display:none}.assembly-label{text-align:center;font-size:.6875rem}.selected-work,.project{scroll-margin-top:195px}.intro{padding:35px 0 48px}.greeting{margin-bottom:18px}h1{max-width:450px;font-size:clamp(2.5rem,8vw,3.5rem)}.intro-description{max-width:440px}.scroll-cue{margin-top:27px}.project{padding:30px 0 32px}.project h3{font-size:1.75rem}.project-description,.detail-content p{max-width:470px}.other-work{padding:43px 0 40px}.other-work-grid{grid-template-columns:1fr;gap:26px;margin-top:24px}.small-project p{max-width:450px}.small-project h3{margin-bottom:5px}.small-project h3 a{min-height:44px}.about{grid-template-columns:1fr;gap:18px;padding:40px 0 45px}.site-footer{flex-direction:column;align-items:flex-start;gap:21px;padding-top:33px}.email-link{min-height:44px}.social-links{gap:27px}.colophon{padding-bottom:24px}}@media (max-width:370px){.site-shell{padding:0 20px}.location{max-width:105px}h1{font-size:2.375rem}.colophon{flex-direction:column;align-items:flex-start;gap:0}}@media (hover:none),(pointer:coarse){.cursor-field{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.cursor-field{display:none}.workbench-scene,.robot-linkage,.thermal-offset,.request-signal{transform:none}}@media (prefers-contrast:more){:root{--muted:var(--ink);--line:var(--muted)}.cursor-field{display:none}}@media print{.cursor-field,.visual-column,.scroll-cue,.colophon{display:none}.story{display:block}.site-shell{padding:0}.intro{padding:20px 0 35px}.project{break-inside:avoid}}
