:root{--paper: #f4f5f7;--sheet: #ffffff;--sheet-2: #eceef2;--ink: #171b21;--ink-2: #4c5563;--ink-3: #79828f;--rule: #d6dae1;--rule-strong: #b5bcc6;--accent: #1d4e89;--accent-ink: #ffffff;--grid: rgba(29, 78, 137, 0.07);--shell: 62rem;--gap: 1.5rem;--radius: 3px;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme: dark){:root{--paper: #0f1318;--sheet: #161b22;--sheet-2: #1d242d;--ink: #e7ebf1;--ink-2: #a9b3c0;--ink-3: #79838f;--rule: #262e38;--rule-strong: #38424f;--accent: #7aa9de;--accent-ink: #0d1620;--grid: rgba(122, 169, 222, 0.08)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background-color:var(--paper);background-image:linear-gradient(to right, var(--grid) 1px, transparent 1px),linear-gradient(to bottom, var(--grid) 1px, transparent 1px);background-size:8mm 8mm;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:1.25rem}main.shell{padding-block:2.5rem 4rem}h1,h2,h3,h4{line-height:1.2;text-wrap:balance;margin:0;letter-spacing:-0.01em}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}img{max-width:100%;height:auto;display:block}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{position:absolute;left:-9999px;top:0;z-index:10;background:var(--accent);color:var(--accent-ink);padding:0.6rem 1rem}.skip:focus{left:0.5rem;top:0.5rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.masthead{background:var(--sheet);border-bottom:1px solid var(--rule-strong)}.masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1rem}.wordmark{text-decoration:none;color:inherit;display:block}.wordmark-name{display:block;font-weight:650;font-size:1.05rem;letter-spacing:-0.01em}.wordmark-role{display:block;font-family:var(--mono);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}.nav ul{list-style:none;display:flex;gap:1.25rem;margin:0;padding:0}.nav a{font-size:0.9rem;color:var(--ink-2);text-decoration:none;padding-block:0.25rem;border-bottom:2px solid transparent}.nav a:hover{color:var(--ink)}.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}.intro{margin-bottom:2.5rem}.intro-title{font-size:clamp(1.9rem, 5vw, 2.6rem)}.intro-subtitle{margin:0.5rem 0 0;color:var(--ink-2);max-width:48ch;font-size:1.05rem}.intro-body{margin-top:1rem}.section-label{font-family:var(--mono);font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500;padding-bottom:0.5rem;border-bottom:1px solid var(--rule-strong);margin-bottom:1.25rem}.project-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill, minmax(16rem, 1fr));gap:var(--gap)}.project-card{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius)}.project-card-link{display:block;color:inherit;text-decoration:none;height:100%}.project-card-link:hover{border-color:var(--rule-strong)}.project-card-link:hover .project-card-title{color:var(--accent)}.project-card-figure{aspect-ratio:4 / 3;overflow:hidden;background:var(--sheet-2)}.project-card-figure img{width:100%;height:100%;object-fit:cover}.project-card-body{padding:0.9rem 1rem 1.1rem}.project-card-title{font-size:1.05rem;font-weight:650}.project-card-meta{margin:0.3rem 0 0;font-size:0.85rem;color:var(--ink-2)}.project-card-meta .sep{margin-inline:0.4rem;color:var(--ink-3)}.project-card-figure-note{margin:0.4rem 0 0;font-family:var(--mono);font-size:0.78rem;color:var(--ink-3)}.placeholder{width:100%;height:100%;min-height:9rem;display:grid;place-content:center;gap:0.35rem;text-align:center;background:repeating-linear-gradient(45deg, var(--sheet-2) 0 8px, transparent 8px 16px);border:1px dashed var(--rule-strong)}.placeholder-mark{font-family:var(--mono);font-size:1rem;color:var(--ink-2);letter-spacing:0.05em}.placeholder-note{font-size:0.75rem;color:var(--ink-3)}.empty{color:var(--ink-2)}.breadcrumb{margin:0 0 0.75rem;font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase}.breadcrumb a{color:var(--ink-3);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.project-header{margin-bottom:1.5rem}.project-title{font-size:clamp(1.7rem, 4.5vw, 2.3rem)}.project-subtitle{margin:0.5rem 0 0;color:var(--ink-2);max-width:52ch}.project-cover{margin:0 0 2rem}.project-cover img{width:100%;border:1px solid var(--rule);border-radius:var(--radius)}.project-cover figcaption{margin-top:0.5rem;font-size:0.82rem;color:var(--ink-3)}.specs{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);padding:1.25rem 1.4rem 1.4rem;margin-bottom:2rem}.specs-heading{font-family:var(--mono);font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-bottom:1rem}.spec-list{margin:0;display:grid;grid-template-columns:repeat(auto-fit, minmax(11rem, 1fr));gap:0.9rem 1.5rem}.spec dt{font-size:0.72rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-3)}.spec dd{margin:0.15rem 0 0;font-size:0.95rem}.spec-wide{grid-column:1 / -1}.scope{margin:0.2rem 0 0;padding-left:1.1rem;font-size:0.92rem;color:var(--ink-2)}.scope li{margin-bottom:0.15rem}.sheets{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);display:grid;grid-template-columns:minmax(0, 2.2fr) minmax(0, 1fr);overflow:hidden}.sheet-figure{background:var(--sheet-2);min-height:10rem}.sheet-figure img{width:100%;height:100%;object-fit:contain;background:var(--sheet)}.sheet-zoom{display:block;height:100%}.sheet-block{padding:1rem 1.1rem;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:0.2rem}.sheet-number{margin:0;font-family:var(--mono);font-size:1.05rem;font-weight:500;letter-spacing:0.04em}.sheet-title{margin:0;font-weight:600}.sheet-scale,.sheet-paper{margin:0;font-size:0.82rem;color:var(--ink-3);font-family:var(--mono)}.project-nav{margin-top:3rem}.project-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.25rem}.prose{max-width:66ch}.prose>*+*{margin-top:1rem}.prose h2{font-size:1.3rem;margin-top:2rem}.prose h3{font-size:1.1rem;margin-top:1.5rem}.prose ul,.prose ol{padding-left:1.3rem}.prose blockquote{margin:1.5rem 0;padding-left:1rem;border-left:3px solid var(--accent);color:var(--ink-2)}.prose code{font-family:var(--mono);font-size:0.88em;background:var(--sheet-2);padding:0.1em 0.35em;border-radius:2px}.prose pre{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);padding:0.9rem 1rem;overflow-x:auto}.prose pre code{background:none;padding:0}.prose table{width:100%;border-collapse:collapse;font-size:0.92rem}.prose th,.prose td{text-align:left;padding:0.5rem 0.6rem;border-bottom:1px solid var(--rule)}.prose img{border:1px solid var(--rule);border-radius:var(--radius)}.page-title{font-size:clamp(1.7rem, 4.5vw, 2.3rem)}.page-subtitle{margin:0.5rem 0 1.5rem;color:var(--ink-2)}.colophon{border-top:1px solid var(--rule-strong);background:var(--sheet)}.colophon-inner{display:flex;justify-content:space-between;gap:0.75rem;flex-wrap:wrap;padding-block:1.25rem 1.5rem;font-size:0.85rem;color:var(--ink-3)}.colophon p{margin:0}.lightbox{position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:1fr auto;gap:0.75rem;padding:1.5rem;background:rgba(8,11,15,0.92)}.lightbox[hidden]{display:none !important}.lightbox-image{margin:auto;max-width:100%;max-height:100%;object-fit:contain}.lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:#e7ebf1}.lightbox-caption{font-family:var(--mono);font-size:0.82rem;margin:0}.lightbox-close{font:inherit;font-size:0.85rem;background:transparent;color:#e7ebf1;border:1px solid rgba(231,235,241,0.4);border-radius:var(--radius);padding:0.4rem 0.8rem;cursor:pointer}.lightbox-close:hover{border-color:#e7ebf1}@media (max-width: 40rem){.sheet{grid-template-columns:1fr}.sheet-block{border-left:0;border-top:1px solid var(--rule)}.masthead-inner{padding-block:0.85rem}}@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}
