.cat-draw{--cat:#9b7a93;--cat-ink:#61465e;--cat-bg:#f1e8ee}.cat-birth{--cat:#c7a466;--cat-ink:#7a5a28;--cat-bg:#f5edda}.cat-star{--cat:#7f93bb;--cat-ink:#2c3f68;--cat-bg:#e4e9f3}.cat-test{--cat:#79aaa2;--cat-ink:#2c5f5a;--cat-bg:#dfece9}.tool-catalog{padding-top:28px}.tool-catalog .page-heading{padding:0 0 16px}.tool-catalog .page-heading h1{margin-bottom:6px}.tool-catalog .page-heading p{margin:0}.cat-nav{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.cat-nav a{border:1px solid var(--line);background:var(--white);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:6px 16px;font-size:1rem;line-height:1.5;text-decoration:none;display:inline-flex}.cat-nav a:hover{border-color:var(--cat)}.cat-nav a:focus-visible{outline:2px solid var(--plum);outline-offset:2px}.cat-dot{background:var(--cat);border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.tool-catalog .cat-head{font-family:var(--serif);color:var(--cat-ink);align-items:center;gap:10px;margin:28px 0 8px;scroll-margin-top:16px;font-size:1.35rem;font-weight:500;line-height:1.5;display:flex}.cat-head .count{font-family:var(--sans);color:var(--muted);font-size:1rem}.tool-cards{grid-template-columns:1fr 1fr;gap:12px 24px;display:grid}.tool-card.tool-row{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--cat);border-radius:8px;grid-template-columns:64px minmax(0,1fr);align-content:start;gap:4px 18px;padding:18px;position:relative}.tool-card.tool-row:hover{border-color:var(--cat)}.tool-card.tool-row:focus-within{outline:2px solid var(--plum);outline-offset:2px}.tool-card .icon-tile{background:#f3eee4;border-radius:50%;grid-row:1/3;place-items:center;width:64px;height:64px;display:grid;box-shadow:inset 0 0 0 1px #e6dccb}.tool-card .icon-tile svg{width:44px;height:44px;display:block}.tool-card .tool-heading{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.tool-card .cat-chip{background:var(--cat-bg);color:var(--cat-ink);border-radius:4px;padding:0 8px;font-size:1rem;line-height:1.5}.tool-card h3{font-family:var(--serif);margin:0;font-size:1.3rem;font-weight:500;line-height:1.45}.tool-card .tool-heading>.text-link{min-height:0;color:var(--plum);text-underline-offset:4px;border-bottom:0;padding:4px 0;font-size:1rem;line-height:1.7;text-decoration:underline;display:inline}.tool-card .tool-heading>.text-link:after{content:"";border-radius:8px;position:absolute;inset:0}.tool-card .tool-heading>.text-link:focus-visible{outline:none}.tool-card .status-badge{pointer-events:none;padding:0 8px;font-size:1rem;line-height:1.5;position:absolute;top:18px;right:18px}.tool-card .tool-detail{grid-column:2;min-width:0}.tool-card .tool-detail p{color:var(--muted);margin:0;font-size:1rem;line-height:1.7}.tool-card .tool-detail dl{margin:6px 0 0;font-size:1rem;line-height:1.6}.tool-card .tool-detail dl>div{margin:2px 0;display:block}.tool-card .tool-detail dt{margin-right:8px;display:inline}.tool-card .tool-detail dd{color:var(--muted);display:inline}.tool-catalog .catalog-note{margin:32px 0 0}.tool-catalog .catalog-note p,.tool-catalog .catalog-note .text-link{font-size:1rem}@media (width<=1000px){.tool-cards{grid-template-columns:1fr}}@media (width<=760px){.tool-catalog{padding-top:16px}.tool-catalog .page-heading{padding:0 0 10px}.tool-catalog .page-heading h1{font-size:1.8rem}.cat-nav{margin:0 0 8px}.cat-nav a{padding:4px 14px}.tool-catalog .cat-head{margin:14px 0 6px;font-size:1.15rem}.tool-cards{gap:6px}.tool-card.tool-row{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:0 12px;padding:8px 12px}.tool-card .icon-tile{width:48px;height:48px}.tool-card .icon-tile svg{width:36px;height:36px}.tool-card .tool-heading{gap:0}.tool-card h3{font-size:1.1rem}.tool-card .cat-chip,.tool-card .status-badge,.tool-card .tool-detail dl{display:none}.tool-card .tool-heading>.text-link{white-space:nowrap;width:1px;height:1px;margin:0;padding:0;display:block;overflow:hidden}.tool-card .tool-detail p{-webkit-line-clamp:1;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}}
