@font-face{font-family:Archivo;src:url(/fonts/archivo-var.woff2)format("woff2");font-weight:400 800;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-var.woff2)format("woff2");font-weight:400 700;font-display:swap}:root{--bg:#f7f3ec;--surface:#fffdf8;--text:#25231f;--muted:#5e5850;--border:#ddd4c6;--field-border:#8f8574;--birch:#e8d9bc;--birch-ink:#25231f;--grain:#78582d29;--hatch:#25231f6b;--orange:#e8590c;--on-orange:#1e1d1b;--orange-text:#b8430a;--radius:6px;--display:"Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1e1d1b;--surface:#282623;--text:#ede7dd;--muted:#b0a89c;--border:#3a3732;--field-border:#7a7368;--birch:#d9c9a8;--grain:#5a401e33;--hatch:#25231f80;--orange-text:#f07a3a;color-scheme:dark}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration-color:var(--field-border);text-underline-offset:3px}a:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--text);outline-offset:2px}.container{max-width:920px;margin:0 auto;padding:0 16px}main.container{padding-top:28px;padding-bottom:56px}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:-.01em}h1{margin:0 0 10px;font-size:2rem;font-weight:780;line-height:1.12}h2{margin:36px 0 8px;font-size:1.3rem;font-weight:700;line-height:1.25}.lead{color:var(--muted);max-width:62ch;margin:0 0 24px;font-size:1.0625rem}.site-header{background:var(--bg);border-bottom:1px solid var(--text)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 16px;padding-top:4px;padding-bottom:4px;display:flex}.logo{min-height:44px;font-family:var(--display);letter-spacing:-.015em;color:var(--text);align-items:center;gap:10px;font-size:1.2rem;font-weight:780;text-decoration:none;display:inline-flex}.logo svg{flex:none;width:28px;height:28px}.site-header nav,.site-footer nav{flex-wrap:wrap;gap:0 20px;display:flex}.site-header nav a,.site-footer nav a{align-items:center;min-width:44px;min-height:44px;display:inline-flex}.site-header nav a{color:var(--muted);border-bottom:2px solid #0000;font-weight:550;text-decoration:none}.site-header nav a:hover{color:var(--text)}.site-header nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--text)}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:24px 0;font-size:.875rem}.site-footer p{margin:12px 0 0}.hero{padding:8px 0}.hero h1{max-width:16ch;font-size:clamp(2rem,7vw,3rem)}.tool-grid{gap:16px;display:grid}@media (width>=680px){.tool-grid{grid-template-columns:1fr 1fr}}.tool-card{background:var(--surface);border:1px solid var(--text);border-radius:var(--radius);color:var(--text);grid-template-rows:auto 1fr;text-decoration:none;display:grid;overflow:hidden}.tool-card:hover{box-shadow:4px 4px 0 var(--text);transform:translate(-2px,-2px)}@media (prefers-reduced-motion:no-preference){.tool-card{transition:transform .12s,box-shadow .12s}}.tool-art{background:var(--bg);border-bottom:1px solid var(--border);width:100%;height:auto;display:block}.tool-art .art-birch{fill:var(--birch)}.tool-art .art-grain{fill:none;stroke:var(--grain);stroke-width:1.2px}.tool-art .art-hatch{stroke:var(--hatch);stroke-width:1px}.tool-art .art-line{fill:none;stroke:var(--birch-ink);stroke-width:1.5px}.tool-art .art-dim{fill:none;stroke:var(--text);stroke-width:1px}.tool-art .art-arrow{fill:var(--text)}.tool-art .art-num{fill:var(--birch-ink);font-family:var(--display);font-weight:780}.tool-art .art-label{fill:var(--text);font-family:var(--mono)}.tool-card-body{padding:16px 20px 20px}.tool-card h2{margin:0 0 4px;font-size:1.4rem}.tool-card p{color:var(--muted);margin:0}.tool-card .go{text-decoration:underline;text-decoration-color:var(--field-border);text-underline-offset:3px;margin-top:12px;font-weight:650;display:inline-block}.formula{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text);border-radius:var(--radius);font-family:var(--mono);padding:12px 16px;font-size:.9375rem;overflow-x:auto}.table-wrap{overflow-x:auto}.table-wrap table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.9375rem}.table-wrap th,.table-wrap td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:8px 12px}.table-wrap th{font-family:var(--display);border-bottom:2px solid var(--text);font-weight:650}.table-wrap td{font-family:var(--mono);font-size:.875rem}.faq h3{margin:22px 0 4px;font-size:1.0625rem;font-weight:680}.faq p{margin:0}@media print{.site-header,.site-footer,main.container~*,main.container>h2,main.container>p,main.container>ul,main.container>section,main.container>.table-wrap{display:none}}.crumb{margin:0 0 4px;font-size:.9375rem}.crumb a{min-height:44px;color:var(--muted);align-items:center;display:inline-flex}.dims{font-family:var(--mono);white-space:nowrap;font-size:.9375em}.note{color:var(--muted);font-size:.9375rem}.parts-table td.name{font-family:var(--sans);font-size:.9375rem}.project-diagram{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.cta{border-radius:var(--radius);background:var(--orange);min-height:44px;color:var(--on-orange);align-items:center;padding:8px 18px;font-weight:650;text-decoration:none;display:inline-flex}.cta:hover{background:color-mix(in srgb, var(--orange) 88%, black)}.steps{gap:10px;padding-left:1.4em;display:grid}.steps li::marker{font-family:var(--display);font-weight:780}.project-grid{gap:16px;display:grid}@media (width>=680px){.project-grid{grid-template-columns:repeat(3,1fr)}}.project-card{background:var(--surface);border:1px solid var(--text);border-radius:var(--radius);color:var(--text);grid-template-rows:auto 1fr;text-decoration:none;display:grid;overflow:hidden}.project-card:hover{box-shadow:4px 4px 0 var(--text);transform:translate(-2px,-2px)}@media (prefers-reduced-motion:no-preference){.project-card{transition:transform .12s,box-shadow .12s}}.project-card-art{background:var(--bg);border-bottom:1px solid var(--border);padding:12px}.project-card-body{padding:14px 16px 18px}.project-card h2{margin:0 0 4px;font-size:1.15rem}.project-card p{color:var(--muted);margin:0;font-size:.9375rem}
