/* Topic collections only. Load after the site's shared presentation styles. */
main.page.editorial-page.topics-page{
  --topic-ink:#142744;
  --topic-muted:#4d6380;
  --topic-blue:#155dc7;
  --topic-mint:#267d6c;
  --topic-line:#d6e1ee;
  box-sizing:border-box;
  width:100%;max-width:1220px;min-width:0;
  margin:0 auto;padding:26px 28px 52px;
  color:var(--topic-ink);font-size:15px;line-height:1.8;
}
main.topics-page :where(*){box-sizing:border-box;min-width:0}
main.topics-page :is(h1,h2,h3,p,li,a,strong,small){overflow-wrap:anywhere}
main.topics-page :is(a,button,summary,select):focus-visible{outline:3px solid #4389e7;outline-offset:4px}
main.topics-page .breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:0 0 16px;font-size:13px;line-height:1.65}
main.topics-page .breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--topic-muted)}
main.topics-page .topic-hero{margin:0 0 20px;padding:4px 0 24px;border-bottom:1px solid var(--topic-line);text-align:left}
main.topics-page .topic-hero .eyebrow{display:block;margin:0 0 10px;color:var(--topic-mint);font-size:11px;font-weight:700;line-height:1.6;letter-spacing:1.7px}
main.topics-page .topic-hero h1{max-width:900px;margin:0 0 12px;color:var(--topic-ink);font-size:clamp(28px,3.4vw,38px);font-weight:750;line-height:1.35;letter-spacing:-.8px}
main.topics-page .topic-hero p{max-width:880px;margin:0;color:var(--topic-muted);font-size:16px;line-height:1.85}
main.topics-page .topic-count{display:inline-flex;align-items:center;max-width:100%;margin-top:15px;padding:5px 11px;border:1px solid #c8e2d8;border-radius:8px;background:#edf7f2;color:#286859;font-size:13px;font-weight:600;line-height:1.7;font-variant-numeric:tabular-nums}

main.topics-page .topic-navigation{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;padding:0;max-width:100%}
main.topics-page .topic-navigation a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:9px 15px;border:1px solid var(--topic-line);border-radius:999px;background:#fff;color:#3e5878;text-decoration:none;font-size:14px;line-height:1.55}
main.topics-page .topic-navigation a:is([aria-current="page"],.active){border-color:var(--topic-blue);background:var(--topic-blue);color:#fff}
main.topics-page .topic-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch;margin:0}
main.topics-page a.topic-card{display:flex;flex-direction:column;gap:0;min-height:44px;padding:21px 22px;border:1px solid var(--topic-line);border-radius:15px;background:#fff;color:var(--topic-ink);box-shadow:0 4px 13px #17365c05;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s}
main.topics-page .topic-card small{display:block;align-self:flex-start;margin-bottom:10px;padding:3px 8px;border-radius:6px;background:#edf3fc;color:#476c9a;font-size:12px;font-weight:500;line-height:1.6}
main.topics-page .topic-card h2{margin:0 0 9px;font-size:21px;line-height:1.45;letter-spacing:-.3px;font-weight:700}
main.topics-page .topic-card p{margin:0 0 9px;color:var(--topic-muted);font-size:14px;line-height:1.8}
main.topics-page .topic-card>span:last-child{display:block;margin-top:auto;padding-top:9px;color:var(--topic-blue);font-size:13px;font-weight:600;line-height:1.7}

main.topics-page .topic-advice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 26px}
main.topics-page .topic-advice>.panel{margin:0;padding:22px 24px;border:1px solid var(--topic-line);border-radius:14px;background:#fff;box-shadow:none}
main.topics-page .topic-advice>.panel:first-child{border-top:3px solid #7cbca8;padding-top:20px}
main.topics-page .topic-advice h2{margin:0 0 11px;color:var(--topic-ink);font-size:20px;font-weight:700;line-height:1.5}
main.topics-page .topic-advice ul{margin:0;padding-left:21px;color:var(--topic-muted);font-size:15px;line-height:1.9}
main.topics-page .topic-advice li{margin:5px 0;padding-left:2px}
main.topics-page .topic-advice li::marker{color:var(--topic-mint)}
main.topics-page .topic-projects{margin:26px 0 0;max-width:100%}
main.topics-page .topic-projects>.table-title{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin:0 0 16px}
main.topics-page .topic-projects>.table-title h2{margin:0 0 4px;color:var(--topic-ink);font-size:24px;line-height:1.5;letter-spacing:-.4px}
main.topics-page .topic-projects>.table-title p{margin:0;color:var(--topic-muted);font-size:14px;line-height:1.8}
main.topics-page .topic-projects>.table-title>a{display:inline-flex;align-items:center;min-height:44px;color:var(--topic-blue);font-size:14px;line-height:1.6}
main.topics-page .topic-projects .resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;width:100%;max-width:100%;margin:0}
main.topics-page .topic-projects .resource-card{display:flex;flex-direction:column;min-width:0;padding:0;border:1px solid #cfddeb;border-radius:14px;background:#fff;box-shadow:0 4px 12px #17365c05;content-visibility:visible;contain-intrinsic-size:none;animation:none}
main.topics-page .topic-projects .card-cover{position:relative;min-width:0;padding:0}
main.topics-page .topic-projects .card-image-link{display:block;overflow:hidden;width:100%;border-radius:13px 13px 0 0}
main.topics-page .topic-projects .card-cover .catalog-art{width:100%;height:auto;min-height:0;margin:0;padding:0;aspect-ratio:16/9;border-radius:0}
main.topics-page .topic-projects .card-cover .project-cover{max-width:100%;object-fit:contain}
main.topics-page .topic-projects .card-cover .designed-cover .project-cover{object-fit:cover}
main.topics-page .topic-projects .card-cover>.favorite-button{width:44px;height:44px;min-height:44px;left:auto;right:8px;top:8px;font-size:25px}
main.topics-page .topic-projects .card-body{flex:1;min-width:0;padding:15px 16px 12px}
main.topics-page .topic-projects .card-overline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:18px;margin:0 0 8px;font-size:12px;line-height:1.55;letter-spacing:0}
main.topics-page .topic-projects .card-overline>span{color:#42658e}
main.topics-page .topic-projects .card-sources{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}
main.topics-page .topic-projects .card-sources span{font-size:11px;line-height:1.5}
main.topics-page .topic-projects .card-body h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;margin:0 0 8px;color:var(--topic-ink);font-size:17px;font-weight:650;line-height:1.55;letter-spacing:0}
main.topics-page .topic-projects .card-body h3 a{color:inherit;text-decoration:none}
main.topics-page .topic-projects .card-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;margin:0 0 10px;color:var(--topic-muted);font-size:14px;line-height:1.75}
main.topics-page .topic-projects .tags{display:flex;flex-wrap:wrap;gap:5px;max-width:100%;margin:0}
main.topics-page .topic-projects .tag{max-width:100%;padding:3px 6px;font-size:11px;line-height:1.5;white-space:normal}
main.topics-page .topic-projects .card-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;min-width:0;margin:auto 16px 0;padding:5px 0 8px;border-top:1px solid #e1e8f2;background:transparent;color:var(--topic-muted);font-size:12px}
main.topics-page .topic-projects .card-activity{display:flex;align-items:center;flex-wrap:wrap;gap:4px 9px;min-width:0;max-width:100%;padding:0;color:var(--topic-muted);font-size:12px;line-height:1.6}
main.topics-page .topic-projects .card-activity>span{display:inline-flex;white-space:normal}
main.topics-page .topic-projects .card-published-at{display:inline-flex;max-width:100%;font-size:12px;white-space:normal}
main.topics-page .topic-projects .card-bottom>a{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;min-width:44px;margin-left:auto;color:var(--topic-blue);font-size:13px;font-weight:600;line-height:1.5}

main.topics-page .topic-projects>.library-pagination-meta,main.topics-page .topic-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;max-width:100%;margin-top:22px;padding-top:17px;border-top:1px solid var(--topic-line)}
main.topics-page :is(.topic-pagination,.topic-projects) .library-pagination-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;max-width:100%;color:var(--topic-muted);font-size:13px;line-height:1.7}
main.topics-page .topic-projects>.library-pagination-meta p,main.topics-page .topic-pagination p{margin:0;font-size:13px;line-height:1.7}
main.topics-page .library-page-size{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--topic-muted);font-size:13px}
main.topics-page .library-page-size select{max-width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--topic-line);border-radius:8px;background:#fff;color:var(--topic-muted);font-size:14px}
main.topics-page .library-pagination-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:6px;max-width:100%;margin-top:12px}
main.topics-page .library-page-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;height:auto;max-width:100%;padding:9px 12px;border:1px solid var(--topic-line);border-radius:8px;background:#fff;color:#3f5c80;font-size:14px;line-height:1.55;text-decoration:none}
main.topics-page .library-page-button:is(.is-current,[aria-current="page"]){border-color:var(--topic-blue);background:var(--topic-blue);color:#fff}
main.topics-page .library-page-button:disabled{opacity:.5;cursor:default}
main.topics-page .library-page-gap{color:#73859c;font-size:14px}

main.topics-page .topic-faq{margin-top:28px;padding:22px 24px 8px;border:1px solid var(--topic-line);border-radius:14px;background:#fff}
main.topics-page .topic-faq>h2{margin:0 0 5px;color:var(--topic-ink);font-size:23px;line-height:1.5}
main.topics-page .topic-faq-group{margin:0;padding:10px 0;border-bottom:1px solid #e4ebf4}
main.topics-page .topic-faq-group:last-child{border-bottom:0}
main.topics-page .topic-faq-group summary{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;padding:5px 0;list-style:none;cursor:pointer;color:#25446c;font-size:16px;font-weight:600;line-height:1.7}
main.topics-page .topic-faq-group summary::-webkit-details-marker{display:none}
main.topics-page .topic-faq-group summary::after{content:'+';flex:none;color:#5a7ca6;font-size:24px;font-weight:400;line-height:1}
main.topics-page .topic-faq-group[open] summary::after{content:'−'}
main.topics-page .topic-faq-group p{max-width:940px;margin:6px 32px 10px 0;color:var(--topic-muted);font-size:15px;line-height:1.9}
main.topics-page .topic-related{margin-top:26px;padding-top:22px;border-top:1px solid var(--topic-line)}
main.topics-page .topic-related h2{margin:0 0 13px;color:var(--topic-ink);font-size:22px;line-height:1.5}
main.topics-page .topic-related-links{display:flex;flex-wrap:wrap;gap:8px}
main.topics-page .topic-related-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:9px 14px;border:1px solid var(--topic-line);border-radius:9px;background:#fff;color:#365d8c;font-size:14px;line-height:1.65;text-decoration:none}
main.topics-page .topic-note{margin:24px 0 0;padding:17px 20px;border:1px solid #d7e3f0;border-radius:12px;background:#edf3fa;color:var(--topic-muted);font-size:14px;line-height:1.85;box-shadow:none}
main.topics-page .topic-note h2{margin:0 0 8px;color:#26456b;font-size:20px;line-height:1.5}
main.topics-page .topic-note p{margin:0 0 7px;color:var(--topic-muted);font-size:14px;line-height:1.85}
main.topics-page .topic-note a,main.topics-page .topic-empty a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;color:var(--topic-blue);font-size:14px;font-weight:600;line-height:1.7}
main.topics-page .topic-empty{margin:18px 0;padding:24px 22px;border:1px dashed #b8cce4;border-radius:13px;background:#f7faff;color:var(--topic-muted);text-align:center}
main.topics-page .topic-empty p{margin:0 0 7px;color:var(--topic-muted);font-size:15px;line-height:1.8}

@media(hover:hover) and (pointer:fine){
  main.topics-page a.topic-card:hover{border-color:#8baedc;box-shadow:0 8px 20px #17365c0e;transform:translateY(-2px)}
  main.topics-page .topic-card:hover h2,main.topics-page .topic-projects .card-body h3 a:hover{color:var(--topic-blue)}
  main.topics-page .topic-navigation a:not([aria-current="page"]):not(.active):hover,main.topics-page .topic-related-links a:hover{border-color:#90b6e8;background:#f2f7ff}
}
@media(max-width:900px){
  main.page.editorial-page.topics-page{padding:22px 22px 42px}
  main.topics-page .topic-catalog-grid,main.topics-page .topic-projects .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
  main.topics-page .topic-advice{gap:14px}
  main.topics-page .topic-advice>.panel{padding:19px 20px}
  main.topics-page .topic-projects .card-body{padding:14px 14px 11px}
  main.topics-page .topic-projects .card-body h3{font-size:16px}
  main.topics-page .topic-projects .card-bottom{margin-left:14px;margin-right:14px}
}
@media(max-width:700px){
  main.page.editorial-page.topics-page{padding:16px 16px 36px}
  main.topics-page .breadcrumbs{gap:3px 8px;margin-bottom:10px;font-size:12px}
  main.topics-page .topic-hero{margin-bottom:17px;padding:0 0 19px}
  main.topics-page .topic-hero h1{font-size:29px;letter-spacing:-.5px;margin-bottom:10px}
  main.topics-page .topic-hero p{font-size:15px;line-height:1.85}
  main.topics-page .topic-count{margin-top:12px;font-size:12px}
  main.topics-page .topic-advice{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:22px}
  main.topics-page .topic-advice h2{font-size:19px}
  main.topics-page .topic-advice ul{font-size:14px;line-height:1.9}
  main.topics-page .topic-projects{margin-top:22px}
  main.topics-page .topic-projects>.table-title{align-items:flex-start;gap:4px 12px;margin-bottom:13px}
  main.topics-page .topic-projects>.table-title h2{font-size:22px}
  main.topics-page .topic-projects>.table-title>a{font-size:13px}
  main.topics-page .topic-projects .card-bottom{font-size:12px}
  main.topics-page .library-page-size select{font-size:16px}
  main.topics-page .topic-faq{margin-top:24px;padding:17px 18px 5px}
  main.topics-page .topic-faq>h2{font-size:21px}
  main.topics-page .topic-faq-group summary{font-size:15px}
  main.topics-page .topic-faq-group p{margin-right:0;font-size:14px;line-height:1.85}
  main.topics-page .topic-related{margin-top:22px;padding-top:18px}
  main.topics-page .topic-related h2{font-size:20px}
  main.topics-page .topic-note{padding:15px 17px;font-size:14px}
}
@media(max-width:520px){
  main.page.editorial-page.topics-page{padding-left:14px;padding-right:14px}
  main.topics-page .topic-catalog-grid,main.topics-page .topic-projects .resource-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  main.topics-page a.topic-card{padding:18px 19px;border-radius:13px}
  main.topics-page .topic-card h2{font-size:20px}
  main.topics-page .topic-card small{margin-bottom:8px}
  main.topics-page .topic-card>span:last-child{padding-top:5px}
  main.topics-page .topic-navigation{gap:7px;margin-bottom:18px}
  main.topics-page .topic-navigation a{padding:9px 12px;font-size:13px}
  main.topics-page .topic-projects .resource-card{display:grid;grid-template-columns:104px minmax(0,1fr);border-radius:13px}
  main.topics-page .topic-projects .card-cover{grid-column:1;grid-row:1;align-self:stretch;overflow:hidden}
  main.topics-page .topic-projects .card-image-link{height:100%;border-radius:12px 0 0 0}
  main.topics-page .topic-projects .card-cover .catalog-art{width:100%;height:100%;min-height:138px;aspect-ratio:auto}
  main.topics-page .topic-projects .card-cover>.favorite-button{top:5px;left:5px;right:auto}
  main.topics-page .topic-projects .card-body{grid-column:2;grid-row:1;min-width:0;padding:12px}
  main.topics-page .topic-projects .card-body h3{-webkit-line-clamp:3;font-size:16px;line-height:1.55;margin-bottom:6px}
  main.topics-page .topic-projects .card-body p{font-size:14px;line-height:1.75;margin-bottom:8px}
  main.topics-page .topic-projects .card-overline{margin-bottom:6px;font-size:12px}
  main.topics-page .topic-projects .card-sources{display:none}
  main.topics-page .topic-projects .tags{gap:4px}
  main.topics-page .topic-projects .tag{font-size:10px;padding:2px 5px}
  main.topics-page .topic-projects .card-bottom{grid-column:1/-1;grid-row:2;flex-wrap:wrap;margin:0 12px;padding:3px 0 5px;gap:2px 8px}
  main.topics-page .topic-projects .card-activity{font-size:12px;gap:3px 7px}
  main.topics-page .topic-projects .card-activity>span:nth-child(2){display:inline-flex}
  main.topics-page .topic-projects .card-published-at{font-size:12px}
  main.topics-page .topic-projects .card-bottom>a{font-size:13px}
  main.topics-page .topic-related-links a{flex:1 1 180px}
  main.topics-page .library-pagination-buttons{gap:5px}
  main.topics-page .library-page-button{padding:9px 10px;min-width:44px}
}
@media(max-width:360px){
  main.topics-page .topic-hero h1{font-size:27px;line-height:1.4}
  main.topics-page .topic-projects .resource-card{grid-template-columns:90px minmax(0,1fr)}
  main.topics-page .topic-projects .card-body{padding:11px}
  main.topics-page .topic-advice>.panel{padding:17px 18px}
}
@media(prefers-reduced-motion:reduce){
  main.topics-page a.topic-card{transition:none}
  main.topics-page a.topic-card:hover{transform:none}
}
/* Topic lists link directly to projects; personal controls live in the library. */
main.topics-page .resource-card .favorite-button,
main.topics-page .library-page-size{display:none}
