.project-header[data-astro-cid-6tsnvlxu]{padding-top:var(--space-4)}.project-header__back[data-astro-cid-6tsnvlxu]{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:.65rem;text-decoration:none}.project-header__title[data-astro-cid-6tsnvlxu]{border-top:1px solid var(--ink);gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:minmax(10rem,.6fr) 2fr;padding-top:1rem;display:grid}.project-header__title[data-astro-cid-6tsnvlxu] h1[data-astro-cid-6tsnvlxu]{font-size:var(--step-4);letter-spacing:-.065em;grid-column:2;margin:0;font-weight:590;line-height:.9}.project-header__title[data-astro-cid-6tsnvlxu]>p[data-astro-cid-6tsnvlxu]:last-child{color:var(--muted);font-size:var(--step-1);grid-column:2;max-width:52ch;margin:0;line-height:1.45}.project-header__details[data-astro-cid-6tsnvlxu]{gap:var(--space-4);margin:var(--space-5) 0 var(--space-3) calc(28% + .6rem);grid-template-columns:minmax(18rem,1fr) 1.5fr;display:grid}.project-header__details[data-astro-cid-6tsnvlxu] ul[data-astro-cid-6tsnvlxu]{flex-wrap:wrap;align-content:start;gap:.5rem 1rem;margin:0;padding:0;list-style:none;display:flex}.project-header__details[data-astro-cid-6tsnvlxu] li[data-astro-cid-6tsnvlxu]{border-bottom:1px solid var(--rule);color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;padding:.35rem 0;font-size:.61rem}.project-header__links[data-astro-cid-6tsnvlxu]{border-top:1px solid var(--rule);gap:0 var(--space-3);justify-content:flex-end;padding:1rem 0;display:flex}.project-header__links[data-astro-cid-6tsnvlxu] a[data-astro-cid-6tsnvlxu]{font-size:var(--step--1);align-items:center;gap:.45rem;text-decoration:none;display:inline-flex}.project-header__hero[data-astro-cid-6tsnvlxu]{margin:var(--space-3) 0 0}.project-header__hero[data-astro-cid-6tsnvlxu] img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}.project-header__hero[data-astro-cid-6tsnvlxu] figcaption[data-astro-cid-6tsnvlxu]{border-bottom:1px solid var(--rule);grid-template-columns:minmax(10rem,.6fr) 2fr;gap:1rem;padding:.85rem 0 1rem;display:grid}.project-header__hero[data-astro-cid-6tsnvlxu] span[data-astro-cid-6tsnvlxu]{color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;font-size:.62rem}.project-header__hero[data-astro-cid-6tsnvlxu] p[data-astro-cid-6tsnvlxu]{font-size:var(--step--1);margin:0}@media (width<=48rem){.project-header__title[data-astro-cid-6tsnvlxu],.project-header__details[data-astro-cid-6tsnvlxu],.project-header__hero[data-astro-cid-6tsnvlxu] figcaption[data-astro-cid-6tsnvlxu]{grid-template-columns:1fr}.project-header__title[data-astro-cid-6tsnvlxu] h1[data-astro-cid-6tsnvlxu],.project-header__title[data-astro-cid-6tsnvlxu]>p[data-astro-cid-6tsnvlxu]:last-child{grid-column:auto}.project-header__details[data-astro-cid-6tsnvlxu]{margin-left:0}.project-header__links[data-astro-cid-6tsnvlxu]{flex-direction:column;align-items:flex-start;gap:.8rem}}.project-body{--project-section-space:clamp(4rem, 2.7rem + 5.2vw, 7.5rem);margin:var(--project-section-space) auto 0;max-width:var(--reading-width)}.project-body>p,.project-body>ul,.project-body>ol{font-size:clamp(1.05rem,.98rem + .25vw,1.2rem);line-height:1.72}.project-body>p:first-child{color:var(--ink);font-size:var(--step-1);letter-spacing:-.018em;margin-bottom:var(--space-5);line-height:1.45}.project-body h2{border-top:1px solid var(--ink);font-size:var(--step-2);letter-spacing:-.038em;margin:var(--project-section-space) 0 var(--space-3);padding-top:1rem;line-height:1.08}.project-body h3{font-size:var(--step-1);letter-spacing:-.025em;margin:var(--space-4) 0 var(--space-2)}.project-body a{text-decoration-color:var(--accent)}.content-figure{margin:var(--project-section-space) 50%;width:min(calc(100vw - (2 * var(--page-gutter))), 84rem);transform:translate(-50%)}.media-figure--portrait{width:min(calc(100vw - (2 * var(--page-gutter))), 58rem)}.media-figure__image{background:var(--paper-deep);cursor:zoom-in;display:block;overflow:hidden}.media-figure__image img{width:100%;height:auto}.media-figure--portrait .media-figure__image img{object-fit:contain;width:auto;max-height:min(78rem,82vh);margin-inline:auto}.content-figure figcaption{border-bottom:1px solid var(--rule);grid-template-columns:8rem minmax(0,1fr) auto;gap:1rem;padding:.85rem 0 1rem;display:grid}.content-figure figcaption>span{color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;font-size:.64rem}.content-figure figcaption p{font-size:var(--step--1);max-width:65ch;margin:0;line-height:1.45}.media-figure figcaption small{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.6rem}.technical-pair{gap:var(--space-3);grid-template-columns:minmax(0,1.45fr) minmax(16rem,.72fr);display:grid}.technical-pair__item{border:1px solid var(--rule);background:#f6f4ee;flex-direction:column;min-width:0;padding:.7rem;display:flex}.technical-pair__item>p{color:#555950;font-family:var(--font-mono);letter-spacing:.06em;margin:0 0 .65rem;font-size:.59rem}.technical-pair__item a{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.8rem;text-decoration:none;display:flex}.technical-pair__item img{width:100%;height:auto}.technical-pair__item--portrait img{object-fit:contain;max-height:46rem}.technical-pair__open{border-top:1px solid var(--rule);color:#555950;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-self:stretch;padding-top:.65rem;font-size:.58rem;display:flex}.technical-pair figcaption{grid-column:1/-1}.technical-pair figcaption>a{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-self:end;font-size:.61rem}.video-embed__frame{aspect-ratio:16/9;background-color:var(--ink);color:var(--paper);background-image:linear-gradient(#f2efe70e 1px,#0000 1px),linear-gradient(90deg,#f2efe70e 1px,#0000 1px);background-size:48px 48px}.video-embed__frame button{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;justify-content:space-between;align-items:flex-start;width:100%;height:100%;padding:clamp(1.4rem,4vw,4rem);display:flex}.video-embed__frame iframe{border:0;width:100%;height:100%}.video-embed__index{color:var(--accent-soft);font-family:var(--font-mono);letter-spacing:.06em;font-size:.64rem}.video-embed__title{font-size:var(--step-3);letter-spacing:-.05em;max-width:10ch;font-weight:560;line-height:1}.video-embed__play{font-family:var(--font-mono);letter-spacing:.08em;align-self:flex-end;align-items:center;gap:.75rem;font-size:.65rem;display:flex}.video-embed__play i{border:1px solid #f2efe780;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;font-style:normal;transition:background .16s,color .16s;display:flex}.video-embed__frame button:hover .video-embed__play i{background:var(--paper);color:var(--ink)}.video-embed figcaption>a{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-self:end;font-size:.61rem}.role-note{border:1px solid var(--rule-strong);gap:var(--space-2);margin:var(--space-4) 0;padding:var(--space-2);grid-template-columns:9rem 1fr;display:grid}.role-note p{margin:0}.role-note>div{font-size:var(--step--1);line-height:1.65}.role-note>div>:first-child{margin-top:0}.role-note>div>:last-child{margin-bottom:0}.system-diagram__frame{background-color:var(--ink);color:var(--paper);background-image:linear-gradient(#f2efe70e 1px,#0000 1px),linear-gradient(90deg,#f2efe70e 1px,#0000 1px);background-size:32px 32px;min-height:38rem;padding:clamp(1.5rem,5vw,5rem)}.system-diagram__layer,.system-diagram__nodes>div{border:1px solid #f2efe761;gap:.2rem;padding:1rem 1.2rem;display:grid;position:relative}.system-diagram__layer{max-width:27rem;margin-inline:auto}.system-diagram__layer--interface{border-color:var(--accent-soft)}.system-diagram__id{color:var(--accent-soft);font-family:var(--font-mono);letter-spacing:.06em;font-size:.61rem;position:absolute;top:.55rem;right:.7rem}.system-diagram strong{font-size:1rem;font-weight:580}.system-diagram small{color:#f2efe79e;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.61rem}.system-diagram__link{width:1px;height:4rem;margin-inline:auto;position:relative}.system-diagram__link span{background:#f2efe773;width:1px;height:100%;display:block}.system-diagram__link--branch{border-top:1px solid #f2efe773;justify-content:space-between;width:68%;display:flex}.system-diagram__link--branch span{height:100%}.system-diagram__nodes{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.control-sketch svg{background:var(--paper-deep);color:var(--ink);width:100%}.control-sketch .axis{fill:none;stroke:currentColor;stroke-opacity:.45;stroke-width:2px}.control-sketch .gates rect{fill:none;stroke:var(--blue);stroke-width:6px}.control-sketch .target,.control-sketch .response{fill:none;stroke-linecap:round}.control-sketch .target{stroke:var(--ink);stroke-dasharray:8 10;stroke-width:2px}.control-sketch .response{stroke:var(--accent);stroke-width:5px}.control-sketch .points circle{fill:var(--accent)}.control-sketch text{fill:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;font-size:15px}@media (width<=42rem){.content-figure figcaption,.role-note{grid-template-columns:1fr}.media-figure figcaption small{margin-top:.25rem}.system-diagram__frame{min-height:0;padding:1.4rem}.system-diagram__link--branch{display:none}.system-diagram__nodes{grid-template-columns:1fr;gap:.75rem;margin-top:1rem}.technical-pair{grid-template-columns:1fr}.technical-pair figcaption{grid-column:auto}.technical-pair figcaption>a,.video-embed figcaption>a{justify-self:start}}.next-project[data-astro-cid-qj36m7ki]{border-top:1px solid var(--ink);margin-top:var(--space-7);padding-top:1rem}.next-project[data-astro-cid-qj36m7ki] a[data-astro-cid-qj36m7ki]{font-size:var(--step-3);letter-spacing:-.045em;padding:var(--space-3) 0;justify-content:space-between;align-items:center;font-weight:570;line-height:1;text-decoration:none;display:flex}.next-project[data-astro-cid-qj36m7ki] svg{flex:none;transition:transform .16s}.next-project[data-astro-cid-qj36m7ki] a[data-astro-cid-qj36m7ki]:hover svg{transform:translate(3px,-3px)}
