/* Namespaced workspace and catalogue, inheriting each site's typography. */
.lab-nav,.lab-notebook,.lab-catalog,.lab-related{--lab-line:color-mix(in srgb,var(--lab-ink,#25312d) 19%,transparent);color:var(--lab-ink,#25312d);font-family:inherit;box-sizing:border-box}
.lab-nav *,.lab-notebook *,.lab-catalog *,.lab-related *{box-sizing:border-box}
.lab-nav [hidden],.lab-notebook [hidden],.lab-catalog [hidden]{display:none!important}
.lab-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;border-block:1px solid var(--lab-line);padding:14px 0;margin:24px 0;font-size:14px;line-height:1.5}
.lab-nav a{color:inherit;text-decoration:none;padding:8px 0;border-bottom:2px solid transparent}
.lab-nav a:hover{border-color:var(--lab-accent)}
.lab-nav a:last-child{margin-left:auto;font-weight:700;color:var(--lab-accent)}
.lab-nav b{display:inline-grid;place-items:center;min-width:24px;height:24px;background:var(--lab-accent);color:#fff;border-radius:50%;margin-left:6px;font-size:12px}
.lab-notebook{margin:40px 0;padding:clamp(18px,3vw,36px);border:1px solid var(--lab-line);border-top:4px solid var(--lab-accent);background:var(--lab-paper,#f8f7f3);border-radius:var(--lab-radius,12px);line-height:1.6;max-width:100%}
.lab-notebook>header{display:flex;align-items:start;justify-content:space-between;gap:16px}
.lab-notebook>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:0;margin:0;background:transparent;color:inherit}
.lab-notebook>summary::-webkit-details-marker{display:none}
.lab-notebook>summary::after{content:'+';font-size:26px;font-weight:400}
.lab-notebook[open]>summary::after{content:'−'}
.lab-notebook:not([open]){padding:18px 24px;margin:24px 0}
.lab-notebook>summary h2{font-size:22px;flex:1}
.lab-notebook h2{font:inherit;font-size:clamp(23px,3vw,32px);line-height:1.2;font-weight:700;margin:0;letter-spacing:-.02em}
.lab-notebook h3{font-size:18px;line-height:1.35;margin:20px 0 10px;color:inherit}
.lab-count{font-size:15px;white-space:nowrap;padding:4px 10px;border:1px solid var(--lab-line);border-radius:30px;font-variant-numeric:tabular-nums}
.lab-notebook>p{max-width:75ch;margin:16px 0}
.lab-notebook label{display:grid;gap:7px;font-size:14px;font-weight:600;margin:0}
.lab-notebook input,.lab-notebook textarea{font:inherit;width:100%;min-width:0;border:1px solid var(--lab-line);border-radius:5px;background:#fff;color:#1c2924;padding:10px 12px;min-height:44px;resize:vertical}
.lab-notebook button,.lab-notebook .lab-file,.lab-catalog button{font:inherit;line-height:1.4;padding:10px 16px;border:1px solid var(--lab-line);border-radius:5px;min-height:44px;cursor:pointer;background:#fff;color:inherit;white-space:normal;text-align:center;box-shadow:none;width:auto;margin:0}
.lab-notebook button:hover,.lab-catalog button:hover{border-color:var(--lab-accent);background:color-mix(in srgb,var(--lab-accent) 8%,#fff)}
.lab-notebook button:disabled{opacity:.45;cursor:not-allowed}
.lab-notebook .lab-primary{background:var(--lab-accent);color:#fff;border-color:var(--lab-accent);font-weight:700}
.lab-notebook .lab-primary:hover{background:color-mix(in srgb,var(--lab-accent) 88%,#000);color:#fff}
.lab-capture-row{display:grid;grid-template-columns:minmax(140px,1fr) auto;align-items:end;gap:12px;margin:24px 0 10px}
.lab-actions{display:flex;gap:10px;align-items:start;flex-wrap:wrap;margin:20px 0 10px}
.lab-file{position:relative;display:inline-flex!important;align-items:center;font-weight:400!important;overflow:hidden}
.lab-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.lab-file:focus-within{outline:3px solid var(--lab-accent);outline-offset:3px}
.lab-notebook .lab-small{font-size:13px;line-height:1.5;opacity:.85}
.lab-status{font-size:14px;min-height:1.5em;margin:8px 0;color:inherit}
.lab-status.lab-error{color:#a02020;font-weight:600}
.lab-runs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin:20px 0}
.lab-run{padding:20px;background:#fff;border:1px solid var(--lab-line);border-radius:8px;min-width:0;display:block;color:#22322b}
.lab-run small{display:block;font-size:12px;margin:8px 0 16px;opacity:.75}
.lab-notebook pre.lab-result-text{font-size:14px;line-height:1.55;font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;background:var(--lab-paper);padding:16px;border-left:3px solid var(--lab-accent);color:inherit}
.lab-run details{border-block:1px solid var(--lab-line);margin:20px 0;padding:10px 0;background:transparent}
.lab-run summary{font-size:14px;cursor:pointer;padding:8px 0}
.lab-notebook table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.5;background:#fff;margin:12px 0;table-layout:fixed;color:#22322b}
.lab-notebook td,.lab-notebook th{padding:10px;text-align:left;border:1px solid var(--lab-line);vertical-align:top;overflow-wrap:anywhere;font-size:inherit;background:none;color:inherit;white-space:normal}
.lab-notebook th{font-weight:600;background:var(--lab-paper)}
.lab-notebook .lab-table-scroll{overflow:auto;max-width:100%}
.lab-notebook .lab-quiet{font-size:13px;padding:8px 10px;border:0;text-decoration:underline;background:transparent;margin-top:12px;color:#59463f}
.lab-empty{padding:20px;border:1px dashed var(--lab-line);margin:0;font-size:15px}
.lab-print-frame{position:fixed;left:-10000px;width:900px;height:1px;border:0}
.lab-nav a:focus-visible,.lab-notebook :is(a,button,input,textarea,summary,[tabindex]):focus-visible,.lab-catalog :is(a,button,input):focus-visible,.lab-related a:focus-visible{outline:3px solid var(--lab-accent);outline-offset:4px}
.lab-catalog{max-width:1160px;margin:0 auto;padding:clamp(28px,5vw,72px) clamp(18px,4vw,36px);line-height:1.6}
.lab-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--lab-accent);margin:0 0 20px}
.lab-catalog h1{font:inherit;font-size:clamp(36px,5.6vw,68px);line-height:1.05;letter-spacing:-.035em;font-weight:600;max-width:17ch;margin:0 0 24px;color:inherit}
.lab-catalog h1,.lab-catalog .lab-tool-card h3{font-family:var(--lab-display,inherit);font-weight:var(--lab-display-weight,600)}
.lab-catalog .lab-lead{font-size:clamp(17px,2vw,21px);max-width:64ch;margin:0 0 28px}
.lab-promises{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:13px;border-block:1px solid var(--lab-line);padding:16px 0;margin:24px 0 32px}
.lab-promises span::before{content:'✓';margin-right:8px;color:var(--lab-accent);font-weight:700}
.lab-filter{display:grid;gap:16px;margin:32px 0;max-width:100%}
.lab-filter label{font-size:13px;font-weight:600;display:grid;gap:8px;max-width:560px}
.lab-filter input{font:inherit;font-size:16px;padding:14px 18px;border:1px solid var(--lab-line);border-radius:8px;width:100%;background:#fff;color:#25312d;min-width:0}
.lab-filter-categories{display:flex;gap:8px;flex-wrap:wrap}
.lab-catalog .lab-filter-categories button{font-size:13px;border-radius:40px;padding:8px 16px}
.lab-catalog .lab-filter-categories button[aria-pressed=true]{background:var(--lab-accent);color:#fff;border-color:var(--lab-accent)}
.lab-list-head{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:32px 0 16px;border-bottom:1px solid var(--lab-line);padding-bottom:12px}
.lab-list-head h2{font:inherit;font-size:20px;font-weight:600;margin:0;color:inherit}
.lab-list-head span{font-size:13px;opacity:.7}
.lab-cards{display:grid;gap:20px}
.lab-tool-card{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:30px;align-items:center;padding:24px;border:1px solid var(--lab-line);border-radius:var(--lab-radius,12px);background:#fff;color:inherit;text-decoration:none;overflow:hidden}
.lab-tool-card:hover{border-color:var(--lab-accent);box-shadow:0 10px 26px #14221d0b;color:inherit}
.lab-tool-card h3{font:inherit;font-size:clamp(21px,2.4vw,28px);font-weight:600;line-height:1.2;margin:8px 0 12px;color:inherit;letter-spacing:-.02em}
.lab-tool-card p{margin:0;font-size:15px;line-height:1.6}
.lab-tool-card .lab-category{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--lab-accent);font-weight:700}
.lab-tool-card .lab-formats{font-size:12px;margin-top:16px;opacity:.7}
.lab-card-arrow{font-size:24px;color:var(--lab-accent)}
.lab-preview{aspect-ratio:1.5;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--lab-paper);border-radius:7px;padding:18px}
.lab-preview svg{width:100%;height:auto;max-height:160px;display:block}
.lab-preview .lab-preview-name{position:absolute;bottom:10px;left:12px;font-size:10px;font-weight:700;letter-spacing:.04em;background:#ffffffdf;padding:2px 6px;color:var(--lab-accent)}
.lab-layout-tiles .lab-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.lab-layout-tiles .lab-tool-card{grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:24px}
.lab-layout-tiles .lab-preview{grid-column:1/-1;aspect-ratio:2.4;width:100%;padding:18px 60px}
.lab-layout-tiles .lab-tool-card h3{font-size:26px}
.lab-layout-ledger .lab-tool-card{grid-template-columns:90px minmax(0,1fr) auto;border:0;border-bottom:1px solid var(--lab-line);border-radius:0;padding:28px 0;box-shadow:none;background:transparent}
.lab-layout-ledger .lab-preview{aspect-ratio:1;padding:8px;border-radius:0}
.lab-layout-ledger .lab-preview-name{display:none}
.lab-layout-ledger .lab-cards{gap:0}
.lab-layout-editorial .lab-tool-card:nth-child(odd){grid-template-columns:minmax(0,1fr) 260px auto;background:var(--lab-paper)}
.lab-layout-editorial .lab-tool-card:nth-child(odd) .lab-preview{order:1;background:#ffffff9c}
.lab-layout-editorial .lab-tool-card:nth-child(odd) .lab-card-arrow{order:2}
.lab-related{margin:40px 0;padding:28px 0;border-top:1px solid var(--lab-line)}
.lab-related h2{font:inherit;font-size:24px;line-height:1.3;margin:0 0 20px;font-weight:600;color:inherit}
.lab-related ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;list-style:none;padding:0;margin:0}
.lab-related li{padding:0;margin:0}
.lab-related a{display:block;border:1px solid var(--lab-line);padding:18px;border-radius:6px;text-decoration:none;font-size:16px;color:inherit}
.lab-related a:hover{border-color:var(--lab-accent)}
.lab-help{border-top:1px solid var(--lab-line);margin-top:48px;padding-top:28px;max-width:78ch}
.lab-help h2{font-size:26px;color:inherit;line-height:1.3}
.lab-help h3{font-size:18px;color:inherit}
.lab-help p{font-size:15px}
.lab-nav-link{white-space:nowrap}
@media(max-width:760px){.lab-tool-card,.lab-layout-editorial .lab-tool-card:nth-child(odd){grid-template-columns:130px minmax(0,1fr);gap:20px;padding:18px}.lab-card-arrow{display:none}.lab-layout-editorial .lab-tool-card:nth-child(odd) .lab-preview{order:0}.lab-layout-tiles .lab-tool-card{display:flex;flex-direction:column;align-items:stretch;gap:20px}.lab-layout-tiles .lab-preview{padding:12px 32px}.lab-tool-card h3,.lab-layout-tiles .lab-tool-card h3{font-size:23px}}
@media(max-width:520px){.lab-capture-row{grid-template-columns:1fr}.lab-nav{gap:4px 16px;font-size:13px}.lab-nav a:last-child{margin-left:0}.lab-notebook{padding:18px}.lab-tool-card,.lab-layout-editorial .lab-tool-card:nth-child(odd){grid-template-columns:1fr;gap:18px;padding:18px}.lab-preview{aspect-ratio:2.5;padding:18px 55px}.lab-layout-tiles .lab-cards{grid-template-columns:1fr}.lab-layout-ledger .lab-tool-card{grid-template-columns:60px minmax(0,1fr);gap:16px;padding:24px 0}.lab-layout-ledger .lab-preview{padding:4px;aspect-ratio:1}.lab-notebook h2{font-size:24px}.lab-notebook .lab-actions>*{flex:1 1 100%}.lab-catalog h1{font-size:38px}.lab-catalog{padding-top:32px}.lab-filter-categories{gap:6px}.lab-catalog .lab-filter-categories button{padding:8px 12px}.lab-promises{gap:8px 16px}.lab-run{padding:16px}}
@media(prefers-reduced-motion:reduce){.lab-nav *,.lab-notebook *,.lab-catalog *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.lab-nav,.lab-notebook,.lab-related,.lab-filter{display:none!important}.lab-tool-card{break-inside:avoid;box-shadow:none}}
