.cat-page{max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}.cat-page :where(h1,h2,p,dl,dd){margin:0}.cat-head{position:relative;padding:clamp(36px,5vw,64px) 0 0}.cat-head:before{content:"";position:absolute;inset:-40% 0 auto 0;height:120%;background:radial-gradient(ellipse 45% 50% at 20% 30%,var(--primary-dim),transparent 70%);pointer-events:none}.cat-head>*{position:relative}.cat-kicker{font:600 12px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--primary-text)}.cat-headrow{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-top:12px}.cat-page h1{font-size:clamp(32px,4.2vw,46px);line-height:1.08;font-weight:700;letter-spacing:-.03em}.cat-sub{color:var(--muted);font-size:16px;line-height:1.6;margin-top:12px;max-width:54ch}.cat-count{font:500 12.5px var(--font-mono);color:var(--muted);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);white-space:nowrap}.cat-count b{color:var(--text);font-weight:500}.cat-tools{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.cat-find{flex:1 1 340px;min-width:0;display:flex;align-items:center;gap:10px;background:var(--field-background);border:1px solid var(--field-border);border-radius:var(--field-radius);padding:0 6px 0 14px;transition:border-color var(--t),box-shadow var(--t)}.cat-find svg{color:var(--quiet);flex:none}.cat-find input[type=search]{flex:1 1;min-width:0;background:transparent;border:0;color:var(--text);padding:10px 0;outline:none;box-shadow:none}.cat-find input::placeholder{color:var(--quiet)}.cat-clear{color:var(--muted);padding:8px;border-radius:6px;display:inline-flex;text-decoration:none}.cat-clear:hover{color:var(--text);background:var(--surface-soft)}.cat-go{font:600 13px var(--font);padding:8px 15px;border-radius:var(--radius-sm);border:0;background:var(--p-fill);color:var(--on-p);cursor:pointer}.cat-go:hover{background:var(--pd)}.cat-sort{display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px}.cat-sort span{color:var(--muted);padding:0 8px 0 10px}.cat-sort a{padding:8px 12px;border-radius:6px;color:var(--muted);font-weight:500;text-decoration:none}.cat-sort a:hover{color:var(--text)}.cat-sort a[aria-current=true]{background:var(--surface-soft);color:var(--text)}.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.cat-chip{font:500 13px var(--font);padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--muted);display:inline-flex;gap:8px;align-items:center;text-decoration:none;transition:background var(--t),color var(--t),border-color var(--t)}.cat-chip:hover{color:var(--text);border-color:var(--quiet)}.cat-chip[aria-current=true]{color:var(--primary-text);border-color:var(--primary-border);background:var(--primary-dim)}.cat-chip small{font:400 11.5px var(--font-mono);color:var(--quiet)}.cat-chip[aria-current=true] small{color:var(--primary-text)}.cat-meta{margin-top:18px;font-size:13px;color:var(--muted);min-height:20px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:16px;gap:16px;margin-top:8px}.cat-card{text-align:left;display:flex;flex-direction:column;gap:10px;min-width:0;font:inherit;color:inherit;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius);padding:20px;cursor:pointer;transition:transform var(--t),border-color var(--t),box-shadow var(--t)}.cat-card:hover{transform:translateY(-3px);border-color:var(--primary-border);box-shadow:var(--shadow-float)}.cat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cat-h{display:block;font:600 14px var(--font-mono);color:var(--primary-text);overflow-wrap:anywhere}.cat-desc{font-size:13.5px;color:var(--muted);line-height:1.6;flex:1 1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.cat-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding-top:12px;border-top:1px solid var(--line);font:400 11.5px var(--font-mono);color:var(--quiet)}.cat-empty{text-align:center;padding:72px 20px 24px}.cat-empty svg{width:34px;height:34px;color:var(--quiet)}.cat-empty h2{font-size:18px;font-weight:600;margin-top:14px}.cat-empty p{color:var(--muted);font-size:14px;margin:6px auto 20px;max-width:46ch}.cat-empty .cat-ctas{gap:10px;flex-wrap:wrap}.cat-empty .cat-ctas,.cat-pages{display:flex;justify-content:center}.cat-pages{gap:18px;margin-top:28px;font-size:13px;color:var(--muted)}.cat-pages a{color:var(--primary-text)}.cat-band{margin-top:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-raised);text-align:center;padding:clamp(40px,5vw,64px) 20px;position:relative;overflow:hidden}.cat-band:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 90% at 50% 120%,var(--primary-dim-strong),transparent 70%);pointer-events:none}.cat-band>*{position:relative}.cat-band h2{font-size:clamp(22px,2.6vw,30px);font-weight:600;letter-spacing:-.02em}.cat-band p{color:var(--muted);margin:10px auto 22px;max-width:48ch;font-size:14.5px}.cat-vh{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}@media (max-width:680px){.cat-grid{grid-template-columns:1fr}.cat-sort{width:100%}.cat-sort a{flex:1 1;text-align:center}}@media (prefers-reduced-motion:reduce){.cat-card,.cat-chip,.cat-find{transition:none}}.cat-entry{display:flex;flex-direction:column;min-width:0;gap:8px}.cat-entry .cat-card{flex:1 1;width:100%}.cat-permalink:focus-visible{position:static;width:auto;height:auto;margin:0;padding:2px 4px;overflow:visible;clip:auto;font-size:13px;color:var(--primary-hover)}.cat-permalink{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cat-find:focus-within{border-color:var(--primary-text);box-shadow:0 0 0 3px var(--primary-ring)}.cat-find:has(input:focus-visible){outline:2px solid var(--primary-text);outline-offset:2px;box-shadow:none}