:root{--mask: #0c1f17;--mask-panel: #11291e;--mask-line: #1f4434;--copper: #c98a45;--copper-bright: #e0a45c;--silk: #f2f6f2;--silk-dim: #b4ccbf;--font-display: "Chakra Petch", sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--mask);color:var(--silk);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}.wrap{max-width:1080px;margin:0 auto;padding:0 1.25rem}a{color:var(--copper-bright);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:2px solid var(--copper-bright);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);line-height:1.15;letter-spacing:.01em}img{max-width:100%;height:auto;display:block;border-radius:4px}code{font-family:var(--font-mono);font-size:.9em;background:var(--mask-panel);border:1px solid var(--mask-line);padding:.1em .35em;border-radius:3px}pre{background:var(--mask-panel);border:1px solid var(--mask-line);padding:1rem;overflow-x:auto;border-radius:4px}pre code{background:none;border:none;padding:0}.nav{border-bottom:1px solid var(--mask-line);padding:.9rem 0}.nav .wrap{display:flex;align-items:baseline;gap:1.5rem}.nav-brand{font-family:var(--font-mono);font-size:.95rem;color:var(--silk);letter-spacing:.05em}.nav-brand:hover{text-decoration:none;color:var(--copper-bright)}.nav-links{margin-left:auto;display:flex;gap:1.25rem}.nav-links a{font-family:var(--font-mono);font-size:.85rem;color:var(--silk-dim);text-transform:uppercase;letter-spacing:.08em}.nav-links a:hover{color:var(--copper-bright);text-decoration:none}.titleblock{margin:3.5rem 0 3rem;border:1px solid var(--mask-line)}.tb-row{display:flex;border-bottom:1px solid var(--mask-line)}.tb-row:last-child{border-bottom:none}.tb-cell{padding:.85rem 1.1rem;flex:1}.tb-cell+.tb-cell{border-left:1px solid var(--mask-line)}.tb-label{display:block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--silk-dim);margin-bottom:.25rem}.tb-name{font-family:var(--font-display);font-size:clamp(1.9rem,5vw,3rem);font-weight:600;margin:0}.tb-name .accent{color:var(--copper)}.tb-value{font-family:var(--font-mono);font-size:.9rem}.tb-tagline{font-size:1.05rem;color:var(--silk-dim);max-width:60ch;margin:0}.section-head{display:flex;align-items:baseline;gap:1rem;margin:3rem 0 1.5rem}.section-head h2{font-size:1.15rem;text-transform:uppercase;letter-spacing:.1em;margin:0;white-space:nowrap}.section-head:after{content:"";flex:1;height:1px;background:var(--mask-line)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.card{position:relative;display:block;background:var(--mask-panel);border:1px solid var(--mask-line);border-radius:4px;overflow:hidden;color:var(--silk);transition:border-color .18s ease}.card:hover{border-color:var(--copper);text-decoration:none}.card-refdes{position:absolute;top:.6rem;left:.6rem;z-index:1;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--copper-bright);background:#0c1310d9;border:1px solid var(--mask-line);padding:.15rem .45rem;border-radius:3px}.card-thumb{aspect-ratio:16 / 9;object-fit:cover;width:100%;border-radius:0}.card-body{padding:1rem 1.1rem 1.2rem}.card-title{font-family:var(--font-display);font-size:1.12rem;font-weight:600;margin:0 0 .35rem}.card-summary{font-size:.92rem;color:var(--silk-dim);margin:0 0 .75rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--silk-dim);border:1px solid var(--mask-line);padding:.12rem .45rem;border-radius:3px}.filterbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 2rem}.filterbar button{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--silk-dim);background:none;border:1px solid var(--mask-line);padding:.3rem .7rem;border-radius:3px;cursor:pointer}.filterbar button:hover{border-color:var(--copper);color:var(--silk)}.filterbar button.active{border-color:var(--copper);color:var(--copper-bright)}.project-header{margin:3rem 0 2rem}.project-header h1{font-size:clamp(1.7rem,4vw,2.4rem);margin:0 0 .5rem}.project-meta{font-family:var(--font-mono);font-size:.82rem;color:var(--silk-dim);margin-bottom:.75rem}.prose{max-width:72ch}.prose h2{font-size:1.25rem;margin-top:2.25rem;padding-bottom:.4rem;border-bottom:1px solid var(--mask-line)}.prose h3{font-size:1.05rem}.prose img{margin:1.5rem 0;border:1px solid var(--mask-line)}.photo-grid{columns:3 240px;column-gap:1rem;margin-top:.5rem}.photo{width:100%;margin:0 0 1rem;border:1px solid var(--mask-line);border-radius:4px;break-inside:avoid}footer{margin-top:5rem;border-top:1px solid var(--mask-line);padding:1.5rem 0 2.5rem;font-family:var(--font-mono);font-size:.8rem;color:var(--silk-dim)}footer .wrap{display:flex;flex-wrap:wrap;gap:1.5rem}@media(max-width:640px){.tb-row{flex-direction:column}.tb-cell+.tb-cell{border-left:none;border-top:1px solid var(--mask-line)}.nav .wrap{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}.nav-brand{display:inline-flex;align-items:center;gap:.55rem}.nav-logo{border-radius:0}footer{border-top:none;background:repeating-linear-gradient(to bottom,var(--mask-line) 0 1px,transparent 1px 4px) top / 100% 12px no-repeat;padding-top:2rem}:root[data-theme=pcb]{--mask: #156632;--mask-panel: #0f5226;--mask-line: #0a431f;--copper: #d4af50;--copper-bright: #eed384;--silk: #ffffff;--silk-dim: #edf7f0}:root[data-theme=pcb] body{background-image:url(/pcb-pattern.svg);background-size:480px 480px}:root[data-theme=pcb] .card,:root[data-theme=pcb] .titleblock,:root[data-theme=pcb] pre,:root[data-theme=pcb] code{background-color:var(--mask-panel)}:root[data-theme=pcb] .titleblock{background-color:#0a3c1ce0}.mode-toggle{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--silk-dim);background:none;border:1px solid var(--mask-line);border-radius:3px;padding:.25rem .6rem;cursor:pointer}.mode-toggle:hover{border-color:var(--copper);color:var(--copper-bright)}.tabs{display:flex;gap:1.5rem;border-bottom:1px solid var(--mask-line);margin:2.5rem 0 .5rem}.tabs button{font-family:var(--font-display);font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--silk-dim);background:none;border:none;border-bottom:2px solid transparent;padding:.5rem .1rem .6rem;cursor:pointer}.tabs button:hover{color:var(--silk)}.tabs button.active{color:var(--copper-bright);border-bottom-color:var(--copper)}@media(max-width:640px){.tabs{gap:1rem;overflow-x:auto}}
