:root{
  --radius:20px;
  --accent:#4f46e5;
  --accent-soft:rgba(79,70,229,.16);
  --surface:rgba(255,255,255,.86);
  --surface-strong:rgba(255,255,255,.94);
  --text-muted:#6c757d;
}

body{
  background:linear-gradient(135deg,#fef3c7 0%,#dbeafe 40%,#fdf2f8 100%);
  background-image:url('../img/background/background.svg'), linear-gradient(135deg,#fef3c7 0%,#dbeafe 40%,#fdf2f8 100%);
  background-repeat:repeat, no-repeat;
  background-size:auto, cover;
  background-position:center;
  min-height:100vh;
  transition:.35s;
  font-family:Inter,Segoe UI,sans-serif;
  color:#1f2937;
  padding-bottom:24px;
}

[data-bs-theme="dark"] body{
  background:linear-gradient(135deg,#111827 0%,#1f2937 100%);
  color:#f8fafc;
}
.topbar-wrapper{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  min-height:70px;
  gap:24px;
}

.category-toggle{
  justify-self:center;
  display:flex;
  align-items:center;
  gap:3px;
  padding:5px;
  border:1px solid rgba(100,116,139,.14);
  border-radius:16px;
  background:rgba(248,250,252,.86);
  box-shadow:0 8px 24px rgba(15,23,42,.07),inset 0 1px 0 #fff;
}

.section-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:8px 14px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#475569;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .2s ease,color .2s ease,box-shadow .2s ease;
}

.category-symbol{
  font-size:1.08rem;
  font-weight:800;
  line-height:1;
}

.section-toggle:hover,
.section-toggle.active{
  color:#fff;
  box-shadow:0 7px 18px rgba(124,58,237,.25);
}

.section-toggle[data-section="woman"]:hover,
.section-toggle[data-section="woman"].active{
  background:linear-gradient(135deg,#fb7185,#be123c);
}

.section-toggle[data-section="straight"]:hover,
.section-toggle[data-section="straight"].active{
  background:linear-gradient(135deg,#e11d48,#7c3aed);
}

.section-toggle[data-section="gay"]:hover,
.section-toggle[data-section="gay"].active{
  background:linear-gradient(135deg,#a855f7,#5b21b6);
}

.section-toggle[data-section="trans"]:hover,
.section-toggle[data-section="trans"].active{
  background:linear-gradient(110deg,#38bdf8,#f9a8d4,#fff,#f9a8d4,#38bdf8);
  color:#312e81;
}

.section-toggle[data-section="webmaster"]:hover,
.section-toggle[data-section="webmaster"].active{
  background:linear-gradient(135deg,#34d399,#047857);
}

.header-options{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:10px;
}

.option-group{
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 7px 5px 10px;
  border:1px solid rgba(100,116,139,.13);
  border-radius:12px;
  background:rgba(255,255,255,.72);
}

.option-group label{
  margin:0;
  color:var(--text-muted);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}

.header-options .form-select{
  width:auto;
  min-width:122px;
  border:0;
  border-radius:8px;
  background-color:transparent;
  box-shadow:none!important;
  font-size:.76rem;
  font-weight:700;
}

.theme-btn{
  width:44px;
  height:44px;
  border:0;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#312e81,#7c3aed);
  box-shadow:0 8px 18px rgba(79,70,229,.24);
  transition:transform .2s ease,box-shadow .2s ease;
}

.theme-btn:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg,#4338ca,#9333ea);
  box-shadow:0 11px 24px rgba(79,70,229,.32);
}

.top-header,
.topbar{
  position:relative;
  z-index:3;
  background:linear-gradient(90deg,rgba(255,255,255,.94),rgba(253,242,248,.94),rgba(238,242,255,.94));
  border-bottom:1px solid rgba(124,58,237,.12);
  box-shadow:0 5px 22px rgba(15,23,42,.06);
  backdrop-filter:blur(18px);
}

[data-bs-theme="dark"] .top-header,
[data-bs-theme="dark"] .topbar{
  background:linear-gradient(90deg,rgba(15,23,42,.97),rgba(30,27,75,.97),rgba(17,24,39,.97));
  border-color:rgba(167,139,250,.18);
}

[data-bs-theme="dark"] .category-toggle{
  border-color:rgba(148,163,184,.18);
  background:rgba(15,23,42,.78);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}

[data-bs-theme="dark"] .section-toggle{
  color:#cbd5e1;
}

[data-bs-theme="dark"] .section-toggle:hover,
[data-bs-theme="dark"] .section-toggle.active{
  color:#fff;
}

[data-bs-theme="dark"] .section-toggle[data-section="trans"]:hover,
[data-bs-theme="dark"] .section-toggle[data-section="trans"].active{
  color:#312e81;
}

[data-bs-theme="dark"] .header-options .form-select{
  background-color:transparent;
  color:#f8fafc;
}

[data-bs-theme="dark"] .option-group{
  border-color:rgba(148,163,184,.16);
  background:rgba(30,41,59,.76);
}

.navbar{
  background:
    radial-gradient(circle at 18% 10%,rgba(244,63,94,.13),transparent 28%),
    radial-gradient(circle at 82% 90%,rgba(124,58,237,.14),transparent 32%),
    rgba(255,255,255,.78)!important;
  border-bottom:1px solid rgba(124,58,237,.12);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
  backdrop-filter:blur(16px);
}

[data-bs-theme="dark"] .navbar{
  background:
    radial-gradient(circle at 18% 10%,rgba(225,29,72,.14),transparent 30%),
    radial-gradient(circle at 82% 90%,rgba(124,58,237,.18),transparent 34%),
    rgba(17,24,39,.94)!important;
  border-color:rgba(148,163,184,.18);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
}

.site-header{
  padding:22px 0;
}

.brand-header-container{
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr);
  align-items:center;
  gap:clamp(12px,2vw,28px);
  min-height:142px;
}

.site-logo{
  justify-self:end;
  margin:0;
  padding:8px 16px;
  text-align:center;
  min-width:0;
  border-radius:24px;
  transition:transform .25s ease,filter .25s ease;
}

.site-logo:hover{
  transform:scale(1.02);
  filter:drop-shadow(0 10px 20px rgba(225,29,72,.14));
}

.site-logo-img{
  width:clamp(280px,32vw,500px);
  max-width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}

.bookmark-callout{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  max-width:690px;
  padding:17px 18px;
  overflow:hidden;
  border:1px solid rgba(225,29,72,.17);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(253,242,248,.84));
  box-shadow:0 14px 34px rgba(80,7,36,.09),inset 0 1px 0 rgba(255,255,255,.9);
}

.bookmark-callout::after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-55px;
  bottom:-70px;
  border-radius:50%;
  background:rgba(124,58,237,.09);
  pointer-events:none;
}

.bookmark-callout-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:15px;
  background:linear-gradient(135deg,#e11d48,#7c3aed);
  color:#fff;
  font-size:1.25rem;
  box-shadow:0 9px 20px rgba(225,29,72,.23);
}

.bookmark-callout-copy{
  display:flex;
  min-width:0;
  flex-direction:column;
}

.bookmark-eyebrow{
  margin-bottom:2px;
  color:#be123c;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.bookmark-callout strong{
  color:#1e293b;
  font-size:1rem;
  line-height:1.2;
}

.bookmark-message{
  margin-top:4px;
  color:#64748b;
  font-size:.76rem;
  line-height:1.4;
}

.bookmark-shortcut{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:9px 11px;
  border:1px solid rgba(100,116,139,.2);
  border-bottom-width:3px;
  border-radius:10px;
  background:#fff;
  color:#334155;
  box-shadow:0 5px 12px rgba(15,23,42,.08);
  font-family:inherit;
  font-size:.75rem;
  font-weight:900;
  white-space:nowrap;
}

.shortcut-or{
  color:#94a3b8;
  font-weight:600;
}

[data-bs-theme="dark"] .bookmark-callout{
  border-color:rgba(244,63,94,.18);
  background:linear-gradient(135deg,rgba(30,41,59,.92),rgba(49,46,129,.34));
  box-shadow:0 14px 34px rgba(0,0,0,.24);
}

[data-bs-theme="dark"] .bookmark-eyebrow{
  color:#fda4af;
}

[data-bs-theme="dark"] .bookmark-callout strong{
  color:#f8fafc;
}

[data-bs-theme="dark"] .bookmark-message{
  color:#cbd5e1;
}

[data-bs-theme="dark"] .bookmark-shortcut{
  border-color:rgba(148,163,184,.24);
  background:#0f172a;
  color:#f8fafc;
}

body.section-woman{
  --section-accent:#e11d48;
  --section-accent-soft:rgba(225,29,72,.16);
}

body.section-gay{
  --section-accent:#7e22ce;
  --section-accent-soft:rgba(126,34,206,.17);
}

body.section-trans{
  --section-accent:#ec4899;
  --section-accent-soft:rgba(56,189,248,.18);
}

body.section-webmaster{
  --section-accent:#059669;
  --section-accent-soft:rgba(5,150,105,.17);
}

body.section-woman .navbar{
  background:radial-gradient(circle at 20% 20%,rgba(244,63,94,.24),transparent 34%),rgba(255,255,255,.8)!important;
}

body.section-gay .navbar{
  background:radial-gradient(circle at 20% 20%,rgba(147,51,234,.25),transparent 36%),rgba(255,255,255,.8)!important;
}

body.section-trans .navbar{
  background:linear-gradient(110deg,rgba(186,230,253,.6),rgba(251,207,232,.56),rgba(255,255,255,.72),rgba(251,207,232,.56),rgba(186,230,253,.6))!important;
}

body.section-webmaster .navbar{
  background:radial-gradient(circle at 20% 20%,rgba(16,185,129,.24),transparent 36%),rgba(255,255,255,.8)!important;
}

body:not(.section-straight) .bookmark-callout-icon{
  background:linear-gradient(135deg,var(--section-accent),color-mix(in srgb,var(--section-accent) 60%,#111827));
}

[data-bs-theme="dark"] body.section-woman .navbar,
[data-bs-theme="dark"] body.section-gay .navbar,
[data-bs-theme="dark"] body.section-webmaster .navbar{
  background:radial-gradient(circle at 20% 20%,var(--section-accent-soft),transparent 38%),rgba(17,24,39,.94)!important;
}

[data-bs-theme="dark"] body.section-trans .navbar{
  background:linear-gradient(110deg,rgba(14,116,144,.28),rgba(157,23,77,.28),rgba(17,24,39,.94),rgba(157,23,77,.28),rgba(14,116,144,.28))!important;
}

.container{
  max-width:1600px;
  padding-left:48px;
  padding-right:48px;
}

.row{
  --bs-gutter-x:.8rem;
  --bs-gutter-y:.8rem;
}

.category-tags{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:20px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:16px;
  background:rgba(255,255,255,.7);
  box-shadow:0 10px 28px rgba(15,23,42,.07);
  backdrop-filter:blur(10px);
}

.category-tags-bottom{
  margin-top:20px;
  margin-bottom:0;
}

.category-tags-label{
  padding-top:7px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  white-space:nowrap;
}

.category-tags-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.category-tag{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 8px 6px 12px;
  border:1px solid color-mix(in srgb,var(--category-accent,#4f46e5) 24%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--category-accent,#4f46e5) 9%,white);
  color:color-mix(in srgb,var(--category-accent,#4f46e5) 78%,#111827);
  font-size:.82rem;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease;
}

.category-tag:hover{
  transform:translateY(-2px);
  color:#fff;
  background:var(--category-accent,#4f46e5);
  box-shadow:0 7px 16px var(--category-accent-soft,rgba(79,70,229,.16));
}

.category-tag.active{
  color:#fff;
  background:var(--category-accent,#4f46e5);
  box-shadow:0 7px 16px var(--category-accent-soft,rgba(79,70,229,.16));
}

.category-tag-count{
  display:grid;
  place-items:center;
  min-width:21px;
  height:21px;
  padding:0 5px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:var(--category-accent,#4f46e5);
  font-size:.7rem;
}

[data-bs-theme="dark"] .category-tags{
  background:rgba(17,24,39,.78);
  border-color:rgba(148,163,184,.16);
  box-shadow:0 10px 28px rgba(0,0,0,.2);
}

[data-bs-theme="dark"] .category-tag{
  background:color-mix(in srgb,var(--category-accent,#4f46e5) 18%,#111827);
  color:color-mix(in srgb,var(--category-accent,#4f46e5) 72%,white);
}

.category-columns{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
}

.category-page{
  max-width:780px;
  margin:0 auto;
}

.category-page-nav{
  margin-bottom:12px;
}

.category-page-nav a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text-muted);
  font-size:.84rem;
  font-weight:700;
  text-decoration:none;
}

.category-page-nav a:hover{
  color:var(--accent);
}

.directory-column{
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.8rem;
}

.category-card,
.directory-card{
  position:relative;
  overflow:hidden;
  border:none;
  border-radius:var(--radius);
  transition:transform .25s ease, box-shadow .25s ease;
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  background:linear-gradient(145deg,#ffffff 0%,#f8fbff 100%);
  backdrop-filter:blur(8px);
  --accent:#4f46e5;
  --accent-soft:rgba(79,70,229,.16);
}

.category-card{
  scroll-margin-top:18px;
}

.directory-column .category-card{
  width:100%;
}

.category-card::before,
.directory-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--accent),#ffffff);
}

.category-card:hover,
.directory-card:hover{
  transform:translateY(-6px) rotate(-.5deg);
  box-shadow:0 18px 38px rgba(15,23,42,.15);
}

[data-bs-theme="dark"] .category-card,
[data-bs-theme="dark"] .directory-card{
  background:linear-gradient(145deg,#1f2937 0%,#111827 100%);
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}

.card-body{
  padding:16px;
}

.category-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 16px 13px;
  border-top:1px solid rgba(148,163,184,.18);
  background:var(--accent-soft);
  color:var(--text-muted);
  font-size:.78rem;
  font-weight:700;
}

.category-card-footer a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--accent);
  font-size:.82rem;
  text-decoration:none;
}

.category-card-footer a:hover i{
  transform:translateX(3px);
}

.category-card-footer i{
  transition:transform .2s ease;
}

.section-directory{
  --accent:var(--section-accent,#7c3aed);
  --accent-soft:var(--section-accent-soft,rgba(124,58,237,.16));
  max-width:1180px;
  margin:0 auto;
}

.section-hero{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  padding:26px;
  border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);
  border-radius:24px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,white),rgba(255,255,255,.88));
  box-shadow:0 16px 38px rgba(15,23,42,.08);
}

.section-hero + .category-columns{
  margin-top:64px;
}

.section-hero-icon{
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border-radius:21px;
  background:var(--accent);
  color:#fff;
  font-size:1.8rem;
  box-shadow:0 12px 26px var(--accent-soft);
}

.section-kicker{
  color:var(--accent);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.section-hero h1{
  margin:2px 0 5px;
  font-size:clamp(1.75rem,4vw,2.65rem);
  font-weight:900;
}

.section-hero p{
  max-width:620px;
  margin:0;
  color:var(--text-muted);
}

.section-stats{
  display:flex;
  gap:8px;
}

.section-stats span{
  display:flex;
  min-width:82px;
  padding:10px;
  flex-direction:column;
  border:1px solid color-mix(in srgb,var(--accent) 14%,transparent);
  border-radius:13px;
  background:rgba(255,255,255,.72);
  color:var(--text-muted);
  font-size:.68rem;
  text-align:center;
}

.section-stats strong{
  color:var(--accent);
  font-size:1.2rem;
}

.section-content-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}

.section-panel{
  padding:20px;
  border:1px solid rgba(148,163,184,.17);
  border-radius:20px;
  background:rgba(255,255,255,.8);
  box-shadow:0 11px 28px rgba(15,23,42,.06);
}

.section-panel-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:15px;
}

.section-panel-header span{
  color:var(--accent);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.section-panel-header h2{
  margin:1px 0 0;
  font-size:1.15rem;
  font-weight:850;
}

.section-panel-header a{
  color:var(--accent);
  font-size:.76rem;
  font-weight:800;
  text-decoration:none;
}

.section-mini-list,
.section-article-list{
  display:grid;
  gap:7px;
}

.section-mini-list a,
.section-article-list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:11px;
  background:color-mix(in srgb,var(--accent) 6%,white);
  color:inherit;
  font-size:.82rem;
  font-weight:750;
  text-decoration:none;
}

.section-mini-list a:hover,
.section-article-list a:hover{
  background:var(--accent-soft);
  color:var(--accent);
}

.section-mini-list small,
.section-article-list time{
  color:var(--text-muted);
  font-size:.68rem;
  font-weight:600;
}

.section-empty-state{
  display:flex;
  min-height:190px;
  padding:28px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  border:1px dashed color-mix(in srgb,var(--accent) 30%,transparent);
  border-radius:16px;
  background:color-mix(in srgb,var(--accent) 5%,white);
  text-align:center;
}

.section-empty-state > i{
  margin-bottom:10px;
  color:var(--accent);
  font-size:1.7rem;
}

.section-empty-state strong{
  font-size:.92rem;
}

.section-empty-state p{
  margin:5px 0 0;
  color:var(--text-muted);
  font-size:.76rem;
}

.section-empty-state code{
  color:var(--accent);
}

.section-empty-page{
  min-height:310px;
  margin-top:18px;
}

.section-articles-page{
  max-width:1000px;
}

.section-article-grid{
  display:grid;
  gap:12px;
}

.section-article-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:13px;
  padding:17px;
  border:1px solid rgba(148,163,184,.17);
  border-radius:16px;
  background:rgba(255,255,255,.82);
}

.section-article-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:12px;
  background:var(--accent);
  color:#fff;
}

.section-article-card h2{
  margin:0;
  font-size:1rem;
}

.section-article-card h2 a{
  color:var(--accent);
  text-decoration:none;
}

.section-article-card p{
  margin:5px 0 0;
  color:var(--text-muted);
  font-size:.78rem;
}

[data-bs-theme="dark"] .section-hero,
[data-bs-theme="dark"] .section-panel,
[data-bs-theme="dark"] .section-article-card{
  background:rgba(17,24,39,.82);
  border-color:rgba(148,163,184,.14);
}

[data-bs-theme="dark"] .section-stats span{
  background:rgba(30,41,59,.8);
}

[data-bs-theme="dark"] .section-mini-list a,
[data-bs-theme="dark"] .section-article-list a,
[data-bs-theme="dark"] .section-empty-state{
  background:color-mix(in srgb,var(--accent) 12%,#111827);
}

.categories-overview{
  max-width:1100px;
  margin:0 auto;
}

.categories-overview-header{
  margin-bottom:18px;
  text-align:center;
}

.categories-overview-header h1{
  margin-bottom:6px;
  font-size:clamp(1.6rem,3vw,2.25rem);
  font-weight:800;
}

.categories-overview-header p{
  margin:0;
  color:var(--text-muted);
}

.category-overview-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.category-overview-card{
  --accent:var(--category-accent,#4f46e5);
  --accent-soft:var(--category-accent-soft,rgba(79,70,229,.16));
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:14px;
  border:1px solid rgba(148,163,184,.2);
  border-radius:15px;
  background:rgba(255,255,255,.82);
  box-shadow:0 7px 18px rgba(15,23,42,.06);
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.category-overview-card:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
  box-shadow:0 10px 24px var(--accent-soft);
  color:inherit;
}

.category-overview-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:11px;
  background:var(--accent);
  color:#fff;
}

.category-overview-content{
  flex:1;
  min-width:0;
}

.category-overview-title{
  display:block;
  overflow:hidden;
  color:var(--accent);
  font-size:.9rem;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.category-overview-count{
  display:block;
  margin-top:3px;
  color:var(--text-muted);
  font-size:.75rem;
}

.category-overview-card > .bi-arrow-right{
  color:var(--accent);
  font-size:.8rem;
}

[data-bs-theme="dark"] .category-overview-card{
  background:rgba(30,41,59,.82);
  border-color:rgba(148,163,184,.14);
}

.category-header{
  display:flex;
  gap:12px;
  margin-bottom:15px;
  padding:10px 12px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--accent-soft),rgba(255,255,255,.92));
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}

[data-bs-theme="dark"] .category-header{
  background:linear-gradient(135deg,var(--accent-soft),rgba(15,23,42,.82));
  border-color:rgba(255,255,255,.08);
}

.category-link{
  color:inherit;
  text-decoration:none;
}

.category-title{
  margin:0;
  font-size:1rem;
  font-weight:700;
  color:var(--accent);
}

.category-description{
  font-size:.82rem;
  color:#6c757d;
}

[data-bs-theme="dark"] .category-description{
  color:#b8c0cc;
}

.icon-circle{
  width:40px;
  height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  flex-shrink:0;
  box-shadow:0 8px 20px var(--accent-soft);
}

.website-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}

.website-list .site-card{
  display:flex;
  align-items:center;
  gap:10px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.2);
  border-radius:13px;
  background:rgba(255,255,255,.78);
  box-shadow:0 4px 12px rgba(15,23,42,.05);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
  min-width:0;
  padding:10px;
}

.website-list .site-card:hover{
  transform:translateY(-2px);
  border-color:var(--accent);
  box-shadow:0 8px 18px var(--accent-soft);
}

.site-card-icon{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  border-radius:9px;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(148,163,184,.18);
}

.site-card-icon.site-card-sprite{
  width:var(--logo-width,48px);
  flex-basis:var(--logo-width,48px);
  border-radius:0;
  background-color:transparent;
  background-repeat:no-repeat;
  background-position:var(--sprite-x) var(--sprite-y);
  background-size:var(--sprite-width) var(--sprite-height);
  box-shadow:none;
}

.website-list img{
  width:20px;
  height:20px;
  object-fit:contain;
}

.site-card-content{
  display:flex;
  flex:1;
  min-width:0;
  flex-direction:column;
}

.site-card-name{
  display:block;
  overflow:hidden;
  color:inherit;
  font-size:.88rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.site-card-name-text{
  display:inline-block;
  min-width:max-content;
  transform:translateX(0);
}

.site-card-name.is-overflowing:hover .site-card-name-text,
.site-card-name.is-overflowing:focus-visible .site-card-name-text{
  transform:translateX(calc(-1px * var(--marquee-distance,0)));
  transition:transform var(--marquee-duration,4s) linear .3s;
}

@media (prefers-reduced-motion:reduce){
  .site-card-name.is-overflowing:hover .site-card-name-text,
  .site-card-name.is-overflowing:focus-visible .site-card-name-text{
    transform:none;
    transition:none;
  }
}

/* Review articles */
.review-page .category-card:hover{
  transform:none;
}
.review-content .card-body{padding:clamp(1.25rem,3vw,2rem);}
.review-content h1{margin-bottom:.35rem;font-size:clamp(1.8rem,4vw,2.5rem);}
.review-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.5rem;}
.review-article-body{line-height:1.75;}
.review-article-body h2{margin-top:2rem;font-size:1.35rem;}
.review-article-body h3{margin-top:1.5rem;font-size:1.15rem;}
.review-article-body img{max-width:100%;height:auto;border-radius:12px;}
.review-article-image{
  width:min(100%,760px);
  margin:1.75rem auto;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.28);
  border-radius:16px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 26px rgba(15,23,42,.09);
}
.review-article-image-link{display:block;overflow:hidden;background:#0f172a;text-decoration:none;}
.review-article-image-link img{
  display:block;
  width:100%;
  max-width:none;
  margin:0;
  border-radius:0;
  transition:transform .25s ease,opacity .25s ease;
}
.review-article-image-link:hover img,.review-article-image-link:focus-visible img{opacity:.94;transform:scale(1.015);}
.review-article-image-caption{
  padding:.8rem 1rem;
  border-top:1px solid rgba(148,163,184,.2);
  color:#475569;
  font-size:.88rem;
  font-weight:700;
  line-height:1.4;
  text-align:center;
}
[data-bs-theme="dark"] .review-article-image{background:rgba(30,41,59,.9);border-color:rgba(148,163,184,.2);}
[data-bs-theme="dark"] .review-article-image-caption{color:#cbd5e1;}

.review-detail-box{
  position:relative;
  margin-top:1.75rem;
  padding:1.25rem 1.35rem;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(248,250,252,.96),rgba(255,255,255,.78));
  box-shadow:0 8px 22px rgba(15,23,42,.07);
}
.review-detail-box::before{
  position:absolute;
  top:0;
  left:0;
  width:5px;
  height:100%;
  content:"";
  background:var(--review-box-accent,#6366f1);
}
.review-detail-title{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin:0 0 .85rem!important;
  color:var(--review-box-accent,#4338ca);
}
.review-detail-title::before{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  flex:0 0 30px;
  border-radius:9px;
  background:var(--review-box-soft,rgba(99,102,241,.12));
  font-family:"bootstrap-icons";
  font-size:1rem;
}
.review-detail-box ul{display:grid;gap:.65rem;margin:0;padding:0;list-style:none;}
.review-detail-box li{position:relative;padding-left:1.6rem;}
.review-detail-box li::before{
  position:absolute;
  top:.05rem;
  left:0;
  color:var(--review-box-accent,#6366f1);
  content:"\F26A";
  font-family:"bootstrap-icons";
  font-weight:700;
}
.review-sidebar-details{display:grid;gap:1rem;}
.review-sidebar-details .review-detail-box{height:auto;margin-top:0;}
.review-sidebar-details .review-features-box ul{grid-template-columns:1fr;}

.review-visit-button{
  position:relative;
  isolation:isolate;
  display:flex;
  width:100%;
  min-height:54px;
  overflow:hidden;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  padding:.85rem 1.25rem;
  border:1px solid rgba(255,255,255,.5);
  border-radius:14px;
  background:linear-gradient(110deg,#db2777,#7c3aed,#2563eb,#7c3aed,#db2777);
  background-size:300% 100%;
  color:#fff;
  box-shadow:0 10px 26px rgba(124,58,237,.32),0 0 0 0 rgba(219,39,119,.35);
  font-size:1rem;
  font-weight:850;
  letter-spacing:.02em;
  text-decoration:none;
  animation:review-button-gradient 5s linear infinite,review-button-glow 2.2s ease-in-out infinite;
  transition:transform .18s ease,box-shadow .18s ease;
}
.review-visit-button::before{
  position:absolute;
  top:-40%;
  left:-45%;
  z-index:-1;
  width:30%;
  height:180%;
  content:"";
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);
  transform:skewX(-20deg);
  animation:review-button-shine 3.2s ease-in-out infinite;
}
.review-visit-button:hover,.review-visit-button:focus-visible{
  color:#fff;
  transform:translateY(-2px) scale(1.015);
  box-shadow:0 15px 34px rgba(124,58,237,.42),0 0 22px rgba(219,39,119,.4);
}
.review-visit-button .bi{font-size:1.08rem;}
#review-visit-top{margin-bottom:1rem;}
.review-visit-hero{display:flex;justify-content:center;margin-bottom:1.5rem;}
.review-visit-hero .review-visit-button{width:min(100%,720px);min-height:62px;font-size:1.08rem;}
.review-visit-bottom{display:flex;justify-content:center;margin-top:1.5rem;}
.review-visit-bottom .review-visit-button{width:min(100%,520px);}
@keyframes review-button-gradient{to{background-position:300% 0;}}
@keyframes review-button-glow{
  0%,100%{box-shadow:0 10px 26px rgba(124,58,237,.3),0 0 0 0 rgba(219,39,119,.28);}
  50%{box-shadow:0 12px 30px rgba(124,58,237,.4),0 0 0 7px rgba(219,39,119,0);}
}
@keyframes review-button-shine{0%,55%{left:-45%;}85%,100%{left:125%;}}
@media (prefers-reduced-motion:reduce){
  .review-visit-button,.review-visit-button::before{animation:none;}
}
.review-features-box{
  --review-box-accent:#4f46e5;
  --review-box-soft:rgba(79,70,229,.12);
  background:linear-gradient(145deg,rgba(238,242,255,.94),rgba(255,255,255,.82));
}
.review-features-box .review-detail-title::before{content:"\F3E7";}
.review-features-box ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.25rem;}
.review-features-box li{
  padding:.65rem .75rem .65rem 2.25rem;
  border-radius:10px;
  background:rgba(255,255,255,.62);
}
.review-features-box li::before{top:.7rem;left:.75rem;}
.review-pros-cons-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1rem;
  margin-top:1.75rem;
}
.review-pros-cons-grid .review-detail-box{height:100%;margin-top:0;}
.review-pros-box{
  --review-box-accent:#15803d;
  --review-box-soft:rgba(34,197,94,.13);
  background:linear-gradient(145deg,rgba(240,253,244,.96),rgba(255,255,255,.82));
  border-color:rgba(34,197,94,.24);
}
.review-pros-box .review-detail-title::before{content:"\F26A";}
.review-pros-box li::before{content:"\F26A";}
.review-cons-box{
  --review-box-accent:#dc2626;
  --review-box-soft:rgba(239,68,68,.12);
  background:linear-gradient(145deg,rgba(254,242,242,.96),rgba(255,255,255,.82));
  border-color:rgba(239,68,68,.24);
}
.review-cons-box .review-detail-title::before{content:"\F623";}
.review-cons-box li::before{content:"\F623";}
[data-bs-theme="dark"] .review-detail-box{background:rgba(30,41,59,.8);}

@media (max-width:767.98px){
  .review-pros-cons-grid{grid-template-columns:1fr;}
  .review-features-box ul{grid-template-columns:1fr;}
}

.review-gallery{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin:0 auto;
  overflow:hidden;
}
.review-gallery-image{display:block;width:100%;height:auto;object-fit:contain;}
.review-gallery-control{
  position:absolute;
  top:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(15,23,42,.72);
  color:#fff;
  font-size:1.35rem;
  transform:translateY(-50%);
  cursor:pointer;
}
.review-gallery-control:hover,.review-gallery-control:focus-visible{background:var(--category-accent,#4f46e5);}
.review-gallery-previous{left:14px;}
.review-gallery-next{right:14px;}
.review-gallery-status{margin:.65rem 0 0;text-align:center;color:var(--muted);font-size:.875rem;}
.review-gallery.is-single .review-gallery-control{display:none;}

.review-banner-ad,.review-banner-link,.review-banner-image{display:block;width:100%;}
.review-banner-ad{overflow:hidden;text-align:center;}
.review-banner-image{height:auto;margin:0 auto;object-fit:contain;}
.review-featured-image{
  max-height:clamp(440px,72vh,720px);
  overflow:hidden;
  cursor:default;
}
.review-featured-image.is-scrollable{cursor:ns-resize;}
.review-featured-image img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  transform:translateY(0);
}
.review-featured-image.is-scrollable:hover img,
.review-featured-image.is-scrollable:focus-visible img,
.review-related-image.is-scrollable:hover img,
.review-related-image.is-scrollable:focus-visible img{
  animation:review-image-scroll var(--feature-scroll-duration,8s) ease-in-out .35s 2 alternate forwards;
}
@keyframes review-image-scroll{
  from{transform:translateY(0);}
  to{transform:translateY(calc(-1 * var(--feature-scroll-distance,0px)));}
}
@media (prefers-reduced-motion:reduce){
  .review-featured-image.is-scrollable:hover img,
  .review-featured-image.is-scrollable:focus-visible img,
  .review-related-image.is-scrollable:hover img,
  .review-related-image.is-scrollable:focus-visible img{transform:none;animation:none;}
}

.review-related{
  padding:clamp(1.25rem,3vw,2rem);
  border:1px solid rgba(99,102,241,.18);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(238,242,255,.92),rgba(253,242,248,.88));
  box-shadow:0 14px 34px rgba(15,23,42,.09);
}
.review-related-header{max-width:680px;margin:0 auto 1.5rem;text-align:center;}
.review-related-eyebrow{
  display:inline-block;
  margin-bottom:.35rem;
  color:#4f46e5;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.review-related-header h2{margin:0;font-size:clamp(1.5rem,3vw,2rem);}
.review-related-header p{margin:.45rem 0 0;color:var(--muted);}
.review-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.review-related-card{
  display:flex;
  min-width:0;
  overflow:hidden;
  flex-direction:column;
  border:1px solid rgba(148,163,184,.2);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  box-shadow:0 7px 18px rgba(15,23,42,.07);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.review-related-card:hover{transform:translateY(-4px);border-color:rgba(79,70,229,.4);box-shadow:0 14px 28px rgba(15,23,42,.13);}
.review-related-image{display:block;overflow:hidden;aspect-ratio:16/9;background:rgba(99,102,241,.1);}
.review-related-image img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover;transform:translateY(0);}
.review-related-image.is-scrollable{cursor:ns-resize;}
.review-related-placeholder{display:grid;width:100%;height:100%;place-items:center;color:#6366f1;font-size:2rem;}
.review-related-content{display:flex;flex:1;min-width:0;padding:1rem;flex-direction:column;align-items:flex-start;}
.review-related-card-meta{display:flex;width:100%;min-height:34px;margin-bottom:.55rem;align-items:center;justify-content:space-between;gap:.65rem;}
.review-related-category{color:#6366f1;font-size:.72rem;font-weight:800;text-transform:uppercase;}
.review-related-postcard{
  display:grid;
  width:34px;
  height:34px;
  flex:0 0 34px;
  place-items:center;
  border:1px solid rgba(99,102,241,.2);
  border-radius:9px;
  background:rgba(99,102,241,.09);
  color:#6366f1;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.review-related-postcard .bi{margin-left:0!important;color:inherit!important;font-size:1.05rem;line-height:1;}
.review-related-postcard:hover,.review-related-postcard:focus-visible{
  border-color:#6366f1;
  background:#6366f1;
  color:#fff;
  transform:scale(1.08);
}
.review-related-content h3{margin:0;font-size:1rem;line-height:1.35;}
.review-related-content h3 a{color:inherit;text-decoration:none;}
.review-related-content p{margin:.6rem 0;color:var(--muted);font-size:.84rem;line-height:1.5;}
.review-related-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:auto;color:#4f46e5;font-size:.84rem;font-weight:800;text-decoration:none;}
.review-related-link:hover{gap:.55rem;color:#4338ca;}
[data-bs-theme="dark"] .review-related{background:linear-gradient(135deg,rgba(30,41,59,.94),rgba(49,46,129,.3));}
[data-bs-theme="dark"] .review-related-card{background:rgba(15,23,42,.84);}

@media (max-width:991.98px){.review-related-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:575.98px){.review-related-grid{grid-template-columns:1fr;}}

@media (max-width:575.98px){
  .review-gallery-control{width:38px;height:38px;}
  .review-gallery-previous{left:8px;}
  .review-gallery-next{right:8px;}
}

.site-card-name:hover{
  color:var(--accent);
}

.site-card-review-link{
  margin-left:auto!important;
  flex:0 0 auto;
  align-self:center;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:1.15rem;
  line-height:1;
  text-decoration:none;
  position:relative;
}
.site-card-review-link:hover,.site-card-review-link:focus-visible{color:var(--accent);transform:scale(1.12);}
.site-card-review-preview{
  position:fixed;
  top:var(--preview-top,0);
  left:var(--preview-left,0);
  z-index:1000;
  display:block;
  width:150px;
  height:150px;
  overflow:hidden;
  border:3px solid #fff;
  border-radius:14px;
  background:#e2e8f0;
  box-shadow:0 16px 38px rgba(15,23,42,.3);
  opacity:0;
  pointer-events:none;
  transform:translateY(6px) scale(.96);
  transition:opacity .18s ease,transform .18s ease;
}
.site-card-review-preview.is-unavailable{display:none;}
.site-card-review-preview.is-visible{opacity:1;transform:none;}
.site-card-review-preview img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover;transform:translateY(0);}
.site-card-review-preview.is-scrollable img{animation:none;}
.site-card-review-preview.is-scrollable.is-active img{
  animation:review-image-scroll var(--feature-scroll-duration,8s) ease-in-out .35s 2 alternate forwards;
}
@media (max-width:575.98px){.site-card-review-preview{width:125px;height:125px;}}

[data-bs-theme="dark"] .website-list .site-card{
  background:rgba(30,41,59,.72);
  border-color:rgba(148,163,184,.14);
  box-shadow:0 4px 12px rgba(0,0,0,.14);
}

.number{
  width:18px;
  font-size:.8rem;
  font-weight:bold;
  color:#6c757d;
}

.bg-dev{background:#0d6efd;}
.bg-search{background:#198754;}
.bg-media{background:#dc3545;}
.bg-util{background:#fd7e14;}
.bg-social{background:#6f42c1;}
.bg-learning{background:#20c997;}
.bg-cloud{background:#0dcaf0;}
.bg-finance{background:#ffc107;color:#000!important;}

.category-card[data-category],
.directory-card[data-category]{
  --accent: var(--category-accent, #4f46e5);
  --accent-soft: var(--category-accent-soft, rgba(79,70,229,.16));
}

.category-card[data-category] .icon-circle,
.directory-card[data-category] .icon-circle{
  background: var(--accent);
}

.category-card[data-category] .category-header,
.directory-card[data-category] .category-header{
  background: linear-gradient(135deg, var(--accent-soft), rgba(255,255,255,.92));
}

[data-bs-theme="dark"] .category-card[data-category] .category-header,
[data-bs-theme="dark"] .directory-card[data-category] .category-header{
  background: linear-gradient(135deg, var(--accent-soft), rgba(15,23,42,.82));
}

@media (max-width: 1199px){
  .topbar-wrapper{
    grid-template-columns:48px minmax(0,1fr);
    gap:10px 16px;
    padding:10px 0;
  }

  .category-toggle{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:center;
  }

  .header-options{
    grid-column:2;
    grid-row:1;
  }

  .category-columns{
    flex-wrap:wrap;
  }

  .directory-column{
    flex:1 1 calc(50% - .8rem);
  }
}

@media (max-width: 991px){
  .brand-header-container{
    grid-template-columns:1fr;
    gap:16px;
  }

  .site-logo{
    justify-self:center;
  }

  .bookmark-callout{
    justify-self:center;
    width:min(100%,720px);
  }

  .section-hero{
    grid-template-columns:64px minmax(0,1fr);
  }

  .section-hero-icon{
    width:64px;
    height:64px;
  }

  .section-stats{
    grid-column:1 / -1;
    justify-content:center;
  }
}

@media (max-width: 767px){
  .container{
    padding-left:18px;
    padding-right:18px;
  }

  .site-logo-img{
    width:min(76vw,360px);
    max-width:100%;
  }

  .topbar-wrapper{
    grid-template-columns:42px minmax(0,1fr);
    gap:9px;
    padding:9px 0;
  }

  .header-options{
    gap:5px;
  }

  .option-group{
    min-width:0;
    padding:4px 5px;
  }

  .option-group label{
    display:none;
  }

  .header-options .form-select{
    min-width:0;
    max-width:112px;
    padding-left:7px;
    font-size:.7rem;
  }

  .category-toggle{
    justify-self:stretch;
    overflow-x:auto;
  }

  .section-toggle{
    flex:1 0 auto;
    padding:7px 12px;
  }

  .site-header{
    padding:16px 0 18px;
  }

  .brand-header-container{
    min-height:0;
  }

  .bookmark-callout{
    grid-template-columns:42px minmax(0,1fr);
    gap:11px;
    padding:14px;
  }

  .bookmark-callout-icon{
    width:42px;
    height:42px;
    border-radius:13px;
  }

  .bookmark-shortcut{
    grid-column:1 / -1;
    justify-self:center;
    padding:7px 10px;
  }

  .section-hero{
    display:flex;
    padding:20px;
    flex-direction:column;
    text-align:center;
  }

  .section-hero + .category-columns{
    margin-top:40px;
  }

  .section-content-grid{
    grid-template-columns:1fr;
  }

  .section-stats{
    width:100%;
  }

  .section-stats span{
    flex:1;
    min-width:0;
  }

  .directory-column{
    flex-basis:100%;
  }

  .category-tags{
    display:block;
    padding:12px;
  }

  .category-tags-label{
    display:block;
    padding:0 0 9px 2px;
  }

  .category-overview-grid{
    grid-template-columns:1fr;
  }
}

@media (min-width:768px) and (max-width:991px){
  .category-overview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
