/* BEGIN SELF-HOSTED INTER */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/inter/InterVariable.woff2?v=4.1")
       format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/inter/InterVariable-Italic.woff2?v=4.1")
       format("woff2");
}

/* END SELF-HOSTED INTER */

:root {
  --bg: #090b12;
  --bg-soft: #0e111b;
  --panel: #121622;
  --panel-2: #171c2a;
  --line: #272d3c;
  --text: #f5f6fb;
  --muted: #a7adbd;
  --accent: #bfa4ff;
  --accent-2: #7be0cf;
  --accent-deep: #8d69ed;
  --warning: #f6c76a;
  --max: 1180px;
  --radius: 20px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.65 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.08; letter-spacing: -.035em; }
h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); margin-bottom: 0; }
.shell { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; left: 12px; top: -80px; padding: 10px 14px; color: #080a10; background: var(--accent-2); border-radius: 8px; }
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: rgba(9,11,18,.86);
  backdrop-filter: blur(18px);
}
.nav-wrap { min-height: 72px; display: flex; align-items: center; gap: 34px; }
.brand { font-size: 1.28rem; font-weight: 850; letter-spacing: -.045em; white-space: nowrap; }
.brand span { color: var(--accent); }
.nav-wrap nav { display: flex; gap: 26px; margin-left: auto; }
.nav-wrap nav a { color: var(--muted); font-size: .9rem; font-weight: 650; }
.nav-wrap nav a:hover { color: var(--text); }
.age-chip { border: 1px solid var(--line); border-radius: 99px; padding: 5px 10px; color: var(--accent-2); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.hero { position: relative; padding: 104px 0 70px; text-align: center; }
.hero::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 360px; left: 50%; top: -70px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(141,105,237,.22), transparent 68%); filter: blur(14px); }
.eyebrow, .kicker { color: var(--accent-2); font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 25px; }
.eyebrow span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent-2); box-shadow: 0 0 14px var(--accent-2); }
.hero h1 { max-width: 920px; margin: 0 auto 25px; font-size: clamp(3rem, 7vw, 6.4rem); }
.hero h1 em { color: var(--accent); font-style: normal; }
.hero-copy { max-width: 690px; margin: 0 auto 38px; color: var(--muted); font-size: 1.12rem; }
.finder { display: grid; grid-template-columns: minmax(250px, 1fr) 190px 155px auto; gap: 10px; max-width: 940px; margin: 0 auto; padding: 9px; border: 1px solid var(--line); border-radius: 16px; background: rgba(18,22,34,.9); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.finder input, .finder select { width: 100%; height: 48px; border: 0; border-radius: 10px; outline: 0; color: var(--text); background: var(--panel-2); padding: 0 15px; }
.finder input:focus, .finder select:focus { box-shadow: inset 0 0 0 1px var(--accent); }
.finder input::placeholder { color: #747b8e; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 10px; padding: 10px 17px; cursor: pointer; font-weight: 780; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: #0b0c12; background: var(--accent); }
.button-primary:hover { background: #cebaff; }
.button-quiet { border-color: var(--line); color: var(--text); background: var(--panel-2); }
.button-quiet:hover { border-color: #444c62; }
.button[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.button-full { width: 100%; }
.trust-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 28px; margin-top: 26px; color: #81889a; font-size: .78rem; }
.trust-row span::before { content: "✓"; margin-right: 7px; color: var(--accent-2); }

.section { padding: 80px 0; }
.section-tint { border-block: 1px solid rgba(255,255,255,.05); background: var(--bg-soft); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 34px; }
.section-heading p { max-width: 470px; margin-bottom: 2px; color: var(--muted); }
.section-heading .kicker, .split-panel .kicker, .inner-hero .kicker, .method .kicker, .review-title .kicker, .warning-card .kicker { display: block; margin-bottom: 11px; }
.section-heading.compact { align-items: center; }
.text-link { color: var(--accent); font-size: .9rem; font-weight: 700; }
.text-link span { margin-left: 5px; }
.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.card-grid-small { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tool-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(155deg, var(--panel), #0f121b); transition: border-color .2s ease, transform .2s ease; }
.tool-card:hover { transform: translateY(-3px); border-color: #3b4255; }
.card-visual { position: relative; display: flex; height: 138px; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 28% 20%, var(--card-color, #8d69ed), transparent 0, rgba(141,105,237,.22) 1%, transparent 45%), linear-gradient(140deg, #191e2c, #10131c); }
.card-visual::before, .card-visual::after { content: ""; position: absolute; width: 170px; height: 170px; border: 1px solid rgba(255,255,255,.06); border-radius: 40%; transform: rotate(28deg); }
.card-visual::after { width: 100px; height: 100px; transform: rotate(58deg); }
.card-visual strong { position: relative; z-index: 1; display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 17px; color: white; background: rgba(8,10,16,.55); font-size: 1.05rem; backdrop-filter: blur(10px); }
.neutral-label { position: absolute; z-index: 1; right: 11px; bottom: 10px; border-radius: 99px; padding: 4px 8px; color: #c3c8d5; background: rgba(6,8,13,.7); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.card-body { display: flex; flex: 1; flex-direction: column; padding: 21px; }
.card-topline { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.card-topline h3 { margin: 0; font-size: 1.25rem; }
.rating { display: inline-flex; flex-shrink: 0; align-items: center; gap: 4px; color: var(--warning); font-size: .9rem; font-weight: 800; }
.rating::before { content: "★"; font-size: .8rem; }
.category-name { margin: 7px 0 12px; color: var(--accent-2); font-size: .75rem; font-weight: 750; }
.card-description { margin-bottom: 18px; color: var(--muted); font-size: .9rem; }
.tag-row { display: flex; flex-wrap: wrap; gap: 7px; margin: auto 0 20px; }
.tag-row span { border: 1px solid var(--line); border-radius: 99px; padding: 4px 8px; color: #bdc2d0; background: rgba(255,255,255,.025); font-size: .67rem; font-weight: 650; }
.card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; }
.card-actions .button { min-height: 40px; padding: 7px 12px; font-size: .82rem; }
.price-pill { display: inline-flex; align-items: center; gap: 5px; margin-bottom: 11px; color: #d1d5df; font-size: .72rem; text-transform: capitalize; }
.price-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.no-results { padding: 20px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; }

.category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.category-tile { display: flex; min-height: 114px; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 15px; padding: 18px; background: var(--panel); transition: background .2s ease, border-color .2s ease; }
.category-tile:hover { border-color: #40485c; background: var(--panel-2); }
.category-tile span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; color: var(--accent); background: rgba(191,164,255,.1); font-weight: 850; }
.category-tile strong { margin-top: 18px; font-size: .9rem; }
.category-tile small { color: #777f91; }
.category-grid-large { grid-template-columns: repeat(3, minmax(0,1fr)); margin-bottom: 30px; }

.split-section { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 35px 0 95px; }
.split-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 30px; background: var(--panel); }
.split-panel h2 { margin-bottom: 23px; font-size: 2rem; }
.mini-list { display: grid; gap: 10px; }
.mini-tool { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; border-top: 1px solid var(--line); padding-top: 12px; }
.mini-tool:first-child { border-top: 0; padding-top: 0; }
.mini-tool-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; color: var(--accent); background: var(--panel-2); font-size: .72rem; font-weight: 800; }
.mini-tool strong { display: block; font-size: .9rem; }
.mini-tool small { color: var(--muted); font-size: .7rem; }
.mini-tool .rating { font-size: .8rem; }

.method { border-top: 1px solid var(--line); background: linear-gradient(135deg, rgba(141,105,237,.09), transparent 55%); }
.method-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: center; }
.method-grid > div > p { max-width: 500px; margin: 24px 0; color: var(--muted); }
.steps { margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 46px 1fr; gap: 20px; border-top: 1px solid var(--line); padding: 20px 0; }
.steps li:first-child { border-top: 0; }
.steps li > span { color: var(--accent); font-size: .74rem; font-weight: 800; }
.steps strong { display: block; margin-bottom: 3px; }
.steps p { margin: 0; color: var(--muted); font-size: .88rem; }

.site-footer { border-top: 1px solid var(--line); padding: 42px 0; background: #080a10; }
.footer-grid { display: grid; grid-template-columns: .8fr 1.3fr .9fr; gap: 50px; align-items: start; }
.footer-grid p { margin: 8px 0 0; color: #7f8798; font-size: .78rem; }
.disclaimer { border-left: 2px solid var(--accent); padding-left: 15px; }
.disclaimer strong { display: block; color: #b9becc; text-transform: uppercase; letter-spacing: .08em; font-size: .65rem; }

.inner-page { min-height: 70vh; padding-top: 32px; padding-bottom: 85px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; color: #727a8c; font-size: .76rem; }
.breadcrumbs a:hover { color: var(--text); }
.inner-hero { max-width: 720px; padding: 78px 0 50px; }
.inner-hero h1 { margin-bottom: 18px; font-size: clamp(3rem, 6vw, 5.6rem); }
.inner-hero p { max-width: 600px; color: var(--muted); font-size: 1.06rem; }

.review-header { display: grid; grid-template-columns: 150px 1fr 130px; gap: 30px; align-items: center; padding: 62px 0 45px; border-bottom: 1px solid var(--line); }
.review-placeholder { display: flex; height: 150px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: var(--radius); background: radial-gradient(circle at 30% 20%, rgba(141,105,237,.25), transparent 45%), var(--panel); }
.review-placeholder span { font-size: 1.5rem; font-weight: 900; }
.review-placeholder small { margin-top: 9px; color: #838a9b; font-size: .62rem; text-transform: uppercase; }
.review-title h1 { margin-top: 12px; margin-bottom: 14px; font-size: clamp(2.4rem, 5vw, 4.3rem); }
.review-byline { margin: -4px 0 14px; color: var(--muted); font-size: .82rem; }
.review-byline a { color: var(--review-accent); font-weight: 700; }
.review-title .kicker { display: inline; margin: 0; }
.review-title .review-byline { display: inline; margin: 0 0 0 12px; }
.review-title > p { max-width: 680px; margin-bottom: 14px; color: var(--muted); }
.review-title .tag-row { margin: 0; }
.score-block { text-align: center; }
.score-block strong { display: block; color: var(--accent); font-size: 3.25rem; line-height: 1; letter-spacing: -.06em; }
.score-block span, .score-block small { display: block; color: var(--muted); font-size: .7rem; }
.score-block small { margin-top: 8px; color: var(--accent-2); font-weight: 800; text-transform: uppercase; }
.review-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 70px; padding-top: 54px; }
.review-content { max-width: 760px; }
.review-content > section { padding-bottom: 35px; }
.review-content h2, .sidebar-card h2 { margin-bottom: 15px; font-size: 1.5rem; }
.review-content p, .review-content li { color: var(--muted); }
.feature-list { display: flex; flex-wrap: wrap; gap: 9px; }
.feature-list span { border: 1px solid var(--line); border-radius: 9px; padding: 10px 13px; color: #cdd1dc; background: var(--panel); font-size: .83rem; }
.pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 35px; }
.pros-cons section { border: 1px solid var(--line); border-radius: 15px; padding: 22px; background: var(--panel); }
.pros-cons ul { margin-bottom: 0; padding-left: 19px; font-size: .86rem; }
.review-sidebar { align-self: start; position: sticky; top: 100px; }
.sidebar-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 23px; background: var(--panel); }
.sidebar-card dl { margin: 0 0 22px; }
.sidebar-card dl div { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding: 11px 0; font-size: .8rem; }
.sidebar-card dt { color: var(--muted); }
.sidebar-card dd { margin: 0; text-align: right; }
.microcopy { margin: 10px 0 0; color: #737b8e; font-size: .69rem; text-align: center; }

.warning-page { min-height: 100vh; background: radial-gradient(circle at 50% 0, rgba(141,105,237,.18), transparent 45%), var(--bg); }
.warning-shell { display: flex; min-height: 100vh; width: min(calc(100% - 40px), 680px); flex-direction: column; align-items: center; justify-content: center; margin: auto; padding: 45px 0; }
.warning-shell > .brand { margin-bottom: 28px; }
.warning-card { width: 100%; border: 1px solid var(--line); border-radius: 26px; padding: clamp(28px, 6vw, 52px); background: rgba(18,22,34,.94); box-shadow: 0 30px 90px rgba(0,0,0,.35); text-align: center; }
.warning-icon { display: grid; width: 66px; height: 66px; place-items: center; margin: 0 auto 23px; border: 1px solid rgba(246,199,106,.35); border-radius: 50%; color: var(--warning); background: rgba(246,199,106,.08); font-weight: 900; }
.warning-card h1 { margin-bottom: 18px; font-size: clamp(2.3rem, 6vw, 3.7rem); }
.warning-card > p { color: var(--muted); }
.warning-checks { display: inline-grid; gap: 8px; margin: 10px auto 28px; padding: 0; color: #c8ccd6; list-style: none; text-align: left; font-size: .86rem; }
.warning-checks li::before { content: "✓"; margin-right: 9px; color: var(--accent-2); }
.warning-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.warning-card code { color: var(--accent); }

@media (max-width: 900px) {
  .finder { grid-template-columns: 1fr 1fr; }
  .search-field { grid-column: 1 / -1; }
  .card-grid, .card-grid-small { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .method-grid { grid-template-columns: 1fr; gap: 45px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .fine-print { grid-column: 1 / -1; }
  .review-layout { grid-template-columns: minmax(0,1fr) 270px; gap: 35px; }
}

@media (max-width: 700px) {
  .shell { width: min(calc(100% - 28px), var(--max)); }
  .nav-wrap { min-height: 64px; gap: 14px; }
  .nav-wrap nav { display: none; }
  .age-chip { margin-left: auto; }
  .hero { padding: 75px 0 50px; }
  .hero h1 { font-size: clamp(2.8rem, 14vw, 4.5rem); }
  .finder { display: flex; flex-direction: column; }
  .section { padding: 58px 0; }
  .section-heading { display: block; }
  .section-heading p { margin-top: 15px; }
  .section-heading.compact { display: flex; align-items: end; }
  .section-heading.compact .text-link { display: none; }
  .card-grid, .card-grid-small, .category-grid, .category-grid-large { grid-template-columns: 1fr; }
  .split-section { grid-template-columns: 1fr; padding-bottom: 65px; }
  .split-panel { padding: 23px; }
  .footer-grid { grid-template-columns: 1fr; gap: 25px; }
  .fine-print { grid-column: auto; }
  .review-header { grid-template-columns: 88px 1fr; gap: 18px; padding-top: 45px; }
  .review-placeholder { height: 88px; border-radius: 15px; }
  .review-placeholder small { display: none; }
  .review-title h1 { font-size: 2.4rem; }
  .score-block { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 8px; text-align: left; }
  .score-block strong { font-size: 2rem; }
  .score-block span, .score-block small { display: inline; margin: 0; }
  .review-layout { grid-template-columns: 1fr; }
  .review-sidebar { position: static; grid-row: 1; }
  .pros-cons { grid-template-columns: 1fr; }
  .warning-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Homepage directory redesign. Kept page-scoped so category, review, and /go/ layouts stay compatible. */
body[data-page="home"] {
  --panel: #11151e;
  --panel-2: #171c27;
  --line: #2b313d;
  --accent: #b7a0f1;
  --accent-2: #69cbb9;
  background: #0a0d13;
  font-size: 15px;
  line-height: 1.5;
}

body[data-page="home"] .shell { width: min(calc(100% - 32px), 1240px); }
body[data-page="home"] h1,
body[data-page="home"] h2,
body[data-page="home"] h3,
body[data-page="home"] h4 { letter-spacing: -.025em; }

.home-header { background: rgba(10,13,19,.96); backdrop-filter: blur(12px); }
.home-header .nav-wrap { min-height: 58px; gap: 22px; }
.home-header .brand { font-size: 1.22rem; }
.home-header .nav-wrap nav { gap: 20px; }
.home-header .nav-wrap nav a { color: #b6bcc8; font-size: .76rem; letter-spacing: .01em; }
.home-header .nav-wrap nav a:hover { color: #fff; }
.home-header .age-chip { display: inline-flex; gap: 5px; align-items: center; border-radius: 5px; padding: 4px 8px; color: #b8c3c2; background: #121822; letter-spacing: .035em; }
.home-header .age-chip b { color: var(--accent-2); }

.directory-hero { border-bottom: 1px solid var(--line); padding: 34px 0 24px; background: #0d1118; }
.portal-label { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-bottom: 12px; color: #8991a0; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.portal-label span + span::before { content: "•"; margin-right: 18px; color: #505866; }
.directory-hero h1 { max-width: 820px; margin-bottom: 8px; font-size: clamp(2rem, 4.2vw, 3.45rem); line-height: 1.05; }
.directory-hero > .shell > p:not(.intro-disclaimer) { max-width: 820px; margin-bottom: 20px; color: #b0b6c2; font-size: 1rem; }
.directory-search { display: grid; grid-template-columns: minmax(300px, 1fr) 190px 145px auto; gap: 7px; max-width: 1100px; border: 1px solid #343b48; border-radius: 9px; padding: 7px; background: #141923; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.directory-search label { min-width: 0; }
.directory-search .search-field { position: relative; }
.directory-search .search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-53%); color: #8992a2; font-size: 1.3rem; }
.directory-search input,
.directory-search select { width: 100%; height: 43px; border: 1px solid transparent; border-radius: 6px; outline: 0; color: var(--text); background: #0e1219; padding: 0 12px; font-size: .82rem; }
.directory-search input { padding-left: 40px; }
.directory-search input::placeholder { color: #798291; }
.directory-search input:focus,
.directory-search select:focus { border-color: #75659d; }
.directory-search .button { min-height: 43px; border-radius: 6px; padding-inline: 18px; font-size: .8rem; }
.quick-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.quick-filters button,
.sidebar-links button { appearance: none; border: 0; cursor: pointer; color: #9fa7b5; background: transparent; font: inherit; }
.quick-filters button { border: 1px solid #29313d; border-radius: 99px; padding: 5px 9px; background: #111720; font-size: .68rem; }
.quick-filters button:hover,
.quick-filters button:focus-visible { border-color: #605475; color: #e5ddf8; background: #171c27; }
.intro-disclaimer { max-width: 1080px; margin: 14px 0 0; border-left: 2px solid #4f9b8c; padding-left: 10px; color: #838c9b; font-size: .68rem; line-height: 1.45; }
.intro-disclaimer strong { color: #aeb9b8; }

.directory-layout { display: grid; grid-template-columns: minmax(0, 1fr) 275px; gap: 20px; align-items: start; padding-top: 26px; padding-bottom: 58px; }
.directory-main { min-width: 0; }
.directory-section { scroll-margin-top: 78px; margin-bottom: 30px; }
.directory-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 12px; }
.directory-heading .kicker { display: block; margin-bottom: 4px; color: var(--accent-2); font-size: .65rem; }
.directory-heading h2 { font-size: 1.55rem; }
.directory-heading > p { max-width: 395px; margin: 0; color: #808999; font-size: .69rem; text-align: right; }
.directory-heading .text-link { flex-shrink: 0; font-size: .72rem; }

.ranked-list { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #10141c; }
.ranked-row { display: grid; grid-template-columns: 38px 42px minmax(250px, 1fr) 78px 78px 130px; gap: 10px; align-items: center; min-height: 104px; border-top: 1px solid var(--line); padding: 12px; }
.ranked-row:first-child { border-top: 0; }
.ranked-row:hover { background: #141923; }
.rank-number { color: #d6dae2; font-size: 1rem; font-weight: 850; text-align: center; }
.rank-number span { color: #666e7e; font-size: .65rem; }
.site-mark { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid color-mix(in srgb, var(--site-color) 55%, #2e3440); border-radius: 9px; color: #f4f2f9; background: color-mix(in srgb, var(--site-color) 22%, #121721); font-size: .68rem; font-weight: 850; letter-spacing: -.01em; }
.site-mark.small { width: 35px; height: 35px; border-radius: 8px; font-size: .61rem; }
.site-mark.tiny { width: 32px; height: 32px; border-radius: 7px; font-size: .58rem; }
.ranked-summary { min-width: 0; }
.listing-title-line { display: flex; align-items: baseline; gap: 9px; }
.listing-title-line h3 { margin: 0; font-size: .98rem; }
.listing-category { color: var(--accent-2); font-size: .6rem; font-weight: 750; text-transform: uppercase; }
.ranked-summary > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 5px 0 7px; color: #9ba3b1; font-size: .72rem; line-height: 1.4; }
.directory-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.directory-tags span { border: 1px solid #2c3440; border-radius: 4px; padding: 2px 5px; color: #a5adba; background: #151a23; font-size: .57rem; }
.score-cell { text-align: center; }
.score-cell strong { display: block; color: var(--text); font-size: 1.18rem; line-height: 1; }
.score-cell span { display: block; margin-top: 4px; color: var(--warning); font-size: .55rem; white-space: nowrap; }
.pricing-badge { display: inline-flex; justify-self: center; border: 1px solid #39404c; border-radius: 4px; padding: 3px 6px; color: #c5cad3; background: #181d26; font-size: .59rem; font-weight: 750; text-transform: uppercase; }
.pricing-free { border-color: #326757; color: #89d0bb; background: #13221f; }
.pricing-freemium { border-color: #4d496d; color: #c5b8eb; background: #1d1a2b; }
.row-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.row-actions .button { min-height: 34px; border-radius: 5px; padding: 5px 8px; font-size: .66rem; }

.category-modules { display: grid; gap: 14px; }
.category-module { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #10141c; }
.category-module > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding: 13px 15px; background: #151a23; }
.category-module > header h3 { margin: 0 0 3px; font-size: 1rem; }
.category-module > header p { margin: 0; color: #8d95a3; font-size: .67rem; }
.category-module > header > a { flex-shrink: 0; color: var(--accent); font-size: .67rem; font-weight: 750; }
.category-site-row { display: grid; grid-template-columns: 35px minmax(220px, 1fr) 48px 75px 54px; gap: 10px; align-items: center; min-height: 64px; border-top: 1px solid #252c37; padding: 9px 14px; }
.category-site-row:first-child { border-top: 0; }
.category-site-row:hover { background: #131821; }
.category-site-row h4 { margin: 0 0 2px; font-size: .79rem; }
.category-site-row h4 a:hover { color: var(--accent); }
.category-site-row p { overflow: hidden; margin: 0; color: #858e9d; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.category-site-row .rating { justify-self: center; font-size: .7rem; }
.category-site-row .pricing-badge { font-size: .54rem; }
.row-link { justify-self: end; color: #b9a8e1; font-size: .64rem; font-weight: 750; }

.compact-section-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.compact-directory-section { min-width: 0; margin-bottom: 0; }
.compact-directory-section .directory-heading h2 { font-size: 1.25rem; }
.compact-card-list { display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #10141c; }
.compact-site-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) 64px; gap: 10px; align-items: center; min-height: 88px; border-top: 1px solid var(--line); padding: 11px; }
.compact-site-card:first-child { border-top: 0; }
.compact-site-card:hover { background: #141923; }
.compact-card-copy { min-width: 0; }
.compact-card-copy > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.compact-card-copy h3 { margin: 0; font-size: .79rem; }
.compact-card-copy .rating { font-size: .65rem; }
.compact-card-copy p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 4px 0; color: #8992a0; font-size: .62rem; line-height: 1.35; }
.compact-card-copy .listing-category { font-size: .53rem; }
.compact-site-card .button { min-height: 31px; border-radius: 5px; padding: 5px; font-size: .62rem; }

.home-sidebar { position: sticky; top: 78px; display: grid; gap: 12px; }
.sidebar-module { scroll-margin-top: 78px; border: 1px solid var(--line); border-radius: 8px; padding: 14px; background: #11161e; }
.sidebar-module h2 { margin: 0 0 10px; font-size: .83rem; letter-spacing: -.01em; }
.sidebar-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sidebar-title-row a,
.sidebar-title-row > span { color: #8777ad; font-size: .57rem; font-weight: 750; text-transform: uppercase; }
.sidebar-links { display: grid; }
.sidebar-links button { display: flex; justify-content: space-between; border-top: 1px solid #272e39; padding: 7px 0; color: #9da5b3; font-size: .67rem; text-align: left; }
.sidebar-links button:first-child { border-top: 0; }
.sidebar-links button:hover { color: var(--accent); }
.sidebar-site-list { display: grid; }
.sidebar-site { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; gap: 8px; align-items: center; border-top: 1px solid #272e39; padding: 8px 0; }
.sidebar-site:first-child { border-top: 0; padding-top: 0; }
.sidebar-site:last-child { padding-bottom: 0; }
.sidebar-site strong { display: block; overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-site small { display: block; overflow: hidden; color: #7f8897; font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-site .rating { font-size: .62rem; }
.safety-module { border-color: #34534d; background: #101b1a; }
.safety-module ul { margin: 0; padding-left: 17px; color: #9ca9a6; font-size: .65rem; }
.safety-module li + li { margin-top: 4px; }
.disclosure-module .kicker { display: block; margin-bottom: 7px; font-size: .58rem; }
.disclosure-module p { margin: 0; color: #7f8897; font-size: .62rem; line-height: 1.48; }

.home-footer { padding: 32px 0; }
.home-footer .footer-grid { grid-template-columns: .65fr 1.5fr .85fr; gap: 35px; }
.home-footer .disclaimer { margin-top: 0; }

@media (max-width: 1080px) {
  .home-header .nav-wrap nav { gap: 13px; }
  .home-header .nav-wrap nav a { font-size: .7rem; }
  .directory-layout { grid-template-columns: 1fr; }
  .home-sidebar { position: static; grid-template-columns: repeat(3, 1fr); }
  .home-sidebar .safety-module,
  .home-sidebar .disclosure-module { grid-column: auto; }
}

@media (max-width: 880px) {
  .directory-search { grid-template-columns: 1fr 1fr 1fr; }
  .directory-search .search-field { grid-column: 1 / -1; }
  .ranked-row { grid-template-columns: 32px 42px minmax(190px, 1fr) 68px 68px; }
  .ranked-row .row-actions { grid-column: 3 / -1; width: 150px; }
  .compact-section-grid { grid-template-columns: 1fr; }
  .home-sidebar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  body[data-page="home"] .shell { width: min(calc(100% - 22px), 1240px); }
  .home-header .nav-wrap { min-height: 54px; }
  .directory-hero { padding-top: 25px; }
  .portal-label span:nth-child(n+2) { display: none; }
  .directory-hero h1 { font-size: 2.05rem; }
  .directory-search { display: flex; flex-direction: column; }
  .directory-search .button { width: 100%; }
  .quick-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
  .quick-filters button { flex: 0 0 auto; }
  .directory-layout { padding-top: 22px; }
  .directory-heading { display: block; }
  .directory-heading > p { margin-top: 7px; text-align: left; }
  .directory-heading .text-link { display: inline-block; margin-top: 7px; }
  .ranked-row { grid-template-columns: 28px 38px minmax(0, 1fr) 56px; gap: 8px; min-height: 0; padding: 11px 9px; }
  .ranked-row .site-mark { width: 38px; height: 38px; }
  .ranked-summary { grid-column: 3 / -1; }
  .score-cell { grid-column: 4; grid-row: 1; }
  .ranked-row > .pricing-badge { grid-column: 3; justify-self: start; }
  .ranked-row .row-actions { grid-column: 3 / -1; width: 100%; }
  .listing-title-line { display: block; }
  .listing-category { display: inline-block; margin-top: 4px; }
  .category-module > header { align-items: start; }
  .category-module > header p { margin-top: 5px; line-height: 1.4; }
  .category-site-row { grid-template-columns: 35px minmax(0, 1fr) 45px; }
  .category-site-row .pricing-badge { grid-column: 2; justify-self: start; }
  .category-site-row .row-link { grid-column: 3; }
  .category-site-row p { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .home-sidebar { grid-template-columns: 1fr; }
  .home-footer .footer-grid { grid-template-columns: 1fr; gap: 22px; }
}

@media (max-width: 430px) {
  .category-module > header > a { display: none; }
  .directory-tags span:nth-child(n+3) { display: none; }
}

/* Directory polish and denser first viewport. */
body[data-page="home"] {
  background:
    linear-gradient(180deg, rgba(105,203,185,.025), transparent 260px),
    #090c12;
}
.home-header { border-top: 2px solid #8170ad; }
.home-header .brand { display: inline-flex; align-items: center; height: 32px; }
.home-header .brand::after { content: "reviews"; margin-left: 8px; border-left: 1px solid #343b47; padding-left: 8px; color: #747e8e; font-size: .52rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.directory-hero { position: relative; padding: 26px 0 20px; background: linear-gradient(100deg, #10151d 0%, #0d1118 68%, #10151b 100%); }
.directory-hero::after { content: ""; position: absolute; right: 7%; bottom: 0; width: 220px; height: 1px; background: #69cbb9; opacity: .5; }
.directory-hero h1 { max-width: 760px; margin-bottom: 7px; font-size: clamp(1.85rem, 3.2vw, 2.75rem); }
.directory-hero > .shell > p:not(.intro-disclaimer) { margin-bottom: 16px; font-size: .92rem; }
.directory-search { border-color: #44405a; background: #171b25; box-shadow: 0 10px 26px rgba(0,0,0,.26); }
.directory-search .button-primary { color: #0b0d12; background: #c0adee; }
.directory-search .button-primary:hover { background: #d0c0f4; }
.quick-filters { margin-top: 9px; }
.intro-disclaimer { margin-top: 11px; }
.directory-layout { padding-top: 21px; }
.directory-heading { border-left: 2px solid #50466b; padding-left: 10px; }
.directory-heading h2 { font-size: 1.35rem; }
.ranked-list { border-color: #323a46; box-shadow: 0 13px 32px rgba(0,0,0,.18); }
.ranked-row { position: relative; min-height: 94px; }
.ranked-row:nth-child(odd) { background: rgba(255,255,255,.009); }
.ranked-row:nth-child(-n+3)::before { content: ""; position: absolute; inset: 9px auto 9px 0; width: 2px; border-radius: 2px; background: #a18bd6; }
.ranked-row:nth-child(-n+3) .rank-number { color: #c5b5eb; }
.rank-number { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: baseline; gap: 1px; }
.category-module { border-color: #303844; box-shadow: 0 8px 22px rgba(0,0,0,.1); }
.category-module > header { border-left: 3px solid #4a8177; background: linear-gradient(90deg, #17201f, #151a23 40%); }
.category-site-row { min-height: 60px; }
.compact-card-list,
.sidebar-module { border-color: #303844; box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.compact-site-card { min-height: 82px; }
.row-actions .button-primary { background: #bca8eb; }
.row-actions .button-quiet,
.compact-site-card .button-quiet { background: #171d27; }
.static-fallback { visibility: visible; }

@media (max-width: 700px) {
  .home-header .brand::after { display: none; }
  .directory-hero h1 { font-size: 1.9rem; }
  .directory-heading { padding-left: 8px; }
}

/* 2026 directory portal homepage. Kept under data-page=home so inner routes retain their layout. */
body[data-page="home"] {
  --portal-purple: #a98cff;
  --portal-purple-dark: #6f50ce;
  --portal-teal: #53dbc2;
  --portal-yellow: #ffd264;
  --portal-pink: #ff719e;
  --portal-ink: #080a10;
  --portal-panel: #11151e;
  --portal-panel-2: #171c27;
  --portal-line: #303746;
  background: #090b11;
  font-size: 15px;
  line-height: 1.45;
}
body[data-page="home"] .shell { width: min(calc(100% - 30px), 1260px); }
body[data-page="home"] h1,
body[data-page="home"] h2,
body[data-page="home"] h3 { letter-spacing: -.025em; }

.portal-header { border-bottom: 1px solid #2f3541; background: #0c0f16; }
.notice-bar { border-bottom: 1px solid #2c3240; color: #aeb5c2; background: #080a0f; font-size: .67rem; letter-spacing: .025em; }
.notice-bar .shell { display: flex; align-items: center; gap: 14px; min-height: 30px; }
.notice-bar strong { align-self: stretch; display: inline-flex; align-items: center; padding: 0 10px; color: #101116; background: var(--portal-yellow); font-size: .62rem; letter-spacing: .08em; }
.notice-right { margin-left: auto; color: #777f8e; }
.masthead { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(480px, 1.1fr); gap: 28px; align-items: center; min-height: 224px; overflow: hidden; }
.masthead-copy { position: relative; z-index: 2; padding-block: 22px; }
.portal-logo { display: inline-flex; align-items: center; gap: 10px; width: max-content; }
.logo-wave { display: grid; width: 54px; height: 54px; place-items: center; transform: rotate(-8deg); border: 2px solid #c9b9ff; border-radius: 14px 6px 14px 6px; color: #0b0d13; background: var(--portal-purple); box-shadow: 5px 5px 0 #463774; font: 900 2.4rem/1 Inter, ui-sans-serif, system-ui; }
.logo-type { display: flex; flex-wrap: wrap; width: 246px; color: #fff; font-size: 2.48rem; font-weight: 950; line-height: .82; letter-spacing: -.075em; }
.logo-type b { color: var(--portal-purple); }
.logo-type small { width: 100%; margin-top: 11px; color: var(--portal-teal); font-size: .55rem; font-weight: 850; letter-spacing: .21em; }
.masthead-tagline { max-width: 470px; margin: 19px 0 15px; border-left: 3px solid var(--portal-teal); padding-left: 13px; color: #dfe2e8; font-size: 1.05rem; font-weight: 700; }
.masthead-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.badge-age { display: inline-flex; align-items: center; gap: 6px; border: 2px solid var(--portal-pink); border-radius: 99px; padding: 6px 9px; color: #fff; font-size: .82rem; font-weight: 950; }
.badge-age small { color: #ffb4cb; font-size: .5rem; letter-spacing: .07em; }
.badge-safe { border: 1px solid #315e56; border-radius: 5px; padding: 9px 11px; color: #9ce9da; background: #11231f; font-size: .65rem; font-weight: 750; text-transform: uppercase; }
.badge-affiliate { border: 1px solid #5a4a2c; border-radius: 5px; padding: 9px 11px; color: #f3cf7e; background: #211b10; font-size: .65rem; font-weight: 750; text-transform: uppercase; }
.digital-surf { position: relative; align-self: stretch; min-width: 0; }
.digital-surf::before { content: ""; position: absolute; inset: 16px 0 18px 16px; border: 1px solid #2d3442; background-color: #0a0d14; background-image: linear-gradient(#151a24 1px, transparent 1px), linear-gradient(90deg, #151a24 1px, transparent 1px); background-size: 22px 22px; clip-path: polygon(8% 0, 100% 0, 100% 88%, 92% 100%, 0 100%, 0 12%); }
.digital-surf svg { position: absolute; z-index: 1; inset: 4px 0 0; width: 100%; height: calc(100% - 4px); overflow: visible; }
.data-pixels { fill: var(--portal-purple); stroke: var(--portal-teal); stroke-width: 2; opacity: .85; }
.data-cards rect { fill: #171c27; stroke: #665497; stroke-width: 1; }
.data-cards g:nth-child(even) rect { stroke: #34796d; }
.data-cards text { fill: #cbc1e8; font: 800 8px Inter, ui-sans-serif, system-ui; text-anchor: middle; letter-spacing: .7px; }
.wave-back { fill: #17132a; stroke: none; }
.wave-line { fill: none; stroke: var(--portal-purple); stroke-width: 12; stroke-linecap: round; }
.wave-cut { fill: none; stroke: var(--portal-teal); stroke-width: 4; stroke-linecap: round; opacity: .9; }
.surfboard path:first-child { fill: var(--portal-yellow); stroke: #100e13; stroke-width: 2; }
.surfboard path:last-child { fill: none; stroke: #8d6d25; stroke-width: 1; }
.surfer { fill: #080a0f; stroke: #e7e2ef; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.surfer circle { fill: #0a0c12; stroke: var(--portal-pink); stroke-width: 4; }
.foam { fill: var(--portal-teal); stroke: var(--portal-teal); stroke-width: 2; stroke-linecap: round; }
.visual-caption { position: absolute; z-index: 2; right: 18px; bottom: 14px; border: 1px solid #4b4169; padding: 5px 8px; color: #9991ac; background: #0b0e15; font-size: .52rem; font-weight: 850; letter-spacing: .11em; }
.visual-caption b { color: var(--portal-yellow); }
.category-rail { border-block: 1px solid #40365c; background: #201934; }
.category-rail .shell { display: flex; overflow-x: auto; scrollbar-width: none; }
.category-rail a { flex: 0 0 auto; border-left: 1px solid #40365c; padding: 11px 16px; color: #d9cff6; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.category-rail a:last-child { border-right: 1px solid #40365c; }
.category-rail a:hover { color: #0b0d12; background: var(--portal-yellow); }
.portal-tools { padding-block: 14px 13px; }
.portal-stats { display: flex; gap: 8px; margin-bottom: 8px; }
.portal-stats span { border: 1px solid #2f3642; border-radius: 4px; padding: 4px 8px; color: #7f8998; background: #11151c; font-size: .62rem; text-transform: uppercase; }
.portal-stats b { color: var(--portal-yellow); }
.portal-header .directory-search { display: grid; grid-template-columns: minmax(280px, 1fr) 210px 170px 112px; gap: 0; max-width: none; margin: 0; border: 2px solid #7760b8; border-radius: 6px; padding: 0; background: #0a0d13; box-shadow: 5px 5px 0 #29213f; }
.portal-header .directory-search label { border-right: 1px solid #303746; }
.portal-header .directory-search input,
.portal-header .directory-search select { height: 46px; border: 0; border-radius: 0; color: #eef0f5; background: #0d1118; font-size: .78rem; }
.portal-header .directory-search input { padding-left: 43px; }
.portal-header .search-field > span[aria-hidden] { position: absolute; left: 14px; top: 7px; color: var(--portal-purple); font-size: 1.45rem; }
.portal-search-button { border: 0; color: #0b0d11; background: var(--portal-yellow); font-size: .72rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.portal-search-button:hover { background: #ffe092; }
.quick-links { display: flex; align-items: center; gap: 6px; overflow-x: auto; margin-top: 10px; padding-bottom: 2px; scrollbar-width: thin; }
.quick-links strong { flex: 0 0 auto; color: var(--portal-teal); font-size: .61rem; letter-spacing: .08em; }
.quick-links button { flex: 0 0 auto; border: 1px solid #303744; border-radius: 99px; padding: 4px 9px; color: #aab2bf; background: #131821; font-size: .62rem; cursor: pointer; }
.quick-links button:hover { border-color: var(--portal-purple); color: #fff; }

.portal-main { padding-block: 24px 50px; }
.portal-section { scroll-margin-top: 20px; margin-bottom: 34px; }
.portal-section-heading { display: flex; align-items: center; gap: 14px; min-height: 65px; margin-bottom: 12px; border-block: 1px solid #333a48; background: #10141c; }
.heading-stamp { align-self: stretch; display: grid; min-width: 88px; place-content: center; padding: 7px 12px; color: #111218; background: var(--portal-yellow); text-align: center; }
.heading-stamp span { font-size: .54rem; font-weight: 900; letter-spacing: .12em; }
.heading-stamp b { font-size: 1.25rem; letter-spacing: -.05em; }
.section-kicker { margin: 0 0 2px; color: var(--portal-teal); font-size: .61rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.portal-section-heading h1,
.portal-section-heading h2 { margin: 0; font-size: 1.65rem; }
.heading-note { margin: 0 14px 0 auto; color: #838c9a; font-size: .68rem; }
.portal-section-heading.simple { min-height: 56px; border-left: 4px solid var(--portal-purple); padding: 8px 13px; }
.portal-section-heading.simple > a { margin-left: auto; color: #c9b8fa; font-size: .7rem; font-weight: 750; }
.portal-section-heading.simple > p { margin: 0 0 0 auto; color: #848d9b; font-size: .68rem; }

body[data-page="home"] .ranked-list { display: grid; overflow: visible; gap: 7px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body[data-page="home"] .ranked-row { display: grid; grid-template-columns: 52px 54px minmax(300px, 1fr) 70px 86px 146px; gap: 12px; align-items: center; min-height: 102px; border: 1px solid #323947; border-left: 4px solid #3f4655; border-radius: 7px; padding: 11px 12px 11px 8px; background: #11151d; box-shadow: 3px 3px 0 #06070b; }
body[data-page="home"] .ranked-row:first-child { border-top: 1px solid #4f466a; }
body[data-page="home"] .ranked-row:nth-child(odd) { background: #141923; }
body[data-page="home"] .ranked-row:nth-child(-n+3) { border-color: #584b7d; border-left-color: var(--portal-purple); background: #191627; }
body[data-page="home"] .ranked-row:nth-child(-n+3)::before { display: none; }
body[data-page="home"] .ranked-row:hover { transform: translateX(2px); border-color: #736199; }
body[data-page="home"] .rank-number { display: flex; align-items: baseline; justify-content: center; gap: 1px; color: #f5f0ff; font-size: 1.35rem; font-weight: 950; }
body[data-page="home"] .rank-number small { color: #697384; font-size: .62rem; }
body[data-page="home"] .ranked-row:nth-child(1) .rank-number { color: var(--portal-yellow); }
body[data-page="home"] .ranked-row:nth-child(2) .rank-number { color: #d6dde8; }
body[data-page="home"] .ranked-row:nth-child(3) .rank-number { color: #e69b6d; }
body[data-page="home"] .site-mark { width: 50px; height: 50px; border: 2px solid color-mix(in srgb, var(--site-color) 65%, #353b48); border-radius: 8px 3px 8px 3px; background: color-mix(in srgb, var(--site-color) 28%, #11151d); box-shadow: 3px 3px 0 color-mix(in srgb, var(--site-color) 32%, #080a0f); font-size: .74rem; }
body[data-page="home"] .listing-title-line { align-items: center; gap: 8px; }
body[data-page="home"] .listing-title-line h2 { margin: 0; font-size: 1rem; }
body[data-page="home"] .listing-title-line > span { border-radius: 3px; padding: 2px 5px; color: #77dec9; background: #142520; font-size: .55rem; font-weight: 800; text-transform: uppercase; }
body[data-page="home"] .ranked-summary > p { margin: 4px 0 7px; color: #a4acb9; font-size: .69rem; }
body[data-page="home"] .directory-tags span { border-color: #343c49; color: #bac0cb; background: #1a202a; font-size: .55rem; }
body[data-page="home"] .score-cell b { display: block; color: #fff; font-size: 1.28rem; line-height: 1; }
body[data-page="home"] .score-cell span { margin-top: 4px; color: var(--portal-yellow); font-size: .52rem; font-weight: 800; text-transform: uppercase; }
body[data-page="home"] .pricing-badge { border-radius: 3px; color: #d4d8df; font-size: .55rem; }
body[data-page="home"] .pricing-free { color: #8ce4d0; }
body[data-page="home"] .pricing-freemium { color: #d2c2ff; }
body[data-page="home"] .row-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
body[data-page="home"] .row-actions a { display: grid; min-height: 34px; place-items: center; border: 1px solid #414958; border-radius: 4px; color: #d1d5dd; background: #1a1f29; font-size: .62rem; font-weight: 800; }
body[data-page="home"] .row-actions a:last-child { border-color: #7a62bf; color: #110f18; background: var(--portal-purple); }
body[data-page="home"] .row-actions a:hover { filter: brightness(1.15); }
body[data-page="home"] .no-results { border: 1px dashed #4b435f; padding: 18px; color: #b8afcd; background: #171421; }

body[data-page="home"] .category-modules { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.category-box { overflow: hidden; border: 1px solid #343b49; border-radius: 6px; background: #11151d; box-shadow: 3px 3px 0 #06070a; }
.category-box > header { display: grid; grid-template-columns: 34px 1fr auto; gap: 9px; align-items: start; min-height: 88px; border-bottom: 1px solid #343b49; padding: 11px; background: #181d27; }
.category-box > header > span { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #665390; border-radius: 4px; color: var(--portal-yellow); background: #28203e; font-weight: 900; }
.category-box:nth-child(3n+2) > header > span { border-color: #326c62; color: var(--portal-teal); background: #142b27; }
.category-box:nth-child(3n+3) > header > span { border-color: #755066; color: #ff94b6; background: #301e29; }
.category-box h3 { margin: 0 0 3px; font-size: .83rem; }
.category-box header p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0; color: #87909f; font-size: .58rem; line-height: 1.35; }
.category-box header b { display: grid; min-width: 24px; height: 21px; place-items: center; border-radius: 99px; color: #15120b; background: var(--portal-yellow); font-size: .58rem; }
.category-box > a { display: flex; justify-content: space-between; border-bottom: 1px solid #292f3a; padding: 8px 11px; color: #c4c9d2; font-size: .65rem; }
.category-box > a:hover { color: #fff; background: #1a202a; }
.category-box > a em { color: var(--portal-teal); font-style: normal; font-weight: 850; }
.category-box footer { padding: 8px 11px; background: #0d1118; }
.category-box footer a { color: #bca9f2; font-size: .59rem; font-weight: 800; text-transform: uppercase; }

.live-label { margin-left: auto; color: #7d8796; font-size: .57rem; font-weight: 800; letter-spacing: .08em; }
.live-label i { display: inline-block; width: 6px; height: 6px; margin-right: 5px; border-radius: 50%; background: var(--portal-teal); box-shadow: 0 0 8px var(--portal-teal); }
.fresh-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.fresh-card { display: grid; grid-template-columns: 44px 1fr; gap: 2px 9px; align-items: center; min-width: 0; border: 1px solid #353c49; border-radius: 6px; padding: 10px; background: #121720; }
.fresh-card:hover { border-color: #6d5b9d; background: #181d28; }
.fresh-card .site-mark { grid-row: 1 / 4; width: 42px; height: 42px; }
.fresh-card b { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.fresh-card small { overflow: hidden; color: #788291; font-size: .52rem; text-overflow: ellipsis; white-space: nowrap; }
.fresh-card em { color: var(--portal-yellow); font-size: .52rem; font-style: normal; font-weight: 850; }

.editor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.editor-card { position: relative; min-height: 178px; overflow: hidden; border: 1px solid #3b3f55; border-top: 4px solid var(--portal-purple); border-radius: 5px; padding: 17px; background: #151622; }
.editor-card:nth-child(2) { border-top-color: var(--portal-teal); }
.editor-card:nth-child(3) { border-top-color: var(--portal-yellow); }
.editor-card:nth-child(4) { border-top-color: var(--portal-pink); }
.editor-card > span { display: inline-flex; border-radius: 3px; padding: 3px 6px; color: #16121f; background: #c7b5fb; font-size: .55rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.editor-card h3 { margin: 13px 0 7px; font-size: 1.05rem; }
.editor-card p { margin: 0 0 13px; color: #969eab; font-size: .67rem; line-height: 1.5; }
.editor-card a { position: absolute; bottom: 14px; color: #d2c4f8; font-size: .65rem; font-weight: 800; }

.surf-note { display: flex; flex-wrap: wrap; align-items: center; gap: 0; border: 1px solid #4c435f; border-left: 5px solid var(--portal-yellow); background: #171421; }
.surf-note > * { padding: 11px 14px; }
.surf-note strong { color: var(--portal-yellow); font-size: .65rem; letter-spacing: .08em; }
.surf-note span { border-left: 1px solid #373142; color: #aeb3bd; font-size: .65rem; }
.surf-note a { margin-left: auto; color: #cbb9ff; font-size: .65rem; font-weight: 800; }

.portal-footer { border-top: 4px solid #33274f; background: #080a0f; }
.footer-directory { display: grid; grid-template-columns: 1.4fr .8fr .7fr 1.2fr; gap: 42px; padding-block: 34px 30px; }
.small-logo { transform: scale(.72); transform-origin: left center; }
.footer-brand > p { margin: -5px 0 0; color: #7d8491; font-size: .65rem; }
.footer-directory nav { display: grid; align-content: start; gap: 7px; }
.footer-directory strong { margin-bottom: 4px; color: #d8dbe2; font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-directory nav a { color: #818996; font-size: .63rem; }
.footer-directory nav a:hover { color: var(--portal-purple); }
.footer-disclosure p { margin: 4px 0 0; color: #818996; font-size: .63rem; line-height: 1.55; }
.footer-bottom { display: flex; justify-content: space-between; border-top: 1px solid #262b34; padding-block: 13px; color: #606775; font-size: .58rem; }

@media (max-width: 1040px) {
  .masthead { grid-template-columns: minmax(390px, .95fr) minmax(390px, 1.05fr); }
  .digital-surf { margin-right: -35px; }
  .portal-header .directory-search { grid-template-columns: minmax(240px, 1fr) 180px 155px 100px; }
  body[data-page="home"] .ranked-row { grid-template-columns: 44px 50px minmax(260px, 1fr) 65px 80px; }
  body[data-page="home"] .row-actions { grid-column: 3 / -1; width: 150px; }
  body[data-page="home"] .category-modules { grid-template-columns: repeat(2, 1fr); }
  .fresh-strip { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
  body[data-page="home"] .shell { width: min(calc(100% - 20px), 1260px); }
  .notice-bar .shell { gap: 8px; }
  .notice-right { display: none; }
  .masthead { display: grid; grid-template-columns: 1fr; gap: 0; min-height: 0; padding-block: 0; }
  .masthead-copy { padding: 18px 0 10px; }
  .logo-wave { width: 42px; height: 42px; font-size: 1.9rem; }
  .logo-type { width: 190px; font-size: 1.95rem; }
  .logo-type small { margin-top: 8px; font-size: .45rem; }
  .masthead-tagline { width: 100%; max-width: none; margin: 14px 0 12px; font-size: .8rem; }
  .badge-safe,
  .badge-affiliate { padding: 7px 8px; font-size: .52rem; }
  .digital-surf { height: 170px; margin: 0; }
  .digital-surf::before { inset: 0 0 12px; }
  .digital-surf svg { inset: -10px 0 0; height: 175px; }
  .visual-caption { right: 8px; bottom: 10px; }
  .portal-stats { overflow-x: auto; }
  .portal-header .directory-search { display: grid; grid-template-columns: 1fr 1fr; box-shadow: 3px 3px 0 #29213f; }
  .portal-header .directory-search .search-field { grid-column: 1 / -1; border-bottom: 1px solid #303746; }
  .portal-header .directory-search label:nth-child(3) { border-right: 0; }
  .portal-search-button { grid-column: 1 / -1; min-height: 40px; }
  .portal-section-heading { align-items: center; }
  .heading-note { display: none; }
  .portal-section-heading h1,
  .portal-section-heading h2 { font-size: 1.3rem; }
  body[data-page="home"] .ranked-row { grid-template-columns: 34px 44px minmax(0, 1fr) 58px; gap: 8px; min-height: 0; padding: 10px 8px 10px 5px; }
  body[data-page="home"] .ranked-row .site-mark { width: 42px; height: 42px; }
  body[data-page="home"] .ranked-summary { grid-column: 3 / -1; }
  body[data-page="home"] .score-cell { grid-column: 4; grid-row: 1; }
  body[data-page="home"] .ranked-row > .pricing-badge { grid-column: 3; justify-self: start; }
  body[data-page="home"] .row-actions { grid-column: 3 / -1; width: 100%; }
  body[data-page="home"] .listing-title-line { display: flex; flex-wrap: wrap; }
  body[data-page="home"] .ranked-summary > p { -webkit-line-clamp: 2; }
  body[data-page="home"] .category-modules { grid-template-columns: 1fr; }
  .fresh-strip { display: flex; overflow-x: auto; padding-bottom: 6px; }
  .fresh-card { flex: 0 0 205px; }
  .editor-grid { grid-template-columns: 1fr 1fr; }
  .surf-note span { border-top: 1px solid #373142; }
  .surf-note a { width: 100%; border-top: 1px solid #373142; }
  .footer-directory { grid-template-columns: 1fr 1fr; gap: 25px; }
  .footer-brand,
  .footer-disclosure { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .notice-bar span:not(.notice-right) { display: none; }
  .portal-header .directory-search { display: flex; flex-direction: column; }
  .portal-header .directory-search label { border-right: 0; border-bottom: 1px solid #303746; }
  .heading-stamp { min-width: 71px; }
  .heading-stamp b { font-size: 1rem; }
  body[data-page="home"] .ranked-row { grid-template-columns: 27px 38px minmax(0, 1fr) 48px; }
  body[data-page="home"] .ranked-row .site-mark { width: 38px; height: 38px; }
  body[data-page="home"] .rank-number { font-size: 1.05rem; }
  body[data-page="home"] .directory-tags span:nth-child(n+3) { display: none; }
  .portal-section-heading.simple > a,
  .portal-section-heading.simple > p { display: none; }
  .editor-grid { grid-template-columns: 1fr; }
  .editor-card { min-height: 160px; }
  .footer-bottom { display: grid; gap: 5px; }
}

/* compact brand header for category/review pages */
.inner-home-strip {
  border-bottom: 1px solid var(--line) !important;
  background: var(--bg-soft) !important;
}

.inner-home-strip .home-strip-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 520px !important;
  gap: 22px !important;
  align-items: center !important;
  padding: 8px 0 !important;
}

.inner-home-strip .home-left {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important;
}

.inner-home-strip .home-brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  max-width: 230px !important;
  text-decoration: none !important;
}

.inner-home-strip .home-brand-image {
  display: block !important;
  width: auto !important;
  height: 66px !important;
  max-width: 230px !important;
  object-fit: contain !important;
}

.inner-home-strip .home-brand-tagline {
  margin: 0 !important;
  max-width: 300px !important;
  color: #d9e7f4 !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1.16 !important;
  letter-spacing: -.015em !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.35) !important;
}

.inner-home-strip .home-search {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 110px !important;
  gap: 8px !important;
  padding: 7px !important;
  border: 1px solid var(--line) !important;
  border-radius: 13px !important;
  background: rgba(18,22,34,.9) !important;
}

.inner-home-strip .home-search input {
  width: 100% !important;
  height: 40px !important;
  border: 0 !important;
  border-radius: 9px !important;
  outline: 0 !important;
  color: var(--text) !important;
  background: var(--panel-2) !important;
  padding: 0 13px !important;
}

.inner-home-strip .home-search .button {
  min-height: 40px !important;
  padding: 7px 12px !important;
}

@media (max-width: 900px) {
  .inner-home-strip .home-strip-grid {
    grid-template-columns: 1fr !important;
  }

  .inner-home-strip .home-brand-tagline {
    display: none !important;
  }
}

@media (max-width: 650px) {
  .inner-home-strip .home-search {
    grid-template-columns: 1fr !important;
  }

  .inner-home-strip .home-brand-image {
    height: 58px !important;
    max-width: 205px !important;
  }
}

/* Canonical site-wide AI Porn Surf footer */
.site-footer {
  --site-footer-line: rgba(126, 190, 255, .15);
  position: relative;
  z-index: 2;
  isolation: isolate;
  overflow: clip;
  box-sizing: border-box;
  width: 100%;
  margin-top: 64px;
  border-top: 1px solid rgba(77, 200, 255, .22);
  background:
    radial-gradient(ellipse at 8% -18%, rgba(48, 183, 255, .20), transparent 38%),
    radial-gradient(ellipse at 88% 8%, rgba(162, 104, 255, .14), transparent 35%),
    linear-gradient(135deg, #071522 0%, #090f1d 54%, #100b20 100%);
  color: #b7c4d5;
}

.site-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -9%;
  bottom: -74px;
  width: 58%;
  height: 150px;
  border: 1px solid rgba(76, 205, 255, .09);
  border-radius: 50% 50% 0 0;
  transform: rotate(-4deg);
  box-shadow: 0 -18px 50px rgba(65, 189, 255, .04);
  pointer-events: none;
}

.site-footer,
.site-footer * {
  box-sizing: border-box;
}

.site-footer__inner {
  width: min(calc(100% - 40px), 1260px);
  margin-inline: auto;
  padding: 34px 0 18px;
}

.site-footer__top {
  display: grid;
  grid-template-columns: minmax(360px, .9fr) minmax(440px, 1.1fr);
  gap: clamp(38px, 6vw, 88px);
  align-items: center;
  padding-bottom: 28px;
}

.site-footer__brand {
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  min-width: 0;
}

.site-footer__logo-link {
  display: block;
  border-radius: 18px;
  outline-offset: 4px;
}

.site-footer__logo {
  display: block;
  width: 142px;
  height: auto;
  filter: drop-shadow(0 13px 20px rgba(0, 0, 0, .40));
}

.site-footer__editorial,
.site-footer__editorial p {
  min-width: 0;
  margin: 0;
}

.site-footer__tagline {
  color: #f7fbff;
  font-size: clamp(1.06rem, 1.45vw, 1.34rem);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.03em;
}

.site-footer__dek {
  max-width: 34rem;
  margin-top: 9px !important;
  color: #91a4bb;
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.52;
}

.site-footer__features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
  margin-top: 14px;
}

.site-footer__feature {
  display: grid;
  align-items: center;
  min-width: 0;
  min-height: 46px;
  border-left: 2px solid rgba(255, 255, 255, .13);
  border-radius: 4px;
  padding: 7px 9px;
  background: rgba(3, 9, 17, .18);
  color: #a8b7c9;
  text-decoration: none;
}

.site-footer__feature--active {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  border-left-color: rgba(56, 245, 139, .52);
  background: rgba(56, 245, 139, .025);
  color: #38f58b;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.site-footer__feature-label {
  min-width: 0;
  font-size: .72rem;
  font-weight: 820;
  line-height: 1.2;
}

.site-footer__feature-arrow {
  color: #38f58b;
  font-size: .8rem;
  line-height: 1;
  transition: transform .16s ease, color .16s ease;
}

.site-footer__feature--active:hover {
  border-left-color: rgba(56, 245, 139, .82);
  background: rgba(255, 255, 255, .04);
  color: #38f58b;
}

.site-footer__feature--active:focus-visible {
  border-left-color: #38f58b;
  background: rgba(255, 255, 255, .05);
  color: #38f58b;
  outline: 2px solid rgba(56, 245, 139, .62);
  outline-offset: 2px;
}

.site-footer__feature--active:hover .site-footer__feature-arrow,
.site-footer__feature--active:focus-visible .site-footer__feature-arrow {
  color: #38f58b;
  transform: translate(2px, -1px);
}

.site-footer__feature--disabled {
  grid-template-columns: 1fr;
  gap: 3px;
  border-left-color: rgba(149, 164, 184, .18);
  background: rgba(3, 9, 17, .12);
  color: #8191a5;
  cursor: default;
}

.site-footer__feature-status {
  color: #68798f;
  font-size: .58rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

@media (min-width: 961px) and (max-width: 1120px), (max-width: 700px) {
  .site-footer__features {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

@media (max-width: 430px) {
  .site-footer__feature--active {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer__feature--active,
  .site-footer__feature-arrow {
    transition: none;
  }
}

.site-footer__category-index {
  min-width: 0;
}

.site-footer__category-heading {
  margin: 0 0 10px;
  color: #8294aa;
  font-size: .68rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.site-footer__category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
  min-width: 0;
}

.site-footer__category {
  --footer-category: #69f0dc;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  min-width: 0;
  min-height: 46px;
  border-top: 1px solid color-mix(in srgb, var(--footer-category) 38%, transparent);
  border-radius: 4px;
  padding: 9px 7px 8px;
  background: transparent;
  color: #c8d5e5;
  text-decoration: none;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.site-footer__category-number {
  color: #6f8299;
  font-size: .66rem;
  font-weight: 750;
  line-height: 1;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
}

.site-footer__category-name {
  min-width: 0;
  font-size: .78rem;
  font-weight: 820;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.site-footer__category-arrow {
  color: color-mix(in srgb, var(--footer-category) 66%, #7f91a7);
  font-size: .82rem;
  line-height: 1;
  transition: transform .16s ease, color .16s ease;
}

.site-footer__category:hover {
  border-top-color: color-mix(in srgb, var(--footer-category) 68%, transparent);
  background: rgba(255, 255, 255, .035);
  color: #f7fbff;
}

.site-footer__category:focus-visible {
  border-top-color: color-mix(in srgb, var(--footer-category) 78%, transparent);
  background: rgba(255, 255, 255, .045);
  color: #fff;
  outline: 2px solid color-mix(in srgb, var(--footer-category) 56%, #d8e8f8);
  outline-offset: 2px;
}

.site-footer__category:hover .site-footer__category-arrow,
.site-footer__category:focus-visible .site-footer__category-arrow {
  color: var(--footer-category);
  transform: translate(2px, -2px);
}

.site-footer__category--companions { --footer-category: #42d9ff; }
.site-footer__category--bots { --footer-category: #69f0dc; }
.site-footer__category--roleplay { --footer-category: #b58cff; }
.site-footer__category--generators { --footer-category: #ffd45c; }
.site-footer__category--hentai { --footer-category: #ff6868; }
.site-footer__category--editors { --footer-category: #ff79b5; }

@media (max-width: 1120px) {
  .site-footer__category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .site-footer__category-grid {
    grid-template-columns: 1fr;
  }

  .site-footer__category {
    min-height: 44px;
  }

  .site-footer__category-name {
    font-size: .8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer__category,
  .site-footer__category-arrow {
    transition: none;
  }
}
.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 13px 28px;
  align-items: center;
  border-top: 1px solid var(--site-footer-line);
  padding-top: 15px;
}

.site-footer__legal-links,
.site-footer__closing {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
}

.site-footer__legal-links a {
  color: #a7b7ca;
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none;
}

.site-footer__legal-links a:hover,
.site-footer__legal-links a:focus-visible {
  color: #69f0dc;
}

.site-footer__closing {
  justify-content: flex-end;
  color: #74869c;
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.4;
}

@media (max-width: 960px) {
  .site-footer__top {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .site-footer__brand {
    grid-template-columns: 126px minmax(0, 1fr);
  }

  .site-footer__logo {
    width: 126px;
  }
}

@media (max-width: 700px) {
  .site-footer {
    margin-top: 46px;
  }

  .site-footer__inner {
    width: min(calc(100% - 32px), 1260px);
    padding-top: 27px;
  }

  .site-footer__top {
    padding-bottom: 22px;
  }

  .site-footer__legal {
    align-items: flex-start;
  }

  .site-footer__closing {
    flex-basis: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 430px) {
  .site-footer__brand {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 15px;
  }

  .site-footer__logo {
    width: 104px;
  }

  .site-footer__legal-links,
  .site-footer__closing {
    gap: 8px 14px;
  }
}

/* Adult Chatbots review hero image and alignment */
.adult-chatbots-review .review-header {
  grid-template-columns: 520px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 36px;
  row-gap: 12px;
  align-items: center;
}

.adult-chatbots-review .review-product-image {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  width: 520px;
  height: 270px;
  aspect-ratio: auto;
  margin: 0;
  overflow: hidden;
  border: 1px solid #293548;
  border-radius: 13px;
  padding: 6px;
  background: #080d15;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 18px 38px rgba(0,0,0,.26);
}

.adult-chatbots-review .review-product-image a {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
  cursor: zoom-in;
}

.adult-chatbots-review .review-product-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 8px;
}

.adult-chatbots-review .review-title {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  padding-left: 0;
}

.adult-chatbots-review .review-title h1 {
  margin-bottom: 14px;
  font-size: clamp(2.8rem, 4vw, 3.7rem);
  line-height: .98;
  letter-spacing: -.058em;
  white-space: nowrap;
}

.adult-chatbots-review .review-title > p {
  max-width: none;
}

.adult-chatbots-review .score-block {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 9px;
  align-items: center;
  text-align: left;
}

.adult-chatbots-review .score-block strong {
  grid-column: 1;
  grid-row: 1 / span 2;
  font-size: 2.8rem;
}

.adult-chatbots-review .score-block span {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}

.adult-chatbots-review .score-block small {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin-top: 2px;
}

@media (max-width: 1100px) {
  .adult-chatbots-review .review-header {
    grid-template-columns: 410px minmax(0, 1fr);
    column-gap: 28px;
  }

  .adult-chatbots-review .review-product-image {
    width: 410px;
    height: 215px;
  }

  .adult-chatbots-review .review-title h1 {
    font-size: clamp(2.45rem, 4.5vw, 3.15rem);
  }
}

@media (max-width: 850px) {
  .adult-chatbots-review .review-header {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 24px;
  }

  .adult-chatbots-review .review-product-image {
    grid-column: 1;
    grid-row: auto;
    width: min(100%, 620px);
    height: auto;
    aspect-ratio: 1677 / 733;
    justify-self: center;
  }

  .adult-chatbots-review .review-product-image img {
    object-fit: contain;
  }

  .adult-chatbots-review .review-title {
    grid-column: 1;
    grid-row: auto;
  }

  .adult-chatbots-review .review-title h1 {
    white-space: normal;
  }

  .adult-chatbots-review .score-block {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}

/* AI Sex Bots real category page */
.ai-sex-bots-category {
  --sex-bots-color: #ff6b3d;
  background:
    radial-gradient(circle at 72% 8%, rgba(255,107,61,.07), transparent 25%),
    #090d14;
}

.ai-sex-bots-category .inner-page {
  padding-top: 28px;
}

.sex-bots-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 50px;
  align-items: center;
  margin-top: 28px;
  border: 1px solid
    color-mix(in srgb, var(--sex-bots-color) 27%, #283344);
  border-radius: 18px;
  padding: 45px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 20%, rgba(255,107,61,.12), transparent 32%),
    linear-gradient(135deg, #111823, #0c111a);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 22px 50px rgba(0,0,0,.22);
}

.sex-bots-hero::before {
  content: "";
  position: absolute;
  inset: 18px auto 18px 0;
  width: 2px;
  border-radius: 99px;
  background: var(--sex-bots-color);
  box-shadow: 0 0 18px rgba(255,107,61,.34);
}

.sex-bots-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--sex-bots-color);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.sex-bots-hero h1 {
  margin: 0 0 15px;
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: .95;
  letter-spacing: -.065em;
}

.sex-bots-hero > div > p {
  max-width: 720px;
  margin: 0;
  color: #a6b2c3;
  font-size: 1rem;
  line-height: 1.65;
}

.sex-bots-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-top: 22px;
  color: #8997aa;
  font-size: .7rem;
  font-weight: 750;
}

.sex-bots-meta span {
  position: relative;
}

.sex-bots-meta span + span {
  padding-left: 19px;
}

.sex-bots-meta span + span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--sex-bots-color);
  transform: translateY(-50%);
}

.sex-bots-meta b {
  color: #eef4fc;
}

.sex-bots-hero aside {
  border: 1px solid rgba(255,107,61,.20);
  border-radius: 14px;
  padding: 21px;
  background: rgba(8,13,21,.62);
}

.sex-bots-hero aside strong {
  display: block;
  margin-bottom: 8px;
  color: #f4f7fc;
  font-size: .86rem;
}

.sex-bots-hero aside p {
  margin: 0;
  color: #8794a8;
  font-size: .74rem;
  line-height: 1.55;
}

.sex-bots-directory {
  padding: 55px 0 25px;
}

.sex-bots-heading {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: end;
  margin-bottom: 17px;
}

.sex-bots-heading h2 {
  margin: 0;
  font-size: 2rem;
}

.sex-bots-heading > p {
  max-width: 360px;
  margin: 0;
  color: #79879a;
  font-size: .72rem;
  text-align: right;
}

.sex-bot-listing {
  display: grid;
  grid-template-columns: 62px 300px minmax(0, 1fr) 130px;
  gap: 22px;
  align-items: center;
  border: 1px solid #303a48;
  border-radius: 16px;
  padding: 18px;
  background:
    linear-gradient(135deg, rgba(255,107,61,.045), transparent 38%),
    #101620;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 16px 38px rgba(0,0,0,.18);
  transition:
    border-color .2s ease,
    box-shadow .2s ease;
}

.sex-bot-listing:hover {
  border-color:
    color-mix(in srgb, var(--sex-bots-color) 48%, #303a48);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 21px 46px rgba(0,0,0,.25);
}

.sex-bot-rank {
  text-align: center;
}

.sex-bot-rank small {
  display: block;
  margin-bottom: 5px;
  color: #738095;
  font-size: .53rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sex-bot-rank strong {
  color: var(--sex-bots-color);
  font-size: 1.5rem;
  line-height: 1;
}

.sex-bot-image {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1677 / 980;
  border: 1px solid #354153;
  border-radius: 11px;
  background: #080d15;
}

.sex-bot-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.05);
  transition: transform .22s ease;
}

.sex-bot-image:hover img,
.sex-bot-image:focus-within img {
  transform: scale(1.09);
}

.sex-bot-image-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  background: color-mix(
    in srgb,
    rgba(4, 8, 14, .72) 88%,
    var(--unified-category-accent) 12%
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.sex-bot-image:hover .sex-bot-image-overlay,
.sex-bot-image:focus-within .sex-bot-image-overlay {
  opacity: 1;
  pointer-events: auto;
}

.sex-bot-image-overlay a {
  position: static;
  inset: auto;
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  min-width: 116px;
  max-width: 150px;
  height: auto;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(
    in srgb,
    var(--unified-category-accent) 72%,
    white
  );
  border-radius: 7px;
  padding: 8px 16px;
  color: #071019;
  background: var(--unified-category-accent);
  box-shadow:
    0 5px 14px rgba(0, 0, 0, .24),
    0 0 12px color-mix(
      in srgb,
      var(--unified-category-accent) 22%,
      transparent
    );
  font-size: .66rem;
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
}

.sex-bot-image-overlay a + a {
  border-color: var(--unified-category-accent);
  color: var(--unified-category-accent);
  background: rgba(4, 8, 14, .82);
}

.sex-bot-image-overlay a:hover {
  filter: brightness(1.08);
}

.sex-bot-image-overlay a:focus-visible {
  outline: 2px solid var(--unified-category-accent);
  outline-offset: 2px;
  box-shadow:
    0 0 0 2px rgba(4, 8, 14, .88),
    0 0 14px color-mix(
      in srgb,
      var(--unified-category-accent) 45%,
      transparent
    );
}

.sex-bot-copy {
  min-width: 0;
}

.sex-bot-title-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}

.sex-bot-title-row h3 {
  margin: 0;
  font-size: 1.45rem;
}

.sex-bot-title-row h3 a:hover {
  color: var(--sex-bots-color);
}

.sex-bot-copy > p {
  max-width: 680px;
  margin: 10px 0 13px;
  color: #929fb1;
  font-size: .8rem;
  line-height: 1.55;
}

.sex-bot-score {
  flex: 0 0 auto;
  text-align: center;
}

.sex-bot-score strong {
  display: block;
  color: var(--sex-bots-color);
  font-size: 1.8rem;
  line-height: 1;
}

.sex-bot-score span {
  display: block;
  margin-top: 4px;
  color: #8693a6;
  font-size: .55rem;
  font-weight: 800;
  text-transform: uppercase;
}

.sex-bot-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sex-bot-tags :where(span, a) {
  display: inline-flex;
  align-items: center;
  border-left: 2px solid var(--sex-bots-color);
  border-radius: 0;
  padding: 2px 0 2px 8px;
  color: var(--sex-bots-color);
  background: none;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .01em;
  cursor: default;
  pointer-events: none;
}



.sex-bot-tags a {
  cursor: pointer;
  pointer-events: auto;
  text-decoration: none;
  transition: opacity .2s ease;
}

.sex-bot-tags a:hover,
.sex-bot-tags a:focus-visible {
  opacity: .76;
}

.sex-bot-actions {
  display: grid;
  gap: 8px;
}

.sex-bot-actions .button {
  min-height: 39px;
  border-radius: 8px;
  font-size: .72rem;
}

.ai-sex-bots-category .sex-bot-actions .button-primary {
  color: #170b06;
  background:
    linear-gradient(180deg, #ff815b, var(--sex-bots-color));
  box-shadow: 0 8px 20px rgba(255,107,61,.16);
}

.sex-bots-info {
  padding: 45px 0 20px;
}

.sex-bots-info h2 {
  margin: 0;
  font-size: 1.8rem;
}

.sex-bots-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 18px;
}

.sex-bots-info-grid article {
  border: 1px solid #2c3542;
  border-radius: 13px;
  padding: 20px;
  background: #10151e;
}

.sex-bots-info-grid strong {
  display: block;
  margin-bottom: 8px;
  color: #ecf2fb;
  font-size: .84rem;
}

.sex-bots-info-grid p {
  margin: 0;
  color: #8592a4;
  font-size: .72rem;
  line-height: 1.55;
}

@media (max-width: 1000px) {
  .sex-bots-hero {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .sex-bot-listing {
    grid-template-columns: 52px 230px minmax(0, 1fr);
  }

  .sex-bot-actions {
    grid-column: 2 / -1;
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 700px) {
  .sex-bots-hero {
    padding: 28px 22px;
  }

  .sex-bots-hero h1 {
    font-size: 3rem;
  }

  .sex-bots-heading {
    display: block;
  }

  .sex-bots-heading > p {
    margin-top: 8px;
    text-align: left;
  }

  .sex-bot-listing {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 15px;
  }

  .sex-bot-rank {
    align-self: start;
  }

  .sex-bot-image,
  .sex-bot-copy,
  .sex-bot-actions {
    grid-column: 2;
  }

  .sex-bot-actions {
    grid-template-columns: 1fr;
  }

  .sex-bots-info-grid {
    grid-template-columns: 1fr;
  }
}

@media (hover: none) {
  .sex-bot-image:hover img {
    transform: scale(1.05);
  }
}

/* Premium empty category pages */
.empty-category-page {
  background:
    radial-gradient(
      circle at 76% 8%,
      color-mix(in srgb, var(--category-color) 10%, transparent),
      transparent 27%
    ),
    #090d14;
}

.empty-category-page .inner-page {
  padding-top: 28px;
}

.empty-category-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 50px;
  align-items: center;
  margin-top: 28px;
  overflow: hidden;
  border: 1px solid
    color-mix(in srgb, var(--category-color) 28%, #283344);
  border-radius: 18px;
  padding: 45px;
  background:
    radial-gradient(
      circle at 84% 18%,
      color-mix(in srgb, var(--category-color) 14%, transparent),
      transparent 34%
    ),
    linear-gradient(135deg, #111823, #0c111a);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 22px 50px rgba(0,0,0,.22);
}

.empty-category-hero::before {
  content: "";
  position: absolute;
  inset: 18px auto 18px 0;
  width: 2px;
  border-radius: 99px;
  background: var(--category-color);
  box-shadow:
    0 0 18px
    color-mix(in srgb, var(--category-color) 38%, transparent);
}

.empty-category-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--category-color);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.empty-category-hero h1 {
  margin: 0 0 15px;
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: .95;
  letter-spacing: -.065em;
}

.empty-category-hero > div > p {
  max-width: 720px;
  margin: 0;
  color: #a6b2c3;
  font-size: 1rem;
  line-height: 1.65;
}

.empty-category-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-top: 22px;
  color: #8997aa;
  font-size: .7rem;
  font-weight: 750;
}

.empty-category-meta span {
  position: relative;
}

.empty-category-meta span + span {
  padding-left: 19px;
}

.empty-category-meta span + span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--category-color);
  transform: translateY(-50%);
}

.empty-category-meta b {
  color: #eef4fc;
}

.empty-category-status {
  border: 1px solid
    color-mix(in srgb, var(--category-color) 25%, #283344);
  border-radius: 14px;
  padding: 21px;
  background: rgba(8,13,21,.62);
}

.empty-category-status strong {
  display: block;
  margin-bottom: 8px;
  color: #f4f7fc;
  font-size: .86rem;
}

.empty-category-status p {
  margin: 0;
  color: #8794a8;
  font-size: .74rem;
  line-height: 1.55;
}

.empty-category-directory {
  padding: 55px 0 25px;
}

.empty-category-heading {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: end;
  margin-bottom: 17px;
}

.empty-category-heading h2 {
  margin: 0;
  font-size: 2rem;
}

.empty-category-heading > p {
  max-width: 370px;
  margin: 0;
  color: #79879a;
  font-size: .72rem;
  text-align: right;
}

.empty-category-panel {
  position: relative;
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  overflow: hidden;
  border: 1px solid #303a48;
  border-radius: 16px;
  padding: 26px;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--category-color) 7%, transparent),
      transparent 42%
    ),
    #101620;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 16px 38px rgba(0,0,0,.18);
}

.empty-category-panel::after {
  content: "";
  position: absolute;
  right: 28px;
  bottom: 0;
  width: 160px;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--category-color)
    );
  opacity: .52;
}

.empty-category-icon {
  position: relative;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid
    color-mix(in srgb, var(--category-color) 56%, #354154);
  border-radius: 15px;
  color: var(--category-color);
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--category-color) 18%, transparent),
      rgba(255,255,255,.025)
    );
  box-shadow:
    0 0 20px
    color-mix(in srgb, var(--category-color) 12%, transparent);
}

.empty-category-icon::before {
  content: "";
  width: 18px;
  height: 18px;
  transform: rotate(45deg);
  border: 1px solid currentColor;
  border-radius: 5px;
}

.empty-category-panel h3 {
  margin: 0 0 7px;
  color: #f0f5fc;
  font-size: 1.15rem;
}

.empty-category-panel p {
  max-width: 720px;
  margin: 0;
  color: #8997aa;
  font-size: .78rem;
  line-height: 1.55;
}

.empty-category-actions {
  display: flex;
  gap: 8px;
}

.empty-category-actions .button {
  min-height: 39px;
  border-radius: 8px;
  padding-inline: 16px;
  white-space: nowrap;
  font-size: .72rem;
}

.empty-category-page .empty-category-actions .button-primary {
  border-color: var(--category-color);
  color: #071019;
  background: var(--category-color);
  box-shadow:
    0 8px 20px
    color-mix(in srgb, var(--category-color) 16%, transparent);
}

.empty-category-info {
  padding: 45px 0 20px;
}

.empty-category-info h2 {
  margin: 0;
  font-size: 1.8rem;
}

.empty-category-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 18px;
}

.empty-category-info-grid article {
  position: relative;
  overflow: hidden;
  border: 1px solid #2c3542;
  border-radius: 13px;
  padding: 20px;
  background: #10151e;
  transition:
    border-color .2s ease,
    transform .2s ease;
}

.empty-category-info-grid article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 20px;
  width: 38px;
  height: 1px;
  background: var(--category-color);
  opacity: .72;
}

.empty-category-info-grid article:hover {
  transform: translateY(-2px);
  border-color:
    color-mix(in srgb, var(--category-color) 38%, #2c3542);
}

.empty-category-info-grid strong {
  display: block;
  margin-bottom: 8px;
  color: #ecf2fb;
  font-size: .84rem;
}

.empty-category-info-grid p {
  margin: 0;
  color: #8592a4;
  font-size: .72rem;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .empty-category-hero {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .empty-category-panel {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .empty-category-actions {
    grid-column: 2;
  }
}

@media (max-width: 700px) {
  .empty-category-hero {
    padding: 28px 22px;
  }

  .empty-category-hero h1 {
    font-size: 3rem;
  }

  .empty-category-heading {
    display: block;
  }

  .empty-category-heading > p {
    margin-top: 8px;
    text-align: left;
  }

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

  .empty-category-icon,
  .empty-category-actions {
    grid-column: 1;
  }

  .empty-category-actions {
    display: grid;
  }

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

/* Exact homepage background field for category pages */
body.ai-sex-bots-category,
body.empty-category-page {
  position: relative !important;
  isolation: isolate !important;
  min-height: 100vh !important;
  overflow-x: hidden !important;

  /* Exact homepage main-section base color */
  background:
    linear-gradient(
      180deg,
      #0b1019 0%,
      #080c13 100%
    ) !important;
}

/* Exact homepage grayscale mascot layer */
body.ai-sex-bots-category::before,
body.empty-category-page::before {
  content: "" !important;
  position: absolute !important;
  inset: -80px !important;
  z-index: 0 !important;
  pointer-events: none !important;

  background-image:
    url("/assets/brand/aipornsurf-footer-logo-optimized.webp?v=seo-perf-1")
    !important;
  background-repeat: repeat !important;
  background-size: 175px auto !important;
  background-position: 20px 20px !important;

  opacity: .085 !important;
  filter:
    grayscale(1)
    saturate(0)
    contrast(.9)
    brightness(1.55)
    !important;

  transform: rotate(-5deg) scale(1.06) !important;
  transform-origin: center top !important;

  /* APS TRUE INTERCALATED BACKGROUND START */
  background-image: url("/assets/brand/aipornsurf-background-intercalated-optimized.webp?v=seo-perf-1") !important;
  background-size: 420px 406px !important;
  background-repeat: repeat !important;
  background-position: 0 0 !important;
  /* APS TRUE INTERCALATED BACKGROUND END */

}

/* Exact homepage lighting and dark veil */
body.ai-sex-bots-category::after,
body.empty-category-page::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;

  background:
    radial-gradient(
      circle at 18% 0%,
      rgba(105,240,220,.08),
      transparent 28%
    ),
    radial-gradient(
      circle at 84% 18%,
      rgba(178,139,255,.10),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      rgba(11,16,25,.72) 0%,
      rgba(8,12,19,.82) 100%
    ) !important;
}

/* Keep all real page content above both background layers */
body.ai-sex-bots-category > .inner-home-strip,
body.ai-sex-bots-category > .inner-page,
body.ai-sex-bots-category > .inner-aps-footer,
body.empty-category-page > .inner-home-strip,
body.empty-category-page > .inner-page,
body.empty-category-page > .inner-aps-footer {
  position: relative !important;
  z-index: 2 !important;
}

/*
 * The category header no longer owns a different solid background.
 * The exact body field continues visibly behind it.
 */
body.ai-sex-bots-category .inner-home-strip,
body.empty-category-page .inner-home-strip {
  isolation: auto !important;
  overflow: visible !important;
  background: transparent !important;
  border-bottom:
    1px solid rgba(105,240,220,.13) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body.ai-sex-bots-category .inner-home-strip::before,
body.ai-sex-bots-category .inner-home-strip::after,
body.empty-category-page .inner-home-strip::before,
body.empty-category-page .inner-home-strip::after {
  content: none !important;
  display: none !important;
}

/* Remove the old category-colored page-level backgrounds */
body.ai-sex-bots-category .inner-page,
body.empty-category-page .inner-page {
  background: transparent !important;
}

/* Exact homepage background field for review pages */
body[data-page="review"] {
  position: relative !important;
  isolation: isolate !important;
  min-height: 100vh !important;
  overflow-x: hidden !important;

  background:
    linear-gradient(
      180deg,
      #0b1019 0%,
      #080c13 100%
    ) !important;
}

/* Exact homepage grayscale mascot layer */
body[data-page="review"]::before {
  content: "" !important;
  position: absolute !important;
  inset: -80px !important;
  z-index: 0 !important;
  pointer-events: none !important;

  background-image:
    url("/assets/brand/aipornsurf-footer-logo-optimized.webp?v=seo-perf-1")
    !important;
  background-repeat: repeat !important;
  background-size: 175px auto !important;
  background-position: 20px 20px !important;

  opacity: .085 !important;
  filter:
    grayscale(1)
    saturate(0)
    contrast(.9)
    brightness(1.55)
    !important;

  transform: rotate(-5deg) scale(1.06) !important;
  transform-origin: center top !important;

  /* APS TRUE INTERCALATED BACKGROUND START */
  background-image: url("/assets/brand/aipornsurf-background-intercalated-optimized.webp?v=seo-perf-1") !important;
  background-size: 420px 406px !important;
  background-repeat: repeat !important;
  background-position: 0 0 !important;
  /* APS TRUE INTERCALATED BACKGROUND END */

}

/* Exact homepage lighting and dark veil */
body[data-page="review"]::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;

  background:
    radial-gradient(
      circle at 18% 0%,
      rgba(105,240,220,.08),
      transparent 28%
    ),
    radial-gradient(
      circle at 84% 18%,
      rgba(178,139,255,.10),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      rgba(11,16,25,.72) 0%,
      rgba(8,12,19,.82) 100%
    ) !important;
}

/* Keep all review content above both background layers */
body[data-page="review"] > .inner-home-strip,
body[data-page="review"] > main,
body[data-page="review"] > .inner-page,
body[data-page="review"] > .inner-aps-footer {
  position: relative !important;
  z-index: 2 !important;
}

/* Transparent header so the same field continues behind it */
body[data-page="review"] .inner-home-strip {
  isolation: auto !important;
  overflow: visible !important;
  background: transparent !important;
  border-bottom:
    1px solid rgba(105,240,220,.13) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body[data-page="review"] .inner-home-strip::before,
body[data-page="review"] .inner-home-strip::after {
  content: none !important;
  display: none !important;
}

body[data-page="review"] .inner-page,
body[data-page="review"] > main {
  background: transparent !important;
}

/* Subtle solid review reading panels */

/* Review hero */
body[data-page="review"] .review-header {
  position: relative !important;
  box-sizing: border-box !important;
  overflow: hidden !important;

  margin-top: 28px !important;
  padding: 24px !important;

  border:
    1px solid rgba(124,181,255,.18) !important;
  border-radius: 18px !important;

  background:
    radial-gradient(
      circle at 100% 0%,
      rgba(181,140,255,.055),
      transparent 34%
    ),
    linear-gradient(
      180deg,
      rgba(14,20,31,.965),
      rgba(9,14,23,.95)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 18px 44px rgba(0,0,0,.22) !important;
}

/* Thin premium highlight across the hero */
body[data-page="review"] .review-header::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 24px !important;
  right: 24px !important;
  height: 1px !important;
  pointer-events: none !important;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(105,240,220,.52),
      rgba(181,140,255,.42),
      transparent
    ) !important;
}

/* Main written review */
body[data-page="review"] .review-layout {
  padding-top: 22px !important;
  align-items: start !important;
}

body[data-page="review"] .review-content {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;

  border:
    1px solid rgba(124,181,255,.14) !important;
  border-radius: 18px !important;
  padding: 28px 30px 2px !important;

  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(105,240,220,.035),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      rgba(13,19,29,.955),
      rgba(9,14,22,.94)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.028),
    0 16px 40px rgba(0,0,0,.18) !important;
}

/* Keep the sections clean inside the single reading panel */
body[data-page="review"] .review-content > section {
  position: relative !important;
}

body[data-page="review"] .review-content > section:last-child {
  padding-bottom: 28px !important;
}

/* Sidebar remains slightly stronger than the reading panel */
body[data-page="review"] .sidebar-card {
  background:
    linear-gradient(
      180deg,
      rgba(18,24,36,.985),
      rgba(12,17,27,.98)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 16px 38px rgba(0,0,0,.20) !important;
}

@media (max-width: 850px) {
  body[data-page="review"] .review-header {
    padding: 20px !important;
  }

  body[data-page="review"] .review-layout {
    gap: 18px !important;
  }
}

@media (max-width: 700px) {
  body[data-page="review"] .review-header {
    margin-top: 20px !important;
    padding: 18px !important;
    border-radius: 14px !important;
  }

  body[data-page="review"] .review-header::before {
    left: 18px !important;
    right: 18px !important;
  }

  body[data-page="review"] .review-content {
    border-radius: 14px !important;
    padding: 22px 18px 2px !important;
  }
}

/* Stop watermark layers extending below footer */

/*
 * These decorative layers were absolute, rotated and larger than the body.
 * That created scrollable space beneath the real footer.
 */
body.ai-sex-bots-category::before,
body.empty-category-page::before,
body[data-page="review"]::before {
  position: fixed !important;
  contain: paint !important;
}

body.ai-sex-bots-category::after,
body.empty-category-page::after,
body[data-page="review"]::after {
  position: fixed !important;
  contain: paint !important;
}

/* Prevent rotated decoration from creating horizontal overflow */
body.ai-sex-bots-category,
body.empty-category-page,
body[data-page="review"] {
  overflow-x: clip !important;
}

/* Footer is the true final page element */
body.ai-sex-bots-category > .inner-aps-footer,
body.empty-category-page > .inner-aps-footer,
body[data-page="review"] > .inner-aps-footer {
  margin-bottom: 0 !important;
}

/* BEGIN AI SEX BOTS EDITORIAL DIRECTORY */

/*
 * Editorial category masthead.
 * Deliberately avoids the conventional SaaS hero/card arrangement.
 */
body.ai-sex-bots-category .sex-bots-hero-editorial {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 175px;
  gap: 46px;
  align-items: center;
  margin-top: 26px;
  overflow: visible;
  border: 0;
  border-top: 1px solid rgba(255, 112, 68, .35);
  border-bottom: 1px solid rgba(255, 112, 68, .22);
  border-radius: 0;
  padding: 45px 46px 43px;
  background:
    linear-gradient(
      90deg,
      rgba(255, 98, 52, .10),
      transparent 43%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    rgba(8, 12, 20, .90);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 20px 50px rgba(0,0,0,.20);
}

body.ai-sex-bots-category .sex-bots-hero-editorial::before {
  content: "";
  position: absolute;
  inset: 13px auto 13px 0;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: #ff7044;
  box-shadow: 0 0 22px rgba(255, 112, 68, .38);
}

body.ai-sex-bots-category .sex-bots-hero-editorial::after {
  content: none;
  position: absolute;
  right: 18px;
  bottom: -17px;
  color: rgba(255,255,255,.25);
  background: #090d15;
  padding: 5px 8px;
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .14em;
}

body.ai-sex-bots-category .sex-bots-hero-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

body.ai-sex-bots-category .sex-bots-eyebrow-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
  margin-bottom: 13px;
}

body.ai-sex-bots-category .sex-bots-live-count {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  color: #a7b2c2;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .03em;
}

body.ai-sex-bots-category .sex-bots-live-count i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ff7044;
  box-shadow: 0 0 9px rgba(255, 112, 68, .75);
}

body.ai-sex-bots-category .sex-bots-hero-editorial h1 {
  max-width: 920px;
  margin: 0;
  color: #f4f7fd;
  font-size: clamp(3.5rem, 7vw, 6.35rem);
  line-height: .83;
  letter-spacing: -.078em;
}

body.ai-sex-bots-category .sex-bots-hero-editorial h1 em {
  display: block;
  margin-top: 19px;
  color: #ff7950;
  font-size: .38em;
  font-style: normal;
  line-height: 1;
  letter-spacing: -.035em;
}

body.ai-sex-bots-category .sex-bots-hero-deck {
  max-width: 780px;
  margin: 25px 0 0;
  color: #abb6c7;
  font-size: 1rem;
  line-height: 1.7;
}

body.ai-sex-bots-category .sex-bots-hero-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 13px 24px;
  align-items: center;
  margin-top: 25px;
}

body.ai-sex-bots-category .sex-bots-hero-nav a {
  display: inline-flex;
  gap: 9px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 112, 68, .52);
  padding-bottom: 4px;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .055em;
}

body.ai-sex-bots-category .sex-bots-hero-nav a span {
  color: #ff7950;
  font-size: 1rem;
}

body.ai-sex-bots-category .sex-bots-hero-nav p {
  margin: 0;
  color: #778498;
  font-size: .64rem;
  font-weight: 750;
}

body.ai-sex-bots-category .sex-bots-surf-stamp {
  display: grid;
  place-content: center;
  justify-self: end;
  width: 164px;
  aspect-ratio: 1;
  border: 1px dashed rgba(255, 124, 82, .58);
  border-radius: 50%;
  color: #ff7950;
  text-align: center;
  background:
    radial-gradient(
      circle,
      rgba(255, 112, 68, .10),
      rgba(10,14,22,.70) 67%
    );
  box-shadow:
    inset 0 0 0 7px rgba(255, 112, 68, .025),
    0 0 34px rgba(255, 112, 68, .09);
  transform: rotate(4deg);
}

body.ai-sex-bots-category .sex-bots-surf-stamp span {
  font-size: .5rem;
  font-weight: 900;
  letter-spacing: .19em;
}

body.ai-sex-bots-category .sex-bots-surf-stamp strong {
  display: block;
  margin: 4px 0;
  font-size: 1.15rem;
  line-height: .9;
  letter-spacing: -.04em;
}

body.ai-sex-bots-category .sex-bots-surf-stamp b {
  display: block;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1;
}

body.ai-sex-bots-category .sex-bots-surf-stamp small {
  display: block;
  margin-top: 6px;
  color: #909bad;
  font-size: .49rem;
  font-weight: 800;
  letter-spacing: .04em;
}

/* Long-form category introduction */
body.ai-sex-bots-category .sex-bots-editorial {
  display: grid;
  grid-template-columns: minmax(210px, 285px) minmax(0, 1fr);
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid rgba(255, 112, 68, .20);
  border-radius: 14px;
  background:
    linear-gradient(
      110deg,
      rgba(255, 112, 68, .055),
      transparent 31%
    ),
    rgba(9, 14, 23, .955);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 18px 44px rgba(0,0,0,.18);
}

body.ai-sex-bots-category .sex-bots-editorial-rail {
  position: relative;
  border-right: 1px solid rgba(255, 112, 68, .17);
  padding: 29px 27px;
  background: rgba(255, 112, 68, .025);
}

body.ai-sex-bots-category .sex-bots-editorial-rail::after {
  content: "";
  position: absolute;
  left: 27px;
  right: 27px;
  bottom: 25px;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(255,112,68,.58),
      transparent
    );
}

body.ai-sex-bots-category .sex-bots-editorial-rail h2 {
  margin: 8px 0 13px;
  color: #f3f6fb;
  font-size: clamp(1.65rem, 3vw, 2.2rem);
  line-height: 1.03;
  letter-spacing: -.05em;
}

body.ai-sex-bots-category .sex-bots-editorial-rail > p {
  margin: 0;
  color: #8996a9;
  font-size: .73rem;
  line-height: 1.65;
}

body.ai-sex-bots-category .sex-bots-scroll-note {
  position: static;
  display: grid;
  width: fit-content;
  gap: 4px;
  margin-top: 21px;
  color: #68758a;
  font-size: .54rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
}

body.ai-sex-bots-category .sex-bots-scroll-note b {
  color: #ff7950;
  font-size: .58rem;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll {
  position: relative;
  max-height: 310px;
  overflow-y: auto;
  padding: 30px 38px 36px;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #8c4937 #111824;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll:focus {
  outline: 1px solid rgba(255, 112, 68, .48);
  outline-offset: -4px;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll::-webkit-scrollbar {
  width: 8px;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll::-webkit-scrollbar-track {
  background: #111824;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll::-webkit-scrollbar-thumb {
  border: 2px solid #111824;
  border-radius: 99px;
  background: #8c4937;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll p {
  max-width: 900px;
  margin: 0 0 19px;
  color: #aab5c5;
  font-size: .85rem;
  line-height: 1.82;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll
.sex-bots-editorial-lede {
  color: #d0d7e2;
  font-size: .99rem;
  line-height: 1.78;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll
.sex-bots-editorial-lede::first-letter {
  float: left;
  margin: 5px 8px 0 0;
  color: #ff7950;
  font-size: 3.25rem;
  font-weight: 950;
  line-height: .75;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll h3 {
  margin: 31px 0 10px;
  color: #f0f3f8;
  font-size: 1.12rem;
  letter-spacing: -.025em;
}

body.ai-sex-bots-category .sex-bots-editorial-scroll h3::before {
  content: "//";
  margin-right: 8px;
  color: #ff7044;
  font-size: .8em;
  letter-spacing: -.16em;
}

/* Ranking transition */
body.ai-sex-bots-category #rankings {
  scroll-margin-top: 20px;
  margin-top: 18px;
}

body.ai-sex-bots-category .sex-bots-heading > p {
  max-width: 360px;
}

/* Editorial checklist: one field-guide strip, not three SaaS cards */
body.ai-sex-bots-category .sex-bots-field-guide {
  margin-top: 47px;
  padding-bottom: 42px;
}

body.ai-sex-bots-category .sex-bots-field-guide-heading {
  display: flex;
  gap: 24px;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 17px;
}

body.ai-sex-bots-category .sex-bots-field-guide-heading h2 {
  margin: 5px 0 0;
  color: #f1f4fa;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  letter-spacing: -.045em;
}

body.ai-sex-bots-category .sex-bots-field-guide-heading > p {
  max-width: 360px;
  margin: 0;
  color: #7e8b9e;
  font-size: .7rem;
  line-height: 1.55;
  text-align: right;
}

body.ai-sex-bots-category .sex-bots-field-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 112, 68, .26);
  border-bottom: 1px solid rgba(255, 112, 68, .17);
  background:
    linear-gradient(
      180deg,
      rgba(15,21,31,.94),
      rgba(9,14,22,.92)
    );
}

body.ai-sex-bots-category .sex-bots-field-notes article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 13px;
  padding: 23px 22px;
}

body.ai-sex-bots-category .sex-bots-field-notes article + article {
  border-left: 1px dashed rgba(255, 112, 68, .23);
}

body.ai-sex-bots-category .sex-bots-field-notes article > b {
  color: rgba(255, 121, 80, .72);
  font-size: 1.25rem;
  font-weight: 950;
  letter-spacing: -.06em;
}

body.ai-sex-bots-category .sex-bots-field-notes strong {
  display: block;
  margin-bottom: 7px;
  color: #e9edf4;
  font-size: .78rem;
}

body.ai-sex-bots-category .sex-bots-field-notes p {
  margin: 0;
  color: #8794a7;
  font-size: .69rem;
  line-height: 1.62;
}

@media (max-width: 900px) {
  body.ai-sex-bots-category .sex-bots-hero-editorial {
    grid-template-columns: minmax(0, 1fr) 135px;
    gap: 27px;
    padding: 37px 32px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp {
    width: 132px;
  }

  body.ai-sex-bots-category .sex-bots-editorial {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  body.ai-sex-bots-category .sex-bots-editorial-rail {
    padding: 25px 22px;
  }

  body.ai-sex-bots-category .sex-bots-scroll-note {
    left: 22px;
  }

  body.ai-sex-bots-category .sex-bots-editorial-scroll {
    padding-inline: 28px;
  }

  body.ai-sex-bots-category .sex-bots-field-notes {
    grid-template-columns: 1fr;
  }

  body.ai-sex-bots-category .sex-bots-field-notes article + article {
    border-top: 1px dashed rgba(255, 112, 68, .20);
    border-left: 0;
  }
}

@media (max-width: 700px) {
  body.ai-sex-bots-category .sex-bots-hero-editorial {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 20px;
    padding: 30px 22px;
  }

  body.ai-sex-bots-category .sex-bots-hero-editorial h1 {
    font-size: clamp(3rem, 15vw, 4.3rem);
  }

  body.ai-sex-bots-category .sex-bots-hero-deck {
    font-size: .88rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp {
    justify-self: start;
    width: auto;
    min-width: 210px;
    aspect-ratio: auto;
    border-radius: 8px;
    padding: 13px 19px;
    text-align: left;
    transform: rotate(-1deg);
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp strong {
    display: inline;
    margin-right: 8px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp b {
    display: inline;
    font-size: 1.2rem;
  }

  body.ai-sex-bots-category .sex-bots-editorial {
    grid-template-columns: 1fr;
  }

  body.ai-sex-bots-category .sex-bots-editorial-rail {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 112, 68, .17);
    padding: 23px 21px;
  }

  body.ai-sex-bots-category .sex-bots-scroll-note {
    margin-top: 18px;
  }

  body.ai-sex-bots-category .sex-bots-editorial-rail::after {
    display: none;
  }

  body.ai-sex-bots-category .sex-bots-editorial-scroll {
    max-height: 430px;
    padding: 24px 21px 30px;
  }

  body.ai-sex-bots-category .sex-bots-field-guide-heading {
    display: block;
  }

  body.ai-sex-bots-category .sex-bots-field-guide-heading > p {
    margin-top: 8px;
    text-align: left;
  }

  body.ai-sex-bots-category .sex-bots-field-notes article {
    padding-inline: 18px;
  }
}

/* BEGIN AI SEX BOTS HERO POLISH 1 */

/* Align category label and reviewed-site status on one baseline */
body.ai-sex-bots-category .sex-bots-eyebrow-row {
  align-items: center;
}

body.ai-sex-bots-category
.sex-bots-eyebrow-row
.sex-bots-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  margin: 0;
  line-height: 1;
}

body.ai-sex-bots-category .sex-bots-live-count {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  margin: 0;
  padding: 0;
  line-height: 1;
}

/* Give the badge a wider visual zone and bring it inward */
body.ai-sex-bots-category .sex-bots-hero-editorial {
  grid-template-columns: minmax(0, 1fr) 250px;
  gap: 26px;
}

/* Premium Surf Report seal */
body.ai-sex-bots-category .sex-bots-surf-stamp {
  position: relative;
  isolation: isolate;
  justify-self: center;

  width: 172px;
  aspect-ratio: 1;
  overflow: hidden;

  border: 1px solid rgba(255, 121, 80, .60);
  border-radius: 50%;
  padding: 0;

  color: #ff825d;
  text-align: center;
  text-rendering: geometricPrecision;
  font-kerning: normal;

  background:
    radial-gradient(
      circle at 50% 42%,
      rgba(255, 121, 80, .10),
      transparent 39%
    ),
    radial-gradient(
      circle,
      rgba(17, 20, 29, .96) 0%,
      rgba(8, 12, 20, .97) 72%
    );

  box-shadow:
    inset 0 0 0 7px rgba(255, 121, 80, .025),
    inset 0 0 32px rgba(255, 121, 80, .035),
    0 15px 34px rgba(0, 0, 0, .28),
    0 0 28px rgba(255, 112, 68, .075);

  transform: none;
  backdrop-filter: blur(8px);
}

/* Fine inner ring */
body.ai-sex-bots-category .sex-bots-surf-stamp::before {
  content: "";
  position: absolute;
  inset: 9px;
  z-index: -1;

  border:
    1px solid rgba(255, 121, 80, .18);
  border-radius: inherit;

  background:
    repeating-conic-gradient(
      from 0deg,
      rgba(255, 121, 80, .14) 0deg 1deg,
      transparent 1deg 11deg
    );

  mask:
    radial-gradient(
      circle,
      transparent 0 88%,
      #000 89% 100%
    );
}

/* Small premium accent above THE */
body.ai-sex-bots-category .sex-bots-surf-stamp::after {
  content: "";
  position: absolute;
  top: 27px;
  left: 50%;
  width: 22px;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 137, 99, .95),
      transparent
    );

  transform: translateX(-50%);
}

body.ai-sex-bots-category .sex-bots-surf-stamp > * {
  position: relative;
  z-index: 1;
}

body.ai-sex-bots-category .sex-bots-surf-stamp span {
  display: block;
  margin: 0 0 7px;

  color: #ff8a66;
  font-size: .43rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .32em;
  text-transform: uppercase;
}

body.ai-sex-bots-category .sex-bots-surf-stamp strong {
  display: block;
  margin: 0;

  color: #f2f4f8;
  font-size: 1.03rem;
  font-weight: 880;
  line-height: .91;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.ai-sex-bots-category .sex-bots-surf-stamp b {
  display: block;
  margin-top: 8px;

  color: #ffffff;
  font-size: 1.82rem;
  font-weight: 950;
  line-height: .9;
  letter-spacing: -.045em;
}

body.ai-sex-bots-category .sex-bots-surf-stamp small {
  display: block;
  margin-top: 10px;

  color: #8895a8;
  font-size: .43rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .095em;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  body.ai-sex-bots-category .sex-bots-hero-editorial {
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 22px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp {
    width: 150px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp::after {
    top: 23px;
  }
}

@media (max-width: 700px) {
  body.ai-sex-bots-category .sex-bots-surf-stamp {
    justify-self: start;

    width: auto;
    min-width: 220px;
    aspect-ratio: auto;

    border-radius: 8px;
    padding: 14px 19px;

    text-align: left;
    transform: rotate(-1deg);
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp::before,
  body.ai-sex-bots-category .sex-bots-surf-stamp::after {
    display: none;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span {
    display: block;
    margin-bottom: 5px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp strong {
    display: inline;
    margin-right: 8px;
    font-size: .95rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp b {
    display: inline;
    font-size: 1.2rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp small {
    display: block;
    margin-top: 6px;
  }
}

/* END AI SEX BOTS HERO POLISH 1 */

/* END AI SEX BOTS EDITORIAL DIRECTORY */

/* BEGIN AI SEX BOTS BALANCED SECTION SPACING */

/* Equal breathing room above and below the leaderboard */
body.ai-sex-bots-category #rankings.sex-bots-directory {
  margin-top: 24px !important;
  padding-top: 0 !important;
}

body.ai-sex-bots-category
#rankings.sex-bots-directory
+ .sex-bots-field-guide {
  margin-top: 0 !important;
}

/* END AI SEX BOTS BALANCED SECTION SPACING */

/* BEGIN SHARED EDITORIAL CATEGORY SHOWCASE */

body[data-page="category"] .shared-editorial-category-showcase {
  padding: 0 0 28px;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-kicker {
  color: var(--sex-bots-color) !important;
}

body.ai-companions-category.ai-sex-bots-category .shared-editorial-category-showcase .sex-bots-kicker {
  color: var(--companion-accent) !important;
}

body.roleplay-ai-category.ai-sex-bots-category .shared-editorial-category-showcase .sex-bots-kicker {
  color: var(--roleplay-accent) !important;
}

body.anime-ai-category.ai-sex-bots-category .shared-editorial-category-showcase .sex-bots-kicker {
  color: var(--hentai-anime-accent) !important;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(250px, .6fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
  margin-bottom: 20px;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-heading h2 {
  max-width: 760px;
  margin: 5px 0 0;
  color: #f2f5fa;
  font-size: clamp(1.95rem, 3.7vw, 2.85rem);
  line-height: .98;
  letter-spacing: -.055em;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-heading > p {
  max-width: 430px;
  margin: 0 0 2px auto;
  color: #8e9aab;
  font-size: .73rem;
  line-height: 1.65;
  text-align: right;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-board {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1px;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.15);
  border-bottom: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.09) !important;
  box-shadow: 0 22px 54px rgba(0,0,0,.2);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-board::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .24;
  background: repeating-linear-gradient(
    135deg,
    transparent 0 18px,
    rgba(255,255,255,.025) 18px 19px
  );
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination {
  position: relative;
  z-index: 1;
  grid-column: auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-width: 0;
  min-height: 242px;
  overflow: hidden;
  padding: clamp(22px, 3vw, 34px);
  color: inherit;
  background:
    linear-gradient(120deg, rgba(var(--surf-rgb), .035), transparent 42%),
    rgba(8,13,21,.965);
  isolation: isolate;
  transition: background-color .22s ease, box-shadow .22s ease;
}


@media (min-width: 901px) {
  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row {
    grid-column: 1 / -1;
    display: grid;
    gap: 1px;
    align-items: stretch;
    min-width: 0;
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row-top {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row-top > .sex-bots-surf-destination:first-child {
    grid-column: span 7;
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row-top > .sex-bots-surf-destination:last-child {
    grid-column: span 5;
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row-middle {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row > .sex-bots-surf-destination {
    grid-column: auto;
    height: 100%;
  }
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full {
  grid-column: 1 / -1;
  grid-template-columns: minmax(190px, .55fr) minmax(280px, 1.45fr) auto;
  grid-template-rows: 1fr;
  gap: clamp(28px, 5vw, 78px);
  align-items: center;
  min-height: 182px;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--surf-color);
  box-shadow: 0 0 18px rgba(var(--surf-rgb), .32);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: linear-gradient(125deg, rgba(var(--surf-rgb), .11), transparent 55%);
  transition: opacity .22s ease;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:hover,
body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible {
  box-shadow: inset 0 0 36px rgba(var(--surf-rgb), .055);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:hover::after,
body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible::after {
  opacity: 1;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible {
  outline: 2px solid var(--surf-color);
  outline-offset: -3px;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 52px;
  margin: 0 0 24px 5px;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons > span {
  position: relative;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  margin-left: -7px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 11px;
  background: #0a1019;
  box-shadow: 0 7px 18px rgba(0,0,0,.4), 0 0 0 3px rgba(7,11,18,.8);
  transform: translateY(3px) rotate(-3deg);
  transition: transform .22s ease, border-color .22s ease;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons > span:nth-child(even) {
  transform: translateY(-3px) rotate(3deg);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 6px;
  object-fit: contain;
  border-radius: 10px;
  background: rgba(11,17,27,.88);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:hover .sex-bots-surf-favicons > span,
body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible .sex-bots-surf-favicons > span {
  border-color: rgba(var(--surf-rgb), .58);
  transform: translateY(0) rotate(0);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-copy {
  display: block;
  min-width: 0;
  align-self: end;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-meta {
  display: block;
  margin-bottom: 7px;
  color: var(--surf-color);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination h3 {
  margin: 0;
  overflow-wrap: anywhere;
  color: #f2f5fa;
  font-size: clamp(1.55rem, 2.7vw, 2.25rem);
  line-height: .98;
  letter-spacing: -.05em;
  transition: color .22s ease;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:hover h3,
body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible h3 {
  color: var(--surf-color);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-description {
  display: block;
  max-width: 520px;
  margin-top: 10px;
  color: #929eae;
  font-size: .73rem;
  line-height: 1.58;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-link {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-top: 24px;
  padding-top: 13px;
  border-top: 1px solid rgba(var(--surf-rgb), .24);
  color: #bdc6d2;
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-link b {
  color: var(--surf-color);
  font-size: 1rem;
  font-weight: 600;
  transition: transform .22s ease;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:hover .sex-bots-surf-destination-link b,
body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination:focus-visible .sex-bots-surf-destination-link b {
  transform: translate(3px, -3px);
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full .sex-bots-surf-favicons {
  margin-bottom: 0;
}

body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full .sex-bots-surf-destination-link {
  min-width: 158px;
  margin-top: 0;
}

@media (max-width: 900px) {
  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="category"] .shared-editorial-category-showcase .shared-editorial-category-showcase-row {
    display: contents;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination,
  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full {
    grid-column: span 1;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full {
    grid-column: 1 / -1;
    grid-template-columns: minmax(175px, .6fr) minmax(260px, 1.4fr);
    grid-template-rows: auto auto;
    gap: 22px 32px;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full .sex-bots-surf-destination-link {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-heading {
    display: block;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-heading > p {
    margin: 10px 0 0;
    text-align: left;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-next-board {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination,
  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full {
    grid-column: 1;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr auto;
    gap: 0;
    min-height: 0;
    padding: 24px 22px 22px;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons,
  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full .sex-bots-surf-favicons {
    min-height: 44px;
    margin: 0 0 20px 4px;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-favicons > span {
    width: 41px;
    height: 41px;
    flex-basis: 41px;
    border-radius: 9px;
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination h3 {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  body[data-page="category"] .shared-editorial-category-showcase .sex-bots-surf-destination-full .sex-bots-surf-destination-link {
    grid-column: auto;
    min-width: 0;
    margin-top: 22px;
  }
}

/* END SHARED EDITORIAL CATEGORY SHOWCASE */

/* BEGIN AI SEX BOTS HERO HOMEPAGE CREDIT */

body.ai-sex-bots-category .sex-bots-hero-credit {
  position: absolute;
  right: 18px;
  bottom: -17px;
  z-index: 4;

  padding: 5px 9px;

  color: rgba(199, 208, 220, .52);
  background: #090d15;

  font-size: .52rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .11em;
  text-transform: uppercase;
  white-space: nowrap;

  transition:
    color .2s ease,
    letter-spacing .2s ease;
}

body.ai-sex-bots-category .sex-bots-hero-credit:hover {
  color: #ff7950;
  letter-spacing: .125em;
}

@media (max-width: 700px) {
  body.ai-sex-bots-category .sex-bots-hero-credit {
    right: 10px;
    bottom: -15px;
    font-size: .46rem;
    letter-spacing: .08em;
  }
}

/* END AI SEX BOTS HERO HOMEPAGE CREDIT */

/* BEGIN AI SEX BOTS COMPACT HERO */

/* Reduce the desktop hero to roughly 60% of its previous visual height */
@media (min-width: 901px) {
  body.ai-sex-bots-category .sex-bots-hero-editorial {
    grid-template-columns: minmax(0, 1fr) 185px;
    gap: 22px;
    padding: 26px 34px 25px;
  }

  body.ai-sex-bots-category .sex-bots-eyebrow-row {
    margin-bottom: 9px;
  }

  body.ai-sex-bots-category .sex-bots-hero-editorial h1 {
    font-size: clamp(3.2rem, 5vw, 4.65rem);
    line-height: .86;
    letter-spacing: -.072em;
  }

  body.ai-sex-bots-category .sex-bots-hero-editorial h1 em {
    margin-top: 10px;
    font-size: .34em;
  }

  body.ai-sex-bots-category .sex-bots-hero-deck {
    max-width: 760px;
    margin-top: 15px;
    font-size: .88rem;
    line-height: 1.55;
  }

  body.ai-sex-bots-category .sex-bots-hero-nav {
    margin-top: 15px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp {
    width: 132px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp::after {
    top: 21px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span {
    margin-bottom: 5px;
    font-size: .36rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp strong {
    font-size: .84rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp b {
    margin-top: 6px;
    font-size: 1.48rem;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp small {
    margin-top: 7px;
    font-size: .35rem;
  }
}

/* Slightly compact tablet layout without affecting mobile */
@media (min-width: 701px) and (max-width: 900px) {
  body.ai-sex-bots-category .sex-bots-hero-editorial {
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 18px;
    padding: 27px 26px 26px;
  }

  body.ai-sex-bots-category .sex-bots-hero-editorial h1 {
    font-size: clamp(3rem, 7vw, 3.9rem);
  }

  body.ai-sex-bots-category .sex-bots-hero-editorial h1 em {
    margin-top: 10px;
  }

  body.ai-sex-bots-category .sex-bots-hero-deck {
    margin-top: 15px;
  }

  body.ai-sex-bots-category .sex-bots-hero-nav {
    margin-top: 15px;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp {
    width: 124px;
  }
}

/* END AI SEX BOTS COMPACT HERO */

/* BEGIN CENTERED HERO BRAND CREDIT */

/* Replace the old bottom-right metadata look */
body.ai-sex-bots-category .sex-bots-hero-credit {
  position: absolute;
  left: 50%;
  right: auto;
  bottom: -16px;
  z-index: 5;

  display: inline-flex;
  align-items: center;
  gap: 9px;

  min-height: 27px;
  border: 1px solid rgba(255, 121, 80, .22);
  border-radius: 3px;
  padding: 0 12px;

  color: inherit;
  background:
    linear-gradient(
      180deg,
      rgba(14, 19, 28, .98),
      rgba(8, 12, 19, .98)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 7px 18px rgba(0,0,0,.26);

  font-size: inherit;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;

  transform: translateX(-50%);
}

body.ai-sex-bots-category .sex-bots-hero-credit::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex: 0 0 auto;

  background: #ff7044;
  box-shadow: 0 0 9px rgba(255,112,68,.70);
}

body.ai-sex-bots-category .sex-bots-hero-credit strong {
  color: #f3f5f9;
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: -.015em;
}

body.ai-sex-bots-category .sex-bots-hero-credit span {
  position: relative;
  padding-left: 10px;

  color: #8995a6;
  font-size: .55rem;
  font-weight: 750;
  letter-spacing: .035em;
}

/* Reinforce the word gap between "AI" and "Porn" in the badge brand
   text: at this size/weight/tracking the plain word space reads as too
   tight. Explicitly reset the properties the generic
   ".sex-bots-hero-credit span" rule above would otherwise leak onto this
   span (it also matches any <span>, including this one nested inside
   <strong>). */
body.ai-sex-bots-category .sex-bots-hero-credit strong .sex-bots-hero-credit-ai {
  padding-left: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  margin-right: .22em;
}

body.ai-sex-bots-category .sex-bots-hero-credit span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;

  width: 1px;
  height: 10px;
  background: rgba(255,255,255,.12);

  transform: translateY(-50%);
}

body.ai-sex-bots-category .sex-bots-hero-credit:hover strong {
  color: #ff7950;
}

body.ai-sex-bots-category .sex-bots-hero-credit:hover span {
  color: #b3bdca;
}

/* Keep "AI" in step with "Porn Surf" on hover: inherits whatever color
   <strong> resolves to (including the five categories that set it via
   !important), instead of falling through to the dimmer span color
   above via the same generic-selector collision. */
body.ai-sex-bots-category .sex-bots-hero-credit:hover strong .sex-bots-hero-credit-ai {
  color: inherit;
}

@media (max-width: 700px) {
  body.ai-sex-bots-category .sex-bots-hero-credit {
    bottom: -15px;
    gap: 7px;
    min-height: 25px;
    padding-inline: 10px;
  }

  body.ai-sex-bots-category .sex-bots-hero-credit strong {
    font-size: .57rem;
  }

  body.ai-sex-bots-category .sex-bots-hero-credit span {
    font-size: .49rem;
  }
}

/* END CENTERED HERO BRAND CREDIT */

/* BEGIN PREMIUM SURF REPORT SEAL V2 */

/* Desktop/tablet: move the circular seal inward and refine its lettering */
@media (min-width: 701px) {
  body.ai-sex-bots-category .sex-bots-surf-stamp {
    justify-self: center;
    place-content: center;

    width: 136px;
    aspect-ratio: 1;

    border-color: rgba(255, 112, 68, .58);

    background:
      radial-gradient(
        circle at 50% 44%,
        rgba(255, 112, 68, .075),
        transparent 42%
      ),
      linear-gradient(
        145deg,
        rgba(15, 18, 27, .99),
        rgba(7, 11, 18, .99)
      );

    box-shadow:
      inset 0 0 0 6px rgba(255, 112, 68, .018),
      inset 0 0 28px rgba(255, 112, 68, .035),
      0 14px 32px rgba(0, 0, 0, .30),
      0 0 22px rgba(255, 112, 68, .07);

    transform: translateX(-22px);
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp::before {
    inset: 8px;
    border-color: rgba(255, 132, 94, .16);
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp::after {
    display: none;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    margin: 0 0 7px;

    color: #ff8966;
    font-size: .34rem;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .24em;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span::before,
  body.ai-sex-bots-category .sex-bots-surf-stamp span::after {
    content: "";
    width: 13px;
    height: 1px;
    background:
      linear-gradient(
        90deg,
        transparent,
        rgba(255, 128, 88, .72)
      );
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span::after {
    transform: scaleX(-1);
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp strong {
    display: block;
    margin: 0;

    color: #f4f6fa;
    font-size: .72rem;
    font-weight: 820;
    line-height: 1;
    letter-spacing: .095em;
    white-space: nowrap;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp b {
    display: block;
    margin-top: 9px;

    color: #ffffff;
    font-size: 1.65rem;
    font-weight: 900;
    line-height: .86;
    letter-spacing: -.035em;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp small {
    display: block;
    margin-top: 10px;

    color: #7f8b9d;
    font-size: .31rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .13em;
    white-space: nowrap;
  }
}

@media (min-width: 901px) {
  body.ai-sex-bots-category .sex-bots-surf-stamp {
    width: 140px;
    transform: translateX(-34px);
  }
}

/* END PREMIUM SURF REPORT SEAL V2 */

/* BEGIN SURF REPORT LABEL POLISH */

@media (min-width: 701px) {
  /* Keep the full seal shifted left */
  body.ai-sex-bots-category .sex-bots-surf-stamp {
    transform: translateX(-40px);
  }

  /* “THE” — genuinely doubled */
  body.ai-sex-bots-category .sex-bots-surf-stamp span {
    margin-bottom: 7px;
    font-size: .88rem !important;
    line-height: .9;
    letter-spacing: .12em;
  }

  body.ai-sex-bots-category .sex-bots-surf-stamp span::before,
  body.ai-sex-bots-category .sex-bots-surf-stamp span::after {
    width: 8px;
  }

  /* Larger and clearer update line */
  body.ai-sex-bots-category .sex-bots-surf-stamp small {
    margin-top: 9px;
    font-size: .48rem !important;
    line-height: 1.05;
    letter-spacing: .075em;
  }
}

@media (min-width: 901px) {
  body.ai-sex-bots-category .sex-bots-surf-stamp {
    transform: translateX(-62px);
  }
}

/* END SURF REPORT LABEL POLISH */

/* BEGIN AI SEX BOTS ORANGE SEARCH BUTTON */

body.ai-sex-bots-category
.inner-home-strip
.home-search
.button-primary {
  border-color: #ff7044 !important;
  color: #120d0b !important;

  background:
    linear-gradient(
      180deg,
      #ff835e 0%,
      #ff7044 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 7px 18px rgba(255,112,68,.20) !important;
}

body.ai-sex-bots-category
.inner-home-strip
.home-search
.button-primary:hover {
  border-color: #ff956f !important;

  background:
    linear-gradient(
      180deg,
      #ff9675 0%,
      #ff7950 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.26),
    0 9px 22px rgba(255,112,68,.28) !important;

  filter: none !important;
}

body.ai-sex-bots-category
.inner-home-strip
.home-search
.button-primary:focus-visible {
  outline: 2px solid rgba(255,121,80,.70) !important;
  outline-offset: 2px !important;
}

/* END AI SEX BOTS ORANGE SEARCH BUTTON */

/* BEGIN RANKING ATTENTION PULSE FINAL */

/* Two sequential single pulses: the top Compare link pulses first
   (starting at .55s), then the bottom Global Ranks link pulses once
   immediately after it finishes (.55s + .78s = 1.33s). Neither loops. */

body.ai-sex-bots-category
.sex-bots-hero-nav
.category-compare-cta {
  position: relative;
  isolation: isolate;
  transform-origin: center;

  animation:
    aps-ranking-attention
    .78s
    cubic-bezier(.2,.8,.25,1)
    .55s
    1
    both !important;
}

body.ai-sex-bots-category
.sex-bots-hero-nav
.category-compare-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;

  border: 1px solid rgba(255,121,80,0);
  border-radius: inherit;

  background:
    linear-gradient(
      90deg,
      rgba(255,112,68,.105),
      rgba(255,112,68,.025)
    );

  opacity: 0;
  pointer-events: none;

  animation:
    aps-ranking-attention-halo
    .78s
    cubic-bezier(.2,.8,.25,1)
    .55s
    1
    both !important;
}

body.ai-sex-bots-category
.sex-bots-hero-nav
.category-compare-cta > span {
  display: inline-block;

  animation:
    aps-ranking-attention-arrow
    .78s
    cubic-bezier(.2,.8,.25,1)
    .55s
    1
    both !important;
}

body.ai-sex-bots-category
.sex-bots-hero-nav
.ranking-attention {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;

  border-radius: 6px;
  padding: 3px 5px;
  margin: -3px -5px;

  transform-origin: center;

  animation:
    aps-ranking-attention
    .78s
    cubic-bezier(.2,.8,.25,1)
    1.33s
    1
    both !important;
}

body.ai-sex-bots-category
.sex-bots-hero-nav
.ranking-attention::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;

  border: 1px solid rgba(255,121,80,0);
  border-radius: inherit;

  background:
    linear-gradient(
      90deg,
      rgba(255,112,68,.105),
      rgba(255,112,68,.025)
    );

  opacity: 0;
  pointer-events: none;

  animation:
    aps-ranking-attention-halo
    .78s
    cubic-bezier(.2,.8,.25,1)
    1.33s
    1
    both !important;
}

body.ai-sex-bots-category
.sex-bots-hero-nav
.ranking-attention > span {
  display: inline-block;

  animation:
    aps-ranking-attention-arrow
    .78s
    cubic-bezier(.2,.8,.25,1)
    1.33s
    1
    both !important;
}

@keyframes aps-ranking-attention {
  0%,
  100% {
    color: #fff;
    text-shadow: none;
    transform: scale(1);
  }

  40% {
    color: #fff8f4;
    text-shadow:
      0 0 6px rgba(255,121,80,.48),
      0 0 13px rgba(255,112,68,.16);
    transform: scale(1.022);
  }

  68% {
    transform: scale(1.006);
  }
}

@keyframes aps-ranking-attention-halo {
  0%,
  100% {
    border-color: rgba(255,121,80,0);
    box-shadow: none;
    opacity: 0;
    transform: scale(.97);
  }

  40% {
    border-color: rgba(255,121,80,.27);
    box-shadow:
      0 0 8px rgba(255,112,68,.14),
      inset 0 0 8px rgba(255,112,68,.045);
    opacity: 1;
    transform: scale(1);
  }

  78% {
    opacity: 0;
    transform: scale(1.035);
  }
}

@keyframes aps-ranking-attention-arrow {
  0%,
  100% {
    filter: none;
    transform: translateY(0);
  }

  40% {
    filter: drop-shadow(0 0 3px rgba(255,112,68,.70));
    transform: translateY(2px);
  }
}

/* END RANKING ATTENTION PULSE FINAL */

/* BEGIN AI SEX BOTS EVALUATION POINTS */

body.ai-sex-bots-category .sex-bots-eval-points {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 15px;
}

body.ai-sex-bots-category .sex-bots-eval-points > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  color: #aeb7c5;
  white-space: nowrap;
}

@media (max-width: 600px) {
  body.ai-sex-bots-category .sex-bots-eval-points {
    gap: 8px 12px;
  }
}

/* END AI SEX BOTS EVALUATION POINTS */

/* BEGIN AI SEX BOTS EVALUATION POINT DIAMONDS
   Reuses the exact homepage board diamond (.home-board-review-link
   ::before/::after, home.css ~L1301-1346), swapped in for the old
   circular checkmark. Each category's own accent color feeds the
   diamond via --unified-category-accent, which is already mapped to
   that page's existing accent variable (see BEGIN SHARED UNIFIED
   CATEGORY BANNERS). */

.sex-bots-eval-points > span {
  position: relative;
}

.eval-diamond {
  position: relative;
  display: inline-block;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}

.eval-diamond::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 5px;
  width: 12px;
  height: 12px;
  border: 1px solid color-mix(in srgb, var(--unified-category-accent, #ff7950) 72%, #354154);
  border-radius: 4px;
  transform: rotate(45deg);
  background:
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--unified-category-accent, #ff7950) 86%, #ffffff) 0 1.7px, transparent 2.7px),
    linear-gradient(135deg, color-mix(in srgb, var(--unified-category-accent, #ff7950) 16%, transparent), rgba(181,140,255,.08));
  box-shadow:
    0 0 12px color-mix(in srgb, var(--unified-category-accent, #ff7950) 22%, transparent),
    inset 0 0 9px rgba(255,255,255,.035);
}

.eval-diamond::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 5px;
  width: 4px;
  height: 4px;
  border-top: 1px solid rgba(255,255,255,.58);
  border-right: 1px solid rgba(255,255,255,.58);
  border-radius: 1px;
  transform: rotate(45deg);
  opacity: .72;
}

/* END AI SEX BOTS EVALUATION POINT DIAMONDS */

/* BEGIN AI COMPANIONS PREMIUM PORT */

body.ai-companions-category {
  --companion-accent: #42d9ff;
  --companion-accent-rgb: 66, 217, 255;

  overflow-x: clip !important;
  overflow-y: auto !important;
}

body.ai-companions-category .inner-page {
  overflow: visible !important;
}

/* Keep every major section visible and in normal document flow */
body.ai-companions-category #rankings,
body.ai-companions-category .sex-bots-field-guide,
body.ai-companions-category .sex-bots-surf-next {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

body.ai-companions-category .sex-bots-editorial {
  display: grid !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;

  border-color: rgba(var(--companion-accent-rgb), .20) !important;
  align-items: stretch !important;
  min-height: 0 !important;
}

body.ai-companions-category .sex-bots-editorial-scroll {
  max-
  visibility: visible !important;
  opacity: 1 !important;

  scrollbar-color:
    rgba(var(--companion-accent-rgb), .46)
    rgba(255,255,255,.035);
  display: block !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  contain: size !important;
}

body.ai-companions-category
.sex-bots-editorial-scroll::-webkit-scrollbar-thumb {
  background: rgba(var(--companion-accent-rgb), .46) !important;
}

/* Replace inherited orange typography */
body.ai-companions-category .sex-bots-kicker,
body.ai-companions-category .sex-bots-hero-editorial h1 em,
body.ai-companions-category .sex-bots-scroll-note b,
body.ai-companions-category .sex-bots-editorial-scroll h3::before,
body.ai-companions-category .sex-bot-rank strong,
body.ai-companions-category .sex-bot-score strong,
body.ai-companions-category .sex-bots-field-notes article > b {
  color: var(--companion-accent) !important;
}

body.ai-companions-category
.sex-bots-editorial-lede::first-letter {
  color: var(--companion-accent) !important;
}

/* Hero frame and left accent */
body.ai-companions-category .sex-bots-hero-editorial {
  border-color: rgba(var(--companion-accent-rgb), .22) !important;

  background:
    radial-gradient(
      circle at 86% 45%,
      rgba(var(--companion-accent-rgb), .085),
      transparent 26%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    linear-gradient(
      145deg,
      rgba(13, 22, 33, .98),
      rgba(7, 13, 21, .98)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 22px 55px rgba(0,0,0,.23) !important;
}

body.ai-companions-category
.sex-bots-hero-editorial::before {
  background: var(--companion-accent) !important;

  box-shadow:
    0 0 20px rgba(var(--companion-accent-rgb), .34) !important;
}

/* Hero ranking link */
body.ai-companions-category .sex-bots-hero-nav a {
  border-bottom-color:
    rgba(var(--companion-accent-rgb), .58) !important;
}

body.ai-companions-category .sex-bots-hero-nav a > span {
  color: var(--companion-accent) !important;
}

body.ai-companions-category .sex-bots-live-count i {
  background: var(--companion-accent) !important;

  box-shadow:
    0 0 10px rgba(var(--companion-accent-rgb), .75) !important;
}

/* Surf Report seal */
body.ai-companions-category .sex-bots-surf-stamp {
  border-color:
    rgba(var(--companion-accent-rgb), .58) !important;

  background:
    radial-gradient(
      circle at 50% 44%,
      rgba(var(--companion-accent-rgb), .085),
      transparent 42%
    ),
    linear-gradient(
      145deg,
      rgba(15, 21, 31, .99),
      rgba(7, 11, 18, .99)
    ) !important;

  box-shadow:
    inset 0 0 0 6px rgba(var(--companion-accent-rgb), .02),
    inset 0 0 28px rgba(var(--companion-accent-rgb), .045),
    0 14px 32px rgba(0,0,0,.30),
    0 0 22px rgba(var(--companion-accent-rgb), .08) !important;
}

body.ai-companions-category
.sex-bots-surf-stamp::before {
  border-color:
    rgba(var(--companion-accent-rgb), .18) !important;
}

body.ai-companions-category .sex-bots-surf-stamp span {
  color: #70e3ff !important;
}

body.ai-companions-category
.sex-bots-surf-stamp span::before,
body.ai-companions-category
.sex-bots-surf-stamp span::after {
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(var(--companion-accent-rgb), .76)
    ) !important;
}

/* Centered AI Porn Surf credit */
body.ai-companions-category .sex-bots-hero-credit {
  border-color:
    rgba(var(--companion-accent-rgb), .24) !important;
}

body.ai-companions-category
.sex-bots-hero-credit::before {
  background: var(--companion-accent) !important;

  box-shadow:
    0 0 9px rgba(var(--companion-accent-rgb), .72) !important;
}

body.ai-companions-category
.sex-bots-hero-credit:hover strong {
  color: var(--companion-accent) !important;
}

/* Guide panel */
body.ai-companions-category
.sex-bots-editorial-rail {
  border-right-color:
    rgba(var(--companion-accent-rgb), .18) !important;

  background:
    rgba(var(--companion-accent-rgb), .018) !important;
}

body.ai-companions-category .sex-bots-editorial-rail::after {
  background:
    linear-gradient(
      90deg,
      rgba(var(--companion-accent-rgb), .58),
      transparent
    ) !important;
}


body.ai-companions-category
.sex-bots-scroll-note {
  border-bottom-color:
    rgba(var(--companion-accent-rgb), .45) !important;
}

/* Leaderboard and checklist borders */
body.ai-companions-category .sex-bots-directory,
body.ai-companions-category .sex-bots-field-guide {
  border-color:
    rgba(var(--companion-accent-rgb), .19) !important;
}

body.ai-companions-category .sex-bot-listing {
  border-color:
    rgba(var(--companion-accent-rgb), .20) !important;
}

body.ai-companions-category
.sex-bot-listing::before {
  background: var(--companion-accent) !important;
}

body.ai-companions-category
.sex-bot-title-row h3 a:hover {
  color: var(--companion-accent) !important;
}

body.ai-companions-category .sex-bot-tags :where(span, a) {
  border-left-color: var(--companion-accent) !important;
  color: var(--companion-accent) !important;
}

body.ai-companions-category
.sex-bots-field-notes article {
  border-color:
    rgba(var(--companion-accent-rgb), .15) !important;
}

/* Header search and listing visit buttons */
body.ai-companions-category
.inner-home-strip
.home-search
.button-primary,
body.ai-companions-category
.sex-bot-actions
.button-primary {
  border-color: #42d9ff !important;
  color: #061217 !important;

  background:
    linear-gradient(
      180deg,
      #72e5ff 0%,
      #42d9ff 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 7px 18px rgba(var(--companion-accent-rgb), .20) !important;
}

body.ai-companions-category
.inner-home-strip
.home-search
.button-primary:hover,
body.ai-companions-category
.sex-bot-actions
.button-primary:hover {
  border-color: #91edff !important;

  background:
    linear-gradient(
      180deg,
      #94efff 0%,
      #59ddff 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    0 9px 22px rgba(var(--companion-accent-rgb), .28) !important;
}

/* Blue sequential pulse: top Compare link, then bottom Global Ranks link */
body.ai-companions-category
.sex-bots-hero-nav
.category-compare-cta {
  animation-name:
    aps-companion-ranking-attention !important;
}

body.ai-companions-category
.sex-bots-hero-nav
.category-compare-cta::before {
  background:
    linear-gradient(
      90deg,
      rgba(var(--companion-accent-rgb), .105),
      rgba(var(--companion-accent-rgb), .025)
    ) !important;

  animation-name:
    aps-companion-ranking-halo !important;
}

body.ai-companions-category
.sex-bots-hero-nav
.category-compare-cta > span {
  animation-name:
    aps-companion-ranking-arrow !important;
}

body.ai-companions-category
.sex-bots-hero-nav
.ranking-attention {
  animation-name:
    aps-companion-ranking-attention !important;
}

body.ai-companions-category
.sex-bots-hero-nav
.ranking-attention::before {
  background:
    linear-gradient(
      90deg,
      rgba(var(--companion-accent-rgb), .105),
      rgba(var(--companion-accent-rgb), .025)
    ) !important;

  animation-name:
    aps-companion-ranking-halo !important;
}

body.ai-companions-category
.sex-bots-hero-nav
.ranking-attention > span {
  animation-name:
    aps-companion-ranking-arrow !important;
}

@keyframes aps-companion-ranking-attention {
  0%,
  100% {
    color: #fff;
    text-shadow: none;
    transform: scale(1);
  }

  40% {
    color: #f4fdff;

    text-shadow:
      0 0 6px rgba(66,217,255,.48),
      0 0 13px rgba(66,217,255,.16);

    transform: scale(1.022);
  }

  68% {
    transform: scale(1.006);
  }
}

@keyframes aps-companion-ranking-halo {
  0%,
  100% {
    border-color: rgba(66,217,255,0);
    box-shadow: none;
    opacity: 0;
    transform: scale(.97);
  }

  40% {
    border-color: rgba(66,217,255,.27);

    box-shadow:
      0 0 8px rgba(66,217,255,.14),
      inset 0 0 8px rgba(66,217,255,.045);

    opacity: 1;
    transform: scale(1);
  }

  78% {
    opacity: 0;
    transform: scale(1.035);
  }
}

@keyframes aps-companion-ranking-arrow {
  0%,
  100% {
    filter: none;
    transform: translateY(0);
  }

  40% {
    filter:
      drop-shadow(0 0 3px rgba(66,217,255,.70));

    transform: translateY(2px);
  }
}

/* Companion placeholder review accents */
body.companion-ai-preview-review .kicker,
body.companion-ai-preview-review .score-block strong {
  color: #42d9ff !important;
}

body.companion-ai-preview-review .tag-row span,
body.companion-ai-preview-review .feature-list span {
  border-color: rgba(66,217,255,.20) !important;
  background: rgba(66,217,255,.055) !important;
}

body.companion-ai-preview-review .button-primary {
  border-color: #42d9ff !important;
  color: #061217 !important;

  background:
    linear-gradient(
      180deg,
      #72e5ff,
      #42d9ff
    ) !important;
}

@media (max-width: 700px) {
  body.ai-companions-category .sex-bots-editorial {
    display: block !important;
  }

  body.ai-companions-category
  .sex-bots-editorial-rail {
    border-right: 0 !important;
    border-bottom:
      1px solid rgba(var(--companion-accent-rgb), .18) !important;
  }

  body.ai-companions-category
  .sex-bots-editorial-scroll {
    max-
      contain: none !important;
      height: auto !important;
      min-height: 0 !important;
      max-height: 430px !important;
  }
}

/* END AI COMPANIONS PREMIUM PORT */

/* BEGIN ROLEPLAY AI PREMIUM PORT */

body.roleplay-ai-category {
  --roleplay-accent: #b58cff;
  --roleplay-accent-rgb: 181, 140, 255;

  overflow-x: clip !important;
  overflow-y: auto !important;
}

body.roleplay-ai-category .inner-page {
  overflow: visible !important;
}

/* Keep every major section visible and in normal document flow */
body.roleplay-ai-category #rankings,
body.roleplay-ai-category .sex-bots-field-guide,
body.roleplay-ai-category .sex-bots-surf-next {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

body.roleplay-ai-category .sex-bots-editorial {
  display: grid !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;

  border-color: rgba(var(--roleplay-accent-rgb), .20) !important;
  align-items: stretch !important;
  min-height: 0 !important;
}

body.roleplay-ai-category .sex-bots-editorial-scroll {
  max-
  visibility: visible !important;
  opacity: 1 !important;

  scrollbar-color:
    rgba(var(--roleplay-accent-rgb), .46)
    rgba(255,255,255,.035);
  display: block !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  contain: size !important;
}

body.roleplay-ai-category
.sex-bots-editorial-scroll::-webkit-scrollbar-thumb {
  background: rgba(var(--roleplay-accent-rgb), .46) !important;
}

/* Replace inherited orange typography */
body.roleplay-ai-category .sex-bots-kicker,
body.roleplay-ai-category .sex-bots-hero-editorial h1 em,
body.roleplay-ai-category .sex-bots-scroll-note b,
body.roleplay-ai-category .sex-bots-editorial-scroll h3::before,
body.roleplay-ai-category .sex-bot-rank strong,
body.roleplay-ai-category .sex-bot-score strong,
body.roleplay-ai-category .sex-bots-field-notes article > b {
  color: var(--roleplay-accent) !important;
}

body.roleplay-ai-category
.sex-bots-editorial-lede::first-letter {
  color: var(--roleplay-accent) !important;
}

/* Hero frame and left accent */
body.roleplay-ai-category .sex-bots-hero-editorial {
  border-color: rgba(var(--roleplay-accent-rgb), .22) !important;

  background:
    radial-gradient(
      circle at 86% 45%,
      rgba(var(--roleplay-accent-rgb), .085),
      transparent 26%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    linear-gradient(
      145deg,
      rgba(13, 22, 33, .98),
      rgba(7, 13, 21, .98)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 22px 55px rgba(0,0,0,.23) !important;
}

body.roleplay-ai-category
.sex-bots-hero-editorial::before {
  background: var(--roleplay-accent) !important;

  box-shadow:
    0 0 20px rgba(var(--roleplay-accent-rgb), .34) !important;
}

/* Hero ranking link */
body.roleplay-ai-category .sex-bots-hero-nav a {
  border-bottom-color:
    rgba(var(--roleplay-accent-rgb), .58) !important;
}

body.roleplay-ai-category .sex-bots-hero-nav a > span {
  color: var(--roleplay-accent) !important;
}

body.roleplay-ai-category .sex-bots-live-count i {
  background: var(--roleplay-accent) !important;

  box-shadow:
    0 0 10px rgba(var(--roleplay-accent-rgb), .75) !important;
}

/* Surf Report seal */
body.roleplay-ai-category .sex-bots-surf-stamp {
  border-color:
    rgba(var(--roleplay-accent-rgb), .58) !important;

  background:
    radial-gradient(
      circle at 50% 44%,
      rgba(var(--roleplay-accent-rgb), .085),
      transparent 42%
    ),
    linear-gradient(
      145deg,
      rgba(15, 21, 31, .99),
      rgba(7, 11, 18, .99)
    ) !important;

  box-shadow:
    inset 0 0 0 6px rgba(var(--roleplay-accent-rgb), .02),
    inset 0 0 28px rgba(var(--roleplay-accent-rgb), .045),
    0 14px 32px rgba(0,0,0,.30),
    0 0 22px rgba(var(--roleplay-accent-rgb), .08) !important;
}

body.roleplay-ai-category
.sex-bots-surf-stamp::before {
  border-color:
    rgba(var(--roleplay-accent-rgb), .18) !important;
}

body.roleplay-ai-category .sex-bots-surf-stamp span {
  color: #c9aaff !important;
}

body.roleplay-ai-category
.sex-bots-surf-stamp span::before,
body.roleplay-ai-category
.sex-bots-surf-stamp span::after {
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(var(--roleplay-accent-rgb), .76)
    ) !important;
}

/* Centered AI Porn Surf credit */
body.roleplay-ai-category .sex-bots-hero-credit {
  border-color:
    rgba(var(--roleplay-accent-rgb), .24) !important;
}

body.roleplay-ai-category
.sex-bots-hero-credit::before {
  background: var(--roleplay-accent) !important;

  box-shadow:
    0 0 9px rgba(var(--roleplay-accent-rgb), .72) !important;
}

body.roleplay-ai-category
.sex-bots-hero-credit:hover strong {
  color: var(--roleplay-accent) !important;
}

/* Guide panel */
body.roleplay-ai-category
.sex-bots-editorial-rail {
  border-right-color:
    rgba(var(--roleplay-accent-rgb), .18) !important;

  background:
    rgba(var(--roleplay-accent-rgb), .018) !important;
}

body.roleplay-ai-category .sex-bots-editorial-rail::after {
  background:
    linear-gradient(
      90deg,
      rgba(var(--roleplay-accent-rgb), .58),
      transparent
    ) !important;
}


body.roleplay-ai-category
.sex-bots-scroll-note {
  border-bottom-color:
    rgba(var(--roleplay-accent-rgb), .45) !important;
}

/* Leaderboard and checklist borders */
body.roleplay-ai-category .sex-bots-directory,
body.roleplay-ai-category .sex-bots-field-guide {
  border-color:
    rgba(var(--roleplay-accent-rgb), .19) !important;
}

body.roleplay-ai-category .sex-bot-listing {
  border-color:
    rgba(var(--roleplay-accent-rgb), .20) !important;
}

body.roleplay-ai-category
.sex-bot-listing::before {
  background: var(--roleplay-accent) !important;
}

body.roleplay-ai-category
.sex-bot-title-row h3 a:hover {
  color: var(--roleplay-accent) !important;
}

body.roleplay-ai-category .sex-bot-tags :where(span, a) {
  border-left-color: var(--roleplay-accent) !important;
  color: var(--roleplay-accent) !important;
}

body.roleplay-ai-category
.sex-bots-field-notes article {
  border-color:
    rgba(var(--roleplay-accent-rgb), .15) !important;
}

/* Header search and listing visit buttons */
body.roleplay-ai-category
.inner-home-strip
.home-search
.button-primary,
body.roleplay-ai-category
.sex-bot-actions
.button-primary {
  border-color: #b58cff !important;
  color: #10091a !important;

  background:
    linear-gradient(
      180deg,
      #c9aaff 0%,
      #b58cff 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 7px 18px rgba(var(--roleplay-accent-rgb), .20) !important;
}

body.roleplay-ai-category
.inner-home-strip
.home-search
.button-primary:hover,
body.roleplay-ai-category
.sex-bot-actions
.button-primary:hover {
  border-color: #dccbff !important;

  background:
    linear-gradient(
      180deg,
      #dfceff 0%,
      #c19cff 100%
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    0 9px 22px rgba(var(--roleplay-accent-rgb), .28) !important;
}

/* Purple sequential pulse: top Compare link, then bottom Global Ranks link */
body.roleplay-ai-category
.sex-bots-hero-nav
.category-compare-cta {
  animation-name:
    aps-roleplay-ranking-attention !important;
}

body.roleplay-ai-category
.sex-bots-hero-nav
.category-compare-cta::before {
  background:
    linear-gradient(
      90deg,
      rgba(var(--roleplay-accent-rgb), .105),
      rgba(var(--roleplay-accent-rgb), .025)
    ) !important;

  animation-name:
    aps-roleplay-ranking-halo !important;
}

body.roleplay-ai-category
.sex-bots-hero-nav
.category-compare-cta > span {
  animation-name:
    aps-roleplay-ranking-arrow !important;
}

body.roleplay-ai-category
.sex-bots-hero-nav
.ranking-attention {
  animation-name:
    aps-roleplay-ranking-attention !important;
}

body.roleplay-ai-category
.sex-bots-hero-nav
.ranking-attention::before {
  background:
    linear-gradient(
      90deg,
      rgba(var(--roleplay-accent-rgb), .105),
      rgba(var(--roleplay-accent-rgb), .025)
    ) !important;

  animation-name:
    aps-roleplay-ranking-halo !important;
}

body.roleplay-ai-category
.sex-bots-hero-nav
.ranking-attention > span {
  animation-name:
    aps-roleplay-ranking-arrow !important;
}

@keyframes aps-roleplay-ranking-attention {
  0%,
  100% {
    color: #fff;
    text-shadow: none;
    transform: scale(1);
  }

  40% {
    color: #f4fdff;

    text-shadow:
      0 0 6px rgba(181,140,255,.48),
      0 0 13px rgba(181,140,255,.16);

    transform: scale(1.022);
  }

  68% {
    transform: scale(1.006);
  }
}

@keyframes aps-roleplay-ranking-halo {
  0%,
  100% {
    border-color: rgba(181,140,255,0);
    box-shadow: none;
    opacity: 0;
    transform: scale(.97);
  }

  40% {
    border-color: rgba(181,140,255,.27);

    box-shadow:
      0 0 8px rgba(181,140,255,.14),
      inset 0 0 8px rgba(181,140,255,.045);

    opacity: 1;
    transform: scale(1);
  }

  78% {
    opacity: 0;
    transform: scale(1.035);
  }
}

@keyframes aps-roleplay-ranking-arrow {
  0%,
  100% {
    filter: none;
    transform: translateY(0);
  }

  40% {
    filter:
      drop-shadow(0 0 3px rgba(181,140,255,.70));

    transform: translateY(2px);
  }
}

/* Roleplay placeholder review accents */
body.roleplay-ai-preview-review .kicker,
body.roleplay-ai-preview-review .score-block strong {
  color: #b58cff !important;
}

body.roleplay-ai-preview-review .tag-row span,
body.roleplay-ai-preview-review .feature-list span {
  border-color: rgba(181,140,255,.20) !important;
  background: rgba(181,140,255,.055) !important;
}

body.roleplay-ai-preview-review .button-primary {
  border-color: #b58cff !important;
  color: #10091a !important;

  background:
    linear-gradient(
      180deg,
      #c9aaff,
      #b58cff
    ) !important;
}

@media (max-width: 700px) {
  body.roleplay-ai-category .sex-bots-editorial {
    display: block !important;
  }

  body.roleplay-ai-category
  .sex-bots-editorial-rail {
    border-right: 0 !important;
    border-bottom:
      1px solid rgba(var(--roleplay-accent-rgb), .18) !important;
  }

  body.roleplay-ai-category
  .sex-bots-editorial-scroll {
    max-
      contain: none !important;
      height: auto !important;
      min-height: 0 !important;
      max-height: 430px !important;
  }
}

/* END ROLEPLAY AI PREMIUM PORT */

/* BEGIN HENTAI / ANIME AI PREMIUM PORT */

body.anime-ai-category {
  --hentai-anime-accent: #ff5a5a;
  --hentai-anime-accent-rgb: 255, 90, 90;
  overflow-x: clip !important;
  overflow-y: auto !important;
}

body.anime-ai-category .inner-page { overflow: visible !important; }

body.anime-ai-category #rankings,
body.anime-ai-category .sex-bots-field-guide,
body.anime-ai-category .sex-bots-surf-next {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

body.anime-ai-category .sex-bots-editorial {
  display: grid !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  border-color: rgba(var(--hentai-anime-accent-rgb), .20) !important;
}

body.anime-ai-category .sex-bots-editorial-scroll {
  display: block !important;
  max-height: 310px !important;
  overflow-y: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  scrollbar-color: rgba(var(--hentai-anime-accent-rgb), .46) rgba(255,255,255,.035);
}

body.anime-ai-category .sex-bots-editorial-scroll::-webkit-scrollbar-thumb { background: rgba(var(--hentai-anime-accent-rgb), .46) !important; }

body.anime-ai-category .sex-bots-kicker,
body.anime-ai-category .sex-bots-hero-editorial h1 em,
body.anime-ai-category .sex-bots-scroll-note b,
body.anime-ai-category .sex-bots-editorial-scroll h3::before,
body.anime-ai-category .sex-bot-rank strong,
body.anime-ai-category .sex-bot-score strong,
body.anime-ai-category .sex-bots-field-notes article > b,
body.anime-ai-category .sex-bots-editorial-lede::first-letter { color: var(--hentai-anime-accent) !important; }

body.anime-ai-category .sex-bots-hero-editorial {
  border-color: rgba(var(--hentai-anime-accent-rgb), .22) !important;
  background: radial-gradient(circle at 86% 45%, rgba(var(--hentai-anime-accent-rgb), .085), transparent 26%), linear-gradient(145deg, rgba(13,22,33,.98), rgba(7,13,21,.98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 22px 55px rgba(0,0,0,.23) !important;
}

body.anime-ai-category .sex-bots-hero-editorial::before {
  background: var(--hentai-anime-accent) !important;
  box-shadow: 0 0 20px rgba(var(--hentai-anime-accent-rgb), .34) !important;
}

body.anime-ai-category .sex-bots-hero-nav a { border-bottom-color: rgba(var(--hentai-anime-accent-rgb), .58) !important; }
body.anime-ai-category .sex-bots-hero-nav a > span { color: var(--hentai-anime-accent) !important; }
body.anime-ai-category .sex-bots-live-count i { background: var(--hentai-anime-accent) !important; box-shadow: 0 0 10px rgba(var(--hentai-anime-accent-rgb), .75) !important; }

body.anime-ai-category .sex-bots-surf-stamp {
  border-color: rgba(var(--hentai-anime-accent-rgb), .58) !important;
  background: radial-gradient(circle at 50% 44%, rgba(var(--hentai-anime-accent-rgb), .085), transparent 42%), linear-gradient(145deg, rgba(15,21,31,.99), rgba(7,11,18,.99)) !important;
  box-shadow: inset 0 0 0 6px rgba(var(--hentai-anime-accent-rgb), .02), inset 0 0 28px rgba(var(--hentai-anime-accent-rgb), .045), 0 14px 32px rgba(0,0,0,.30), 0 0 22px rgba(var(--hentai-anime-accent-rgb), .08) !important;
}

body.anime-ai-category .sex-bots-surf-stamp::before { border-color: rgba(var(--hentai-anime-accent-rgb), .18) !important; }
body.anime-ai-category .sex-bots-surf-stamp span { color: #ff9bc8 !important; }
body.anime-ai-category .sex-bots-surf-stamp span::before,
body.anime-ai-category .sex-bots-surf-stamp span::after { background: linear-gradient(90deg, transparent, rgba(var(--hentai-anime-accent-rgb), .76)) !important; }

body.anime-ai-category .sex-bots-hero-credit { border-color: rgba(var(--hentai-anime-accent-rgb), .24) !important; }
body.anime-ai-category .sex-bots-hero-credit::before { background: var(--hentai-anime-accent) !important; box-shadow: 0 0 9px rgba(var(--hentai-anime-accent-rgb), .72) !important; }
body.anime-ai-category .sex-bots-hero-credit:hover strong { color: var(--hentai-anime-accent) !important; }
body.anime-ai-category .sex-bots-editorial-rail { border-right-color: rgba(var(--hentai-anime-accent-rgb), .18) !important; background: rgba(var(--hentai-anime-accent-rgb), .018) !important; }

body.anime-ai-category .sex-bots-editorial-rail::after {
  background:
    linear-gradient(
      90deg,
      rgba(var(--hentai-anime-accent-rgb), .58),
      transparent
    ) !important;
}

body.anime-ai-category .sex-bots-scroll-note { border-bottom-color: rgba(var(--hentai-anime-accent-rgb), .45) !important; }
body.anime-ai-category .sex-bots-directory,
body.anime-ai-category .sex-bots-field-guide { border-color: rgba(var(--hentai-anime-accent-rgb), .19) !important; }
body.anime-ai-category .sex-bot-listing { border-color: rgba(var(--hentai-anime-accent-rgb), .20) !important; }
body.anime-ai-category .sex-bot-listing::before { background: var(--hentai-anime-accent) !important; }
body.anime-ai-category .sex-bot-title-row h3 a:hover { color: var(--hentai-anime-accent) !important; }
body.anime-ai-category .sex-bot-tags :where(span, a) { border-left-color: var(--hentai-anime-accent) !important; color: var(--hentai-anime-accent) !important; }
body.anime-ai-category .sex-bots-field-notes article { border-color: rgba(var(--hentai-anime-accent-rgb), .15) !important; }

body.anime-ai-category .inner-home-strip .home-search .button-primary,
body.anime-ai-category .sex-bot-actions .button-primary,
body.anime-ai-preview-review .button-primary {
  border-color: #ff5a5a !important;
  color: #250817 !important;
  background: linear-gradient(180deg, #ff9bc8 0%, #ff5a5a 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 7px 18px rgba(255,90,90,.20) !important;
}

body.anime-ai-category .inner-home-strip .home-search .button-primary:hover,
body.anime-ai-category .sex-bot-actions .button-primary:hover,
body.anime-ai-preview-review .button-primary:hover {
  border-color: #ffc1dc !important;
  background: linear-gradient(180deg, #ffc1dc 0%, #ff82b8 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 9px 22px rgba(255,90,90,.28) !important;
}

body.anime-ai-category .sex-bots-hero-nav .category-compare-cta { animation-name: aps-hentai-anime-ranking-attention !important; }
body.anime-ai-category .sex-bots-hero-nav .category-compare-cta::before { background: linear-gradient(90deg, rgba(var(--hentai-anime-accent-rgb), .105), rgba(var(--hentai-anime-accent-rgb), .025)) !important; animation-name: aps-hentai-anime-ranking-halo !important; }
body.anime-ai-category .sex-bots-hero-nav .category-compare-cta > span { animation-name: aps-hentai-anime-ranking-arrow !important; }
body.anime-ai-category .sex-bots-hero-nav .ranking-attention { animation-name: aps-hentai-anime-ranking-attention !important; }
body.anime-ai-category .sex-bots-hero-nav .ranking-attention::before { background: linear-gradient(90deg, rgba(var(--hentai-anime-accent-rgb), .105), rgba(var(--hentai-anime-accent-rgb), .025)) !important; animation-name: aps-hentai-anime-ranking-halo !important; }
body.anime-ai-category .sex-bots-hero-nav .ranking-attention > span { animation-name: aps-hentai-anime-ranking-arrow !important; }

@keyframes aps-hentai-anime-ranking-attention {
  0%, 100% { color: #fff; text-shadow: none; transform: scale(1); }
  40% { color: #fff7fb; text-shadow: 0 0 6px rgba(255,90,90,.48), 0 0 13px rgba(255,90,90,.16); transform: scale(1.022); }
  68% { transform: scale(1.006); }
}

@keyframes aps-hentai-anime-ranking-halo {
  0%, 100% { border-color: rgba(255,90,90,0); box-shadow: none; opacity: 0; transform: scale(.97); }
  40% { border-color: rgba(255,90,90,.27); box-shadow: 0 0 8px rgba(255,90,90,.14), inset 0 0 8px rgba(255,90,90,.045); opacity: 1; transform: scale(1); }
  78% { opacity: 0; transform: scale(1.035); }
}

@keyframes aps-hentai-anime-ranking-arrow {
  0%, 100% { filter: none; transform: translateY(0); }
  40% { filter: drop-shadow(0 0 3px rgba(255,90,90,.70)); transform: translateY(2px); }
}

body.anime-ai-preview-review .kicker,
body.anime-ai-preview-review .score-block strong { color: #ff5a5a !important; }
body.anime-ai-preview-review .tag-row span,
body.anime-ai-preview-review .feature-list span { border-color: rgba(255,90,90,.20) !important; background: rgba(255,90,90,.055) !important; }

@media (max-width: 700px) {
  body.anime-ai-category .sex-bots-editorial { display: block !important; }
  body.anime-ai-category .sex-bots-editorial-rail { border-right: 0 !important; border-bottom: 1px solid rgba(var(--hentai-anime-accent-rgb), .18) !important; }
  body.anime-ai-category .sex-bots-editorial-scroll { max-height: 430px !important; }
}

/* END HENTAI / ANIME AI PREMIUM PORT */

/* BEGIN PORN GENERATORS PREMIUM PORT */

body.porn-generators-category {
  --porn-generator-accent: #ffd45c;
  --porn-generator-accent-rgb: 255, 212, 92;
  --sex-bots-color: #ffd45c;
  overflow-x: clip !important;
  overflow-y: auto !important;
  background: radial-gradient(circle at 72% 8%, rgba(var(--porn-generator-accent-rgb), .055), transparent 25%), #090d14 !important;
}

body.porn-generators-category .inner-page {
  overflow: visible !important;
}

body.porn-generators-category #rankings,
body.porn-generators-category .sex-bots-field-guide,
body.porn-generators-category .sex-bots-surf-next {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

body.porn-generators-category .sex-bots-editorial {
  display: grid !important;
  position: relative !important;
  grid-template-columns: minmax(210px, 285px) minmax(0, 1fr) !important;
  align-items: stretch !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-color: rgba(var(--porn-generator-accent-rgb), .20) !important;
  background: linear-gradient(110deg, rgba(var(--porn-generator-accent-rgb), .045), transparent 31%), rgba(9,14,23,.955) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* The rail defines the grid row; size containment lets the right side fill it and scroll. */
body.porn-generators-category .sex-bots-editorial-scroll {
  display: block !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  contain: size !important;
  scrollbar-color: rgba(var(--porn-generator-accent-rgb), .58) #111824 !important;
}

body.porn-generators-category .sex-bots-editorial-scroll:focus {
  outline-color: rgba(var(--porn-generator-accent-rgb), .50) !important;
}

body.porn-generators-category .sex-bots-editorial-scroll::-webkit-scrollbar-thumb {
  background: rgba(var(--porn-generator-accent-rgb), .58) !important;
}

body.porn-generators-category .sex-bots-kicker,
body.porn-generators-category .sex-bots-hero-editorial h1 em,
body.porn-generators-category .sex-bots-scroll-note b,
body.porn-generators-category .sex-bots-editorial-scroll h3::before,
body.porn-generators-category .sex-bot-rank strong,
body.porn-generators-category .sex-bot-score strong,
body.porn-generators-category .sex-bots-field-notes article > b,
body.porn-generators-category .sex-bots-editorial-lede::first-letter {
  color: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bots-hero-editorial {
  border-color: rgba(var(--porn-generator-accent-rgb), .22) !important;
  background:
    radial-gradient(circle at 86% 45%, rgba(var(--porn-generator-accent-rgb), .075), transparent 27%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 13px),
    linear-gradient(145deg, rgba(13,22,33,.98), rgba(7,13,21,.98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 22px 55px rgba(0,0,0,.23) !important;
}

body.porn-generators-category .sex-bots-hero-editorial::before {
  background: var(--porn-generator-accent) !important;
  box-shadow: 0 0 20px rgba(var(--porn-generator-accent-rgb), .30) !important;
}

body.porn-generators-category .sex-bots-hero-nav a {
  border-bottom-color: rgba(var(--porn-generator-accent-rgb), .58) !important;
}

body.porn-generators-category .sex-bots-hero-nav a > span,
body.porn-generators-category .sex-bots-surf-next-label,
body.porn-generators-category .sex-bots-surf-next-arrow {
  color: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bots-live-count i {
  background: var(--porn-generator-accent) !important;
  box-shadow: 0 0 10px rgba(var(--porn-generator-accent-rgb), .72) !important;
}

body.porn-generators-category .sex-bots-surf-stamp {
  color: var(--porn-generator-accent) !important;
  border-color: rgba(var(--porn-generator-accent-rgb), .58) !important;
  background: radial-gradient(circle at 50% 44%, rgba(var(--porn-generator-accent-rgb), .08), transparent 42%), linear-gradient(145deg, rgba(15,21,31,.99), rgba(7,11,18,.99)) !important;
  box-shadow: inset 0 0 0 6px rgba(var(--porn-generator-accent-rgb), .02), inset 0 0 28px rgba(var(--porn-generator-accent-rgb), .04), 0 14px 32px rgba(0,0,0,.30), 0 0 22px rgba(var(--porn-generator-accent-rgb), .07) !important;
}

body.porn-generators-category .sex-bots-surf-stamp::before {
  border-color: rgba(var(--porn-generator-accent-rgb), .18) !important;
  background: repeating-conic-gradient(from 0deg, rgba(var(--porn-generator-accent-rgb), .14) 0deg 1deg, transparent 1deg 11deg) !important;
}

body.porn-generators-category .sex-bots-surf-stamp::after {
  background: linear-gradient(90deg, transparent, rgba(var(--porn-generator-accent-rgb), .95), transparent) !important;
}

body.porn-generators-category .sex-bots-surf-stamp span {
  color: #ffe28c !important;
}

body.porn-generators-category .sex-bots-surf-stamp span::before,
body.porn-generators-category .sex-bots-surf-stamp span::after {
  background: linear-gradient(90deg, transparent, rgba(var(--porn-generator-accent-rgb), .76)) !important;
}

body.porn-generators-category .sex-bots-hero-credit {
  border-color: rgba(var(--porn-generator-accent-rgb), .24) !important;
}

body.porn-generators-category .sex-bots-hero-credit::before {
  background: var(--porn-generator-accent) !important;
  box-shadow: 0 0 9px rgba(var(--porn-generator-accent-rgb), .70) !important;
}

body.porn-generators-category .sex-bots-hero-credit:hover strong {
  color: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bots-editorial-rail {
  border-right-color: rgba(var(--porn-generator-accent-rgb), .18) !important;
  background: rgba(var(--porn-generator-accent-rgb), .018) !important;
}

body.porn-generators-category .sex-bots-editorial-rail::after {
  background: linear-gradient(90deg, rgba(var(--porn-generator-accent-rgb), .58), transparent) !important;
}

body.porn-generators-category .sex-bots-scroll-note {
  border-bottom-color: rgba(var(--porn-generator-accent-rgb), .45) !important;
}

body.porn-generators-category .sex-bots-directory,
body.porn-generators-category .sex-bots-field-guide,
body.porn-generators-category .sex-bot-listing {
  border-color: rgba(var(--porn-generator-accent-rgb), .20) !important;
}

body.porn-generators-category .sex-bot-listing::before {
  background: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bot-listing {
  background: linear-gradient(135deg, rgba(var(--porn-generator-accent-rgb), .04), transparent 38%), #101620 !important;
}

body.porn-generators-category .sex-bot-title-row h3 a:hover {
  color: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bot-tags :where(span, a) {
  border-left-color: var(--porn-generator-accent) !important;
  color: var(--porn-generator-accent) !important;
}

body.porn-generators-category .sex-bots-field-notes {
  border-top-color: rgba(var(--porn-generator-accent-rgb), .26) !important;
  border-bottom-color: rgba(var(--porn-generator-accent-rgb), .17) !important;
}

body.porn-generators-category .sex-bots-field-notes article,
body.porn-generators-category .sex-bots-field-notes article + article {
  border-color: rgba(var(--porn-generator-accent-rgb), .17) !important;
}

body.porn-generators-category .sex-bots-surf-next-row {
  --surf-color: #ffd45c !important;
}

body.porn-generators-category .sex-bots-surf-next-board {
  background: radial-gradient(circle at 54% 25%, rgba(var(--porn-generator-accent-rgb), .055), transparent 34%), linear-gradient(180deg, rgba(13,18,28,.91), rgba(8,12,20,.94)) !important;
}

body.porn-generators-category .inner-home-strip .home-search .button-primary,
body.porn-generators-category .sex-bot-actions .button-primary,
body.porn-generator-preview-review .button-primary {
  border-color: #ffd45c !important;
  color: #171307 !important;
  background: linear-gradient(180deg, #ffe28c 0%, #ffd45c 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 7px 18px rgba(var(--porn-generator-accent-rgb), .18) !important;
}

body.porn-generators-category .inner-home-strip .home-search .button-primary:hover,
body.porn-generators-category .sex-bot-actions .button-primary:hover,
body.porn-generator-preview-review .button-primary:hover {
  border-color: #ffecb4 !important;
  color: #171307 !important;
  background: linear-gradient(180deg, #fff0bd 0%, #ffdc73 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40), 0 9px 22px rgba(var(--porn-generator-accent-rgb), .25) !important;
}

body.porn-generators-category .button-primary:focus-visible,
body.porn-generator-preview-review .button-primary:focus-visible {
  outline-color: rgba(255,212,92,.78) !important;
}

body.porn-generators-category .sex-bots-hero-nav .category-compare-cta {
  animation-name: aps-porn-generator-ranking-attention !important;
}

body.porn-generators-category .sex-bots-hero-nav .category-compare-cta::before {
  background: linear-gradient(90deg, rgba(var(--porn-generator-accent-rgb), .105), rgba(var(--porn-generator-accent-rgb), .025)) !important;
  animation-name: aps-porn-generator-ranking-halo !important;
}

body.porn-generators-category .sex-bots-hero-nav .category-compare-cta > span {
  animation-name: aps-porn-generator-ranking-arrow !important;
}

body.porn-generators-category .sex-bots-hero-nav .ranking-attention {
  animation-name: aps-porn-generator-ranking-attention !important;
}

body.porn-generators-category .sex-bots-hero-nav .ranking-attention::before {
  background: linear-gradient(90deg, rgba(var(--porn-generator-accent-rgb), .105), rgba(var(--porn-generator-accent-rgb), .025)) !important;
  animation-name: aps-porn-generator-ranking-halo !important;
}

body.porn-generators-category .sex-bots-hero-nav .ranking-attention > span {
  animation-name: aps-porn-generator-ranking-arrow !important;
}

@keyframes aps-porn-generator-ranking-attention {
  0%, 100% { color: #fff; text-shadow: none; transform: scale(1); }
  40% { color: #fffbed; text-shadow: 0 0 6px rgba(255,212,92,.48), 0 0 13px rgba(255,212,92,.16); transform: scale(1.022); }
  68% { transform: scale(1.006); }
}

@keyframes aps-porn-generator-ranking-halo {
  0%, 100% { border-color: rgba(255,212,92,0); box-shadow: none; opacity: 0; transform: scale(.97); }
  40% { border-color: rgba(255,212,92,.27); box-shadow: 0 0 8px rgba(255,212,92,.14), inset 0 0 8px rgba(255,212,92,.045); opacity: 1; transform: scale(1); }
  78% { opacity: 0; transform: scale(1.035); }
}

@keyframes aps-porn-generator-ranking-arrow {
  0%, 100% { filter: none; transform: translateY(0); }
  40% { filter: drop-shadow(0 0 3px rgba(255,212,92,.70)); transform: translateY(2px); }
}

body.porn-generator-preview-review .kicker,
body.porn-generator-preview-review .score-block strong,
body.porn-generator-preview-review .score-block small {
  color: #ffd45c !important;
}

body.porn-generator-preview-review .tag-row span,
body.porn-generator-preview-review .feature-list span {
  border-color: rgba(255,212,92,.20) !important;
  background: rgba(255,212,92,.055) !important;
}

body.porn-generator-preview-review .inner-home-strip {
  border-bottom-color: rgba(255,212,92,.13) !important;
}

body.porn-generator-preview-review .review-header {
  border-color: rgba(255,212,92,.19) !important;
  background: radial-gradient(circle at 100% 0%, rgba(255,212,92,.05), transparent 34%), linear-gradient(180deg, rgba(14,20,31,.965), rgba(9,14,23,.95)) !important;
}

body.porn-generator-preview-review .review-header::before {
  background: linear-gradient(90deg, transparent, rgba(255,212,92,.56), rgba(255,226,140,.30), transparent) !important;
}

body.porn-generator-preview-review .review-content {
  border-color: rgba(255,212,92,.14) !important;
  background: radial-gradient(circle at 0% 0%, rgba(255,212,92,.03), transparent 30%), linear-gradient(180deg, rgba(13,19,29,.955), rgba(9,14,22,.94)) !important;
}

@media (max-width: 700px) {
  body.porn-generators-category .sex-bots-editorial {
    display: block !important;
  }

  body.porn-generators-category .sex-bots-editorial-rail {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(var(--porn-generator-accent-rgb), .18) !important;
  }

  body.porn-generators-category .sex-bots-editorial-scroll {
    contain: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 430px !important;
    overflow-y: auto !important;
  }
}

/* END PORN GENERATORS PREMIUM PORT */

/* BEGIN IMAGE EDITORS PREMIUM PORT */

body.image-editors-category {
  --image-editor-accent: #ff6fae;
  --image-editor-accent-rgb: 255, 111, 174;
  --sex-bots-color: #ff6fae;
  overflow-x: clip !important;
  overflow-y: auto !important;
  background: radial-gradient(circle at 72% 8%, rgba(var(--image-editor-accent-rgb), .055), transparent 25%), #090d14 !important;
}

body.image-editor-preview-review {
  --image-editor-accent: #ff6fae;
  --image-editor-accent-rgb: 255, 111, 174;
}

body.image-editors-category .inner-page {
  overflow: visible !important;
}

body.image-editors-category #rankings,
body.image-editors-category .sex-bots-field-guide,
body.image-editors-category .sex-bots-surf-next {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

body.image-editors-category .sex-bots-editorial {
  display: grid !important;
  position: relative !important;
  grid-template-columns: minmax(210px, 285px) minmax(0, 1fr) !important;
  align-items: stretch !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-color: rgba(var(--image-editor-accent-rgb), .20) !important;
  background: linear-gradient(110deg, rgba(var(--image-editor-accent-rgb), .045), transparent 31%), rgba(9,14,23,.955) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* The rail defines the grid row; size containment lets the right side fill it and scroll. */
body.image-editors-category .sex-bots-editorial-scroll {
  display: block !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  contain: size !important;
  scrollbar-color: rgba(var(--image-editor-accent-rgb), .58) #111824 !important;
}

body.image-editors-category .sex-bots-editorial-scroll:focus {
  outline-color: rgba(var(--image-editor-accent-rgb), .50) !important;
}

body.image-editors-category .sex-bots-editorial-scroll::-webkit-scrollbar-thumb {
  background: rgba(var(--image-editor-accent-rgb), .58) !important;
}

body.image-editors-category .sex-bots-kicker,
body.image-editors-category .sex-bots-hero-editorial h1 em,
body.image-editors-category .sex-bots-scroll-note b,
body.image-editors-category .sex-bots-editorial-scroll h3::before,
body.image-editors-category .sex-bot-rank strong,
body.image-editors-category .sex-bot-score strong,
body.image-editors-category .sex-bots-field-notes article > b,
body.image-editors-category .sex-bots-editorial-lede::first-letter {
  color: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bots-hero-editorial {
  border-color: rgba(var(--image-editor-accent-rgb), .22) !important;
  background:
    radial-gradient(circle at 86% 45%, rgba(var(--image-editor-accent-rgb), .075), transparent 27%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 13px),
    linear-gradient(145deg, rgba(13,22,33,.98), rgba(7,13,21,.98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 22px 55px rgba(0,0,0,.23) !important;
}

body.image-editors-category .sex-bots-hero-editorial::before {
  background: var(--image-editor-accent) !important;
  box-shadow: 0 0 20px rgba(var(--image-editor-accent-rgb), .30) !important;
}

body.image-editors-category .sex-bots-hero-nav a {
  border-bottom-color: rgba(var(--image-editor-accent-rgb), .58) !important;
}

body.image-editors-category .sex-bots-hero-nav a > span,
body.image-editors-category .sex-bots-surf-next-label,
body.image-editors-category .sex-bots-surf-next-arrow {
  color: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bots-live-count i {
  background: var(--image-editor-accent) !important;
  box-shadow: 0 0 10px rgba(var(--image-editor-accent-rgb), .72) !important;
}

body.image-editors-category .sex-bots-surf-stamp {
  color: var(--image-editor-accent) !important;
  border-color: rgba(var(--image-editor-accent-rgb), .58) !important;
  background: radial-gradient(circle at 50% 44%, rgba(var(--image-editor-accent-rgb), .08), transparent 42%), linear-gradient(145deg, rgba(15,21,31,.99), rgba(7,11,18,.99)) !important;
  box-shadow: inset 0 0 0 6px rgba(var(--image-editor-accent-rgb), .02), inset 0 0 28px rgba(var(--image-editor-accent-rgb), .04), 0 14px 32px rgba(0,0,0,.30), 0 0 22px rgba(var(--image-editor-accent-rgb), .07) !important;
}

body.image-editors-category .sex-bots-surf-stamp::before {
  border-color: rgba(var(--image-editor-accent-rgb), .18) !important;
  background: repeating-conic-gradient(from 0deg, rgba(var(--image-editor-accent-rgb), .14) 0deg 1deg, transparent 1deg 11deg) !important;
}

body.image-editors-category .sex-bots-surf-stamp::after {
  background: linear-gradient(90deg, transparent, rgba(var(--image-editor-accent-rgb), .95), transparent) !important;
}

body.image-editors-category .sex-bots-surf-stamp span {
  color: #ff6fae !important;
}

body.image-editors-category .sex-bots-surf-stamp span::before,
body.image-editors-category .sex-bots-surf-stamp span::after {
  background: linear-gradient(90deg, transparent, rgba(var(--image-editor-accent-rgb), .76)) !important;
}

body.image-editors-category .sex-bots-hero-credit {
  border-color: rgba(var(--image-editor-accent-rgb), .24) !important;
}

body.image-editors-category .sex-bots-hero-credit::before {
  background: var(--image-editor-accent) !important;
  box-shadow: 0 0 9px rgba(var(--image-editor-accent-rgb), .70) !important;
}

body.image-editors-category .sex-bots-hero-credit:hover strong {
  color: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bots-editorial-rail {
  border-right-color: rgba(var(--image-editor-accent-rgb), .18) !important;
  background: rgba(var(--image-editor-accent-rgb), .018) !important;
}

body.image-editors-category .sex-bots-editorial-rail::after {
  background: linear-gradient(90deg, rgba(var(--image-editor-accent-rgb), .58), transparent) !important;
}

body.image-editors-category .sex-bots-scroll-note {
  border-bottom-color: rgba(var(--image-editor-accent-rgb), .45) !important;
}

body.image-editors-category .sex-bots-directory,
body.image-editors-category .sex-bots-field-guide,
body.image-editors-category .sex-bot-listing {
  border-color: rgba(var(--image-editor-accent-rgb), .20) !important;
}

body.image-editors-category .sex-bot-listing::before {
  background: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bot-listing {
  background: linear-gradient(135deg, rgba(var(--image-editor-accent-rgb), .04), transparent 38%), #101620 !important;
}

body.image-editors-category .sex-bot-title-row h3 a:hover {
  color: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bot-tags :where(span, a) {
  border-left-color: var(--image-editor-accent) !important;
  color: var(--image-editor-accent) !important;
}

body.image-editors-category .sex-bots-field-notes {
  border-top-color: rgba(var(--image-editor-accent-rgb), .26) !important;
  border-bottom-color: rgba(var(--image-editor-accent-rgb), .17) !important;
}

body.image-editors-category .sex-bots-field-notes article,
body.image-editors-category .sex-bots-field-notes article + article {
  border-color: rgba(var(--image-editor-accent-rgb), .17) !important;
}

body.image-editors-category .sex-bots-surf-next-row {
  --surf-color: #ff6fae !important;
}

body.image-editors-category .sex-bots-surf-next-board {
  background: radial-gradient(circle at 54% 25%, rgba(var(--image-editor-accent-rgb), .055), transparent 34%), linear-gradient(180deg, rgba(13,18,28,.91), rgba(8,12,20,.94)) !important;
}

body.image-editors-category .inner-home-strip .home-search .button-primary,
body.image-editors-category .sex-bot-actions .button-primary,
body.image-editor-preview-review .button-primary {
  border-color: #ff6fae !important;
  color: #061713 !important;
  background: linear-gradient(180deg, #ff6fae 0%, #ff6fae 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 7px 18px rgba(var(--image-editor-accent-rgb), .18) !important;
}

body.image-editors-category .inner-home-strip .home-search .button-primary:hover,
body.image-editors-category .sex-bot-actions .button-primary:hover,
body.image-editor-preview-review .button-primary:hover {
  border-color: #ff6fae !important;
  color: #061713 !important;
  background: linear-gradient(180deg, #ff6fae 0%, #ff6fae 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40), 0 9px 22px rgba(var(--image-editor-accent-rgb), .25) !important;
}

body.image-editors-category .button-primary:focus-visible,
body.image-editor-preview-review .button-primary:focus-visible {
  outline-color: rgba(255,111,174,.78) !important;
}

body.image-editors-category .sex-bots-hero-nav .category-compare-cta {
  animation-name: aps-image-editor-ranking-attention !important;
}

body.image-editors-category .sex-bots-hero-nav .category-compare-cta::before {
  background: linear-gradient(90deg, rgba(var(--image-editor-accent-rgb), .105), rgba(var(--image-editor-accent-rgb), .025)) !important;
  animation-name: aps-image-editor-ranking-halo !important;
}

body.image-editors-category .sex-bots-hero-nav .category-compare-cta > span {
  animation-name: aps-image-editor-ranking-arrow !important;
}

body.image-editors-category .sex-bots-hero-nav .ranking-attention {
  animation-name: aps-image-editor-ranking-attention !important;
}

body.image-editors-category .sex-bots-hero-nav .ranking-attention::before {
  background: linear-gradient(90deg, rgba(var(--image-editor-accent-rgb), .105), rgba(var(--image-editor-accent-rgb), .025)) !important;
  animation-name: aps-image-editor-ranking-halo !important;
}

body.image-editors-category .sex-bots-hero-nav .ranking-attention > span {
  animation-name: aps-image-editor-ranking-arrow !important;
}

@keyframes aps-image-editor-ranking-attention {
  0%, 100% { color: #fff; text-shadow: none; transform: scale(1); }
  40% { color: #fffbed; text-shadow: 0 0 6px rgba(255,111,174,.48), 0 0 13px rgba(255,111,174,.16); transform: scale(1.022); }
  68% { transform: scale(1.006); }
}

@keyframes aps-image-editor-ranking-halo {
  0%, 100% { border-color: rgba(255,111,174,0); box-shadow: none; opacity: 0; transform: scale(.97); }
  40% { border-color: rgba(255,111,174,.27); box-shadow: 0 0 8px rgba(255,111,174,.14), inset 0 0 8px rgba(255,111,174,.045); opacity: 1; transform: scale(1); }
  78% { opacity: 0; transform: scale(1.035); }
}

@keyframes aps-image-editor-ranking-arrow {
  0%, 100% { filter: none; transform: translateY(0); }
  40% { filter: drop-shadow(0 0 3px rgba(255,111,174,.70)); transform: translateY(2px); }
}

body.image-editor-preview-review .kicker,
body.image-editor-preview-review .score-block strong,
body.image-editor-preview-review .score-block small {
  color: #ff6fae !important;
}

body.image-editor-preview-review .tag-row span,
body.image-editor-preview-review .feature-list span {
  border-color: rgba(255,111,174,.20) !important;
  background: rgba(255,111,174,.055) !important;
}

body.image-editor-preview-review .inner-home-strip {
  border-bottom-color: rgba(255,111,174,.13) !important;
}

body.image-editor-preview-review .review-header {
  border-color: rgba(255,111,174,.19) !important;
  background: radial-gradient(circle at 100% 0%, rgba(255,111,174,.05), transparent 34%), linear-gradient(180deg, rgba(14,20,31,.965), rgba(9,14,23,.95)) !important;
}

body.image-editor-preview-review .review-header::before {
  background: linear-gradient(90deg, transparent, rgba(255,111,174,.56), rgba(255,111,174,.30), transparent) !important;
}

body.image-editor-preview-review .review-content {
  border-color: rgba(255,111,174,.14) !important;
  background: radial-gradient(circle at 0% 0%, rgba(255,111,174,.03), transparent 30%), linear-gradient(180deg, rgba(13,19,29,.955), rgba(9,14,22,.94)) !important;
}

@media (max-width: 700px) {
  body.image-editors-category .sex-bots-editorial {
    display: block !important;
  }

  body.image-editors-category .sex-bots-editorial-rail {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(var(--image-editor-accent-rgb), .18) !important;
  }

  body.image-editors-category .sex-bots-editorial-scroll {
    contain: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 430px !important;
    overflow-y: auto !important;
  }
}

/* END IMAGE EDITORS PREMIUM PORT */

/* BEGIN CATEGORY SECTION LINE ACCENTS */

/*
 * Shared Sex Bots section separators inherited orange during category ports.
 * Give every category its own separator color without changing line geometry.
 */
body.ai-sex-bots-category {
  --aps-section-line-rgb: 255, 121, 80;
}

body.ai-companions-category {
  --aps-section-line-rgb: 66, 217, 255;
}

body.roleplay-ai-category {
  --aps-section-line-rgb: 181, 140, 255;
}

body.porn-generators-category {
  --aps-section-line-rgb: 255, 212, 92;
}

body.anime-ai-category {
  --aps-section-line-rgb: 255, 90, 90;
}

body.image-editors-category {
  --aps-section-line-rgb: 255, 111, 174;
}

body[data-page="category"] .sex-bots-heading,
body[data-page="category"] .sex-bots-field-guide-heading,
body[data-page="category"] .sex-bots-field-notes,
body[data-page="category"] .sex-bots-surf-next-heading {
  border-color:
    rgba(var(--aps-section-line-rgb), .34) !important;
}

body[data-page="category"] .sex-bots-field-notes article {
  border-color:
    rgba(var(--aps-section-line-rgb), .17) !important;
}

/* END CATEGORY SECTION LINE ACCENTS */

/* BEGIN CATEGORY SITE FAVICONS */

/* Locally cached site identities beside category listing names. */
body[data-page="category"]
.category-site-title {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  max-width: 100% !important;
}

body[data-page="category"]
.category-site-url {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-top: 4px;
  color: var(--sex-bots-color);
  font-size: .68rem;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: text-decoration-color .2s ease, color .2s ease;
}

body[data-page="category"]
.category-site-url:hover,
body[data-page="category"]
.category-site-url:focus-visible {
  text-decoration-color: currentColor;
}

body.ai-companions-category .category-site-url { color: var(--companion-accent); }
body.roleplay-ai-category .category-site-url { color: var(--roleplay-accent); }
body.porn-generators-category .category-site-url { color: var(--porn-generator-accent); }
body.anime-ai-category .category-site-url { color: var(--hentai-anime-accent); }
body.image-editors-category .category-site-url { color: var(--image-editor-accent); }

body[data-page="category"]
.category-site-favicon {
  display: block !important;
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  object-fit: contain !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 7px !important;
  background: rgba(7,12,20,.84) !important;
  box-shadow:
    0 4px 12px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.055) !important;
}

body[data-page="category"]
.category-site-name {
  display: inline-block !important;
  min-width: 0 !important;
}

@media (max-width: 700px) {
  body[data-page="category"]
  .category-site-favicon {
    width: 25px !important;
    min-width: 25px !important;
    height: 25px !important;
    border-radius: 6px !important;
  }
}

/* END CATEGORY SITE FAVICONS */

/* BEGIN AI SEX BOTS UNIFIED TWO-COLUMN BANNER */

/*
 * This layout is intentionally gated by the page-only body class and
 * wrapper. Other category pages retain the shared category layout unchanged.
 */
body.ai-sex-bots-page .ai-sex-bots-top-split {
  --ai-sex-bots-banner-padding: clamp(28px, 2.6vw, 36px);

  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  height: clamp(540px, 62vh, 590px);
  margin-top: 26px;
  overflow: visible;
  border: 0;
  border-top: 1px solid rgba(255, 112, 68, .35);
  border-bottom: 1px solid rgba(255, 112, 68, .22);
  border-radius: 0;
  background:
    linear-gradient(
      90deg,
      rgba(255, 98, 52, .10),
      transparent 43%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    rgba(8, 12, 20, .90);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 20px 50px rgba(0,0,0,.20);
}

body.ai-sex-bots-page .ai-sex-bots-top-split > .sex-bots-hero-editorial,
body.ai-sex-bots-page .ai-sex-bots-top-split > .sex-bots-editorial {
  min-width: 0;
  min-height: 0;
  height: 100%;
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.ai-sex-bots-page .ai-sex-bots-top-split > .sex-bots-hero-editorial {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 18px;
  align-content: space-between;
  align-items: start;
  padding: var(--ai-sex-bots-banner-padding);
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
.sex-bots-hero-copy {
  width: 100%;
  min-height: 0;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
h1 {
  max-width: 100%;
  font-size: clamp(3.15rem, 4.2vw, 4.5rem);
  line-height: .88;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
.sex-bots-hero-deck {
  max-width: 34rem;
  margin-top: 18px;
  font-size: .91rem;
  line-height: 1.58;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
.sex-bots-hero-nav {
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  margin-top: 18px;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
.sex-bots-surf-stamp {
  justify-self: end;
  align-self: end;
  width: 132px;
  transform: none;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-left: 1px solid rgba(255, 112, 68, .24);
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-editorial-rail {
  min-width: 0;
  min-height: 0;
  border-right: 0;
  border-bottom: 1px solid rgba(255, 112, 68, .17);
  padding:
    var(--ai-sex-bots-banner-padding)
    var(--ai-sex-bots-banner-padding)
    22px;
  background: rgba(255, 112, 68, .025);
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-editorial-rail::after {
  display: none;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-editorial-rail h2 {
  max-width: 34rem;
  margin-block: 6px 10px;
  font-size: clamp(1.75rem, 2.4vw, 2.15rem);
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-editorial-rail > p {
  max-width: 42rem;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-scroll-note {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 12px;
}

body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-editorial
.sex-bots-editorial-scroll {
  min-width: 0;
  min-height: 0;
  max-height: none;
  height: auto;
  overflow-y: scroll;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #8c4937 #111824;
  padding: var(--ai-sex-bots-banner-padding);
}

@media (max-width: 960px) {
  body.ai-sex-bots-page .ai-sex-bots-top-split {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    height: auto;
    margin-top: 20px;
    border: 0;
    background: none;
    box-shadow: none;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial,
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-editorial {
    border-top: 1px solid rgba(255, 112, 68, .35);
    border-bottom: 1px solid rgba(255, 112, 68, .22);
    background:
      linear-gradient(
        90deg,
        rgba(255, 98, 52, .10),
        transparent 43%
      ),
      repeating-linear-gradient(
        135deg,
        rgba(255,255,255,.018) 0,
        rgba(255,255,255,.018) 1px,
        transparent 1px,
        transparent 13px
      ),
      rgba(8, 12, 20, .90);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.025),
      0 20px 50px rgba(0,0,0,.20);
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial {
    height: auto;
    padding: clamp(28px, 5vw, 40px);
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-surf-stamp {
    justify-self: end;
    transform: none;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-editorial {
    height: clamp(500px, 70vh, 620px);
    border-left: 0;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-editorial
  .sex-bots-editorial-scroll {
    height: auto;
    max-height: none;
  }
}

@media (max-width: 700px) {
  body.ai-sex-bots-page .ai-sex-bots-top-split {
    gap: 30px;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial {
    gap: 22px;
    padding: 30px 22px;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  h1 {
    font-size: clamp(3rem, 15vw, 4.3rem);
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-deck {
    font-size: .88rem;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-surf-stamp {
    justify-self: start;
    width: auto;
    min-width: 0;
    max-width: 100%;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-editorial {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    height: min(620px, calc(100svh - 48px));
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-editorial
  .sex-bots-editorial-scroll {
    width: 100%;
    min-height: 0;
    max-height: none;
    padding: 24px 21px 30px;
  }
}


/* BEGIN AI SEX BOTS COMPACT UNIFIED HERO */

@media (min-width: 961px) {
  /* Remove the remaining dead vertical space. */
  body.ai-sex-bots-page .ai-sex-bots-top-split {
    height: clamp(350px, 40vh, 380px);
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial {
    align-content: start;
    gap: 0;
    padding: 22px 28px 20px;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  h1 {
    font-size: clamp(2.7rem, 3.2vw, 3.35rem);
    line-height: .9;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  h1 em {
    margin-top: 7px;
    font-size: .31em;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-deck {
    max-width: 31rem;
    margin-top: 12px;
    font-size: .78rem;
    line-height: 1.45;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav {
    gap: 9px;
    margin-top: 12px;
  }

  /* Put the credit at the exact center of the complete 50/50 banner. */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-credit {
    left: 100% !important;
    right: auto !important;
    bottom: -16px;
    z-index: 20;
    transform: translateX(-50%) !important;
  }
}

/* Remove the circular Surf Report seal everywhere. */
body.ai-sex-bots-page
.ai-sex-bots-top-split
> .sex-bots-hero-editorial
.sex-bots-surf-stamp {
  display: none !important;
}

/* END AI SEX BOTS COMPACT UNIFIED HERO */

/* BEGIN AI SEX BOTS HERO SPACE UTILIZATION */

@media (min-width: 961px) {
  /*
   * Preserve the unified banner height, but turn the lower-left area
   * into a deliberate evaluation panel instead of empty space.
   */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial {
    grid-template-rows: minmax(0, 1fr);
    align-content: stretch;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-copy {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  /*
   * Anchor the ranking/evaluation group to the lower part of the panel,
   * converting the formerly unused area into useful visual structure.
   */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
    width: 100%;
    margin-top: auto;
    border-top: 1px solid rgba(255, 112, 68, .18);
    padding-top: 17px;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav
  > a {
    width: fit-content;
  }

  /*
   * Reuse the four existing evaluation points as a compact 2×2 scorecard.
   * No HTML or wording changes.
   */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-eval-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    max-width: 440px;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-eval-points
  > span {
    min-width: 0;
    min-height: 40px;
    border: 1px solid rgba(255, 112, 68, .16);
    padding: 9px 11px;
    background:
      linear-gradient(
        90deg,
        rgba(255, 112, 68, .075),
        rgba(255, 112, 68, .018)
      );
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .015em;
  }


  /*
   * The credit is inside the left 50% panel. left:100% therefore places
   * its centre exactly on the centre of the complete two-column banner.
   */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-credit {
    left: 100% !important;
    right: auto !important;
    bottom: -16px !important;
    z-index: 30;
    transform: translateX(-50%) !important;
  }
}

/* END AI SEX BOTS HERO SPACE UTILIZATION */


/* END AI SEX BOTS UNIFIED TWO-COLUMN BANNER */

/* BEGIN STANDARD PLACEHOLDER REVIEW LAYOUT */

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-header {
  grid-template-columns: 520px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 36px;
  row-gap: 12px;
  align-items: center;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-product-image {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  width: 520px;
  height: 270px;
  aspect-ratio: auto;
  margin: 0;
  overflow: hidden;
  border-radius: 13px;
  padding: 6px;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-product-image a {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-product-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 8px;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-title {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  padding-left: 0;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-title h1 {
  margin-bottom: 14px;
  font-size: clamp(2.8rem, 4vw, 3.7rem);
  line-height: .98;
  letter-spacing: -.058em;
  white-space: nowrap;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .review-title > p {
  max-width: none;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .score-block {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 9px;
  align-items: center;
  text-align: left;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .score-block strong {
  grid-column: 1;
  grid-row: 1 / span 2;
  font-size: 2.8rem;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .score-block span {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}

body:is(
  .porn-generator-preview-review,
  .anime-ai-preview-review,
  .image-editor-preview-review
) .score-block small {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin-top: 2px;
}

@media (max-width: 1100px) {
  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-header {
    grid-template-columns: 410px minmax(0, 1fr);
    column-gap: 28px;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-product-image {
    width: 410px;
    height: 215px;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-title h1 {
    font-size: clamp(2.45rem, 4.5vw, 3.15rem);
  }
}

@media (max-width: 850px) {
  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-header {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 24px;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-product-image {
    grid-column: 1;
    grid-row: auto;
    width: min(100%, 620px);
    height: auto;
    aspect-ratio: 1677 / 733;
    justify-self: center;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-product-image img {
    object-fit: contain;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-title {
    grid-column: 1;
    grid-row: auto;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .review-title h1 {
    white-space: normal;
  }

  body:is(
    .porn-generator-preview-review,
    .anime-ai-preview-review,
    .image-editor-preview-review
  ) .score-block {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}

/* END STANDARD PLACEHOLDER REVIEW LAYOUT */

/* BEGIN LEAKIFYHUB FULL REVIEW */
body.leakifyhub-full-review .review-header {
  background:
    radial-gradient(
      circle at 100% 0%,
      rgba(181,140,255,.055),
      transparent 34%
    ),
    linear-gradient(
      180deg,
      rgba(14,20,31,.965),
      rgba(9,14,23,.95)
    ) !important;
  grid-template-columns: 380px minmax(0, 1fr) 145px;
  grid-template-rows: none;
  gap: 34px;
  min-height: 284px;
  align-items: center;
}

body.leakifyhub-full-review .review-header::before {
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(105,240,220,.52),
      rgba(181,140,255,.42),
      transparent
    ) !important;
}

body.leakifyhub-full-review .review-product-image {
  grid-column: auto;
  grid-row: auto;
  align-self: auto;
  display: grid;
  width: 380px;
  height: 235px;
  aspect-ratio: auto;
  margin: 0;
  padding: 0;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,212,92,.23);
  border-radius: 12px;
  background: #0b0d12;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 18px 38px rgba(0,0,0,.28);
}

body.leakifyhub-full-review .review-product-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

body.leakifyhub-full-review .review-title {
  grid-column: auto;
  grid-row: auto;
}

body.leakifyhub-full-review .review-title h1 {
  white-space: normal;
}

body.leakifyhub-full-review .score-block {
  display: block;
  grid-column: auto;
  grid-row: auto;
  justify-self: auto;
  align-self: center;
  border-left: 1px solid rgba(255,212,92,.18);
  padding-left: 22px;
  text-align: center;
}

body.leakifyhub-full-review .score-block strong {
  grid-column: auto;
  grid-row: auto;
}

body.leakifyhub-full-review .score-block span,
body.leakifyhub-full-review .score-block small {
  grid-column: auto;
  grid-row: auto;
  align-self: auto;
}

body.leakifyhub-full-review .review-layout {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 42px;
}

body.leakifyhub-full-review .review-content {
  max-width: 840px !important;
}

body.leakifyhub-full-review .review-content > section + section {
  border-top: 1px solid rgba(255,212,92,.11);
  padding-top: 32px;
}

body.leakifyhub-full-review .review-content p,
body.leakifyhub-full-review .review-content li {
  font-size: .96rem;
  line-height: 1.76;
}

body.leakifyhub-full-review .review-content h2 {
  color: #f4f7fb;
  font-size: clamp(1.55rem, 2.2vw, 2rem);
  line-height: 1.15;
}

body.leakifyhub-full-review .review-content h3 {
  margin: 0 0 11px;
  color: #f0f3f8;
  font-size: 1.05rem;
}

body.leakifyhub-full-review .review-deck {
  color: #d7deea;
  font-size: 1.06rem;
}

body.leakifyhub-full-review .review-deck strong,
body.leakifyhub-full-review .review-content a,
body.leakifyhub-full-review .source-note strong {
  color: #ffd45c;
}

body.leakifyhub-full-review .review-figure {
  margin: 28px 0 30px;
  overflow: hidden;
  border: 1px solid rgba(255,212,92,.18);
  border-radius: 14px;
  background: #090c12;
}

body.leakifyhub-full-review .review-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 620px;
  object-fit: contain;
}

body.leakifyhub-full-review .review-figure-compact {
  max-width: 390px;
}

body.leakifyhub-full-review .review-figure figcaption {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 11px 14px;
  color: #8f9aae;
  font-size: .72rem;
  line-height: 1.5;
}

body.leakifyhub-full-review .evidence-note {
  margin: 23px 0 5px;
  border-left: 3px solid #ffd45c;
  padding: 15px 17px;
  color: #b8c1d0;
  background: rgba(255,212,92,.055);
  font-size: .82rem;
  line-height: 1.65;
}

body.leakifyhub-full-review .evidence-note strong {
  color: #ffe18c;
}

body.leakifyhub-full-review .evidence-note-warning {
  border-left-color: #ff9f68;
  background: rgba(255,117,68,.06);
}

body.leakifyhub-full-review .pricing-table-wrap {
  overflow-x: auto;
  margin: 23px 0 25px;
  border: 1px solid rgba(255,212,92,.16);
  border-radius: 12px;
}

body.leakifyhub-full-review .review-table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(7,10,16,.62);
  font-size: .84rem;
}

body.leakifyhub-full-review .review-table caption {
  padding: 12px 14px;
  color: #9aa6b8;
  text-align: left;
  font-size: .7rem;
}

body.leakifyhub-full-review .review-table th,
body.leakifyhub-full-review .review-table td {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 10px 14px;
  text-align: left;
}

body.leakifyhub-full-review .review-table th {
  color: #f4f7fb;
  background: rgba(255,212,92,.06);
}

body.leakifyhub-full-review .review-table td {
  color: #b8c1cf;
}

body.leakifyhub-full-review .pros-cons {
  margin-bottom: 0;
}

body.leakifyhub-full-review .pros-cons section {
  border-color: rgba(255,212,92,.13);
  background: rgba(10,14,22,.7);
}

body.leakifyhub-full-review .review-sidebar {
  display: grid;
  gap: 16px;
}

body.leakifyhub-full-review .sidebar-card {
  border-color: rgba(255,212,92,.16);
}

body.leakifyhub-full-review .sidebar-card dd {
  max-width: 155px;
}

body.leakifyhub-full-review .affiliate-note,
body.leakifyhub-full-review .source-note {
  color: #778398;
  font-size: .7rem;
  line-height: 1.55;
}

body.leakifyhub-full-review .affiliate-note {
  margin: 13px 0 0;
  text-align: center;
}

body.leakifyhub-full-review .score-rationale dl {
  margin-bottom: 8px;
}

@media (max-width: 1100px) {
  body.leakifyhub-full-review .review-header {
    grid-template-columns: 330px minmax(0, 1fr);
  }

  body.leakifyhub-full-review .review-product-image {
    width: 330px;
    height: 220px;
  }

  body.leakifyhub-full-review .score-block {
    grid-column: 2;
    grid-row: auto;
    border-left: 0;
    padding-left: 0;
    text-align: left;
  }

  body.leakifyhub-full-review .review-layout {
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 28px;
  }
}

@media (max-width: 850px) {
  body.leakifyhub-full-review .review-header {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  body.leakifyhub-full-review .review-product-image,
  body.leakifyhub-full-review .review-title,
  body.leakifyhub-full-review .score-block {
    grid-column: auto;
    grid-row: auto;
  }

  body.leakifyhub-full-review .review-product-image {
    width: min(100%, 560px);
    height: auto;
    aspect-ratio: 16 / 9;
    justify-self: center;
  }

  body.leakifyhub-full-review .score-block {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }

  body.leakifyhub-full-review .score-block span,
  body.leakifyhub-full-review .score-block small {
    display: inline;
    margin: 0;
  }

  body.leakifyhub-full-review .review-layout {
    grid-template-columns: 1fr;
  }

  body.leakifyhub-full-review .review-content {
    max-width: none !important;
  }

  body.leakifyhub-full-review .review-sidebar {
    position: static;
  }
}

@media (max-width: 620px) {
  body.leakifyhub-full-review .review-content p,
  body.leakifyhub-full-review .review-content li {
    font-size: .91rem;
    line-height: 1.7;
  }

  body.leakifyhub-full-review .pros-cons {
    grid-template-columns: 1fr;
  }

  body.leakifyhub-full-review .review-table th,
  body.leakifyhub-full-review .review-table td {
    padding: 9px 10px;
    white-space: nowrap;
  }
}
/* END LEAKIFYHUB FULL REVIEW */


/* BEGIN AI SEX BOTS CREDIT BELOW BANNER */

@media (min-width: 961px) {
  /* Reserve space beneath the banner for the centered rankings credit. */
  body.ai-sex-bots-page .ai-sex-bots-top-split {
    margin-bottom: 30px;
  }

  /*
   * Place the credit entirely beneath the shared banner.
   * left:100% is the centre of the full banner because this element
   * belongs to the left 50% panel.
   */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-credit {
    top: 100% !important;
    bottom: auto !important;
    left: 100% !important;
    right: auto !important;
    z-index: 20;
    transform: translateX(-50%) !important;
  }
}

/* END AI SEX BOTS CREDIT BELOW BANNER */


/* BEGIN AI SEX BOTS CENTERED CRITERIA ORDER */

@media (min-width: 961px) {
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11px;
    width: 100%;
    margin-top: auto;
    border-top: 1px solid rgba(255, 112, 68, .18);
    padding-top: 15px;
  }

  /* Four evaluation boxes first and centered. The <p> wrapping
     .sex-bots-eval-points is the actual flex item of .sex-bots-hero-nav
     (order/align-self on .sex-bots-eval-points itself are no-ops since it
     is only a grandchild); give the <p> the same width the other category
     pages give it so the boxes get the same 440px two-column footprint. */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav
  > p {
    width: min(100%, 440px);
    margin: 0 auto;
  }

  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-eval-points {
    order: 1;
    align-self: center;
    width: min(100%, 440px);
    max-width: 440px;
    margin-inline: auto;
  }

  /* Ranking link directly beneath the boxes and centered. */
  body.ai-sex-bots-page
  .ai-sex-bots-top-split
  > .sex-bots-hero-editorial
  .sex-bots-hero-nav
  > a {
    order: 2;
    align-self: center;
    width: fit-content;
    margin: 0 auto;
    text-align: center;
  }
}

/* END AI SEX BOTS CENTERED CRITERIA ORDER */


/* BEGIN SHARED UNIFIED CATEGORY BANNERS */

/* Map each category's existing accent into the shared banner treatment. */
body.ai-companions-category {
  --unified-category-accent: var(--companion-accent);
  --unified-category-accent-rgb: var(--companion-accent-rgb);
}

body.roleplay-ai-category {
  --unified-category-accent: var(--roleplay-accent);
  --unified-category-accent-rgb: var(--roleplay-accent-rgb);
}

body.porn-generators-category {
  --unified-category-accent: var(--porn-generator-accent);
  --unified-category-accent-rgb: var(--porn-generator-accent-rgb);
}

body.anime-ai-category {
  --unified-category-accent: var(--hentai-anime-accent);
  --unified-category-accent-rgb: var(--hentai-anime-accent-rgb);
}

body.image-editors-category {
  --unified-category-accent: var(--image-editor-accent);
  --unified-category-accent-rgb: var(--image-editor-accent-rgb);
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  height: clamp(350px, 40vh, 380px);
  margin-top: 26px;
  margin-bottom: 30px;
  border-top: 1px solid rgba(var(--unified-category-accent-rgb), .35);
  border-bottom: 1px solid rgba(var(--unified-category-accent-rgb), .22);
  border-radius: 0;
  background:
    linear-gradient(
      90deg,
      rgba(var(--unified-category-accent-rgb), .10),
      transparent 43%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    rgba(8, 12, 20, .90);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 20px 50px rgba(0,0,0,.20);
  overflow: visible;
  box-sizing: border-box;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split > :is(
  .sex-bots-hero-editorial,
  .sex-bots-editorial
) {
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  margin-top: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split > .sex-bots-hero-editorial {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  align-content: stretch !important;
  align-items: start !important;
  gap: 0 !important;
  padding: 22px 28px 20px !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-copy {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-editorial h1 {
  max-width: 100% !important;
  font-size: clamp(2.7rem, 3.2vw, 3.35rem) !important;
  line-height: .9 !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-editorial h1 em {
  margin-top: 7px !important;
  font-size: .31em !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-deck {
  max-width: 31rem !important;
  margin-top: 12px !important;
  font-size: .78rem !important;
  line-height: 1.45 !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-nav {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 11px !important;
  width: 100% !important;
  margin-top: auto !important;
  border-top: 1px solid rgba(var(--unified-category-accent-rgb), .18) !important;
  padding-top: 15px !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-nav > p {
  order: 1;
  width: min(100%, 440px);
  margin: 0 auto !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-eval-points {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 440px !important;
  margin-inline: auto !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-eval-points > span {
  min-width: 0 !important;
  min-height: 40px !important;
  border: 1px solid rgba(var(--unified-category-accent-rgb), .16) !important;
  padding: 9px 11px !important;
  background:
    linear-gradient(
      90deg,
      rgba(var(--unified-category-accent-rgb), .075),
      rgba(var(--unified-category-accent-rgb), .018)
    ) !important;
  font-size: .64rem !important;
  font-weight: 800 !important;
  letter-spacing: .015em !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-hero-nav > a {
  order: 2;
  align-self: center !important;
  width: fit-content !important;
  margin: 0 auto !important;
  text-align: center !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-surf-stamp {
  display: none !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split > .sex-bots-editorial {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  overflow: hidden !important;
  border-left: 1px solid rgba(var(--unified-category-accent-rgb), .24) !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-editorial-rail {
  min-width: 0 !important;
  min-height: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid rgba(var(--unified-category-accent-rgb), .17) !important;
  padding: 22px 28px !important;
  background: rgba(var(--unified-category-accent-rgb), .025) !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-editorial-rail::after {
  display: none !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-editorial-rail h2 {
  max-width: 34rem !important;
  margin-block: 6px 10px !important;
  font-size: clamp(1.75rem, 2.4vw, 2.15rem) !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-editorial-rail > p {
  max-width: 42rem !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-scroll-note {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px 12px !important;
  margin-top: 12px !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split .sex-bots-editorial-scroll {
  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color:
    rgba(var(--unified-category-accent-rgb), .55)
    #111824;
  padding: 28px !important;
  contain: none !important;
}

body:is(
  .ai-companions-category,
  .roleplay-ai-category,
  .porn-generators-category,
  .anime-ai-category,
  .image-editors-category
) .unified-category-top-split > .sex-bots-hero-credit {
  position: absolute !important;
  top: 100% !important;
  bottom: auto !important;
  left: 50% !important;
  right: auto !important;
  z-index: 20;
  transform: translateX(-50%) !important;
  white-space: nowrap;
}

@media (max-width: 960px) {
  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    height: auto;
    margin-top: 20px;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-hero-editorial {
    height: auto !important;
    min-height: 0 !important;
    padding: clamp(28px, 5vw, 40px) !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-editorial {
    height: clamp(500px, 70vh, 620px) !important;
    border-top: 1px solid rgba(var(--unified-category-accent-rgb), .24) !important;
    border-left: 0 !important;
  }
}

@media (max-width: 700px) {
  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-hero-editorial {
    padding: 30px 22px !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split .sex-bots-hero-editorial h1 {
    font-size: clamp(3rem, 15vw, 4.3rem) !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split .sex-bots-hero-deck {
    font-size: .88rem !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-editorial {
    height: min(620px, calc(100svh - 48px)) !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split .sex-bots-editorial-scroll {
    width: 100% !important;
    padding: 24px 21px 30px !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-hero-credit {
    max-width: calc(100% - 24px);
    white-space: normal;
    text-align: center;
  }
}

/* BEGIN SHARED CATEGORY HERO COMPARISON CTA */

body.ai-sex-bots-page {
  --unified-category-accent: #ff7950;
  --unified-category-accent-rgb: 255, 121, 80;
}

body[data-page="category"] .sex-bots-hero-nav > p {
  order: 1;
}

body[data-page="category"] .category-hero-cta-stack {
  order: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: min(100%, 440px);
  margin-inline: auto;
}

body[data-page="category"] .sex-bots-hero-nav .category-hero-cta-stack > a {
  width: fit-content !important;
  max-width: 100%;
  margin-inline: auto !important;
  text-align: center;
}

/* .category-compare-cta intentionally carries no color/hover overrides
   of its own any more: it now falls through to the shared
   ".sex-bots-hero-nav a" / ".sex-bots-hero-nav a > span" base rules
   (see "BEGIN CENTERED HERO BRAND CREDIT" region and each category's
   own accent overrides) that .ranking-attention already relies on, so
   the two links share identical font, border, background, accent color
   and hover/focus behavior. The padding/margin/border-radius below
   match .ranking-attention's own box exactly (that class also uses
   them, offset by the same negative margin, as the rounded hit-area
   for its pulse-halo effect); copied here without the animation so
   both links render at the same compact dimensions and corner
   treatment. */
body[data-page="category"] .sex-bots-hero-nav .category-compare-cta {
  border-radius: 6px;
  padding: 3px 5px;
  margin: -3px -5px;
}

@media (min-width: 961px) {
  body.ai-sex-bots-page .ai-sex-bots-top-split,
  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split {
    height: clamp(390px, 44vh, 420px);
  }
}

@media (min-width: 961px) {
  /* Category-hero divider alignment -- structural, height-robust.
     ROOT CAUSE: the LEFT divider (.sex-bots-hero-nav border-top) is bottom-
     anchored -- it sits a constant distance above the hero's bottom edge at
     every viewport height. The earlier fix pinned the RIGHT divider a fixed
     distance from the TOP (fixed rail height), so the two segments only met when
     the hero was at its 420px max; on shorter desktop windows (hero shrinks via
     the 44vh clamp) the bottom-anchored left segment rose while the right stayed
     put, opening a step of up to ~24px. FIX: anchor the RIGHT divider to the
     SAME shared distance from the hero bottom by giving the scroll row one
     authoritative height (--aps-hero-scroll-h). The rail row is 1fr and fills
     whatever remains above the scroll, so its border-bottom tracks the hero
     bottom exactly like the left nav border-top -> the two segments form one
     continuous line at every viewport height, meeting at the centre seam. Outer
     hero height, the panel bottom edge, the centre-seam position and full
     scrollability are all unchanged. Scoped to min-width:961px so the mobile
     stacked layout is untouched. Applies to both split-hero variants. */
  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split > .sex-bots-editorial,
  body.ai-sex-bots-page .ai-sex-bots-top-split > .sex-bots-editorial {
    grid-template-rows: minmax(0, 1fr) var(--aps-hero-scroll-h, 197.8px) !important;
  }

  body:is(
    .ai-companions-category,
    .roleplay-ai-category,
    .porn-generators-category,
    .anime-ai-category,
    .image-editors-category
  ) .unified-category-top-split .sex-bots-editorial-rail,
  body.ai-sex-bots-page .ai-sex-bots-top-split > .sex-bots-editorial .sex-bots-editorial-rail {
    height: auto !important;
  }
}

@media (min-width: 961px) and (max-width: 1000px) {
  /* Only image-editors' longer CTA/heading copy wraps taller at the narrowest
     pre-mobile width, lifting its left divider ~4px; match with a smaller
     scroll height so the two segments still meet. */
  body.image-editors-category {
    --aps-hero-scroll-h: 193.9px;
  }
}

/* END SHARED CATEGORY HERO COMPARISON CTA */

/* END SHARED UNIFIED CATEGORY BANNERS */

/* BEGIN REVIEW HERO BRAND CREDIT */

body[data-page="review"] .review-hero-shell {
  position: relative;
  overflow: visible;
}

body[data-page="review"] .review-hero-credit {
  --review-credit-accent: var(--accent);
  --review-credit-accent-rgb: 183, 160, 241;

  position: absolute;
  left: 50%;
  bottom: -13px;
  z-index: 20;

  display: inline-flex;
  align-items: center;
  gap: 9px;

  min-height: 27px;
  border: 1px solid rgba(var(--review-credit-accent-rgb), .22);
  border-radius: 3px;
  padding: 0 12px;

  color: inherit;
  background:
    linear-gradient(
      180deg,
      rgba(14, 19, 28, .99),
      rgba(8, 12, 19, .99)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 7px 18px rgba(0,0,0,.32);

  line-height: 1;
  text-decoration: none;
  white-space: nowrap;

  transform: translateX(-50%);

  transition:
    border-color .2s ease,
    box-shadow .2s ease;
}

body[data-page="review"] .review-hero-credit[
  data-review-category="ai-sex-bots"
] {
  --review-credit-accent: #ff7044;
  --review-credit-accent-rgb: 255, 112, 68;
}

/* --companion-accent etc. are only ever defined on category pages
   (body.<slug>-category); review pages use body.<slug>-review /
   body.full-review instead, so the bare var() reference here was
   guaranteed-invalid on every review page. A guaranteed-invalid var()
   inside a custom property makes that whole custom property compute as
   unset, which silently broke "color: var(--review-credit-accent)" on
   hover (it fell through to the inherited ambient text color instead of
   the category accent). Add the identical literal value as an explicit
   var() fallback so it resolves correctly here too -- same color, same
   source value, just usable on this page type. */
body[data-page="review"] .review-hero-credit[
  data-review-category="ai-companions"
] {
  --review-credit-accent: var(--companion-accent, #42d9ff);
  --review-credit-accent-rgb: var(--companion-accent-rgb, 66, 217, 255);
}

body[data-page="review"] .review-hero-credit[
  data-review-category="roleplay-ai"
] {
  --review-credit-accent: var(--roleplay-accent, #b58cff);
  --review-credit-accent-rgb: var(--roleplay-accent-rgb, 181, 140, 255);
}

body[data-page="review"] .review-hero-credit[
  data-review-category="ai-porn-generators"
] {
  --review-credit-accent: var(--porn-generator-accent, #ffd45c);
  --review-credit-accent-rgb: var(--porn-generator-accent-rgb, 255, 212, 92);
}

body[data-page="review"] .review-hero-credit[
  data-review-category="anime-ai"
] {
  --review-credit-accent: var(--hentai-anime-accent, #ff5a5a);
  --review-credit-accent-rgb: var(--hentai-anime-accent-rgb, 255, 90, 90);
}

body[data-page="review"] .review-hero-credit[
  data-review-category="ai-image-editors"
] {
  --review-credit-accent: var(--image-editor-accent, #ff6fae);
  --review-credit-accent-rgb: var(--image-editor-accent-rgb, 255, 111, 174);
}

body[data-page="review"] .review-hero-credit::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex: 0 0 auto;

  background: var(--review-credit-accent);
  box-shadow:
    0 0 9px rgba(var(--review-credit-accent-rgb), .70);
}

body[data-page="review"] .review-hero-credit strong {
  color: #f3f5f9;
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: -.015em;

  transition: color .2s ease;
}

/* Reinforce the word gap between "AI" and "Porn" in the badge brand text:
   at this size/weight/tracking the plain word space reads as too tight.
   Explicitly reset the properties the generic ".review-hero-credit span"
   rule below would otherwise leak onto this span (it also matches any
   <span>, including this one nested inside <strong>). */
body[data-page="review"] .review-hero-credit strong .review-hero-credit-ai {
  padding-left: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  margin-right: .22em;
}

body[data-page="review"] .review-hero-credit span {
  position: relative;
  padding-left: 10px;

  color: #8995a6;
  font-size: .55rem;
  font-weight: 750;
  letter-spacing: .035em;

  transition: color .2s ease;
}

body[data-page="review"] .review-hero-credit span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;

  width: 1px;
  height: 10px;

  background: rgba(255,255,255,.12);
  transform: translateY(-50%);
}

body[data-page="review"] .review-hero-credit:hover,
body[data-page="review"] .review-hero-credit:focus-visible {
  border-color: rgba(var(--review-credit-accent-rgb), .42);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 8px 22px rgba(0,0,0,.36);
}

body[data-page="review"] .review-hero-credit:hover strong,
body[data-page="review"] .review-hero-credit:focus-visible strong {
  color: var(--review-credit-accent);
}

/* Keep "AI" in step with the rest of the brand phrase on hover/focus:
   ".review-hero-credit span" below also matches this span (it is nested
   inside <strong>), which was pulling "AI" to the dimmer category-label
   color while "Porn Surf" (plain text in <strong>) used the rule above. */
body[data-page="review"] .review-hero-credit:hover strong .review-hero-credit-ai,
body[data-page="review"] .review-hero-credit:focus-visible strong .review-hero-credit-ai {
  color: inherit;
}

body[data-page="review"] .review-hero-credit:hover span,
body[data-page="review"] .review-hero-credit:focus-visible span {
  color: #b7c0ce;
}

@media (max-width: 700px) {
  body[data-page="review"] .review-hero-credit {
    bottom: -12px;
    gap: 7px;
    min-height: 25px;
    padding: 0 10px;
  }

  body[data-page="review"] .review-hero-credit strong {
    font-size: .58rem;
  }

  body[data-page="review"] .review-hero-credit span {
    padding-left: 8px;
    font-size: .5rem;
  }
}

/* END REVIEW HERO BRAND CREDIT */

/* BEGIN REVIEW TRAITS */

body[data-page="review"] .review-traits {
  --review-trait-accent: #b7a0f1;
  --review-trait-rgb: 183, 160, 241;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 11px 20px;

  width: fit-content;
  max-width: 100%;
  margin-top: 17px;
}

body[data-page="review"] .review-traits[
  data-review-category="ai-porn-generators"
] {
  --review-trait-accent: #ffd45c;
  --review-trait-rgb: 255, 212, 92;
}

body[data-page="review"] .review-traits[
  data-review-category="ai-sex-bots"
] {
  --review-trait-accent: #ff7950;
  --review-trait-rgb: 255, 121, 80;
}

body[data-page="review"] .review-traits[
  data-review-category="ai-companions"
] {
  --review-trait-accent: #42d9ff;
  --review-trait-rgb: 66, 217, 255;
}

body[data-page="review"] .review-traits[
  data-review-category="roleplay-ai"
] {
  --review-trait-accent: #b58cff;
  --review-trait-rgb: 181, 140, 255;
}

body[data-page="review"] .review-traits[
  data-review-category="anime-ai"
] {
  --review-trait-accent: #ff5a5a;
  --review-trait-rgb: 255, 90, 90;
}

body[data-page="review"] .review-traits[
  data-review-category="ai-image-editors"
] {
  --review-trait-accent: #ff6fae;
  --review-trait-rgb: 255, 111, 174;
}

body[data-page="review"] .review-trait {
  display: inline-flex;
  align-items: center;
  gap: 9px;

  color: #aab8cc;
  font-size: .66rem;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}

/*
 * Exact homepage compass-diamond geometry:
 * 14px rounded square, rotated 45 degrees,
 * center glow, gradient fill and inset light.
 */
body[data-page="review"] .review-trait .surf-meta-icon {
  position: relative !important;
  width: 14px !important;
  height: 14px !important;
  flex: 0 0 14px !important;
  transform: rotate(45deg) !important;
  border: 1px solid rgba(var(--review-trait-rgb), .72) !important;
  border-radius: 4px !important;
  background:
    radial-gradient(circle at 50% 50%, rgba(var(--review-trait-rgb), .95) 0 2px, transparent 3px),
    linear-gradient(135deg, rgba(var(--review-trait-rgb), .18), rgba(var(--review-trait-rgb), .14)) !important;
  box-shadow:
    0 0 14px rgba(var(--review-trait-rgb), .22),
    inset 0 0 10px rgba(var(--review-trait-rgb), .12) !important;
}

body[data-page="review"] .review-trait .surf-meta-icon::after {
  content: "" !important;
  position: absolute !important;
  width: 5px !important;
  height: 5px !important;
  right: 1px !important;
  top: 1px !important;
  border-top: 1px solid rgba(255,255,255,.75) !important;
  border-right: 1px solid rgba(255,255,255,.75) !important;
  border-radius: 1px !important;
}

@media (max-width: 700px) {
  body[data-page="review"] .review-traits {
    gap: 10px 15px;
  }

  body[data-page="review"] .review-trait {
    font-size: .58rem;
    letter-spacing: .035em;
  }
}

/* END REVIEW TRAITS */

/* BEGIN SHARED TOP 10 FULL REVIEWS */
/*
 * LeakifyHub retains its own established review treatment above. This shared
 * layer gives the remaining completed Top 10 pages the same editorial density
 * without duplicating a product-specific stylesheet nine times.
 */
body.full-review .inner-home-strip {
  border-bottom-color: rgba(var(--review-accent-rgb), .13) !important;
}

body.full-review .review-header {
  grid-template-columns: 380px minmax(0, 1fr) 145px;
  gap: 34px;
  min-height: 284px;
  margin-top: 30px;
  border: 1px solid rgba(var(--review-accent-rgb), .19) !important;
  border-radius: 19px;
  padding: 24px 30px;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 18%, rgba(var(--review-accent-rgb), .11), transparent 31%),
    linear-gradient(135deg, rgba(12,17,27,.98), rgba(7,11,18,.98));
}

body.full-review .review-header::before {
  background: var(--review-accent);
  box-shadow: 0 0 20px rgba(var(--review-accent-rgb), .55);
}

body.full-review .review-product-image {
  width: 380px;
  height: 235px;
  margin: 0;
  border: 1px solid rgba(var(--review-accent-rgb), .23);
  border-radius: 12px;
  overflow: hidden;
  background: #0a0f17;
  box-shadow: 0 14px 32px rgba(0,0,0,.28);
}

body.full-review .review-product-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.full-review .review-title h1 {
  margin-bottom: 12px;
  font-size: clamp(2.1rem, 4.4vw, 4rem);
}

body.full-review .review-title > p {
  max-width: 670px;
  color: #bac5d4;
  font-size: .98rem;
  line-height: 1.6;
}

body.full-review .kicker,
body.full-review .score-block strong,
body.full-review .score-block small {
  color: var(--review-accent);
}

body.full-review .score-block {
  align-self: center;
  border-left: 1px solid rgba(var(--review-accent-rgb), .18);
  padding-left: 22px;
}

body.full-review .score-block strong {
  font-size: 3.65rem;
  text-shadow: 0 0 22px rgba(var(--review-accent-rgb), .22);
}

body.full-review .review-layout {
  grid-template-columns: minmax(0, 790px) minmax(270px, 310px);
  justify-content: space-between;
  gap: clamp(36px, 6vw, 90px);
  padding-top: 61px;
}

body.full-review .review-content {
  max-width: 790px;
  border-color: rgba(var(--review-accent-rgb), .14) !important;
}

body.full-review .review-content > section {
  padding-bottom: 34px;
}

body.full-review .review-content > section + section {
  border-top: 1px solid rgba(var(--review-accent-rgb), .11);
  padding-top: 34px;
}

body.full-review .review-content p,
body.full-review .review-content li {
  color: #b7c1d0;
  font-size: .94rem;
  line-height: 1.76;
}

body.full-review .review-content h2 {
  margin-bottom: 15px;
  color: #f4f7fc;
  font-size: clamp(1.35rem, 2vw, 1.72rem);
}

body.full-review .review-content h3 {
  color: #eef3fa;
}

body.full-review .review-deck {
  color: #d7e0ec !important;
  font-size: 1.03rem !important;
  line-height: 1.75 !important;
}

body.full-review .review-deck strong,
body.full-review .review-content a,
body.full-review .source-note strong {
  color: var(--review-accent);
}

body.full-review .review-figure {
  margin: 23px 0 25px;
  border: 1px solid rgba(var(--review-accent-rgb), .18);
  border-radius: 13px;
  overflow: hidden;
  background: rgba(4,8,14,.74);
}

body.full-review .review-figure img {
  display: block;
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  background: #090e16;
}

body.full-review .review-figure-compact img {
  max-height: 340px;
  object-position: center;
}

body.full-review .review-figure figcaption {
  padding: 10px 13px 11px;
  color: #8e9bae;
  font-size: .71rem;
  line-height: 1.5;
}

body.full-review .pricing-table-wrap {
  overflow-x: auto;
  margin: 23px 0 25px;
  border: 1px solid rgba(var(--review-accent-rgb), .16);
  border-radius: 12px;
}

body.full-review .review-table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(7,10,16,.62);
  font-size: .84rem;
}

body.full-review .review-table caption {
  padding: 12px 14px;
  color: #9aa6b8;
  text-align: left;
  font-size: .7rem;
}

body.full-review .review-table th,
body.full-review .review-table td {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 10px 14px;
  text-align: left;
}

body.full-review .review-table th {
  color: #f4f7fb;
  background: rgba(var(--review-accent-rgb), .07);
}

body.full-review .review-table td {
  color: #b8c1cf;
}

body.full-review .pros-cons {
  margin-bottom: 0;
}

body.full-review .pros-cons section {
  border-color: rgba(var(--review-accent-rgb), .13);
  background: rgba(10,14,22,.72);
}

body.full-review .review-sidebar {
  display: grid;
  gap: 16px;
}

body.full-review .sidebar-card {
  border-color: rgba(var(--review-accent-rgb), .16);
}

body.full-review .sidebar-card dd {
  max-width: 158px;
}

body.full-review .button-primary {
  border-color: rgba(var(--review-accent-rgb), .55);
  color: #10151d;
  background: var(--review-accent);
}

body.full-review .affiliate-note,
body.full-review .source-note {
  color: #778398;
  font-size: .7rem;
  line-height: 1.55;
}

body.full-review .affiliate-note {
  margin: 13px 0 0;
  text-align: center;
}

body.full-review .score-rationale dl {
  margin-bottom: 8px;
}

@media (max-width: 1100px) {
  body.full-review .review-header {
    grid-template-columns: 330px minmax(0, 1fr);
  }

  body.full-review .review-product-image {
    width: 330px;
    height: 220px;
  }

  body.full-review .score-block {
    grid-column: 2;
    border-left: 0;
    padding-left: 0;
    text-align: left;
  }

  body.full-review .review-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 30px;
  }
}

@media (max-width: 850px) {
  body.full-review .review-header {
    grid-template-columns: 1fr;
    padding: 20px;
  }

  body.full-review .review-product-image,
  body.full-review .review-title,
  body.full-review .score-block {
    grid-column: 1;
    grid-row: auto;
  }

  body.full-review .review-product-image {
    width: min(100%, 560px);
    height: auto;
    aspect-ratio: 16 / 9;
    justify-self: center;
  }

  body.full-review .score-block {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }

  body.full-review .score-block strong {
    font-size: 2.25rem;
  }

  body.full-review .score-block span,
  body.full-review .score-block small {
    display: inline;
    margin: 0;
  }

  body.full-review .review-layout {
    grid-template-columns: 1fr;
  }

  body.full-review .review-content {
    max-width: none;
  }

  body.full-review .review-sidebar {
    position: static;
  }
}

@media (max-width: 620px) {
  body.full-review .review-content p,
  body.full-review .review-content li {
    font-size: .91rem;
    line-height: 1.7;
  }

  body.full-review .pros-cons {
    grid-template-columns: 1fr;
  }

  body.full-review .review-table th,
  body.full-review .review-table td {
    padding: 9px 10px;
    white-space: nowrap;
  }
}
/* END SHARED TOP 10 FULL REVIEWS */

/* BEGIN SHARED HEADER GEOMETRY LOCK */

/*
 * Canonical AI Porn Surf header geometry.
 * Homepage, category and review headers use the compact homepage dimensions.
 * Category-specific search-button colors remain controlled by their existing
 * category selectors.
 */

body.home-page .home-strip,
body[data-page="category"] .inner-home-strip,
body[data-page="review"] .inner-home-strip {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home-page .home-strip > .home-strip-grid,
body[data-page="category"] .inner-home-strip > .home-strip-grid,
body[data-page="review"] .inner-home-strip > .home-strip-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 520px !important;
  gap: 22px !important;
  align-items: center !important;
  box-sizing: border-box !important;
  min-height: 82px !important;
  padding: 8px 0 !important;
}

body.home-page .home-strip .home-left,
body[data-page="category"] .inner-home-strip .home-left,
body[data-page="review"] .inner-home-strip .home-left {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important;
}

body.home-page .home-strip .home-brand-image-link,
body[data-page="category"] .inner-home-strip .home-brand-image-link,
body[data-page="review"] .inner-home-strip .home-brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 230px !important;
  line-height: 0 !important;
}

body.home-page .home-strip .home-brand-image,
body[data-page="category"] .inner-home-strip .home-brand-image,
body[data-page="review"] .inner-home-strip .home-brand-image {
  display: block !important;
  width: auto !important;
  height: 66px !important;
  max-width: 230px !important;
  object-fit: contain !important;
}

body.home-page .home-strip .home-brand-tagline,
body[data-page="category"] .inner-home-strip .home-brand-tagline,
body[data-page="review"] .inner-home-strip .home-brand-tagline {
  margin: 0 !important;
  max-width: 300px !important;
  color: #d9e7f4 !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1.16 !important;
  letter-spacing: -.015em !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.35) !important;
}

body.home-page .home-strip .home-search,
body[data-page="category"] .inner-home-strip .home-search,
body[data-page="review"] .inner-home-strip .home-search {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 110px !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 7px !important;
  border-radius: 13px !important;
}

body.home-page .home-strip .home-search input,
body[data-page="category"] .inner-home-strip .home-search input,
body[data-page="review"] .inner-home-strip .home-search input {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 13px !important;
  border-radius: 9px !important;
}

body.home-page .home-strip .home-search .button,
body[data-page="category"] .inner-home-strip .home-search .button,
body[data-page="review"] .inner-home-strip .home-search .button {
  box-sizing: border-box !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 7px 12px !important;
}

@media (max-width: 900px) {
  body.home-page .home-strip > .home-strip-grid,
  body[data-page="category"] .inner-home-strip > .home-strip-grid,
  body[data-page="review"] .inner-home-strip > .home-strip-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  body.home-page .home-strip .home-brand-tagline,
  body[data-page="category"] .inner-home-strip .home-brand-tagline,
  body[data-page="review"] .inner-home-strip .home-brand-tagline {
    display: none !important;
  }
}

@media (max-width: 650px) {
  body.home-page .home-strip .home-brand-image,
  body[data-page="category"] .inner-home-strip .home-brand-image,
  body[data-page="review"] .inner-home-strip .home-brand-image {
    height: 58px !important;
    max-width: 205px !important;
  }

  body.home-page .home-strip .home-search,
  body[data-page="category"] .inner-home-strip .home-search,
  body[data-page="review"] .inner-home-strip .home-search {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* END SHARED HEADER GEOMETRY LOCK */

/* BEGIN INNER HEADER PARITY FINAL */

/* Exact header geometry shared with the homepage. */
body[data-page="category"] .inner-home-strip,
body[data-page="review"] .inner-home-strip {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 83px !important;
  min-height: 83px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body[data-page="category"] .inner-home-strip > .home-strip-grid,
body[data-page="review"] .inner-home-strip > .home-strip-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 520px !important;
  gap: 22px !important;
  align-items: center !important;

  box-sizing: border-box !important;
  width: min(calc(100% - 40px), 1260px) !important;
  height: 82px !important;
  min-height: 82px !important;
  margin: 0 auto !important;
  padding: 8px 0 !important;
}

body[data-page="category"] .inner-home-strip .home-left,
body[data-page="review"] .inner-home-strip .home-left {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important;
  height: 66px !important;
}

body[data-page="category"] .inner-home-strip .home-brand-image-link,
body[data-page="review"] .inner-home-strip .home-brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: 66px !important;
  max-width: 230px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

body[data-page="category"] .inner-home-strip .home-brand-image,
body[data-page="review"] .inner-home-strip .home-brand-image {
  display: block !important;
  width: auto !important;
  height: 66px !important;
  max-width: 230px !important;
  margin: 0 !important;
  object-fit: contain !important;
}

body[data-page="category"] .inner-home-strip .home-brand-tagline,
body[data-page="review"] .inner-home-strip .home-brand-tagline {
  margin: 0 !important;
  max-width: 300px !important;
  font-size: .88rem !important;
  line-height: 1.16 !important;
}

body[data-page="category"] .inner-home-strip .home-search,
body[data-page="review"] .inner-home-strip .home-search {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 110px !important;
  gap: 8px !important;

  box-sizing: border-box !important;
  width: 520px !important;
  height: 54px !important;
  margin: 0 !important;
  padding: 7px !important;
  border-radius: 13px !important;
}

body[data-page="category"] .inner-home-strip .home-search input,
body[data-page="review"] .inner-home-strip .home-search input,
body[data-page="category"] .inner-home-strip .home-search .button,
body[data-page="review"] .inner-home-strip .home-search .button {
  box-sizing: border-box !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
}

body[data-page="category"] .inner-home-strip .home-search input,
body[data-page="review"] .inner-home-strip .home-search input {
  padding: 0 13px !important;
  border-radius: 9px !important;
}

body[data-page="category"] .inner-home-strip .home-search .button,
body[data-page="review"] .inner-home-strip .home-search .button {
  padding: 7px 12px !important;
}

@media (max-width: 900px) {
  body[data-page="category"] .inner-home-strip,
  body[data-page="review"] .inner-home-strip {
    height: auto !important;
    min-height: 0 !important;
  }

  body[data-page="category"] .inner-home-strip > .home-strip-grid,
  body[data-page="review"] .inner-home-strip > .home-strip-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(calc(100% - 22px), 1260px) !important;
    height: auto !important;
    min-height: 0 !important;
  }

  body[data-page="category"] .inner-home-strip .home-search,
  body[data-page="review"] .inner-home-strip .home-search {
    width: 100% !important;
  }

  body[data-page="category"] .inner-home-strip .home-brand-tagline,
  body[data-page="review"] .inner-home-strip .home-brand-tagline {
    display: none !important;
  }
}

@media (max-width: 650px) {
  body[data-page="category"] .inner-home-strip .home-left,
  body[data-page="review"] .inner-home-strip .home-left,
  body[data-page="category"] .inner-home-strip .home-brand-image-link,
  body[data-page="review"] .inner-home-strip .home-brand-image-link,
  body[data-page="category"] .inner-home-strip .home-brand-image,
  body[data-page="review"] .inner-home-strip .home-brand-image {
    height: 58px !important;
  }

  body[data-page="category"] .inner-home-strip .home-brand-image,
  body[data-page="review"] .inner-home-strip .home-brand-image {
    max-width: 205px !important;
  }

  body[data-page="category"] .inner-home-strip .home-search,
  body[data-page="review"] .inner-home-strip .home-search {
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
  }
}

/* END INNER HEADER PARITY FINAL */

/* BEGIN INNER HEADER EXACT HOMEPAGE HEIGHT */

/* Hard-cap category and review headers to the homepage's 83px total height. */
body[data-page="category"] .inner-home-strip,
body[data-page="review"] .inner-home-strip {
  box-sizing: border-box !important;
  height: 83px !important;
  min-height: 83px !important;
  max-height: 83px !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body[data-page="category"] .inner-home-strip > .home-strip-grid,
body[data-page="review"] .inner-home-strip > .home-strip-grid {
  box-sizing: border-box !important;
  height: 82px !important;
  min-height: 82px !important;
  max-height: 82px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  overflow: hidden !important;
}

/* END INNER HEADER EXACT HOMEPAGE HEIGHT */

/* LeakifyHub: match the AI Porn Generators outer category shell only. */
body.leakifyhub-full-review .review-header {
  --unified-category-accent: #ffd45c;
  --unified-category-accent-rgb: 255, 212, 92;
  border-top: 1px solid rgba(var(--unified-category-accent-rgb), .35) !important;
  border-radius: 0 !important;
  background:
    linear-gradient(
      90deg,
      rgba(var(--unified-category-accent-rgb), .10),
      transparent 43%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    rgba(8, 12, 20, .90) !important;
}

body.leakifyhub-full-review .review-header::before {
  content: "" !important;
  position: absolute !important;
  inset: 13px auto 13px 0 !important;
  width: 4px !important;
  height: auto !important;
  border-radius: 0 4px 4px 0 !important;
  background: var(--unified-category-accent) !important;
  box-shadow: 0 0 20px rgba(var(--unified-category-accent-rgb), .30) !important;
}

/* BEGIN SHARED SAME-CATEGORY REVIEWS */
body[data-page="review"] .same-category-reviews {
  --same-category-review-accent: var(--review-accent, var(--sex-bots-color, #ffd45c));
  --same-category-review-accent-rgb: var(--review-accent-rgb, var(--porn-generator-accent-rgb, 255, 212, 92));
  margin: clamp(52px, 8vw, 96px) 0 0;
  padding: 0 0 28px;
}

body[data-page="review"] .same-category-reviews-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(250px, .6fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
  margin-bottom: 20px;
}

body[data-page="review"] .same-category-reviews-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--same-category-review-accent);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

body[data-page="review"] .same-category-reviews-heading h2 {
  max-width: 760px;
  margin: 5px 0 0;
  color: #f2f5fa;
  font-size: clamp(1.95rem, 3.7vw, 2.85rem);
  line-height: .98;
  letter-spacing: -.055em;
}

body[data-page="review"] .same-category-reviews-heading > p {
  max-width: 430px;
  margin: 0 0 2px auto;
  color: #8e9aab;
  font-size: .73rem;
  line-height: 1.65;
  text-align: right;
}

body[data-page="review"] .same-category-reviews-board {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.15);
  border-bottom: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.09);
  box-shadow: 0 22px 54px rgba(0,0,0,.2);
}

body[data-page="review"] .same-category-reviews-board::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .24;
  background: repeating-linear-gradient(135deg, transparent 0 18px, rgba(255,255,255,.025) 18px 19px);
}

body[data-page="review"] .same-category-review {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-width: 0;
  min-height: 242px;
  overflow: hidden;
  padding: clamp(22px, 3vw, 34px);
  color: inherit;
  background: linear-gradient(120deg, rgba(var(--same-category-review-accent-rgb), .035), transparent 42%), rgba(8,13,21,.965);
  isolation: isolate;
  text-decoration: none;
  transition: background-color .22s ease, box-shadow .22s ease;
}

body[data-page="review"] .same-category-review::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--same-category-review-accent);
  box-shadow: 0 0 18px rgba(var(--same-category-review-accent-rgb), .32);
}

body[data-page="review"] .same-category-review::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: linear-gradient(125deg, rgba(var(--same-category-review-accent-rgb), .11), transparent 55%);
  transition: opacity .22s ease;
}

body[data-page="review"] .same-category-review:hover,
body[data-page="review"] .same-category-review:focus-visible {
  box-shadow: inset 0 0 36px rgba(var(--same-category-review-accent-rgb), .055);
}

body[data-page="review"] .same-category-review:hover::after,
body[data-page="review"] .same-category-review:focus-visible::after {
  opacity: 1;
}

body[data-page="review"] .same-category-review:focus-visible {
  outline: 2px solid var(--same-category-review-accent);
  outline-offset: -3px;
}

body[data-page="review"] .same-category-review-logo {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin: 0 0 24px 5px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 11px;
  background: #0a1019;
  box-shadow: 0 7px 18px rgba(0,0,0,.4), 0 0 0 3px rgba(7,11,18,.8);
  transform: translateY(3px) rotate(-3deg);
  transition: transform .22s ease, border-color .22s ease;
}

body[data-page="review"] .same-category-review-logo img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 6px;
  object-fit: contain;
  border-radius: 10px;
  background: rgba(11,17,27,.88);
}

body[data-page="review"] .same-category-review:hover .same-category-review-logo,
body[data-page="review"] .same-category-review:focus-visible .same-category-review-logo {
  border-color: rgba(var(--same-category-review-accent-rgb), .58);
  transform: translateY(0) rotate(0);
}

body[data-page="review"] .same-category-review-copy {
  display: block;
  min-width: 0;
  align-self: end;
}

body[data-page="review"] .same-category-review-meta {
  display: block;
  margin-bottom: 7px;
  color: var(--same-category-review-accent);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body[data-page="review"] .same-category-review h3 {
  margin: 0;
  overflow-wrap: anywhere;
  color: #f2f5fa;
  font-size: clamp(1.55rem, 2.7vw, 2.25rem);
  line-height: .98;
  letter-spacing: -.05em;
  transition: color .22s ease;
}

body[data-page="review"] .same-category-review:hover h3,
body[data-page="review"] .same-category-review:focus-visible h3 {
  color: var(--same-category-review-accent);
}

body[data-page="review"] .same-category-review-description {
  display: block;
  overflow: hidden;
  margin-top: 10px;
  color: #929eae;
  font-size: .73rem;
  line-height: 1.58;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-page="review"] .same-category-review-link {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-top: 24px;
  padding-top: 13px;
  border-top: 1px solid rgba(var(--same-category-review-accent-rgb), .24);
  color: #bdc6d2;
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body[data-page="review"] .same-category-review-link b {
  color: var(--same-category-review-accent);
  font-size: 1rem;
  font-weight: 600;
  transition: transform .22s ease;
}

body[data-page="review"] .same-category-review:hover .same-category-review-link b,
body[data-page="review"] .same-category-review:focus-visible .same-category-review-link b {
  transform: translateX(3px);
}

@media (max-width: 900px) {
  body[data-page="review"] .same-category-reviews-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body[data-page="review"] .same-category-reviews-heading {
    display: block;
  }

  body[data-page="review"] .same-category-reviews-heading > p {
    margin: 10px 0 0;
    text-align: left;
  }

  body[data-page="review"] .same-category-reviews-board {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-page="review"] .same-category-review {
    min-height: 0;
    padding: 24px 22px 22px;
  }

  body[data-page="review"] .same-category-review-logo {
    width: 41px;
    height: 41px;
    margin: 0 0 20px 4px;
    border-radius: 9px;
  }

  body[data-page="review"] .same-category-review h3 {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }
}


/* Balance incomplete shared-review rows without exposing the board texture. */
@media (min-width: 901px) {
  body[data-page="review"] .same-category-reviews-board {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  body[data-page="review"] .same-category-review {
    grid-column: span 2;
  }

  body[data-page="review"] .same-category-review:nth-last-child(2):nth-child(3n + 1) {
    grid-column: 1 / -1;
  }

  body[data-page="review"] .same-category-review:nth-last-child(3):nth-child(3n + 1),
  body[data-page="review"] .same-category-review:nth-last-child(2):nth-child(3n + 2) {
    grid-column: span 3;
  }
}

@media (min-width: 641px) and (max-width: 900px) {
  body[data-page="review"] .same-category-review:nth-last-child(2):nth-child(2n + 1) {
    grid-column: 1 / -1;
  }
}


/* BEGIN REVIEW CATEGORY RETURN */
body[data-page="review"] .same-category-reviews-board > .review-category-return {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1 !important;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(24px, 5vw, 72px);
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: clamp(112px, 12vw, 146px);
  overflow: hidden;
  padding: clamp(28px, 4vw, 44px);
  border-left: 4px solid var(--same-category-review-accent);
  color: inherit;
  background:
    linear-gradient(105deg, rgba(var(--same-category-review-accent-rgb), .075), transparent 48%),
    rgba(7, 12, 20, .985);
  isolation: isolate;
  text-decoration: none;
  transition: background-color .22s ease, border-color .22s ease;
}

body[data-page="review"] .same-category-reviews-board > .review-category-return::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: rgba(255, 255, 255, .025);
  transition: opacity .22s ease;
}

body[data-page="review"] .review-category-return__label {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #f2f5fa;
  font-size: clamp(1.65rem, 3.3vw, 2.65rem);
  font-weight: 850;
  line-height: 1;
  letter-spacing: -.05em;
  transition: color .22s ease;
}

body[data-page="review"] .review-category-return__arrow {
  color: var(--same-category-review-accent);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1;
  transition: color .22s ease, transform .22s ease;
}

body[data-page="review"] .same-category-reviews-board > .review-category-return:hover::after,
body[data-page="review"] .same-category-reviews-board > .review-category-return:focus-visible::after {
  opacity: 1;
}

body[data-page="review"] .same-category-reviews-board > .review-category-return:hover .review-category-return__label,
body[data-page="review"] .same-category-reviews-board > .review-category-return:focus-visible .review-category-return__label {
  color: var(--same-category-review-accent);
}

body[data-page="review"] .same-category-reviews-board > .review-category-return:hover .review-category-return__arrow,
body[data-page="review"] .same-category-reviews-board > .review-category-return:focus-visible .review-category-return__arrow {
  color: #f2f5fa;
  transform: translate(3px, -3px);
}

body[data-page="review"] .same-category-reviews-board > .review-category-return:focus-visible {
  outline: 2px solid var(--same-category-review-accent);
  outline-offset: -3px;
}

@media (max-width: 640px) {
  body[data-page="review"] .same-category-reviews-board > .review-category-return {
    gap: 18px;
    min-height: 0;
    padding: 27px 22px;
  }

  body[data-page="review"] .review-category-return__label {
    font-size: clamp(1.5rem, 7.5vw, 1.95rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="review"] .same-category-reviews-board > .review-category-return,
  body[data-page="review"] .same-category-reviews-board > .review-category-return::after,
  body[data-page="review"] .review-category-return__label,
  body[data-page="review"] .review-category-return__arrow {
    transition: none;
  }

  body[data-page="review"] .same-category-reviews-board > .review-category-return:hover .review-category-return__arrow,
  body[data-page="review"] .same-category-reviews-board > .review-category-return:focus-visible .review-category-return__arrow {
    transform: none;
  }
}
/* END REVIEW CATEGORY RETURN */

/* END SHARED SAME-CATEGORY REVIEWS */

/* BEGIN SHARED NON-HOMEPAGE CONTENT WIDTH */
/* Match the homepage .home-combo-shell desktop container only. */
@media (min-width: 701px) {
  body[data-page="category"] > main.shell.inner-page,
  body[data-page="review"] > main.shell.inner-page,
  body[data-page="policy"] > main.shell.inner-page {
    width: min(calc(100% - 40px), 1260px);
    margin-inline: auto;
  }
}
/* END SHARED NON-HOMEPAGE CONTENT WIDTH */

/* BEGIN SHARED CATEGORY-ACCENT REVIEW HERO SHELL */
/* Matches the approved LeakifyHub outer shell; review content geometry is untouched. */
body.full-review .review-header {
  --unified-category-accent: var(--review-accent);
  --unified-category-accent-rgb: var(--review-accent-rgb);
  border-top: 1px solid rgba(var(--unified-category-accent-rgb), .35) !important;
  border-radius: 0 !important;
  background:
    linear-gradient(
      90deg,
      rgba(var(--unified-category-accent-rgb), .10),
      transparent 43%
    ),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 13px
    ),
    rgba(8, 12, 20, .90) !important;
}

body.full-review .review-header::before {
  content: "" !important;
  position: absolute !important;
  inset: 13px auto 13px 0 !important;
  width: 4px !important;
  height: auto !important;
  border-radius: 0 4px 4px 0 !important;
  background: var(--unified-category-accent) !important;
  box-shadow: 0 0 20px rgba(var(--unified-category-accent-rgb), .30) !important;
}
/* END SHARED CATEGORY-ACCENT REVIEW HERO SHELL */

/* BEGIN SHARED REVIEW PRODUCT-DOMAIN COMPONENT */
body[data-page="review"] .review-product-domain {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: 100%;
  margin: -4px 0 12px;
  color: var(--review-accent);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
body[data-page="review"] .review-product-domain > span:not(.review-product-domain-arrow) {
  min-width: 0;
  overflow-wrap: anywhere;
}
body[data-page="review"] .review-product-domain:hover {
  opacity: .82;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body[data-page="review"] .review-product-domain-favicon {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  object-fit: contain;
}
body[data-page="review"] .review-product-domain-arrow {
  flex: 0 0 auto;
  line-height: 1;
}
body[data-page="review"] .review-product-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: -4px 0 12px;
}
body[data-page="review"] .review-product-meta .review-product-domain,
body[data-page="review"] .review-product-meta .review-byline {
  margin: 0;
}
/* END SHARED REVIEW PRODUCT-DOMAIN COMPONENT */

/* BEGIN SHARED REVIEW SCORE RANK LINKS */
body[data-page="review"] .review-score-ranks {
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  margin: 12px 0 0;
}

body[data-page="review"] .review-score-rank {
  --rank-accent: var(--review-accent);
  --rank-accent-rgb: var(--review-accent-rgb);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  border: 1px solid rgba(var(--rank-accent-rgb), .32);
  border-radius: 6px;
  background: linear-gradient(180deg, rgba(var(--rank-accent-rgb), .13), rgba(9, 13, 20, .6));
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  padding: 7px 9px;
  color: var(--rank-accent);
  text-align: left;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

body[data-page="review"] .review-score-rank--global {
  --rank-accent: #38f58b;
  --rank-accent-rgb: 56, 245, 139;
}

body[data-page="review"] .review-score-rank-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

body[data-page="review"] .review-score-rank-tier {
  color: var(--rank-accent);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: -.01em;
  line-height: 1.2;
  white-space: nowrap;
}

body[data-page="review"] .review-score-rank-scope {
  color: #b9c2d1;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body[data-page="review"] .review-score-rank-arrow {
  flex: 0 0 auto;
  color: var(--rank-accent);
  font-size: .9rem;
  line-height: 1;
  opacity: .7;
  transition: transform .18s ease, opacity .18s ease;
}

body[data-page="review"] .review-score-rank:hover,
body[data-page="review"] .review-score-rank:focus-visible {
  background: linear-gradient(180deg, rgba(var(--rank-accent-rgb), .22), rgba(11, 15, 23, .68));
  border-color: rgba(var(--rank-accent-rgb), .68);
  transform: translateY(-1px);
}

body[data-page="review"] .review-score-rank:hover .review-score-rank-arrow,
body[data-page="review"] .review-score-rank:focus-visible .review-score-rank-arrow {
  opacity: 1;
  transform: translate(2px, -2px);
}

body[data-page="review"] .review-score-rank:focus-visible {
  outline: 2px solid var(--rank-accent);
  outline-offset: 2px;
}

@media (max-width: 850px) {
  /* Legacy per-skin rules (e.g. body.full-review .score-block span at this
     same breakpoint) force all .score-block descendant spans to display:
     inline with higher selector specificity; win here explicitly so the
     rank/scope text keeps stacking instead of collapsing onto one line. */
  body[data-page="review"] .review-score-rank-text {
    display: flex !important;
  }

  body[data-page="review"] .review-score-ranks {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 8px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="review"] .review-score-rank,
  body[data-page="review"] .review-score-rank-arrow {
    transition: none !important;
  }
}
/* END SHARED REVIEW SCORE RANK LINKS */

/* BEGIN SHARED REVIEW SCORE COMPARISON CTA */
body[data-page="review"] .review-score-compare {
  display: inline-flex;
  min-height: 40px;
  max-width: 170px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 15px auto 0;
  border-top: 1px solid rgba(var(--review-accent-rgb), .38);
  padding: 9px 2px 0;
  color: var(--review-accent);
  font-size: .69rem;
  font-weight: 850;
  line-height: 1.3;
  letter-spacing: .025em;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
}

body[data-page="review"] .review-score-compare > span:first-child {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

body[data-page="review"] .review-score-compare-icon {
  display: inline-block;
  flex: 0 0 auto;
  color: inherit !important;
  font-size: .88rem !important;
  line-height: 1;
  transition: transform .18s ease;
}

body[data-page="review"] .review-score-compare:hover {
  color: #fff;
  border-top-color: var(--review-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

body[data-page="review"] .review-score-compare:hover .review-score-compare-icon {
  transform: translateX(2px);
}

body[data-page="review"] .review-score-compare:focus-visible {
  outline: 2px solid var(--review-accent);
  outline-offset: 3px;
}

@media (max-width: 1100px) {
  body[data-page="review"] .score-block {
    width: fit-content;
    justify-self: start;
  }
}

@media (max-width: 850px) {
  body[data-page="review"] .score-block {
    display: grid !important;
    grid-template-columns: auto auto;
    column-gap: 8px;
    row-gap: 0;
    align-items: center;
    text-align: left;
  }

  body[data-page="review"] .score-block > strong {
    grid-column: 1;
    grid-row: 1;
  }

  body[data-page="review"] .score-block > span:not(.review-score-compare-icon) {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
  }

  body[data-page="review"] .review-score-compare {
    grid-column: 1 / -1;
    grid-row: 3;
    min-height: 44px;
    max-width: min(100%, 190px);
    justify-self: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="review"] .review-score-compare-icon {
    transition: none !important;
  }

  body[data-page="review"] .review-score-compare:hover .review-score-compare-icon {
    transform: none;
  }
}
/* END SHARED REVIEW SCORE COMPARISON CTA */

/* Allow narrow review grids to shrink around scrollable pricing tables. */
@media (max-width: 700px) {
  .review-layout,
  body.full-review .review-layout,
  body.leakifyhub-full-review .review-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .review-layout > * {
    min-width: 0;
  }
}

/* Shared review hero image interaction */
body[data-page="review"] .review-product-image {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

body[data-page="review"] .review-product-image > img {
  transform: scale(1.03);
  transform-origin: center;
  transition: transform .22s ease;
}

body[data-page="review"] .review-product-image:hover > img,
body[data-page="review"] .review-product-image:focus-within > img {
  transform: scale(1.07);
}

body[data-page="review"] .review-product-image-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  background:
    linear-gradient(
      rgba(var(--review-accent-rgb), .08),
      rgba(var(--review-accent-rgb), .08)
    ),
    rgba(4, 8, 14, .72);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

body[data-page="review"] .review-product-image:hover
  .review-product-image-overlay,
body[data-page="review"] .review-product-image:focus-within
  .review-product-image-overlay {
  opacity: 1;
  pointer-events: auto;
}

body[data-page="review"] .review-product-image-overlay
  .review-product-image-action {
  position: static;
  inset: auto;
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  min-width: 116px;
  max-width: 150px;
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 1px solid color-mix(
    in srgb,
    var(--review-accent) 72%,
    white
  );
  border-radius: 7px;
  padding: 8px 16px;
  color: #071019;
  background: var(--review-accent);
  box-shadow:
    0 5px 14px rgba(0, 0, 0, .24),
    0 0 12px rgba(var(--review-accent-rgb), .22);
  font-size: .66rem;
  font-weight: 850;
  line-height: 1.1;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  overflow: visible;
  overflow-wrap: normal;
  cursor: pointer;
}

body[data-page="review"] .review-product-image-overlay
  .review-product-image-compare {
  border-color: var(--review-accent);
  color: var(--review-accent);
  background: rgba(4, 8, 14, .82);
}

body[data-page="review"] .review-product-image-overlay
  .review-product-image-action:hover {
  border-color: var(--review-accent);
  color: #071019;
  text-decoration: none;
  filter: brightness(1.08);
}

body[data-page="review"] .review-product-image-overlay
  .review-product-image-compare:hover {
  color: var(--review-accent);
}

body[data-page="review"] .review-product-image-overlay
  .review-product-image-action:focus-visible {
  outline: 2px solid var(--review-accent);
  outline-offset: 2px;
  box-shadow:
    0 0 0 2px rgba(4, 8, 14, .88),
    0 0 14px rgba(var(--review-accent-rgb), .45);
}

@media (hover: none) {
  body[data-page="review"] .review-product-image:hover > img {
    transform: scale(1.03);
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="review"] .review-product-image > img,
  body[data-page="review"] .review-product-image-overlay {
    transition: none;
  }
}
