.tools-page { padding-bottom: var(--sc-space-20); }
.tools-hero { padding: var(--sc-space-12) 0 var(--sc-space-10); text-align: center; }
.tools-art { display: flex; align-items: center; justify-content: center; gap: var(--sc-space-3); height: 160px; margin-bottom: var(--sc-space-8); overflow: hidden; }
.tools-art img { width: 158px; height: 126px; object-fit: cover; border-radius: var(--sc-radius-lg); border: 1px solid var(--sc-color-border); }
.tools-art img:nth-child(1) { transform: rotate(-10deg) translateY(15px); }
.tools-art img:nth-child(2) { transform: rotate(-5deg); }
.tools-art img:nth-child(3) { height: 148px; width: 182px; z-index: 1; }
.tools-art img:nth-child(4) { transform: rotate(5deg); }
.tools-art img:nth-child(5) { transform: rotate(10deg) translateY(15px); }
.tools-hero .sc-title-display { font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.12; max-width: none; width: 100%; text-align: center; }
.tools-hero .sc-title-display span { color: var(--sc-color-brand-700); }
.tools-hero .sc-title-display .tools-title-lead { color: var(--sc-color-ink); }
.tools-hero p { max-width: 660px; margin: var(--sc-space-4) auto 0; color: var(--sc-color-muted); font-size: var(--sc-font-size-md); line-height: 1.7; }
.tools-toolbar { display: flex; align-items: end; justify-content: space-between; gap: var(--sc-space-6); padding: var(--sc-space-4) 0; }
.tools-categories { display: flex; flex-wrap: wrap; gap: var(--sc-space-2); }
.tools-categories .sc-button { width: auto; flex: 0 0 auto; gap: var(--sc-space-2); white-space: nowrap; padding-inline: var(--sc-space-4); font-size: var(--sc-font-size-sm); }
.tools-categories .sc-button[aria-pressed="true"] { background: var(--sc-color-selected); color: var(--sc-color-brand-700); border-color: var(--sc-color-selected-border); }
/* Reuse the final control geometry so loading does not shift the catalog. */
.tools-toolbar[data-loading-state="loading"] { pointer-events: none; animation: tools-loading-deadline 12s steps(1, end) forwards; }
.sc-tools-directory .tools-toolbar[data-loading-state="loading"] .tools-categories .sc-button { border-color: transparent; box-shadow: none; }
.tools-toolbar[data-loading-state="loading"] :is(.tools-categories .sc-button, .tools-search .sc-label, .tools-search-row) { position: relative; }
.tools-toolbar[data-loading-state="loading"] :is(.tools-categories .sc-button, .tools-search .sc-label, .tools-search-row)::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--sc-radius-pill); background: var(--sc-color-surface-muted); animation: tools-loading-pulse 1.4s ease-in-out infinite alternate; }
.tools-toolbar[data-loading-state="loading"] .tools-search .sc-label::after { right: 50%; border-radius: var(--sc-radius-sm); }
.tools-toolbar[data-loading-state="loading"] :is(.tools-categories .sc-button > *, .tools-search-row > *) { visibility: hidden; }
.tools-toolbar[data-loading-state="loading"] .tools-search .sc-label { color: transparent; }
@keyframes tools-loading-pulse { to { background: var(--sc-color-surface-secondary); } }
/* Also bound the decorative placeholder when the entry script itself fails. */
@keyframes tools-loading-deadline { to { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .tools-toolbar[data-loading-state="loading"] :is(.tools-categories .sc-button, .tools-search .sc-label, .tools-search-row)::after { animation: none; } }
.tools-category-count { font-size: .75rem; color: var(--sc-color-muted); }
.tools-search { flex: 0 1 280px; min-width: 200px; }
.tools-search-field { position: relative; }
.tools-search .sc-input { padding-right: var(--sc-space-12); }
.tools-search .sc-input::-webkit-search-cancel-button { appearance: none; }
.tools-search .tools-search-clear { position: absolute; right: 0; top: 0; width: var(--sc-control-height); padding: 0; }
.tools-results-bar { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sc-space-4); padding: var(--sc-space-4) 0 var(--sc-space-6); }
.tools-results-bar h2 { font-size: var(--sc-font-size-xl); margin: 0; color: var(--sc-color-ink); }
.tools-results-bar p { margin: 0; font-size: var(--sc-font-size-sm); color: var(--sc-color-muted); }
.tools-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sc-space-8) var(--sc-space-5); }
.tool-card { min-width: 0; display: flex; flex-direction: column; text-decoration: none; color: var(--sc-color-ink); border-radius: var(--sc-radius-lg); padding-bottom: var(--sc-space-4); }
.tool-card[hidden], [data-tools-directory] [hidden] { display: none; }
.tool-card-media { position: relative; aspect-ratio: 8 / 5; background: var(--sc-color-surface-muted); border-radius: var(--sc-radius-lg); overflow: hidden; border: 1px solid var(--sc-color-border); }
.tool-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--sc-motion-base) var(--sc-ease); }
.tool-card:hover .tool-card-media img { transform: scale(1.035); }
.tool-card:focus-visible { outline: 2px solid var(--sc-color-focus); outline-offset: 6px; }
.tool-card:hover h3 { color: var(--sc-color-brand-700); }
.tool-card-heading { margin-top: var(--sc-space-4); padding-inline: var(--sc-space-3); }
.tool-card h3 { font-size: var(--sc-font-size-md); line-height: 1.45; font-weight: 650; margin: 0; overflow-wrap: anywhere; }
.tool-card p { color: var(--sc-color-muted); font-size: var(--sc-font-size-sm); line-height: 1.6; margin: var(--sc-space-2) 0 0; padding-inline: var(--sc-space-3); }
.tool-card-category { position: absolute; bottom: var(--sc-space-3); left: var(--sc-space-3); background: var(--sc-color-overlay); color: var(--sc-color-ink); border-radius: var(--sc-radius-sm); padding: var(--sc-space-1) var(--sc-space-2); font-size: .75rem; }
.tools-empty { text-align: center; padding: var(--sc-space-16) var(--sc-space-4); background: var(--sc-color-surface); border-radius: var(--sc-radius-lg); }
.tools-empty h3 { margin: 0 0 var(--sc-space-3); }
.tools-empty p { color: var(--sc-color-muted); margin-bottom: var(--sc-space-6); }
.tools-guide { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sc-space-12); border-top: 1px solid var(--sc-color-border); margin-top: var(--sc-space-16); padding-top: var(--sc-space-10); }
.tools-guide h2 { font-size: var(--sc-font-size-xl); color: var(--sc-color-ink); margin: 0 0 var(--sc-space-3); }
.tools-guide p { font-size:var(--sc-content-small-size); color: var(--sc-color-muted); line-height:1.8; margin: 0; }
.tools-guide a { color: var(--sc-color-brand-700); }
@media (max-width: 1100px) { .tools-toolbar { flex-direction: column-reverse; align-items: stretch; gap: var(--sc-space-4); } .tools-search { flex: auto; max-width: 440px; } .tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.tools-mobile-copy { display: none; }
.tools-search-row { display: flex; gap: var(--sc-space-2); }
.tools-search-field { flex: 1; min-width: 0; }
.tools-search .tools-search-submit { display: none; }
.tools-empty-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--sc-space-3); }

/* Supplemental v5b / 09: actual no-match results. */
.sc-tools-directory .tools-empty:not([hidden]) { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:300px; padding:40px 20px; border:1.5px dashed var(--sc-color-border); border-radius:26px; background:transparent; }
.sc-tools-directory .tools-empty-icon { display:grid; place-items:center; flex:none; width:64px; height:64px; margin-bottom:6px; border-radius:50%; background:var(--sc-color-brand-50); color:var(--sc-color-brand-500); }
.sc-tools-directory .tools-empty h3 { margin:0; font:600 20px/1.3 var(--sc-font-display); }
.sc-tools-directory .tools-empty p { max-width:380px; margin:0; font-size:14px; line-height:1.55; }
.sc-tools-directory .tools-empty-actions { gap:10px; margin-top:10px; }
@media(max-width:767px) { .sc-tools-directory .tools-empty:not([hidden]) { min-height:240px; padding:30px 16px; } .sc-tools-directory .tools-empty-actions { flex-direction:row; } }

/* Phone composition: a persistent finder and readable thumbnail rows. */
@media (max-width: 767px) {
  body.sc-tools-directory sugarcube-header { position: sticky; top: 0; }
  .tools-page { padding-bottom: var(--sc-space-12); }
  .tools-desktop-copy, .tools-art { display: none; }
  .tools-mobile-copy { display: inline; }
  .tools-hero { padding: var(--sc-space-6) 0 var(--sc-space-4); text-align: left; }
  .tools-hero .sc-title-display { font-size: 1.75rem; text-align: left; line-height: 1.25; }
  .tools-hero .sc-title-display > .tools-mobile-copy { color: var(--sc-color-ink); }
  .tools-hero p.tools-mobile-copy { display: block; margin: var(--sc-space-2) 0 0; font-size: var(--sc-font-size-sm); line-height: 1.5; }
  .tools-toolbar { position: sticky; top: var(--tools-header-offset, 58px); z-index: 20; gap: var(--sc-space-2); padding: var(--sc-space-3) 0 var(--sc-space-2); background: var(--sc-color-canvas); border-bottom: 1px solid var(--sc-color-border); }
  .tools-search { width: 100%; max-width: none; min-width: 0; margin: 0; }
  .tools-search > .sc-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .tools-search .sc-input { font-size: 1rem; min-height: 48px; padding-right: var(--sc-space-12); }
  .tools-search .tools-search-clear { width: 44px; min-height: 48px; }
  .tools-search .tools-search-submit { display: inline-flex; flex: 0 0 auto; width: auto; min-width: 48px; min-height: 48px; padding-inline: var(--sc-space-3); }
  .tools-categories { position: relative; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; gap: var(--sc-space-1); padding: var(--sc-space-1) 0; scroll-padding-inline: var(--sc-space-2); overscroll-behavior-x: contain; }
  .tools-categories .sc-button { padding-inline: var(--sc-space-3); min-height: 44px; font-size: var(--sc-font-size-sm); }
  .tools-category-count { display: none; }
  .tools-results-bar { flex-direction: row; align-items: baseline; gap: var(--sc-space-3); padding: var(--sc-space-5) 0 var(--sc-space-2); }
  .tools-results-bar h2 { font-size: var(--sc-font-size-md); flex-shrink: 0; }
  .tools-results-bar p { font-size: .8125rem; text-align: right; }
  .tools-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .tool-card { display: grid; grid-template-columns: 88px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: var(--sc-space-3); row-gap: var(--sc-space-1); padding-block: var(--sc-space-4); border-bottom: 1px solid var(--sc-color-border); border-radius: 0; min-height: 120px; }
  .tool-card-media { grid-column: 1; grid-row: 1 / 3; aspect-ratio: 1; align-self: start; border-radius: var(--sc-radius-md); }
  .tool-card-heading { grid-column: 2; grid-row: 1; margin: 0; padding-inline: 0; }
  .tool-card h3 { font-size: var(--sc-font-size-md); line-height: 1.45; overflow-wrap: break-word; }
  .tool-card p { grid-column: 2; grid-row: 2; margin: 0; padding-inline: 0; font-size: var(--sc-font-size-sm); line-height: 1.5; }
  .tool-card-category { display: none; }
  .tool-card:hover .tool-card-media img { transform: none; }
  .tool-card:active { background: var(--sc-color-surface); }
  .tool-card:focus-visible { outline-offset: 2px; }
  .tools-empty { margin-top: var(--sc-space-4); padding: var(--sc-space-8) var(--sc-space-4); }
  .tools-empty-actions { flex-direction: column; }
  .tools-guide { grid-template-columns: 1fr; gap: var(--sc-space-8); margin-top: var(--sc-space-10); }
}
@media (prefers-reduced-motion: reduce) { .tool-card-media img { transition: none; } .tool-card:hover .tool-card-media img { transform: none; } }

/* v5b / 09: directory cards and responsive catalog. */

.sc-tools-directory .sc-public-hero .sc-tool-hero__lead { max-width:var(--sc-composer-width)!important; text-wrap:balance; }
.sc-tools-directory .tools-art { display:none; }
.sc-tools-directory .tools-toolbar { position:static; flex-direction:row; align-items:flex-end; gap:24px; padding:12px 0 0; border:0; background:transparent; }
.sc-tools-directory .tools-search { flex:0 0 340px; max-width:none; }
.sc-tools-directory .tools-search .sc-label { font-size:var(--sc-font-size-md); font-weight:500; }
.sc-tools-directory .tools-categories { gap:8px; }
.sc-tools-directory .tools-categories .sc-button { min-height:var(--sc-control-height); padding:8px 16px; border-radius:var(--sc-radius-pill); font-size:var(--sc-font-size-md); background:var(--sc-color-surface-muted); }
.sc-tools-directory .tools-categories .sc-button[aria-pressed="true"] { color:var(--sc-color-canvas); background:var(--sc-color-ink); border-color:transparent; }
.sc-tools-directory .tools-categories .sc-button[aria-pressed="true"] .tools-category-count { color:inherit; }
.sc-tools-directory .tools-results-bar { padding:34px 0 22px; }
.sc-tools-directory .tools-results-bar h2 { font:600 24px/1.2 var(--sc-font-display); letter-spacing:-.025em; }
.sc-tools-directory .tools-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.sc-tools-directory .tool-card { position:relative; padding:7px 7px 17px; border-radius:calc(var(--sc-radius-lg) + 2px); background:var(--sc-color-surface); box-shadow:inset 0 0 0 1px var(--sc-color-border); transition:transform var(--sc-motion-base) var(--sc-ease),box-shadow var(--sc-motion-base); }
.sc-tools-directory .tool-card:hover { transform:translateY(-4px); box-shadow:inset 0 0 0 1px var(--sc-color-border-strong),var(--sc-shadow-lg); }
.sc-tools-directory .tool-card-media { display:contents; }
.sc-tools-directory .tool-card-media img { width:100%; aspect-ratio:16/10; height:auto; object-fit:cover; border-radius:var(--sc-radius-md); transform:none; }
.sc-tools-directory .tool-card-category { position:static; display:block; padding:0 10px; margin-top:14px; color:var(--sc-color-subtle); background:none; font:400 10px/1.55 var(--sc-font-mono); letter-spacing:.08em; text-transform:uppercase; }
.sc-tools-directory .tool-card-heading { margin:6px 0 0; padding:0 10px; }
.sc-tools-directory .tool-card h3 { font:600 var(--sc-content-small-size)/1.4 var(--sc-font-display); letter-spacing:-.02em; }
.sc-tools-directory .tool-card p { margin:6px 0 0; padding:0 10px; font-size:var(--sc-font-size-md); line-height:1.6; }
.sc-tools-directory .tool-card-arrow { position:absolute; right:16px; top:16px; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:rgba(23,17,13,.7); backdrop-filter:blur(6px); color:var(--sc-color-ink); opacity:0; transform:translateY(4px); transition:opacity var(--sc-motion-base),transform var(--sc-motion-base),background var(--sc-motion-base); }
.sc-tools-directory .tool-card:is(:hover,:focus-visible) .tool-card-arrow { opacity:1; transform:none; background:var(--sc-color-brand-500); color:var(--sc-color-canvas); }
.sc-tools-directory .tools-guide { margin-top:64px; }
@media (max-width:1300px) and (min-width:768px) { .sc-tools-directory .tools-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .sc-tools-directory .tools-search { flex-basis:300px; } }
@media (max-width:767px) {
  .sc-tools-directory .tools-toolbar { flex-direction:column-reverse; align-items:stretch; gap:14px; }
  .sc-tools-directory .tools-search { flex:auto; width:100%; }
  .sc-tools-directory .tools-search > .sc-label { position:static; width:auto; height:auto; clip:auto; overflow:visible; }
  .sc-tools-directory .tools-search .tools-search-submit { display:none; }
  .sc-tools-directory .tools-categories { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .sc-tools-directory .tools-category-count { display:inline; }
  .sc-tools-directory .tools-results-bar { padding:26px 0 18px; }
  .sc-tools-directory .tools-results-bar h2 { font-size:20px; }
  .sc-tools-directory .tools-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .sc-tools-directory .tool-card { display:grid; grid-template-columns:96px minmax(0,1fr); grid-template-rows:auto auto 1fr; gap:4px 14px; min-height:112px; padding:8px; border:0; align-content:center; }
  .sc-tools-directory .tool-card-media img { grid-column:1; grid-row:1/4; height:96px; aspect-ratio:1; align-self:center; }
  .sc-tools-directory .tool-card-category { grid-column:2; grid-row:1; padding:0; margin:3px 0 0; font-size:9px; }
  .sc-tools-directory .tool-card-heading { grid-column:2; grid-row:2; padding:0; margin:0; }
  .sc-tools-directory .tool-card h3 { font-size:var(--sc-content-small-size); line-height:1.4; }
  .sc-tools-directory .tool-card p { grid-column:2; grid-row:3; padding:0; margin:0; font-size:var(--sc-font-size-md); line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .sc-tools-directory .tool-card :is(.tool-card-category,.tool-card-heading,p) { padding-right:34px; }
  .sc-tools-directory .tool-card-arrow { opacity:1; transform:none; top:50%; margin-top:-16px; right:10px; }
  .sc-tools-directory .tool-card:hover { transform:none; }
}
