:root{color-scheme:light;--ink:#202124;--muted:#60656d;--line:#d9dce1;--blue:#1c54b2;--soft:#f5f7fa;--page:800px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
img{max-width:100%}
a{color:var(--blue);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
button{font:inherit}
:focus-visible{outline:3px solid #79a7ef;outline-offset:3px}
.skip-link{position:absolute;top:-100px;left:12px;z-index:10;background:#fff;padding:8px 12px}.skip-link:focus{top:10px}
.site-header{border-bottom:1px solid var(--line)}
.site-header__inner{max-width:calc(var(--page) + 48px);margin:auto;padding:19px 24px;display:flex;justify-content:space-between;align-items:center;gap:22px}
.site-name{color:var(--ink);font-weight:700;text-decoration:none;font-size:1.05rem;white-space:nowrap}
.site-header nav{display:flex;gap:22px;flex-wrap:wrap}
.site-header nav a{font-size:.91rem;color:var(--muted);text-decoration:none}.site-header nav a:hover{color:var(--blue);text-decoration:underline}
.page{max-width:calc(var(--page) + 48px);margin:auto;padding:0 24px}
.intro{padding:64px 0 52px}.eyebrow,.project__year,.note__label{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:650}
h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,5vw,3.15rem);letter-spacing:-.04em;line-height:1.12;margin-bottom:20px}h2{font-size:1.55rem;letter-spacing:-.025em;line-height:1.25;margin:0}h3{font-size:1.05rem;line-height:1.35;margin-bottom:2px}
p{margin-bottom:16px}.intro p{max-width:700px}.lead{font-size:1.25rem;line-height:1.5;color:#282d34}
.intro-links,.small-links{display:flex;flex-wrap:wrap;gap:8px 18px}.intro-links{margin-top:25px;font-size:.94rem}
.section{padding:34px 0 46px;border-top:1px solid var(--line);scroll-margin-top:30px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:22px}.section-note{font-size:.85rem;color:var(--muted)}
.entry-list,.project-list,.note-list{border-top:1px solid var(--line)}
.entry{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:21px 0;border-bottom:1px solid var(--line)}.entry__meta{font-size:.84rem;color:var(--muted);padding-top:2px}.entry__role{color:var(--muted);font-size:.9rem;margin:0 0 8px}.entry p:last-child{margin-bottom:0}
.project{display:grid;grid-template-columns:144px 1fr;gap:22px;padding:20px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.project:hover .project__more{text-decoration:underline}.project img{display:block;width:144px;height:108px;object-fit:cover;border-radius:3px;background:var(--soft)}.project__copy{display:flex;flex-direction:column;gap:3px}.project__copy strong{font-size:1.15rem;line-height:1.35}.project__more{color:var(--blue);font-size:.87rem;margin-top:4px}.section-after{margin:25px 0 0}
.note{padding:19px 0;border-bottom:1px solid var(--line)}.note__label{margin:0 0 3px}.note h3{margin-bottom:7px}.note p:last-child{margin:0}.contact{padding-bottom:70px}.small-links{font-size:.9rem;color:var(--muted)}
.x-feed{margin-top:22px}.x-feed>button{background:#fff;border:1px solid var(--line);padding:8px 12px;cursor:pointer;color:var(--blue);font-size:.9rem}.x-feed>button:hover{border-color:var(--blue)}.x-feed>span{display:block;color:var(--muted);font-size:.8rem;margin-top:7px}#x-feed-content{max-width:560px;margin-top:18px}
.site-footer{border-top:1px solid var(--line);max-width:calc(var(--page) + 48px);margin:auto;padding:22px 24px 30px;display:flex;justify-content:space-between;color:var(--muted);font-size:.82rem}
.robot-helper{position:fixed;right:18px;bottom:14px;z-index:5}.robot-helper__button{display:block;border:0;background:transparent;cursor:pointer;padding:0;width:90px;height:90px;filter:drop-shadow(0 2px 4px #0002)}.robot-helper__button img{width:100%;height:100%;object-fit:contain}.robot-helper__menu{position:absolute;right:12px;bottom:86px;width:220px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #00000017;padding:12px}.robot-helper__menu p{font-size:.85rem;color:var(--muted);margin:0 0 7px}.robot-helper__menu button{display:block;width:100%;padding:7px 3px;border:0;background:#fff;color:var(--blue);text-align:left;cursor:pointer;font-size:.86rem}.robot-helper__menu button:hover{text-decoration:underline}
.robot-helper__button:hover img{transform:rotate(-5deg)}.robot-helper__button img{transition:transform .2s ease}.robot-helper.is-driving img{animation:robot-drive .75s ease-in-out}
@keyframes robot-drive{0%,100%{transform:translateX(0) rotate(0)}45%{transform:translateX(-38px) rotate(-8deg)}70%{transform:translateX(-18px) rotate(5deg)}}
.article{padding-top:36px;padding-bottom:46px}.back-link{display:inline-block;margin-bottom:38px;font-size:.88rem}.article .eyebrow{margin-bottom:11px}.article h1{margin-bottom:18px}.article-lead{font-size:1.18rem;line-height:1.55;color:#30353b;margin-bottom:26px}.article-links{display:flex;flex-wrap:wrap;gap:10px 22px}.article-hero{margin:28px 0 38px}.article-hero img{display:block;max-width:420px;max-height:390px;object-fit:contain;background:var(--soft)}.article-hero--wide img{max-width:100%;width:100%;max-height:500px;object-fit:contain;object-position:left center}.article figure figcaption{font-size:.83rem;line-height:1.45;color:var(--muted);margin-top:8px}.article-section{border-top:1px solid var(--line);padding:28px 0 31px}.article-section h2{margin-bottom:17px}.article-section p:last-child{margin-bottom:0}.facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin:26px 0 0}.facts div{padding:11px 10px 11px 0;border-bottom:1px solid var(--line)}.facts dt{font-size:.8rem;color:var(--muted)}.facts dd{margin:0;font-weight:550}.code{background:#f5f6f7;border:1px solid var(--line);padding:20px;overflow:auto;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:20px 0}.circuit-grid,.image-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.circuit-grid figure,.image-pair figure,.single-detail{margin:0}.circuit-grid img{width:100%;border:1px solid var(--line);display:block}.image-pair img{width:100%;height:250px;object-fit:contain;background:var(--soft);display:block}.single-detail{max-width:380px;margin-top:24px}.single-detail img{width:100%;display:block}.table-wrap{overflow-x:auto;margin:20px 0 24px}table{width:100%;border-collapse:collapse;font-size:.93rem}caption{text-align:left;font-weight:650;padding-bottom:8px}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--soft);font-weight:650}details{border:1px solid var(--line);padding:12px 16px;margin:21px 0}details summary{cursor:pointer;color:var(--blue);font-weight:650}details p{padding-top:12px}.poster-preview{max-width:600px;margin:20px 0 30px}.poster-preview img{display:block;width:100%;border:1px solid var(--line)}.article-end{border-top:1px solid var(--line);padding-top:25px}
@media(max-width:650px){.site-header__inner{align-items:flex-start;flex-direction:column;gap:9px;padding:16px 18px}.site-header nav{gap:10px 18px}.page{padding:0 18px}.intro{padding:42px 0}.lead{font-size:1.12rem}.entry{grid-template-columns:1fr;gap:3px}.project{grid-template-columns:92px 1fr;gap:14px}.project img{width:92px;height:92px}.project__copy strong{font-size:1.02rem}.project__copy>span:nth-of-type(2){font-size:.9rem}.section-head{align-items:flex-start;flex-direction:column;gap:4px}.robot-helper{right:5px;bottom:5px}.robot-helper__button{width:50px;height:50px}.robot-helper__menu{bottom:47px;right:8px}.site-footer{padding:20px 18px 70px}}
@media(max-width:650px){.article{padding-top:28px}.back-link{margin-bottom:27px}.article-lead{font-size:1.08rem}.facts,.circuit-grid,.image-pair{grid-template-columns:1fr}.image-pair img{height:auto;max-height:280px}.code{padding:14px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
