.lib-page{background:var(--canvas-grid),var(--canvas);min-height:100dvh;color:var(--text);font-family:var(--font-ui);--lib-ink:#1c2622;--lib-accent:#c0602f;--lib-accent-soft:#f6e6da;--lib-blue:#2f6fa8;--lib-gold:#d99a2b;--tone-terrace:#b46a4b;--tone-semi:#c48a3c;--tone-detached:#3f7d5c;--tone-bungalow:#7a6aa8;--tone-flats:#4b7896;flex-direction:column;font-size:14px;display:flex}.lib-page>.page-topbar{position:relative}.lib-main{flex-direction:column;flex:1;min-height:0;display:flex}.lib-page .ui-badge{text-transform:none;letter-spacing:0;font-family:var(--font-ui)}.lib-hero{background:linear-gradient(180deg,var(--surface) 0%,#ffffffa6 100%);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;padding:22px 24px 0;display:flex}.lib-hero-text{flex-direction:column;gap:4px;min-width:0;padding-bottom:14px;display:flex}.lib-eyebrow{font-family:var(--font-title);font-size:var(--text-2xs);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--lib-accent);font-weight:600}.lib-hero h1{font-family:var(--font-title);font-size:var(--text-2xl);line-height:var(--leading-2xl);letter-spacing:-.01em;margin:0;font-weight:600}.lib-hero p{color:var(--text-muted);max-width:60ch;margin:0}.lib-tabs{scrollbar-width:none;gap:4px;margin-bottom:-1px;display:flex;overflow-x:auto}.lib-tab{border-radius:var(--radius-m) var(--radius-m) 0 0;color:var(--text-muted);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);border:1px solid #0000;border-bottom:0;align-items:center;gap:8px;padding:10px 16px 12px;font-weight:500;text-decoration:none;display:inline-flex}.lib-tab:hover{color:var(--text);background:var(--surface-hover)}.lib-tab[aria-current=page]{color:var(--text);background:var(--canvas);border-color:var(--rule);box-shadow:inset 0 3px 0 var(--lib-accent)}.lib-tab[aria-current=page] .st-icon{color:var(--lib-accent)}.lib-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.lib-tab-body{min-height:0;animation:lib-rise var(--duration-slow) var(--ease-out);flex:1}.lib-tab-body.is-collection{padding:24px 24px 48px}@media (max-width:860px){.lib-tab-body.is-collection{padding:14px 12px 32px}}@keyframes lib-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.lib-btn{border:1px solid var(--rule-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:34px;color:var(--text);font:500 var(--text-sm)/1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:0 14px;text-decoration:none;display:inline-flex}.lib-btn:hover:not(:disabled){background:var(--surface-hover);box-shadow:var(--shadow-1)}.lib-btn:active:not(:disabled){transform:translateY(1px)}.lib-btn:disabled{opacity:.5;cursor:not-allowed}.lib-btn.is-primary{background:var(--lib-ink);border-color:var(--lib-ink);color:#fff}.lib-btn.is-primary:hover:not(:disabled){background:var(--accent-hover)}.lib-btn.is-accent{background:var(--lib-accent-soft);color:#8a3f19;border-color:#e7c6ad}.lib-btn.is-accent:hover:not(:disabled){background:#f1d6c3}.lib-btn.is-small{min-height:28px;font-size:var(--text-xs);padding:0 11px}.lib-btn:focus-visible,.lib-link:focus-visible,.lib-kind:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.lib-link{color:var(--text);font:inherit;font-size:var(--text-xs);text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.lib-link:hover{text-decoration-color:currentColor}.lib-link:disabled{opacity:.5;cursor:not-allowed}.lib-types{flex-direction:column;display:flex}.lib-types-head{border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;background:#ffffffb3;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 24px;display:flex;position:sticky;top:0}.lib-search{border:1px solid var(--rule-strong);border-radius:var(--radius-pill);background:var(--surface);min-width:220px;color:var(--text-muted);flex:0 300px;align-items:center;gap:8px;padding:0 12px;display:flex}.lib-search:focus-within{border-color:var(--text);box-shadow:0 0 0 3px #dc965c40}.lib-search input{min-width:0;min-height:34px;font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1}.lib-kinds{flex-wrap:wrap;gap:6px;display:flex}.lib-kind{border:1px solid var(--rule);border-radius:var(--radius-pill);background:var(--surface);min-height:30px;font:500 var(--text-xs)/1 var(--font-ui);color:var(--text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lib-kind small{font-family:var(--font-mono);color:var(--text-faint)}.lib-kind:before{content:"";background:var(--tone,var(--text-faint));border-radius:50%;width:8px;height:8px}.lib-kind[data-tone=terrace]{--tone:var(--tone-terrace)}.lib-kind[data-tone=semi]{--tone:var(--tone-semi)}.lib-kind[data-tone=detached]{--tone:var(--tone-detached)}.lib-kind[data-tone=bungalow]{--tone:var(--tone-bungalow)}.lib-kind[data-tone=flats]{--tone:var(--tone-flats)}.lib-kind:hover{color:var(--text);border-color:var(--rule-strong)}.lib-kind[aria-pressed=true]{background:var(--lib-ink);border-color:var(--lib-ink);color:#fff}.lib-kind[aria-pressed=true] small{color:#ffffffb3}.lib-head-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.lib-banner{border-bottom:1px solid var(--warn-border);background:var(--warn-surface);color:var(--text);font-size:var(--text-sm);align-items:center;gap:8px;margin:0;padding:9px 24px;display:flex}.lib-banner.is-quiet{border-color:var(--rule);color:var(--text-muted);background:0 0}.lib-banner.is-warn{color:var(--state-warn)}.lib-body{grid-template-columns:232px minmax(0,1fr);align-items:start;gap:20px;padding:20px 24px 40px;display:grid}.lib-filters{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-l);box-shadow:var(--shadow-1);flex-direction:column;gap:10px;padding:14px;display:flex;position:sticky;top:76px}.lib-filters>h2{font-family:var(--font-title);font-size:var(--text-xs);letter-spacing:var(--label-tracking);text-transform:uppercase;align-items:center;gap:6px;margin:0;font-weight:600;display:flex}.lib-field{font-size:var(--text-xs);color:var(--text-muted);flex-direction:column;gap:4px;min-width:0;display:flex}.lib-field select,.lib-field input,.lib-sort select{font:inherit;font-size:var(--text-sm);border:1px solid var(--rule-strong);border-radius:var(--radius-s);background:var(--surface);min-height:32px;color:var(--text);width:100%;padding:0 8px}.lib-field select:focus,.lib-field input:focus,.lib-sort select:focus{outline:2px solid var(--focus-ring);outline-offset:0}.lib-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lib-check{font-size:var(--text-sm);cursor:pointer;align-items:center;gap:8px;display:flex}.lib-check input{accent-color:var(--lib-ink);width:16px;height:16px}.lib-filters-toggle{text-transform:none;letter-spacing:0;font-family:var(--font-ui);margin-left:auto;font-weight:400;display:none}.lib-results{flex-direction:column;gap:22px;min-width:0;display:flex}.lib-results-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lib-count{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0}.lib-sort{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:8px;display:flex}.lib-sort select{width:auto}.lib-note{border:1px solid var(--rule);border-left:4px solid var(--state-ok-mark);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-1);animation:lib-rise var(--duration-base) var(--ease-out);margin:0;padding:10px 14px}.lib-group>h2{font-family:var(--font-title);font-size:var(--text-md);color:var(--text);align-items:center;gap:10px;margin:0 0 2px;font-weight:600;display:flex}.lib-count-chip{border-radius:var(--radius-pill);background:var(--surface-hover);border:1px solid var(--rule);min-width:24px;height:22px;font:500 var(--text-xs)/1 var(--font-mono);color:var(--text-muted);place-items:center;padding:0 7px;display:inline-grid}.lib-group-about{color:var(--text-muted);font-size:var(--text-sm);margin:0 0 12px}.lib-move-all{font-family:var(--font-ui);margin-left:auto;font-weight:400}.lib-empty{border:1.5px dashed var(--rule-strong);border-radius:var(--radius-l);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:12px;padding:18px;display:flex}.lib-empty p{flex:260px;margin:0}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.lib-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-l);transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.lib-card:hover{box-shadow:var(--shadow-2);border-color:var(--rule-strong);transform:translateY(-3px)}.lib-card[data-archived]{opacity:.72;filter:grayscale(.5)}.lib-card-figure{border-bottom:1px solid var(--border);background:radial-gradient(120% 90% at 50% 105%,#dfe8dc 0%,#eef3ec 45%,#f7f9f6 100%);height:150px;display:block;position:relative;overflow:hidden}.lib-card-figure:after{content:"";background:var(--tone,transparent);height:4px;position:absolute;top:0;left:0;right:0}.lib-card-figure[data-tone=terrace]{--tone:var(--tone-terrace)}.lib-card-figure[data-tone=semi]{--tone:var(--tone-semi)}.lib-card-figure[data-tone=detached]{--tone:var(--tone-detached)}.lib-card-figure[data-tone=bungalow]{--tone:var(--tone-bungalow)}.lib-card-figure[data-tone=flats]{--tone:var(--tone-flats)}.lib-thumb{place-items:center;display:grid;position:absolute;inset:0}.lib-axo,.lib-render{object-fit:contain;width:100%;height:100%;transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out);position:absolute;inset:0}.lib-axo path{stroke:#1c262259;stroke-width:.5px;stroke-linejoin:round}.lib-axo path[data-kind=shadow]{stroke:none;opacity:.55;filter:blur(.6px)}.lib-thumb[data-rendered] .lib-axo{opacity:0}.lib-render{animation:lib-fade var(--duration-slow) var(--ease-out)}@keyframes lib-fade{0%{opacity:0}to{opacity:1}}.lib-card:hover .lib-axo,.lib-card:hover .lib-render{transform:scale(1.045)}.lib-card-plan{border-radius:var(--radius-s);border:1px solid var(--border);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.92;transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out);transform-origin:0 100%;background:#ffffffe6;place-items:center;padding:2px;display:grid;position:absolute;bottom:8px;left:8px}.lib-card:hover .lib-card-plan{opacity:1;transform:scale(1.5)}.lib-card-plan svg{display:block}.lib-card-plan .build-footprint-face[data-tag=principal]{stroke-width:2.6px}.lib-card-plan .build-footprint-face[data-tag=secondary]{stroke-width:1.6px;stroke-dasharray:4 2.6}.lib-card-plan .build-footprint-face[data-tag=blank]{stroke-width:.9px}.lib-card-plan .build-footprint-face[data-party]{stroke-width:3.4px;stroke-dasharray:1 1.4}.lib-card-beds{border-radius:var(--radius-pill);color:#fff;font:600 var(--text-xs)/1.2 var(--font-mono);background:#1c2622d1;padding:3px 8px;position:absolute;top:12px;right:8px}.lib-card-body{flex-direction:column;flex:1;gap:6px;min-width:0;padding:12px 14px 4px;display:flex}.lib-card-name{font-size:var(--text-base);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.3}.lib-card-range{font-size:var(--text-2xs);color:var(--lib-accent);text-transform:uppercase;letter-spacing:var(--label-tracking);font-family:var(--font-title);margin:0;font-weight:600}.lib-card-kind{font-size:var(--text-xs);color:var(--text-muted);margin:0}.lib-card-figures{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:4px 0 0;padding:8px 0;display:grid}.lib-card-figures div{min-width:0}.lib-card-figures dt{font-family:var(--font-title);font-size:var(--text-2xs);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--text-faint);font-weight:600}.lib-card-figures dd{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:2px 0 0}.lib-card-tags{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:2px;display:flex}.lib-card-faces{font-size:var(--text-2xs);color:var(--text-muted)}.lib-card-evidence{font-size:var(--text-2xs);color:var(--text-faint);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.4;display:-webkit-box;overflow:hidden}.lib-card-version{font-size:var(--text-2xs);color:var(--text-faint);font-family:var(--font-mono);margin:0}.lib-card-actions{flex-direction:column;gap:8px;padding:10px 14px 14px;display:flex}.lib-card-main{gap:8px;display:flex}.lib-card-main>.lib-btn{flex:1}.lib-card-more{flex-wrap:wrap;gap:4px 14px;display:flex}.lib-range .lib-card-actions{flex-flow:wrap;align-items:center}.lib-new-card a{border:2px dashed var(--rule-strong);border-radius:var(--radius-l);height:100%;min-height:280px;color:var(--text-muted);text-align:center;transition:all var(--duration-base) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;text-decoration:none;display:flex}.lib-new-card a:hover{border-color:var(--lib-accent);color:var(--text);background:var(--lib-accent-soft)}.lib-new-card small{max-width:24ch}.lib-new-plus{background:var(--surface);border:1px solid var(--rule);width:56px;height:56px;box-shadow:var(--shadow-1);color:var(--lib-accent);transition:transform var(--duration-base) var(--ease-out);border-radius:50%;place-items:center;display:grid}.lib-new-card a:hover .lib-new-plus{transform:rotate(90deg)scale(1.06)}.lib-range-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.lib-range{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-l);flex-direction:column;gap:6px;min-width:0;padding:12px 14px 14px;display:flex}.lib-range .lib-card-actions{margin-top:auto;padding:8px 0 0}.lib-range-confirm{font-size:var(--text-xs);color:var(--text-muted)}.lib-range-form{flex-direction:column;gap:6px;max-width:560px;margin:0 0 12px;display:flex}.lib-range-form h3{font-size:var(--text-sm);margin:0}.lib-range-choices{border:1px solid var(--border);border-radius:var(--radius-s);flex-direction:column;gap:2px;max-height:260px;margin:4px 0;padding:6px 10px;display:flex;overflow:auto}.lib-range-choices legend{font-size:var(--text-xs);color:var(--text-muted);padding:0 4px}.lib-range-form-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lib-stub{text-align:center;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-l);max-width:560px;box-shadow:var(--shadow-1);flex-direction:column;align-items:center;gap:8px;margin:56px auto;padding:36px 28px;display:flex}.lib-stub-icon{background:var(--lib-accent-soft);width:72px;height:72px;color:var(--lib-accent);border-radius:50%;place-items:center;display:grid}.lib-stub h2{font-family:var(--font-title);font-size:var(--text-lg);margin:6px 0 0}.lib-stub p{color:var(--text-muted);margin:0}.lib-stub-soon{font-family:var(--font-title);font-size:var(--text-2xs);letter-spacing:var(--label-tracking);text-transform:uppercase;font-weight:600;color:var(--text-faint)!important}.lib-moved{font-family:var(--font-ui);padding:40px 24px}@media (max-width:860px){.lib-hero{padding:16px 12px 0}.lib-hero h1{font-size:var(--text-xl)}.lib-types-head{padding:10px 12px;position:static}.lib-search{flex:100%}.lib-head-actions{margin-left:0}.lib-body{grid-template-columns:1fr;gap:12px;padding:12px}.lib-filters{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid;position:static}.lib-filters>h2,.lib-filters>.lib-row{grid-column:1/-1}.lib-filters:not([data-open])>:not(h2){display:none}.lib-filters-toggle{display:inline}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.lib-card-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.lib-banner{padding:8px 12px}}@media (max-width:420px){.lib-grid{grid-template-columns:1fr}.lib-tab{padding:8px 10px 10px}.lib-tab span{font-size:var(--text-xs)}}@media (prefers-reduced-motion:reduce){.lib-card,.lib-axo,.lib-render,.lib-new-plus,.lib-tab-body{transition:none;animation:none}.lib-card:hover{transform:none}}
