.home-strip {
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
}

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

.home-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
}

.home-title strong {
  font-size: 1.08rem;
  letter-spacing: -.02em;
}

.home-title span {
  color: var(--muted);
  font-size: .82rem;
}

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

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

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

.home-section {
  padding: 28px 0;
}

.home-tint {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
}

.home-heading {
  display: flex;
  align-items: end;
  gap: 16px;
  margin-bottom: 14px;
}

.home-heading .kicker {
  margin-bottom: 5px;
}

.home-heading h1,
.home-heading h2 {
  margin: 0;
  font-size: 2rem;
}

.ranked-directory {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--panel);
}

.ranked-directory li {
  display: grid;
  grid-template-columns: 50px 190px minmax(0, 1fr) 135px;
  gap: 13px;
  align-items: center;
  min-height: 52px;
  padding: 11px 15px;
  border-top: 1px solid var(--line);
}

.ranked-directory li:first-child {
  border-top: 0;
}

.ranked-directory b {
  color: var(--warning);
}

.ranked-directory li > a {
  font-weight: 850;
}

.ranked-directory span {
  color: var(--muted);
  font-size: .84rem;
}

.ranked-directory nav {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
}

.ranked-directory nav a {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 9px;
  background: var(--panel-2);
  font-size: .72rem;
  font-weight: 800;
}

.ranked-directory nav a:last-child {
  background: var(--accent);
  border-color: var(--accent);
  color: #0b0c12;
}

.home-board-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.home-board {
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 16px;
  background: var(--panel);
}

.home-board h3 {
  margin: 0 0 9px;
  font-size: 1.12rem;
}

.home-board ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-board li {
  border-top: 1px solid var(--line);
}

.home-board li:first-child {
  border-top: 0;
}

.home-board li a {
  display: block;
  padding: 7px 0;
  color: #dfe2ec;
  font-size: .84rem;
}

.home-board li a::before {
  content: "›";
  margin-right: 8px;
  color: var(--accent);
}

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

  .home-title {
    display: block;
  }

  .home-board-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ranked-directory li {
    grid-template-columns: 42px 1fr;
    align-items: start;
  }

  .ranked-directory span,
  .ranked-directory nav {
    grid-column: 2;
  }

  .ranked-directory nav {
    justify-content: flex-start;
  }
}

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

  .home-board-grid {
    grid-template-columns: 1fr;
  }
}

/* noheader2: logo moved into intro strip */
.home-left {
  min-width: 0;
}

.intro-brand {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 1.55rem;
}


/* AI Porn Surf header logo image lock */
.logo-only-strip {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 18px 20px;
}

.brand-image-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.brand-image-header {
  display: block;
  width: min(360px, 92vw);
  height: auto;
  max-height: 170px;
  object-fit: contain;
}


/* forced AI Porn Surf logo replacement */
.logo-only-strip {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  padding: 12px 16px !important;
}

.logo-only-strip .brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
}

.logo-only-strip .brand-image-header {
  display: block !important;
  width: min(420px, 94vw) !important;
  max-height: 190px !important;
  height: auto !important;
  object-fit: contain !important;
}

.logo-only-strip .intro-copy,
.logo-only-strip .intro-brand {
  display: none !important;
}


/* header real image logo */
.home-header .home-brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 0 0 auto !important;
  height: 58px !important;
  text-decoration: none !important;
}

.home-header .home-brand-image {
  display: block !important;
  width: auto !important;
  height: 56px !important;
  max-width: 360px !important;
  object-fit: contain !important;
}

@media (max-width: 700px) {
  .home-header .home-brand-image-link {
    height: 52px !important;
  }

  .home-header .home-brand-image {
    height: 48px !important;
    max-width: 260px !important;
  }
}


/* real header logo size fix */
.home-brand-image-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  max-width: 360px !important;
  text-decoration: none !important;
}

.home-brand-image {
  display: block !important;
  width: auto !important;
  height: 118px !important;
  max-width: 360px !important;
  object-fit: contain !important;
}

@media (max-width: 800px) {
  .home-brand-image-link {
    max-width: 260px !important;
  }

  .home-brand-image {
    height: 86px !important;
    max-width: 260px !important;
  }
}


/* header logo tagline */
.home-brand-tagline {
  margin: 0 0 0 18px !important;
  max-width: 310px !important;
  color: #d9e7f4 !important;
  font-size: 1.02rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.015em !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.35) !important;
}

@media (max-width: 900px) {
  .home-brand-tagline {
    display: none !important;
  }
}



/* Restored homepage editorial block (pre-footer-task content) */
.aps-home-editorial {
  margin-top: 64px;
  border-top: 1px solid rgba(92, 171, 255, .22);
  background:
    radial-gradient(circle at 50% 0%, rgba(47, 169, 255, .16), transparent 34%),
    linear-gradient(180deg, #09111d 0%, #05070c 78%, #04060a 100%);
  color: #aeb9ca;
}

.aps-footer-main {
  width: min(1120px, calc(100vw - 36px));
  margin: 0 auto;
  padding: 44px 0 30px;
}

.aps-footer-logo {
  display: block;
  width: min(520px, 92vw);
  height: auto;
  margin: 0 auto 26px;
  object-fit: contain;
  filter: drop-shadow(0 24px 34px rgba(0,0,0,.42));
}

.aps-footer-copy {
  column-count: 2;
  column-gap: 46px;
  font-size: .96rem;
  line-height: 1.78;
}

.aps-footer-copy h2 {
  column-span: all;
  max-width: 900px;
  margin: 0 auto 26px;
  color: #fff;
  text-align: center;
  font-size: clamp(2rem, 4.2vw, 3.65rem);
  line-height: 1.02;
  letter-spacing: -.055em;
}

.aps-footer-copy h3 {
  break-after: avoid;
  margin: 24px 0 8px;
  color: #ffffff;
  font-size: 1.22rem;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.aps-footer-copy p {
  margin: 0 0 16px;
}

@media (max-width: 900px) {
  .aps-footer-copy {
    column-count: 1;
  }
}

.aps-footer-main {
  width: min(1080px, calc(100vw - 42px)) !important;
  margin: 0 auto !important;
  padding: 54px 0 38px !important;
  text-align: center !important;
}

.aps-footer-logo {
  display: block !important;
  width: min(390px, 82vw) !important;
  height: auto !important;
  margin: 0 auto 38px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 22px 34px rgba(0,0,0,.46)) !important;
}

.aps-footer-copy {
  max-width: 980px !important;
  margin: 0 auto !important;
  text-align: center !important;
  column-count: 1 !important;
  color: #aeb9ca !important;
  font-size: 1rem !important;
  line-height: 1.82 !important;
}

.aps-footer-copy h2 {
  max-width: 900px !important;
  margin: 0 auto 34px !important;
  color: #fff !important;
  text-align: center !important;
  font-size: clamp(2.15rem, 4vw, 3.7rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -.055em !important;
}

.aps-footer-copy h3 {
  display: block !important;
  margin: 32px auto 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: none !important;
  box-shadow: none !important;
  text-align: center !important;
  color: #f4f8ff !important;
  font-size: 1.12rem !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
}

.aps-footer-copy p {
  max-width: 930px !important;
  margin: 0 auto 20px !important;
}

.aps-taxonomy-marquee + .aps-home-editorial {
  margin-top: 0;
  border-top: 0;
}

.aps-home-editorial + .site-footer {
  margin-top: 0;
}

/* AI Porn Surf combined top/directory layout */
.home-combo-section {
  border-top: 1px solid #263244;
  border-bottom: 1px solid #263244;
  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, #0b1019 0%, #080c13 100%);
  padding: 36px 0 48px;
}

.home-combo-shell {
  width: min(calc(100% - 40px), 1260px);
  margin-inline: auto;
}

.home-combo-head {
  display: flex;
  align-items: end;
  gap: 18px;
  margin-bottom: 18px;
}

.home-combo-head h1 {
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
  letter-spacing: -.055em;
}

.home-combo-grid {
  display: grid;
  grid-template-columns: minmax(390px, 1fr) minmax(0, 1.4fr);
  gap: 8px;
  align-items: start;
}

.home-combo-left,
.home-combo-right {
  min-width: 0;
  border: 1px solid #2c3546;
  border-radius: 18px;
  background: rgba(17, 22, 32, .78);
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
}

.home-combo-left {
  overflow: hidden;
}

.home-combo-right {
  padding: 18px;
}

.home-combo-left .home-heading,
.home-combo-right .home-heading {
  margin: 0;
  padding: 18px 18px 14px;
}

.home-combo-left .home-heading h2,
.home-combo-right .home-heading h2 {
  margin: 0;
  font-size: 1.7rem;
  letter-spacing: -.045em;
}

.home-combo-left .ranked-directory {
  border: 0;
  border-top: 1px solid #283142;
  border-radius: 0;
  background: transparent;
}

.home-combo-left .ranked-directory li {
  grid-template-columns: 44px minmax(120px, 1fr);
  gap: 10px 14px;
  padding: 13px 15px;
}

.home-combo-left .ranked-directory li > span {
  grid-column: 2;
}

.home-combo-left .ranked-directory nav {
  grid-column: 2;
  justify-content: flex-start;
}

.home-combo-right .home-board-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.home-combo-right .home-board {
  background: rgba(12, 17, 26, .82);
}

@media (max-width: 1050px) {
  .home-combo-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .home-combo-head {
    display: block;
  }

  .home-combo-right .home-board-grid {
    grid-template-columns: 1fr;
  }
}

/* AI Porn Surf combo equal-height fix */
.home-combo-grid {
  align-items: stretch !important;
}

.home-combo-left,
.home-combo-right {
  height: 100% !important;
}

.home-combo-left {
  display: flex !important;
  flex-direction: column !important;
}

.home-combo-left .ranked-directory {
  flex: 1 1 auto !important;
  display: grid !important;
  grid-template-rows: repeat(6, 1fr) !important;
}

.home-combo-left .ranked-directory li {
  min-height: 0 !important;
  align-content: center !important;
}

.home-combo-right {
  display: flex !important;
  flex-direction: column !important;
}

.home-combo-right .home-board-grid {
  flex: 1 1 auto !important;
}

/* remove homepage combo kicker labels */
.home-combo-head {
  margin-bottom: 20px !important;
}

.home-combo-head h1 {
  margin: 0 !important;
}

.home-combo-left .home-heading,
.home-combo-right .home-heading {
  padding-top: 20px !important;
}

.home-combo-left .home-heading .kicker,
.home-combo-right .home-heading .kicker,
.home-combo-head .kicker {
  display: none !important;
}

/* AI Porn Surf smaller centered combo title */
.home-combo-head {
  display: block !important;
  text-align: center !important;
  margin: 0 auto 22px !important;
}

.home-combo-head h1 {
  max-width: 760px !important;
  margin: 0 auto !important;
  font-size: clamp(1.35rem, 2.1vw, 1.85rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -.035em !important;
}

/* premium homepage mission title */
.premium-combo-title {
  width: min(780px, calc(100vw - 48px)) !important;
  margin: 0 auto 24px !important;
  border: 1px solid rgba(124, 181, 255, .13) !important;
  border-radius: 18px !important;
  padding: 18px 22px 16px !important;
  text-align: center !important;
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: rgba(8, 13, 21, .55) !important;
  backdrop-filter: blur(7px) saturate(115%) !important;
  -webkit-backdrop-filter: blur(7px) saturate(115%) !important;
  box-shadow:
    0 18px 52px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.045) !important;
}

/* Compare-hero-style dark grid lines + subtle green diagonal glow, reused
   verbatim from .aps-compare-hero::before in compare.css (--compare-primary-accent: #38f58b). */
.premium-combo-title::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(110deg, rgba(56, 245, 139, .07), transparent 34%),
    linear-gradient(transparent 94%, rgba(255, 255, 255, .04) 94%) !important;
  background-size: auto, 100% 28px !important;
}

.premium-combo-title h1 {
  max-width: none !important;
  margin: 0 !important;
  color: #f7fbff !important;
  font-size: clamp(1.35rem, 2vw, 1.95rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
}

.premium-combo-title h1 span {
  color: #38f58b !important;
}

.premium-combo-title h1 em {
  color: #38f58b !important;
  font-style: normal !important;
}

.premium-combo-title p {
  max-width: 650px !important;
  margin: 9px auto 0 !important;
  color: #9eacc2 !important;
  font-size: .82rem !important;
  line-height: 1.45 !important;
}

@media (max-width: 650px) {
  .premium-combo-title {
    padding: 16px 16px 14px !important;
  }

  .premium-combo-title p {
    font-size: .76rem !important;
  }
}

/* align Surf Categories heading with Top Sites */
.home-combo-right .home-heading {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.home-combo-right .home-heading h2 {
  margin-top: 0 !important;
}

/* AI Porn Surf category box color accents */
.home-combo-right .home-board {
  --cat-color: #69f0dc;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  border-color: color-mix(in srgb, var(--cat-color) 42%, #283344) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 0 0 1px rgba(0,0,0,.12),
    0 14px 30px rgba(0,0,0,.16) !important;
}

.home-combo-right .home-board::before {
  content: "" !important;
  position: absolute !important;
  inset: -1px auto -1px -1px !important;
  width: 3px !important;
  border-radius: 16px 0 0 16px !important;
  background: var(--cat-color) !important;
  opacity: .9 !important;
}

.home-combo-right .home-board:nth-child(1) { --cat-color: #42d9ff; }
.home-combo-right .home-board:nth-child(2) { --cat-color: #ff6b3d; }
.home-combo-right .home-board:nth-child(3) { --cat-color: #b58cff; }
.home-combo-right .home-board:nth-child(4) { --cat-color: #ffd45c; }
.home-combo-right .home-board:nth-child(5) { --cat-color: #ff5a5a; }
.home-combo-right .home-board:nth-child(6) { --cat-color: #ff6fae; }

.home-combo-right .home-board h3 {
  color: #ffffff !important;
}

.home-combo-right .home-board h3::after {
  content: "" !important;
  display: block !important;
  width: 38px !important;
  height: 2px !important;
  margin-top: 9px !important;
  border-radius: 99px !important;
  background: var(--cat-color) !important;
  box-shadow: 0 0 18px color-mix(in srgb, var(--cat-color) 65%, transparent) !important;
}

.home-board-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: flex-start !important;
  margin-top: auto !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 62%, #2c3442) !important;
  border-radius: 999px !important;
  padding: 8px 13px !important;
  color: #071019 !important;
  background: var(--cat-color) !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--cat-color) 18%, transparent) !important;
}

.home-board-cta:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.06) !important;
}

.home-combo-right .home-board ul {
  margin-bottom: 16px !important;
}

/* tone down category left accent line */
.home-combo-right .home-board::before {
  width: 1px !important;
  inset: 14px auto 14px 0 !important;
  opacity: .38 !important;
  border-radius: 99px !important;
}

.home-combo-right .home-board {
  border-color: color-mix(in srgb, var(--cat-color) 24%, #283344) !important;
}

/* surf categories wrapper cleanup: remove only the outer panel */
.home-combo-right {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* widen main homepage title box to match the full top/category row */
.premium-combo-title {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 24px 0 !important;
}

/* bottom-align Surf Categories boxes with Top 18 panel */
.home-combo-right {
  padding: 18px 18px 0 18px !important;
}

.home-combo-right .home-board-grid {
  flex: 1 1 auto !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
  align-content: stretch !important;
  align-items: stretch !important;
}

/* premium integrated Surf Categories wave underline */
.home-combo-right .home-heading h2 {
  display: inline-block !important;
  position: relative !important;
}

.home-combo-right .aps-total-sites-link {
  display: inline-flex;
  align-items: baseline;
  color: inherit;
  text-decoration: none;
}

.home-combo-right .aps-total-sites-arrow {
  display: inline-block;
  margin-left: .12em;
  color: #69f0dc;
  font-size: .62em;
  line-height: 1;
  transition: transform .16s ease;
}

.home-combo-right .aps-total-sites-link:hover .aps-total-sites-arrow {
  transform: translate(2px, -2px);
}

.home-combo-right .aps-total-sites-link:focus-visible {
  outline: 2px solid #69f0dc;
  outline-offset: 3px;
}

.home-combo-right .home-heading h2::after {
  content: "" !important;
  display: block !important;
  width: 142px !important;
  height: 9px !important;
  margin-top: 6px !important;
  background: linear-gradient(90deg, #42d9ff 0%, #69f0dc 45%, #b58cff 82%, transparent 100%) !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 16'%3E%3Cpath d='M0 9 C 24 3, 42 3, 66 9 C 90 15, 108 15, 132 9 C 154 4, 169 4, 180 7 L180 13 C 155 9, 142 10, 124 14 C 101 18, 84 17, 61 12 C 38 7, 22 8, 0 13 Z' fill='black'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 16'%3E%3Cpath d='M0 9 C 24 3, 42 3, 66 9 C 90 15, 108 15, 132 9 C 154 4, 169 4, 180 7 L180 13 C 155 9, 142 10, 124 14 C 101 18, 84 17, 61 12 C 38 7, 22 8, 0 13 Z' fill='black'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  filter: drop-shadow(0 0 8px rgba(105,240,220,.32)) !important;
}

/* premium Surf Categories title rail: kill ugly wave, add integrated section accent */
.home-combo-right .home-heading {
  position: relative !important;
  padding-bottom: 16px !important;
  margin-bottom: 14px !important;
}

.home-combo-right .home-heading h2 {
  display: inline-block !important;
  position: relative !important;
}

.home-combo-right .home-heading h2::after {
  content: none !important;
  display: none !important;
  background: none !important;
  -webkit-mask: none !important;
  mask: none !important;
  filter: none !important;
}

.home-combo-right .home-heading::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 1px !important;
  border-radius: 999px !important;
  background:
    linear-gradient(90deg,
      rgba(66,217,255,.95) 0%,
      rgba(105,240,220,.72) 18%,
      rgba(181,140,255,.55) 42%,
      rgba(255,107,61,.28) 64%,
      rgba(255,255,255,.08) 82%,
      transparent 100%) !important;
  box-shadow:
    0 0 16px rgba(105,240,220,.18),
    0 0 28px rgba(181,140,255,.10) !important;
}

.home-combo-right .home-heading::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  bottom: -1px !important;
  width: 54px !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #42d9ff, #69f0dc) !important;
  box-shadow: 0 0 14px rgba(66,217,255,.34) !important;
}

/* Top 18 panel green accent, matching category box treatment */
.home-combo-left {
  --top18-color: #38f58b;
  position: relative !important;
  border-color: color-mix(in srgb, var(--top18-color) 24%, #283344) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 0 0 1px rgba(0,0,0,.12),
    0 14px 30px rgba(0,0,0,.16) !important;
}

.home-combo-left::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 14px auto 14px 0 !important;
  width: 1px !important;
  border-radius: 99px !important;
  background: var(--top18-color) !important;
  opacity: .38 !important;
}

/* Top 18 editorial status labels, not generic pills */
.home-combo-left .home-heading {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 0 !important;
  width: 100% !important;
}

.top18-meta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 14px !important;
  justify-self: center !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
  position: static !important;
  flex: 0 0 auto !important;
  color: #9fb2c8 !important;
  font-size: .66rem !important;
  font-weight: 850 !important;
  letter-spacing: .085em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.top18-meta span {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}

.top18-meta span::before {
  content: "" !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: #38f58b !important;
  box-shadow: 0 0 12px rgba(56,245,139,.42) !important;
}

.top18-meta span + span {
  gap: 10px !important;
  border-left: 0 !important;
}

.top18-meta-text {
  font-style: normal !important;
  display: inline-block !important;
}

.top18-meta span + span::after {
  content: "" !important;
  position: absolute !important;
  top: calc(50% - 7px) !important;
  left: -15.5px !important;
  width: 1px !important;
  height: 14px !important;
  background: rgba(105,240,220,.18) !important;
  pointer-events: none !important;
}

.top18-meta span + span::before {
  background: #69f0dc !important;
  box-shadow: 0 0 12px rgba(105,240,220,.36) !important;
}

@media (max-width: 760px) {
  .home-combo-left .home-heading {
    display: block !important;
  }

  .top18-meta {
    margin-top: 8px !important;
    flex-wrap: wrap !important;
    white-space: normal !important;
  }
}

/* Top 18 heading: no wrap + premium checkmark status */
.home-combo-left .home-heading h2 {
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

.top18-meta {
  gap: 30px !important;
  font-size: .62rem !important;
  letter-spacing: .04em !important;
  flex-shrink: 0 !important;
}

.top18-meta span + span {
  padding-left: 0 !important;
}

.top18-meta span + span::before {
  width: 7px !important;
  height: 11px !important;
  border-radius: 0 !important;
  background: transparent !important;
  border-right: 2px solid var(--top18-color) !important;
  border-bottom: 2px solid var(--top18-color) !important;
  transform: rotate(42deg) translateY(-1px) !important;
  box-shadow: 2px 2px 10px rgba(56,245,139,.30) !important;
}

/* Surf Categories editorial meta: premium compass mark, not a pill */
.home-combo-right .home-heading {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 18px !important;
}

.surf-meta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin-left: auto !important;
  color: #aab8cc !important;
  font-size: .66rem !important;
  font-weight: 850 !important;
  letter-spacing: .055em !important;
  white-space: nowrap !important;
}

.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(56,245,139,.72) !important;
  border-image: linear-gradient(135deg, #38f58b, #38f58b, #38f58b) 1 !important;
  border-radius: 4px !important;
  background:
    radial-gradient(circle at 50% 50%, rgba(56,245,139,.95) 0, rgba(56,245,139,.95) 1px, rgba(56,245,139,.95) 2px, transparent 3px),
    linear-gradient(135deg, rgba(56,245,139,.18) 0%, rgba(56,245,139,.16) 50%, rgba(56,245,139,.14) 100%) !important;
  box-shadow:
    0 0 14px rgba(56,245,139,.22),
    inset 0 0 10px rgba(56,245,139,.12) !important;
}

.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: 900px) {
  .home-combo-right .home-heading {
    display: block !important;
  }

  .surf-meta {
    margin-top: 8px !important;
    white-space: normal !important;
  }
}

/* compact homepage header: logo + tagline inline */
.home-strip-grid {
  padding: 8px 0 !important;
  align-items: center !important;
}

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

.home-brand-image-link {
  flex: 0 0 auto !important;
  max-width: 230px !important;
}

.home-brand-image {
  height: 66px !important;
  max-width: 230px !important;
}

.home-brand-tagline {
  margin: 0 !important;
  max-width: 300px !important;
  font-size: .88rem !important;
  line-height: 1.16 !important;
}

.home-title {
  display: none !important;
}

@media (max-width: 900px) {
  .home-left {
    gap: 12px !important;
  }

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

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

/* category board action buttons: review + category */
.home-board-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: auto !important;
  flex-wrap: wrap !important;
}

.home-board-actions .home-board-cta,
.home-board-actions .home-board-review {
  margin-top: 0 !important;
}

.home-board-review {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 34%, #2c3442) !important;
  border-radius: 999px !important;
  padding: 8px 13px !important;
  color: #dcefff !important;
  background: rgba(8, 13, 22, .55) !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
}

.home-board-review:hover {
  transform: translateY(-1px) !important;
  border-color: color-mix(in srgb, var(--cat-color) 58%, #2c3442) !important;
}

/* each Surf Category listing gets direct visit + review */
.home-combo-right .home-board li {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}

.home-board-visit {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.home-board-review-link {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 34%, #2c3442) !important;
  border-radius: 999px !important;
  padding: 3px 7px !important;
  color: #cfefff !important;
  background: rgba(8, 13, 22, .42) !important;
  font-size: .6rem !important;
  font-weight: 900 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
}

.home-board-review-link::before {
  content: none !important;
}

.home-board-review-link:hover {
  transform: translateY(-1px) !important;
  border-color: color-mix(in srgb, var(--cat-color) 58%, #2c3442) !important;
}

/* subtle per-listing review verdict mark */
.home-board-review-link {
  position: relative !important;
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: .72 !important;
}

.home-board-review-link::before {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 46%, #3a4558) !important;
  border-radius: 6px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.035), rgba(255,255,255,0)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045) !important;
}

.home-board-review-link::after {
  content: "" !important;
  position: absolute !important;
  left: 8px !important;
  top: 5px !important;
  width: 5px !important;
  height: 9px !important;
  border-right: 2px solid var(--cat-color) !important;
  border-bottom: 2px solid var(--cat-color) !important;
  transform: rotate(42deg) !important;
  opacity: .9 !important;
  filter: drop-shadow(0 0 7px color-mix(in srgb, var(--cat-color) 42%, transparent)) !important;
}

.home-board-review-link:hover {
  opacity: 1 !important;
  transform: translateY(-1px) !important;
}

/* replace review checkmark with category-colored verdict diamond */
.home-board-review-link {
  position: relative !important;
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: .78 !important;
}

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

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

.home-board-review-link:hover {
  opacity: 1 !important;
  transform: translateY(-1px) !important;
}

/* custom premium tooltip for per-listing review diamond */
.home-combo-right .home-board li {
  position: relative !important;
}

.home-combo-right .home-board li:has(.home-board-review-link:hover)::after {
  content: "Open review" !important;
  position: absolute !important;
  right: 28px !important;
  top: 50% !important;
  z-index: 20 !important;
  transform: translateY(-50%) !important;
  pointer-events: none !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 38%, #263244) !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
  color: #dcefff !important;
  background:
    linear-gradient(180deg, rgba(18,24,36,.96), rgba(8,12,20,.96)) !important;
  box-shadow:
    0 10px 24px rgba(0,0,0,.34),
    0 0 14px color-mix(in srgb, var(--cat-color) 14%, transparent),
    inset 0 1px 0 rgba(255,255,255,.045) !important;
  font-size: .58rem !important;
  font-weight: 900 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

/* full-width premium View all sites CTA */
.home-board-actions {
  width: 100% !important;
  margin-top: auto !important;
}

.home-board-actions .home-board-cta {
  width: 100% !important;
  min-height: 38px !important;
  box-sizing: border-box !important;
  display: grid !important;
  place-items: center !important;
  align-self: stretch !important;
  padding: 5px 36px !important;
  position: relative !important;
  text-align: center !important;
}

.home-board-actions .home-board-cta::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  right: 16px !important;
  width: 8px !important;
  height: 8px !important;
  margin-left: 0 !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  transform: translateY(-50%) rotate(45deg) !important;
  opacity: .84 !important;
  filter: drop-shadow(0 0 6px rgba(7,16,25,.26)) !important;
}

.home-board-actions .home-board-cta:hover::after {
  transform: translate(2px, -50%) rotate(45deg) !important;
  opacity: 1 !important;
}

/* desaturated mascot watermark pattern inside main homepage section */
.home-combo-section {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
}

.home-combo-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !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: 190px auto !important;
  background-position: 26px 18px !important;
  opacity: .045 !important;
  filter: grayscale(1) saturate(0) contrast(.88) brightness(1.45) !important;
  transform: rotate(-4deg) scale(1.04) !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 */

}

.home-combo-section::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,.90) 0%, rgba(8,12,19,.94) 100%) !important;
}

/* visible mascot watermark layer fix */
.home-combo-section {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: linear-gradient(180deg, #0b1019 0%, #080c13 100%) !important;
}

.home-combo-section::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;

  /* 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 */

}

.home-combo-section::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;
}

.home-combo-shell {
  position: relative !important;
  z-index: 2 !important;
}

/* make homepage header part of the mascot watermark field */
.home-strip {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: linear-gradient(180deg, #0b1019 0%, #080c13 100%) !important;
  border-bottom: 1px solid rgba(105,240,220,.13) !important;
}

.home-strip::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 -42px !important;
  opacity: .085 !important;
  filter: grayscale(1) saturate(0) contrast(.9) brightness(1.55) !important;
  transform: rotate(-5deg) scale(1.06) !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 */

}

.home-strip::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,.07), transparent 30%),
    radial-gradient(circle at 84% 18%, rgba(178,139,255,.09), transparent 34%),
    linear-gradient(180deg, rgba(11,16,25,.72) 0%, rgba(8,12,19,.82) 100%) !important;
}

.home-strip-grid {
  position: relative !important;
  z-index: 2 !important;
}

/* brief category box descriptions */
.home-board-desc {
  margin: 9px 0 13px !important;
  min-height: 34px !important;
  max-width: 95% !important;
  color: #8fa0b8 !important;
  font-size: .73rem !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.home-board h3 + .home-board-desc {
  border-top: 0 !important;
}

/* safe inline title + description row inside category boxes */
.home-board-head {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
  margin: 0 0 12px !important;
}

.home-board-head h3 {
  flex: 0 0 auto !important;
  margin: 0 !important;
  max-width: 48% !important;
  white-space: nowrap !important;
}

.home-board-head .home-board-desc {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 28px !important;
  max-width: none !important;
  margin: 1px 0 0 !important;
  color: #8fa0b8 !important;
  font-size: .64rem !important;
  font-weight: 720 !important;
  line-height: 1.28 !important;
  letter-spacing: -.01em !important;
  text-align: left !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

@media (max-width: 760px) {
  .home-board-head {
    display: block !important;
  }

  .home-board-head h3 {
    max-width: none !important;
  }

  .home-board-head .home-board-desc {
    margin-top: 8px !important;
  }
}

/* richer right-side category descriptions */
.home-board-head .home-board-desc {
  font-size: .66rem !important;
  line-height: 1.22 !important;
  font-weight: 730 !important;
  color: #94a6bf !important;
  max-width: 190px !important;
}

/* clean aligned category descriptions: same start point, no hidden text */
.home-board-head {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr) !important;
  column-gap: 10px !important;
  align-items: start !important;
  margin: 0 0 12px !important;
}

.home-board-head h3 {
  width: 160px !important;
  min-width: 160px !important;
  max-width: 160px !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
}

.home-board-head .home-board-desc {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 1px 0 0 !important;
  color: #94a6bf !important;
  font-size: .61rem !important;
  font-weight: 730 !important;
  line-height: 1.22 !important;
  letter-spacing: -.01em !important;
  text-align: center !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: initial !important;
}

@media (max-width: 760px) {
  .home-board-head {
    display: block !important;
  }

  .home-board-head h3 {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .home-board-head .home-board-desc {
    margin-top: 8px !important;
  }
}

/* make category descriptions feel integrated, not floating text */
.home-board-head .home-board-desc {
  position: relative !important;
  box-sizing: border-box !important;
  padding: 6px 9px 6px 11px !important;
  border: 1px solid color-mix(in srgb, var(--cat-color) 28%, #263244) !important;
  border-radius: 10px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
    color-mix(in srgb, var(--cat-color) 7%, rgba(10,15,24,.72)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 0 14px color-mix(in srgb, var(--cat-color) 9%, transparent) !important;
  color: #a7b7cc !important;
  font-size: .59rem !important;
  line-height: 1.22 !important;
}

.home-board-head .home-board-desc::before {
  content: "" !important;
  position: absolute !important;
  left: -1px !important;
  top: 8px !important;
  bottom: 8px !important;
  width: 2px !important;
  border-radius: 99px !important;
  background: var(--cat-color) !important;
  opacity: .75 !important;
  box-shadow: 0 0 10px color-mix(in srgb, var(--cat-color) 55%, transparent) !important;
}

/* attach description label directly after category title */
.home-board-head {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin: 0 0 12px !important;
}

.home-board-head h3 {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.home-board-head .home-board-desc {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 6px 9px 6px 11px !important;
  font-size: .58rem !important;
  line-height: 1.2 !important;
}

@media (max-width: 760px) {
  .home-board-head {
    display: block !important;
  }

  .home-board-head .home-board-desc {
    margin-top: 8px !important;
  }
}


/* Top 20 internal row-density and rank-centering refinement. */
.home-combo-left .top10-ranked-directory > li.top10-ranked-row {
  padding: 3px 15px !important;
  row-gap: 0px !important;
}

/* top18 right-side blue review + green visit */
.home-combo-left .ranked-directory li {
  grid-template-columns: 44px minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto !important;
  column-gap: 14px !important;
  row-gap: 7px !important;
}

.home-combo-left .ranked-directory li > b {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  align-self: center !important;
  justify-self: stretch !important;
  padding-top: 0 !important;
  color: var(--warning) !important;
  font-family: inherit !important;
  font-size: 1.24rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: center !important;
}

.home-combo-left .ranked-directory li > a {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: end !important;
}

.home-combo-left .ranked-directory li > span {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: start !important;
}

.home-combo-left .ranked-directory nav {
  grid-column: 3 !important;
  grid-row: 1 / span 2 !important;
  align-self: center !important;
  justify-self: end !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
}

.home-combo-left .ranked-directory nav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 58px !important;
  padding: 8px 11px !important;
  border-radius: 9px !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  transition:
    transform .16s ease,
    border-color .16s ease,
    background .16s ease,
    box-shadow .16s ease !important;
}

/* Review: AI Companions cyan-blue */
.home-combo-left .ranked-directory nav a:first-child {
  color: #c8f6ff !important;
  border-color: rgba(66, 217, 255, .58) !important;
  background:
    linear-gradient(180deg, rgba(66, 217, 255, .18), rgba(66, 217, 255, .08)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 0 13px rgba(66,217,255,.08) !important;
}

/* Visit: green */
.home-combo-left .ranked-directory nav a:last-child {
  color: #07130f !important;
  border-color: #38f58b !important;
  background:
    linear-gradient(180deg, #38f58b, #38f58b) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 5px 16px rgba(56,245,139,.15) !important;
}

.home-combo-left .ranked-directory nav a:hover {
  transform: translateY(-1px) !important;
}

.home-combo-left .ranked-directory nav a:first-child:hover {
  border-color: #42d9ff !important;
  background:
    linear-gradient(180deg, rgba(66,217,255,.27), rgba(66,217,255,.13)) !important;
  box-shadow: 0 0 17px rgba(66,217,255,.17) !important;
}

.home-combo-left .ranked-directory nav a:last-child:hover {
  border-color: #38f58b !important;
  background:
    linear-gradient(180deg, #38f58b, #38f58b) !important;
  box-shadow: 0 7px 19px rgba(56,245,139,.22) !important;
}

@media (max-width: 560px) {
  .home-combo-left .ranked-directory li {
    grid-template-columns: 36px minmax(0, 1fr) !important;
  }

  .home-combo-left .ranked-directory nav {
    grid-column: 2 !important;
    grid-row: 3 !important;
    justify-self: start !important;
    justify-content: flex-start !important;
  }

  .home-combo-left .ranked-directory li > b {
    grid-row: 1 / span 3 !important;
  }
}


/* top18 visual order: visit then review */
.home-combo-left .ranked-directory nav a:first-child {
  order: 2 !important;
}

.home-combo-left .ranked-directory nav a:last-child {
  order: 1 !important;
}

/* premium rolling taxonomy marquee */
.aps-taxonomy-marquee {
  position: relative;
  isolation: isolate;
  width: 100%;
  overflow: hidden;
  padding: 12px 0;
  border-top: 1px solid rgba(112,164,225,.18);
  border-bottom: 1px solid rgba(105,240,220,.13);
  background:
    radial-gradient(circle at 16% 0%, rgba(66,217,255,.065), transparent 29%),
    radial-gradient(circle at 82% 100%, rgba(181,140,255,.055), transparent 31%),
    linear-gradient(180deg, #09111c 0%, #07101a 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.018),
    inset 0 -1px 0 rgba(0,0,0,.28);
}

.aps-taxonomy-marquee::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .22;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.025),
      transparent
    );
  background-size: 420px 100%;
}

.aps-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.aps-taxonomy-lane {
  position: relative;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      #000 4%,
      #000 96%,
      transparent 100%
    );
  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      #000 4%,
      #000 96%,
      transparent 100%
    );
}

.aps-taxonomy-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  min-width: max-content;
  will-change: transform;
  animation: aps-taxonomy-scroll-clean 180s linear infinite !important;
}

.aps-taxonomy-group {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  min-width: max-content;
  padding-right: 0;
}

.aps-taxonomy-term {
  --term-accent: #42d9ff;

  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 28px;
  padding: 4px 18px 4px 31px;
  color: #c8d4e4;
  font-size: clamp(.65rem, .72vw, .76rem);
  line-height: 1;
  font-weight: 830;
  letter-spacing: .075em;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(0,0,0,.45);
}

.aps-taxonomy-term::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 5px;
  height: 5px;
  border: 1px solid var(--term-accent);
  background:
    color-mix(in srgb, var(--term-accent) 28%, transparent);
  box-shadow:
    0 0 8px
    color-mix(in srgb, var(--term-accent) 33%, transparent);
  transform: translateY(-50%) rotate(45deg);
}

.aps-taxonomy-term::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 1px;
  height: 14px;
  background: rgba(141,166,199,.46);
  box-shadow: 0 0 5px rgba(105,240,220,.10);
  transform: translateY(-50%);
}

.aps-taxonomy-term:nth-child(6n + 1) {
  --term-accent: #42d9ff;
}

.aps-taxonomy-term:nth-child(6n + 2) {
  --term-accent: #69f0dc;
}

.aps-taxonomy-term:nth-child(6n + 3) {
  --term-accent: #b58cff;
}

.aps-taxonomy-term:nth-child(6n + 4) {
  --term-accent: #ffd45c;
}

.aps-taxonomy-term:nth-child(6n + 5) {
  --term-accent: #ff6fae;
}

.aps-taxonomy-term:nth-child(6n + 6) {
  --term-accent: #ff7650;
}

.aps-taxonomy-term:nth-child(3n + 1) {
  color: #e0e8f4;
}

@keyframes aps-taxonomy-scroll-clean {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (max-width: 760px) {
  .aps-taxonomy-marquee {
    padding: 10px 0;
  }

  .aps-taxonomy-track {
    animation-duration: 180s !important;
  }

  .aps-taxonomy-term {
    min-height: 26px;
    padding: 4px 15px 4px 27px;
    font-size: .62rem;
    letter-spacing: .065em;
  }

  .aps-taxonomy-term::before {
    left: 12px;
  }
}

/* Adult Chatbots homepage review hover preview */
.home-combo-right .home-board:nth-child(2) {
  overflow: visible !important;
  z-index: 5 !important;
}

.home-combo-right .home-board li.has-review-preview {
  overflow: visible !important;
  z-index: 6 !important;
}

/* Real Open review tooltip directly beside the diamond */
.home-combo-right .home-board li.has-review-preview::after {
  content: none !important;
  display: none !important;
}

.home-review-tooltip {
  position: absolute !important;
  left: auto !important;
  right: calc(100% + 8px) !important;
  top: 50% !important;
  z-index: 180 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: max-content !important;
  min-height: 25px !important;
  box-sizing: border-box !important;
  padding: 5px 10px !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transform: translateY(-50%) translateX(5px) scale(.97) !important;
  transform-origin: right center !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--cat-color) !important;
  background: none !important;
  box-shadow: none !important;
  font-size: .57rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .065em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  transition:
    opacity .16s ease,
    visibility .16s ease,
    transform .16s ease !important;
}

.home-board-review-link:hover > .home-review-tooltip,
.home-board-review-link:focus-visible > .home-review-tooltip {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(-50%) translateX(0) scale(1) !important;
}

@media (max-width: 760px) {
  .home-review-tooltip {
    display: none !important;
  }
}

.home-review-preview {
  position: absolute !important;
  left: calc(100% + 8px) !important;
  right: auto !important;
  top: 50% !important;
  z-index: 100 !important;
  width: 320px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  pointer-events: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transform: translateY(-18%) scale(.97) !important;
  transform-origin: top left !important;
  border: 1px solid
    color-mix(in srgb, var(--cat-color) 42%, #2b3749) !important;
  border-radius: 14px !important;
  background:
    linear-gradient(180deg, rgba(17,24,36,.985), rgba(7,12,20,.99))
    !important;
  box-shadow:
    0 22px 54px rgba(0,0,0,.56),
    0 0 24px color-mix(in srgb, var(--cat-color) 12%, transparent),
    inset 0 1px 0 rgba(255,255,255,.055) !important;
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease !important;
}

.home-review-preview::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 14px !important;
  right: 14px !important;
  height: 1px !important;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--cat-color),
      transparent
    ) !important;
  opacity: .72 !important;
}

.home-review-preview img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1677 / 733 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-bottom: 1px solid rgba(255,255,255,.075) !important;
  background: #080d15 !important;
}

.home-review-preview-copy {
  padding: 12px 14px 14px !important;
}

.home-review-preview-copy span {
  display: block !important;
  margin-bottom: 5px !important;
  color: var(--cat-color) !important;
  font-size: .53rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.home-review-preview-copy strong {
  display: block !important;
  margin-bottom: 6px !important;
  color: #f4f8ff !important;
  font-size: .88rem !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: -.015em !important;
}

.home-review-preview-copy p {
  margin: 0 !important;
  color: #9eacc0 !important;
  font-size: .69rem !important;
  line-height: 1.5 !important;
  font-weight: 650 !important;
}

.has-review-preview > .home-board-review-link:hover
  + .home-review-preview,
.has-review-preview > .home-board-review-link:focus-visible
  + .home-review-preview {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(-18%) scale(1) !important;
}

@media (max-width: 760px) {
  .home-review-preview {
    display: none !important;
  }
}

/* Keep Open review tooltip clickable while crossing from diamond */
.has-review-preview > .home-board-review-link {
  overflow: visible !important;
}

/* Invisible hover bridge covering the space between diamond and tooltip */
.home-review-tooltip::before {
  content: "" !important;
  position: absolute !important;
  left: 100% !important;
  right: auto !important;
  top: -5px !important;
  width: 12px !important;
  height: calc(100% + 10px) !important;
  background: transparent !important;
  pointer-events: auto !important;
}

/* Keep it visible while the diamond, bridge or tooltip is hovered */
.has-review-preview > .home-board-review-link:hover
  > .home-review-tooltip,
.has-review-preview > .home-board-review-link:focus-visible
  > .home-review-tooltip,
.has-review-preview > .home-board-review-link
  > .home-review-tooltip:hover {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(-50%) translateX(0) scale(1) !important;
}

/* Category link hover colors and precise hitboxes */
.home-combo-right .home-board li {
  padding-top: 7px !important;
  padding-bottom: 7px !important;
  cursor: default !important;
}

/* Remove vertical clickable padding from the text link */
.home-combo-right .home-board li > .home-board-visit {
  display: inline-flex !important;
  align-items: center !important;
  align-self: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  color: #dfe2ec !important;
  line-height: 1.3 !important;
  cursor: pointer !important;
  transition:
    color .16s ease,
    text-shadow .16s ease !important;
}

/* Match the hover color to each category box */
.home-combo-right .home-board li > .home-board-visit:hover,
.home-combo-right .home-board li > .home-board-visit:focus-visible {
  color: var(--cat-color) !important;
  text-shadow:
    0 0 12px
    color-mix(in srgb, var(--cat-color) 30%, transparent) !important;
}

.home-combo-right .home-board li > .home-board-visit::before {
  transition:
    color .16s ease,
    text-shadow .16s ease !important;
}

.home-combo-right .home-board li > .home-board-visit:hover::before,
.home-combo-right .home-board li > .home-board-visit:focus-visible::before {
  color: var(--cat-color) !important;
  text-shadow:
    0 0 9px
    color-mix(in srgb, var(--cat-color) 35%, transparent) !important;
}

/* Subtle outbound cue for category links */
.home-combo-right .home-board li > .home-board-visit {
  position: relative !important;
}

/*
 * The icon always owns the same width, even while invisible,
 * so hovering never moves the text or review diamond.
 */
.home-combo-right .home-board li > .home-board-visit::after {
  content: "↗" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 13px !important;
  min-width: 13px !important;
  height: 13px !important;
  margin-left: 5px !important;
  padding: 0 !important;
  overflow: visible !important;
  color: var(--cat-color) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: .68rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  opacity: 0 !important;
  transform: translate(-3px, 2px) scale(.88) !important;
  pointer-events: none !important;
  text-shadow:
    0 0 9px
    color-mix(in srgb, var(--cat-color) 34%, transparent) !important;
  transition:
    opacity .15s ease,
    transform .17s ease !important;
}

.home-combo-right .home-board li > .home-board-visit:hover::after,
.home-combo-right .home-board li > .home-board-visit:focus-visible::after {
  opacity: .95 !important;
  transform: translate(0, -1px) scale(1) !important;
}

/* Expand category title underline on card hover */
.home-combo-right .home-board h3 {
  display: table !important;
  width: auto !important;
}

.home-combo-right .home-board h3::after {
  width: 38px !important;
  transition:
    width .28s cubic-bezier(.2,.8,.2,1),
    box-shadow .28s ease !important;
}

.home-combo-right .home-board:hover h3::after,
.home-combo-right .home-board:focus-within h3::after {
  width: 100% !important;
  box-shadow:
    0 0 20px
    color-mix(in srgb, var(--cat-color) 72%, transparent) !important;
}

/* Slower category underline retraction */
.home-combo-right .home-board h3::after {
  transition:
    width .65s cubic-bezier(.16, 1, .3, 1),
    box-shadow .48s ease !important;
}

/* Expansion stays quicker and responsive */
.home-combo-right .home-board:hover h3::after,
.home-combo-right .home-board:focus-within h3::after {
  transition:
    width .28s cubic-bezier(.2, .8, .2, 1),
    box-shadow .28s ease !important;
}

/* Top 18 Adult Chatbots review hover preview */
.home-combo-left {
  z-index: 30 !important;
  overflow: visible !important;
}

.home-combo-left .ranked-directory,
.home-combo-left .ranked-directory li,
.home-combo-left .ranked-directory nav {
  overflow: visible !important;
}

.home-combo-left .ranked-directory li.top18-has-review-preview {
  position: relative !important;
  z-index: 40 !important;
}

.home-combo-left .top18-review-trigger {
  position: relative !important;
  overflow: visible !important;
  z-index: 50 !important;
}

.top18-review-preview {
  position: absolute !important;
  left: calc(100% + 12px) !important;
  right: auto !important;
  top: 50% !important;
  z-index: 300 !important;
  display: block !important;
  width: 320px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  pointer-events: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transform: translateY(-50%) translateX(-5px) scale(.97) !important;
  transform-origin: left center !important;
  border: 1px solid rgba(66,217,255,.44) !important;
  border-radius: 14px !important;
  color: initial !important;
  background:
    linear-gradient(
      180deg,
      rgba(17,24,36,.99),
      rgba(7,12,20,.995)
    ) !important;
  box-shadow:
    0 24px 58px rgba(0,0,0,.62),
    0 0 25px rgba(66,217,255,.14),
    inset 0 1px 0 rgba(255,255,255,.055) !important;
  text-align: left !important;
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease !important;
}

.top18-review-preview::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 15px !important;
  right: 15px !important;
  height: 1px !important;
  background:
    linear-gradient(
      90deg,
      transparent,
      #42d9ff,
      transparent
    ) !important;
  opacity: .78 !important;
}

.top18-review-preview img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1677 / 733 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-bottom: 1px solid rgba(255,255,255,.075) !important;
  background: #080d15 !important;
}

.top18-review-preview-copy {
  display: block !important;
  padding: 12px 14px 14px !important;
}

.top18-review-preview-copy small {
  display: block !important;
  margin-bottom: 5px !important;
  color: #42d9ff !important;
  font-size: .53rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.top18-review-preview-copy strong {
  display: block !important;
  margin-bottom: 6px !important;
  color: #f4f8ff !important;
  font-size: .88rem !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: -.015em !important;
}

.top18-review-preview-copy > span {
  display: block !important;
  color: #9eacc0 !important;
  font-size: .69rem !important;
  line-height: 1.5 !important;
  font-weight: 650 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.top18-review-trigger:hover > .top18-review-preview,
.top18-review-trigger:focus-visible > .top18-review-preview {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(-50%) translateX(0) scale(1) !important;
}

@media (max-width: 1050px) {
  .top18-review-preview {
    width: 280px !important;
  }
}

@media (max-width: 760px) {
  .top18-review-preview {
    display: none !important;
  }
}

/* BEGIN LEFT COLUMN REVIEW PREVIEW STACKING */

/*
 * The category preview opens to the right.
 * Raise only the three left-column cards so their previews paint above
 * the neighboring right-column cards.
 */
.home-combo-right .home-board[data-home-category="ai-companions"],
.home-combo-right .home-board[data-home-category="ai-sex-bots"],
.home-combo-right .home-board[data-home-category="ai-image-editors"] {
  position: relative !important;
  z-index: 7 !important;
}

/* END LEFT COLUMN REVIEW PREVIEW STACKING */

/* BEGIN LOCAL SITE FAVICONS */

/* Locally cached site identities inside homepage category rows. */
.home-combo-right
.home-board
li
>
.home-board-visit
.home-site-favicon {
  display: block !important;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  margin-right: 8px !important;
  object-fit: contain !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 5px !important;
  background: rgba(7,12,20,.82) !important;
  box-shadow:
    0 2px 8px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.05) !important;
}

.home-combo-right
.home-board
li
>
.home-board-visit
.home-site-name {
  display: inline-block !important;
  min-width: 0 !important;
}

@media (max-width: 760px) {
  .home-combo-right
  .home-board
  li
  >
  .home-board-visit
  .home-site-favicon {
    width: 17px !important;
    min-width: 17px !important;
    height: 17px !important;
    margin-right: 7px !important;
  }
}

/* END LOCAL SITE FAVICONS */

/* BEGIN SAFE TOP 20 SCROLL */

/*
 * Keep the existing equal-height homepage columns.
 * The ranking list occupies only the space already assigned
 * to it and scrolls internally.
 */
.home-combo-grid {
  min-height: 0 !important;
}

.home-combo-left {
  min-height: 0 !important;
  overflow: visible !important;
}

.home-combo-left .top10-ranked-directory {
  display: block !important;
  flex: 1 1 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-width: thin !important;
  scrollbar-color:
    rgba(56,245,139,.48)
    rgba(255,255,255,.035) !important;
}

.home-combo-left
.top10-ranked-directory::-webkit-scrollbar {
  width: 6px !important;
}

.home-combo-left
.top10-ranked-directory::-webkit-scrollbar-track {
  background: rgba(255,255,255,.035) !important;
  border-radius: 999px !important;
}

.home-combo-left
.top10-ranked-directory::-webkit-scrollbar-thumb {
  background: rgba(56,245,139,.46) !important;
  border-radius: 999px !important;
}

.home-combo-left
.top10-ranked-directory::-webkit-scrollbar-thumb:hover {
  background: rgba(56,245,139,.68) !important;
}

/*
 * Preserve the existing row grid and favicon implementation.
 */
.home-combo-left
.top10-ranked-directory
.top10-site-link {
  min-width: 0 !important;
  padding-left: 29px !important;
  overflow: hidden !important;
  background-image: var(--top10-icon) !important;
  background-position: left center !important;
  background-repeat: no-repeat !important;
  background-size: 20px 20px !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.home-combo-left
.top10-ranked-directory
.top10-ranked-row
>
span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
}

/*
 * Floating preview stays outside the scrolling element.
 */
.top10-floating-preview {
  --top10-preview-accent: #42d9ff;
  position: fixed !important;
  z-index: 9999 !important;
  display: block !important;
  width: 320px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: auto !important;
  transform: translateX(-5px) scale(.97) !important;
  transform-origin: left center !important;
  border: 1px solid
    color-mix(
      in srgb,
      var(--top10-preview-accent) 44%,
      transparent
    ) !important;
  border-radius: 14px !important;
  color: initial !important;
  background:
    linear-gradient(
      180deg,
      rgba(17,24,36,.99),
      rgba(7,12,20,.995)
    ) !important;
  box-shadow:
    0 24px 58px rgba(0,0,0,.62),
    0 0 25px
      color-mix(
        in srgb,
        var(--top10-preview-accent) 14%,
        transparent
      ),
    inset 0 1px 0 rgba(255,255,255,.055) !important;
  text-align: left !important;
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease !important;
}

.top10-floating-preview.is-visible {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateX(0) scale(1) !important;
}

.top10-floating-preview::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 15px !important;
  right: 15px !important;
  height: 1px !important;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--top10-preview-accent),
      transparent
    ) !important;
  opacity: .78 !important;
}

.top10-floating-preview-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1677 / 733 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-bottom:
    1px solid rgba(255,255,255,.075) !important;
  background: #080d15 !important;
}

.top10-floating-preview-copy {
  display: block !important;
  padding: 12px 14px 14px !important;
}

.top10-floating-preview-copy small {
  display: block !important;
  margin-bottom: 5px !important;
  color: var(--top10-preview-accent) !important;
  font-size: .53rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.top10-floating-preview-copy strong {
  display: block !important;
  margin-bottom: 6px !important;
  color: #f4f8ff !important;
  font-size: .88rem !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
}

.top10-floating-preview-copy > span {
  display: block !important;
  color: #9eacc0 !important;
  font-size: .69rem !important;
  line-height: 1.5 !important;
  font-weight: 650 !important;
}

@media (max-width: 1050px) {
  .top10-floating-preview {
    width: 280px !important;
  }
}

@media (max-width: 760px) {
  .home-combo-left
  .top10-ranked-directory {
    height: auto !important;
    max-height: 510px !important;
    flex: none !important;
  }

  .home-combo-left
  .top10-ranked-directory
  .top10-site-link {
    padding-left: 25px !important;
    background-size: 17px 17px !important;
  }

  .top10-floating-preview {
    display: none !important;
  }
}

/* END SAFE TOP 20 SCROLL */

/* BEGIN TOP20 SIX-VISIBLE-ROWS */

/*
 * Preserve the existing card dimensions and compact row spacing.
 * An unscoped earlier rule (.home-combo-left .ranked-directory)
 * also sets "display: grid !important" with fixed equal-fraction
 * row tracks, which this element inherits since it carries both
 * the "ranked-directory" and "top10-ranked-directory" classes; at
 * equal specificity that produced near-uniform row heights that
 * clipped the longer reused descriptions in the Top 20 list.
 * Rather than fight that cascade with more !important grid rules,
 * this keeps the container's existing block layout (as already
 * used below 761px) so each row's height is simply its natural
 * content height. The container keeps its existing fixed/
 * flex-stretched height and overflow-y: auto, so the panel's
 * external footprint is unchanged and items scroll from 01
 * through 20 inside it.
 */
@media (min-width: 761px) {
  .home-combo-left .top10-ranked-directory {
    display: block !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .home-combo-left
  .top10-ranked-directory
  >
  li.top10-ranked-row {
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 0 !important;
  }
}

/* END TOP20 SIX-VISIBLE-ROWS */

/* BEGIN HOMEPAGE CONTINUOUS BACKGROUND */

/*
 * One uninterrupted mascot field for the homepage.
 * This replaces the separately clipped header and main-section fields while
 * preserving the homepage's existing 175px watermark scale.
 */
body.home-page {
  position: relative !important;
  isolation: isolate !important;
  min-height: 100vh !important;
  overflow-x: clip !important;

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

body.home-page::before {
  content: "" !important;
  position: fixed !important;
  inset: -80px !important;
  z-index: 0 !important;
  pointer-events: none !important;
  contain: paint !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 */

}

body.home-page::after {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  contain: paint !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;
}

body.home-page > main,
body.home-page > section,
body.home-page > footer {
  position: relative !important;
  z-index: 2 !important;
}

body.home-page .home-strip {
  isolation: auto !important;
  overflow: visible !important;
  background: transparent !important;
  border-bottom:
    1px solid rgba(105,240,220,.13) !important;
}

body.home-page .home-combo-section {
  isolation: auto !important;
  background: transparent !important;
}

body.home-page .home-strip::before,
body.home-page .home-strip::after,
body.home-page .home-combo-section::before,
body.home-page .home-combo-section::after {
  content: none !important;
  display: none !important;
}

/* END HOMEPAGE CONTINUOUS BACKGROUND */

/* BEGIN HOMEPAGE HEADER CONTINUITY FIX */

/*
 * Use one continuous homepage watermark field behind the header and content.
 * The existing homepage mascot scale remains exactly 175px.
 */
body.home-page {
  position: relative !important;
  isolation: isolate !important;
  min-height: 100vh !important;
  overflow-x: clip !important;

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

body.home-page::before {
  content: "" !important;
  position: fixed !important;
  inset: -80px !important;
  z-index: 0 !important;
  pointer-events: none !important;
  contain: paint !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 */

}

body.home-page::after {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  contain: paint !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;
}

body.home-page > main,
body.home-page > section,
body.home-page > footer {
  position: relative !important;
  z-index: 2 !important;
}

body.home-page .home-strip,
body.home-page .home-combo-section {
  isolation: auto !important;
  background: transparent !important;
}

body.home-page .home-strip {
  overflow: visible !important;
  border-bottom:
    1px solid rgba(105,240,220,.13) !important;
}

body.home-page .home-strip::before,
body.home-page .home-strip::after,
body.home-page .home-combo-section::before,
body.home-page .home-combo-section::after {
  content: none !important;
  display: none !important;
}

/* END HOMEPAGE HEADER CONTINUITY FIX */

/* BEGIN HOMEPAGE HEADER PARITY FINAL */

/* Exact header geometry shared with category and review pages. */
body.home-page .home-strip {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 83px !important;
  min-height: 83px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home-page .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.home-page .home-strip .home-left {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important;
  height: 66px !important;
}

body.home-page .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.home-page .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.home-page .home-strip .home-brand-tagline {
  margin: 0 !important;
  max-width: 300px !important;
  font-size: .88rem !important;
  line-height: 1.16 !important;
}

body.home-page .home-strip .home-brand-copy {
  display: flex;
  min-width: 0;
  max-width: 300px;
  flex-direction: column;
  align-items: flex-start;
}

body.home-page .home-strip .home-compare-cta {
  display: inline-flex;
  min-height: 30px;
  max-width: 100%;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: #d9e7f4;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
}

body.home-page .home-strip .home-compare-cta:focus-visible {
  outline: 2px solid #38f58b;
  outline-offset: 3px;
}

body.home-page .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.home-page .home-strip .home-search input,
body.home-page .home-strip .home-search .button {
  box-sizing: border-box !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
}

body.home-page .home-strip .home-search input {
  padding: 0 13px !important;
  border-radius: 9px !important;
}

body.home-page .home-strip .home-search .button {
  padding: 7px 12px !important;
}

@media (max-width: 900px) {
  body.home-page .home-strip {
    height: auto !important;
    min-height: 0 !important;
  }

  body.home-page .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.home-page .home-strip .home-search {
    width: 100% !important;
  }

  body.home-page .home-strip .home-brand-tagline {
    display: block !important;
  }

  body.home-page .home-strip .home-compare-cta {
    min-height: 40px;
  }
}

@media (max-width: 650px) {
  body.home-page .home-strip .home-brand-image-link,
  body.home-page .home-strip .home-brand-image {
    height: 58px !important;
  }

  body.home-page .home-strip .home-left {
    height: auto !important;
    min-height: 58px !important;
  }

  body.home-page .home-strip .home-brand-image {
    max-width: 205px !important;
  }

  body.home-page .home-strip .home-search {
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home-page .home-strip .home-compare-cta {
    transition: none;
  }
}

/* END HOMEPAGE HEADER PARITY FINAL */

/* BEGIN SQUARE HOMEPAGE TITLE PANEL */
body.home-page .home-combo-head.premium-combo-title,
body.home-page .home-combo-head.premium-combo-title::before,
body.home-page .home-combo-head.premium-combo-title::after {
  border-radius: 0 !important;
}
/* END SQUARE HOMEPAGE TITLE PANEL */

/* BEGIN CONNECTED CATEGORY DESCRIPTION HOVER */

/*
 * Use the title underline itself as the connector.
 * It extends across the 10px header gap and meets the description box.
 */
.home-combo-right
.home-board-head
h3::after {
  transform-origin: left center !important;
}

.home-combo-right
.home-board:hover
.home-board-head
h3::after,
.home-combo-right
.home-board:focus-within
.home-board-head
h3::after {
  width: calc(100% + 11px) !important;

  box-shadow:
    0 0 20px
    color-mix(
      in srgb,
      var(--cat-color) 72%,
      transparent
    ) !important;
}

/* Disable the old separate bridge that caused the visible break. */
.home-combo-right
.home-board-head
.home-board-desc::after {
  content: none !important;
  display: none !important;
}

.home-combo-right
.home-board-head
.home-board-desc {
  z-index: 2 !important;
  transform: scale(1) !important;
  transform-origin: left center !important;

  transition:
    transform .22s cubic-bezier(.2, .8, .2, 1),
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease,
    color .22s ease,
    filter .22s ease !important;
}

.home-combo-right
.home-board:hover
.home-board-desc,
.home-combo-right
.home-board:focus-within
.home-board-desc {
  transform: scale(1.018) !important;

  border-color:
    color-mix(
      in srgb,
      var(--cat-color) 62%,
      #34445a
    ) !important;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.075),
      rgba(255,255,255,.025)
    ),
    color-mix(
      in srgb,
      var(--cat-color) 14%,
      rgba(10,15,24,.80)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 8px 20px rgba(0,0,0,.25),
    0 0 22px
    color-mix(
      in srgb,
      var(--cat-color) 24%,
      transparent
    ) !important;

  color: #d6e2f2 !important;
  filter: brightness(1.06) !important;
}

.home-combo-right
.home-board:hover
.home-board-desc::before,
.home-combo-right
.home-board:focus-within
.home-board-desc::before {
  opacity: 1 !important;

  box-shadow:
    0 0 15px
    color-mix(
      in srgb,
      var(--cat-color) 82%,
      transparent
    ) !important;
}

@media (max-width: 760px) {
  .home-combo-right
  .home-board:hover
  .home-board-head
  h3::after,
  .home-combo-right
  .home-board:focus-within
  .home-board-head
  h3::after {
    width: 100% !important;
  }

  .home-combo-right
  .home-board:hover
  .home-board-desc,
  .home-combo-right
  .home-board:focus-within
  .home-board-desc {
    transform: scale(1.01) !important;
  }
}

/* END CONNECTED CATEGORY DESCRIPTION HOVER */

/* BEGIN SITE TITLE GO LABEL */

/*
 * Reveal "Go to X site" immediately after the site title.
 * This affects only the main site-title link, never the review diamond.
 */
.home-combo-right
.home-board
li
>
.home-board-visit {
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

.home-combo-right
.home-board
.home-site-go-label {
  display: inline-block !important;

  max-width: 0 !important;
  margin-left: 0 !important;
  overflow: hidden !important;

  color: var(--cat-color) !important;

  font-size: .56rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: .025em !important;
  white-space: nowrap !important;

  opacity: 0 !important;
  transform: translateX(-5px) !important;

  text-shadow:
    0 0 12px
    color-mix(
      in srgb,
      var(--cat-color) 38%,
      transparent
    ) !important;

  transition:
    max-width .24s cubic-bezier(.2,.8,.2,1),
    margin-left .24s cubic-bezier(.2,.8,.2,1),
    opacity .16s ease,
    transform .24s cubic-bezier(.2,.8,.2,1)
    !important;
}

.home-combo-right
.home-board
li
>
.home-board-visit:hover
.home-site-go-label,
.home-combo-right
.home-board
li
>
.home-board-visit:focus-visible
.home-site-go-label {
  max-width: 150px !important;
  margin-left: 8px !important;

  opacity: 1 !important;
  transform: translateX(0) !important;
}

/* Keep the existing category-colored title hover. */
.home-combo-right
.home-board
li
>
.home-board-visit:hover
.home-site-name,
.home-combo-right
.home-board
li
>
.home-board-visit:focus-visible
.home-site-name {
  color: var(--cat-color) !important;

  text-shadow:
    0 0 12px
    color-mix(
      in srgb,
      var(--cat-color) 30%,
      transparent
    ) !important;
}

/* END SITE TITLE GO LABEL */

/* BEGIN SEVEN-ROW HOMEPAGE CATEGORY BOARDS */

/*
 * Keep every category board on the same internal rhythm: a fixed header,
 * seven unchanged listing-row slots, then one compact action gap. Categories
 * with fewer products leave the unused part of the list region empty.
 */
.home-combo-right .home-board {
  height: 384px !important;
  min-height: 384px !important;
  max-height: 384px !important;
}

.home-combo-right .home-board-head {
  flex: 0 0 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  margin-bottom: 0 !important;
}

.home-combo-right .home-board > ul {
  flex: 0 0 259px !important;
  height: 259px !important;
  min-height: 259px !important;
  margin: 0 !important;
}

.home-combo-right .home-board > .home-board-actions {
  flex: 0 0 32px !important;
  align-items: flex-start !important;
  height: 32px !important;
  min-height: 32px !important;
  margin-top: 7px !important;
}

/* The two expanded top boards size to fifteen rows and define row one. */
.home-combo-right .home-board-grid {
  grid-template-rows: auto auto auto !important;
}

.home-combo-right .home-board[data-home-category="ai-companions"],
.home-combo-right .home-board[data-home-category="ai-porn-generators"] {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.home-combo-right .home-board[data-home-category="ai-companions"] > ul,
.home-combo-right .home-board[data-home-category="ai-porn-generators"] > ul {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
}

/* Compact the bottom row to the four-item editor list and match both boxes. */
.home-combo-right .home-board[data-home-category="ai-image-editors"],
.home-combo-right .home-board[data-home-category="anime-ai"] {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.home-combo-right .home-board[data-home-category="ai-image-editors"] > ul {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
}

.home-combo-right .home-board[data-home-category="anime-ai"] > ul {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
}

.home-combo-right .home-board-head .home-board-desc {
  display: -webkit-box !important;
  block-size: calc(2.4em + 14px) !important;
  min-block-size: calc(2.4em + 14px) !important;
  max-block-size: calc(2.4em + 14px) !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

@media (max-width: 760px) {
  .home-combo-right .home-board {
    height: 420px !important;
    min-height: 420px !important;
    max-height: 420px !important;
  }

  .home-combo-right .home-board-head {
    flex-basis: 88px !important;
    height: 88px !important;
    min-height: 88px !important;
  }
}

@media (max-width: 650px) {
  .home-combo-right .home-board-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
  }
}

/* END SEVEN-ROW HOMEPAGE CATEGORY BOARDS */




/* AIPORNSURF HOME INTRO IMAGE START */
.home-intro-visual {
  display: block;
  width: 220px;
  max-width: 55%;
  margin: 16px auto 0;
}

.home-intro-visual img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}
/* AIPORNSURF HOME INTRO IMAGE END */

/* AIPORNSURF HOMEPAGE SEARCH GREEN 20260712-205438 */
html body.home-page > main > .home-strip
.home-search .button.button-primary {
  color: #07130f !important;
  border-color: #38f58b !important;
  background: linear-gradient(180deg, #38f58b, #38f58b) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 5px 16px rgba(79,215,159,.15) !important;
}

html body.home-page > main > .home-strip
.home-search .button.button-primary:hover,
html body.home-page > main > .home-strip
.home-search .button.button-primary:focus-visible {
  color: #07130f !important;
  border-color: #38f58b !important;
  background: linear-gradient(180deg, #38f58b, #38f58b) !important;
  filter: brightness(1.06) !important;
}


/* Homepage category visual order; DOM and positional color mapping remain unchanged. */
.home-combo-right .home-board[data-home-category="ai-companions"] { order: 1 !important; }
.home-combo-right .home-board[data-home-category="ai-porn-generators"] { order: 2 !important; }
.home-combo-right .home-board[data-home-category="ai-sex-bots"] { order: 3 !important; }
.home-combo-right .home-board[data-home-category="roleplay-ai"] { order: 4 !important; }
.home-combo-right .home-board[data-home-category="ai-image-editors"] { order: 5 !important; }
.home-combo-right .home-board[data-home-category="anime-ai"] { order: 6 !important; }
/* APS HOME EDITORIAL RANKINGS START */
/* Neutralize the category-board section's own border-bottom only where it
   is immediately followed by this section, so the divider line above this
   panel disappears without altering .home-combo-section itself elsewhere. */
.home-combo-section:has(+ .aps-editorial-rankings) {
  border-bottom: 0;
}

.aps-editorial-rankings {
  /* .home-combo-section (untouched) reserves 48px of its own bottom
     padding after the last card row. Pull this section up by 44px,
     leaving 4px of that padding plus this panel's own 20px top padding
     (.aps-editorial-rankings-panel) -- a ~24px visible gap to the
     category boxes above, tighter than before but still intentional. */
  margin-top: -44px;
  padding: 0 0 48px;
}

.aps-editorial-rankings-panel {
  /* .home-combo-right (untouched) has its own border removed and relies on
     an 18px right padding to inset its visible card borders from the
     shared shell edge; the leftmost card (.home-combo-left) has no such
     inset. Match that same asymmetry here via margin-right (width stays
     auto, so this only pulls the right border inward, not the left). */
  margin-right: 19px;
  position: relative;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 20px 26px 24px;
  box-shadow: none;
}

.aps-editorial-rankings-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-bottom: 22px;
}

.aps-editorial-rankings-head-copy {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  min-width: 0;
  width: 100%;
}

.aps-editorial-rankings-head-copy h2 {
  margin: 0;
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  letter-spacing: -.03em;
}

.aps-editorial-rankings-head-copy .kicker {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  color: #38f58b;
  background: rgba(56,245,139,.08);
  border: 1px solid rgba(56,245,139,.3);
  border-left: 2px solid #38f58b;
  border-radius: 6px;
  padding: 4px 9px;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.2;
  white-space: nowrap;
  margin-left: auto;
  transform: translateY(4px);
}

.aps-editorial-rankings-cta {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  border: 1px solid #38f58b;
  border-radius: 9px;
  padding: 7px 15px;
  color: #07130f;
  background: linear-gradient(180deg, #38f58b, #38f58b);
  font-size: .78rem;
  font-weight: 900;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 5px 16px rgba(56,245,139,.15);
  transition: transform .16s ease, box-shadow .16s ease;
}

.aps-editorial-rankings-actions {
  margin-top: 16px;
}

.aps-editorial-rankings-cta:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 7px 19px rgba(56,245,139,.22);
}

.aps-editorial-rankings-cta:focus-visible {
  outline: 2px solid #69f0dc;
  outline-offset: 3px;
}

.aps-editorial-rankings-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(10, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 12px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Two-column desktop layout only: widen the list past the panel's own
   26px left/right padding (via matching negative margin) so the outer
   columns reach the panel's edges -- the same edges the category-board
   grid above aligns to (home-board-grid, inset 18px off the shared
   shell) -- while widening column-gap so the two columns read as more
   clearly separated. Columns stay equal width (grid-template-columns is
   unchanged) and row-gap (vertical spacing) is untouched. */
@media (min-width: 701px) {
  .aps-editorial-rankings-list {
    gap: 12px 18px;
    width: calc(100% + 52px);
    margin-inline: -26px;
  }

  /* Match the head row to the exact same widened container as the list. */
  .aps-editorial-rankings-head {
    width: calc(100% + 52px);
    margin-inline: -26px;
  }

  .aps-editorial-rankings-actions {
    width: calc(100% + 52px);
    margin-inline: -26px;
  }
}

/* The row (<li>) is the grid-laid-out visual card. The primary /go/ visit
   link is an absolutely-positioned stretched overlay (no visible content of
   its own) so it can sit behind the rank/favicon/identity/score/arrow while
   still covering the whole card as a click target; the secondary "Read
   Review" link lives inline after the name and is promoted above the
   overlay (position + z-index) so it stays independently clickable -- this
   keeps neither link nesting inside the other. */
.aps-editorial-rankings-row {
  --row-accent: #69f0dc;
  position: relative;
  z-index: 0;
  display: grid;
  grid-template-columns: 34px 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  min-width: 0;
  padding: 10px 16px;
  list-style: none;
  border: 1px solid #303a48;
  border-left-color: transparent;
  border-radius: 0;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--row-accent) 9%, transparent),
      transparent 44%
    ),
    linear-gradient(180deg, #111823, #0c111a);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    inset 0 -1px 0 rgba(0,0,0,.24);
  transition: border-color .16s ease, background .16s ease;
}

.aps-editorial-rankings-row::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: -1px;
  z-index: 0;
  width: 3px;
  border-radius: 0;
  background: var(--row-accent);
  opacity: .9;
  pointer-events: none;
  transition: opacity .16s ease;
}

.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:hover),
.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:focus-visible) {
  border-color: #3b4656;
  border-left-color: transparent;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--row-accent) 13%, transparent),
      transparent 47%
    ),
    linear-gradient(180deg, #131b27, #0c111a);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 -1px 0 rgba(0,0,0,.24);
}

.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:hover)::before,
.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:focus-visible)::before {
  opacity: 1;
}

.aps-editorial-rankings-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.aps-editorial-rankings-link:focus-visible {
  outline: 2px solid var(--row-accent);
  outline-offset: -2px;
  border-radius: 0;
}

.aps-editorial-rankings-rank {
  color: var(--row-accent);
  font-size: 1.3rem;
  font-weight: 900;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.aps-editorial-rankings-favicon {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 8px;
  background: #111824;
  object-fit: contain;
}

.aps-editorial-rankings-identity {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.aps-editorial-rankings-name-row {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px;
}

.aps-editorial-rankings-name {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: .98rem;
  font-weight: 800;
  letter-spacing: -.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aps-editorial-rankings-score {
  color: #f7f8fb;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: -.02em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.aps-editorial-rankings-score span {
  color: #747f91;
  font-size: .72rem;
  font-weight: 760;
}

.aps-editorial-rankings-arrow {
  color: var(--row-accent);
  font-size: .92rem;
  line-height: 1;
  transition: none;
}

.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:hover) .aps-editorial-rankings-arrow,
.aps-editorial-rankings-row:has(.aps-editorial-rankings-link:focus-visible) .aps-editorial-rankings-arrow {
  transform: none;
}

/* Compact secondary link: deliberately smaller/muted so it never competes
   with the name it follows. Positioned above the stretched primary link
   (z-index) so it stays independently clickable. */
.aps-editorial-rankings-review {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  color: #8b93a3;
  font-size: .7rem;
  font-weight: 760;
  letter-spacing: .01em;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-color: rgba(139,147,163,.45);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color .16s ease, text-decoration-color .16s ease;
}

.aps-editorial-rankings-review:hover {
  color: var(--row-accent);
  text-decoration-color: var(--row-accent);
}

.aps-editorial-rankings-review:focus-visible {
  outline: 2px solid var(--row-accent);
  outline-offset: 2px;
  border-radius: 3px;
}

/* 3-column desktop layout (30 sites, 10 per column) needs each card
   narrower than the old 2-column layout. Shrink only width-driving
   properties -- horizontal padding, the row's internal (horizontal)
   gap, rank/favicon size and text sizes -- so rank, favicon, name,
   "Read Review", score and arrow still fit on one line. Vertical
   padding, row-gap, border/background/shadow/hover design, and
   mobile (<=700px) styling are all untouched. Placed after the base
   rules above so it wins the cascade at equal specificity. */
@media (min-width: 701px) {
  .aps-editorial-rankings-row {
    grid-template-columns: 22px 22px minmax(0, 1fr) auto auto;
    gap: 5px;
    padding: 10px 6px;
  }

  .aps-editorial-rankings-rank {
    font-size: .96rem;
  }

  .aps-editorial-rankings-favicon {
    width: 22px;
    height: 22px;
  }

  .aps-editorial-rankings-name-row {
    gap: 4px;
  }

  .aps-editorial-rankings-name {
    font-size: .8rem;
  }

  .aps-editorial-rankings-review {
    font-size: .58rem;
  }

  .aps-editorial-rankings-score {
    font-size: .88rem;
  }

  .aps-editorial-rankings-score span {
    font-size: .62rem;
  }

  .aps-editorial-rankings-arrow {
    font-size: .78rem;
  }
}

@media (max-width: 700px) {
  .aps-editorial-rankings-panel {
    padding: 20px 18px 24px;
  }

  .aps-editorial-rankings-list {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
  }

  .aps-editorial-rankings-row {
    grid-template-columns: 30px 30px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 9px 13px;
  }

  .aps-editorial-rankings-arrow {
    display: none;
  }

  /* The name column is much narrower on a single-column mobile card, so let
     "Read Review" wrap to its own line instead of squeezing the site name
     down to a few characters. */
  .aps-editorial-rankings-name-row {
    flex-wrap: wrap;
    row-gap: 0;
  }
}

/* BEGIN HOMEPAGE HERO — EXACT COMPARE HERO GEOMETRY (desktop only)
   .aps-compare-hero-motif / .aps-compare-hero::after values copied
   verbatim from compare.css (only selectors + "VS"→"AI" text differ).
   The hero card's own width/height/padding/background/border/gradient/
   fonts are untouched — .home-hero-motif and the separator are absolutely
   positioned (out of flow), exactly like Compare does, so nothing here
   changes the box model of .premium-combo-title itself. */
@media (min-width: 651px) {
  body.home-page .home-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 780px;
  }

  body.home-page .premium-combo-title h1 {
    text-align: left !important;
  }

  body.home-page .premium-combo-title p {
    margin: 9px 0 0 !important;
    text-align: left !important;
  }

  /* Separator: verbatim copy of .aps-compare-hero::after. */
  body.home-page .home-combo-head.premium-combo-title::after {
    content: "";
    position: absolute;
    pointer-events: none;
    top: 0;
    right: 31%;
    width: 1px;
    height: 100%;
    background: linear-gradient(transparent, color-mix(in srgb, #38f58b 40%, transparent), transparent);
  }

  /* "AI" motif: line-height, letter-spacing, stroke, opacity and reliance
     on the hero's own overflow:hidden to crop it are unchanged from
     compare.css; only font-size, right-offset, the vertical scaleY and
     the "VS"→"AI" text differ.

     bottom:-6% anchors the box's bottom edge exactly like Compare's does
     (unchanged from the original construction). The line-box itself
     (font-size 6.8rem × line-height .8 ≈ 87px) is shorter than the hero,
     so instead of growing font-size (a horizontal-size change too, since
     letter-spacing is em-based) or offsetting with top/margin-top/
     translateY (which would just move the box, not fill more of the
     hero), scaleY(1.2) stretches the box vertically from a bottom-right
     transform-origin: the bottom edge and right edge it's already
     anchored to don't move, only the top edge is pushed further up,
     reaching/slightly clipping the hero's top border. translateX(-6px)
     nudges the whole (already-sized/positioned) glyph left by a few
     pixels so more of the tightly-kerned "I" clears the right-edge crop. */
  body.home-page .home-hero-motif {
    position: absolute;
    right: 0;
    bottom: -6%;
    transform: scaleY(1.2) translateX(-6px);
    transform-origin: bottom right;
    text-align: right;
    color: transparent;
    font-size: 6.8rem;
    font-weight: 900;
    line-height: .8;
    letter-spacing: -.12em;
    -webkit-text-stroke: 1px color-mix(in srgb, #38f58b 28%, transparent);
    opacity: .58;
    user-select: none;
  }
}

/* At ≤650px the hero stays exactly as it was before this change: centered,
   stacked heading/subtitle, no separator/motif. */
@media (max-width: 650px) {
  body.home-page .home-hero-motif,
  body.home-page .home-combo-head.premium-combo-title::after {
    display: none !important;
  }
}
/* END HOMEPAGE HERO — EXACT COMPARE HERO GEOMETRY */
/* APS HOME EDITORIAL RANKINGS END */

/* Right-column category review previews. */
body.home-page .home-combo-section:has(
  .home-board:is(
    [data-home-category="ai-porn-generators"],
    [data-home-category="roleplay-ai"],
    [data-home-category="anime-ai"]
  ) .home-board-review-link:is(:hover, :focus-visible)
) {
  z-index: 3 !important;
}

.home-combo-right .home-board:is(
  [data-home-category="ai-porn-generators"],
  [data-home-category="roleplay-ai"],
  [data-home-category="anime-ai"]
):has(.home-board-review-link:is(:hover, :focus-visible)) {
  z-index: 8 !important;
}

@media (max-width: 1809px) {
  .home-combo-right .home-board:is(
    [data-home-category="ai-porn-generators"],
    [data-home-category="roleplay-ai"],
    [data-home-category="anime-ai"]
  ) .home-review-preview {
    left: auto !important;
    right: calc(100% + 8px) !important;
  }
}

.home-combo-right .home-board:is(
  [data-home-category="ai-companions"],
  [data-home-category="ai-sex-bots"],
  [data-home-category="ai-image-editors"]
):is(:hover, :focus-within) {
  position: relative !important;
  z-index: 9 !important;
}

.home-combo-right .home-board:is(
  [data-home-category="ai-companions"],
  [data-home-category="ai-sex-bots"],
  [data-home-category="ai-image-editors"]
):is(:hover, :focus-within) .home-review-preview {
  position: absolute !important;
  z-index: 101 !important;
}

.aps-editorial-rankings-review {
  color: var(--row-accent);
}

.aps-editorial-review-preview {
  position: fixed !important;
  left: var(--editor-preview-left) !important;
  right: auto !important;
  top: var(--editor-preview-top) !important;
  z-index: 10000 !important;
}

.aps-editorial-review-preview.is-visible {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(-18%) scale(1) !important;
}
