/* Shared discovery UI: home, video library, stores and performer profiles. */
.bubble-browse-page {
  --coral:var(--hime-pink); --ink:var(--hime-ink); --muted:var(--hime-muted);
  --hime-soft-shadow:0 4px 12px #ab4b7012;
  background:var(--hime-paper); color:var(--ink);
}

.bubble-browse-page .library-main { max-width:1360px; padding-left:36px; padding-right:36px; }

/* The same pill controls, with enough rail space for shadows and focus rings. */
html.hime-browse-document { scrollbar-gutter:stable; }
.bubble-browse-page .category-scroller { border:0; padding:0 44px; }
.bubble-browse-page .category-scroller[data-overflow="false"] { padding:0; }
.bubble-browse-page .category-scroller[data-overflow="false"] .category-arrow,
.bubble-browse-page .category-scroller[data-overflow="false"]::before,
.bubble-browse-page .category-scroller[data-overflow="false"]::after { display:none; }
.bubble-browse-page .category-scroller:not(.pop-categories) { margin:0 0 24px; }
.bubble-browse-page .category-tabs { align-items:center; gap:12px; padding:8px 4px; margin:0; }
.bubble-browse-page .category-tabs a { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; height:var(--hime-control-height); min-width:76px; line-height:var(--hime-control-line); background:#fff; border:1px solid var(--hime-line); color:var(--hime-berry); padding:0 20px; border-radius:24px; font-size:13px; font-weight:700; text-align:center; transition:box-shadow .16s ease,translate .16s ease; }
.bubble-browse-page .category-tabs a::after { display:none; }
.bubble-browse-page .category-tabs a[aria-current] { color:#fff; border-color:transparent; background:var(--hime-selected); box-shadow:inset 0 1px 1px #ffffff66,0 3px 7px #ed438b26; }
.bubble-browse-page .category-tabs a:active { translate:0 1px; }
.bubble-browse-page .category-scroller .category-arrow { display:grid; width:var(--hime-control-height); height:var(--hime-control-height); padding:0; color:var(--hime-berry); }
.bubble-browse-page .category-arrow-prev { left:0; }
.bubble-browse-page .category-arrow-next { right:0; }
.bubble-browse-page .category-arrow::before { background:#fff; border:1px solid var(--hime-line); }
.bubble-browse-page .category-arrow:disabled { color:#c9adb9; }
.bubble-browse-page .category-arrow:disabled::before { background:#fffafc; }
.bubble-browse-page .category-scroller::before,.bubble-browse-page .category-scroller::after { display:block; width:18px; }
.bubble-browse-page .category-scroller::before { left:44px; background:linear-gradient(90deg,var(--hime-paper),#fff9f700); }
.bubble-browse-page .category-scroller::after { right:44px; background:linear-gradient(270deg,var(--hime-paper),#fff9f700); }
/* Three equal cells: label length must not move the selected pill. */
.bubble-browse-page :is(.pop-sort,.sort-tabs) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; align-self:center; flex-shrink:1; gap:4px; width:296px; max-width:100%; min-width:0; height:var(--hime-control-height); padding:4px; border:0; border-radius:30px; background:#fff; box-shadow:var(--hime-shadow); font-family:var(--hime-font); }
.bubble-browse-page .sort-tabs { margin:0; }
.bubble-browse-page :is(.pop-sort,.sort-tabs) a { display:flex; align-items:center; justify-content:center; min-width:0; height:var(--hime-segment-height); padding:0 8px; border:0; border-radius:24px; color:#7c6575; font-size:13px; font-weight:700; line-height:var(--hime-control-line); text-align:center; white-space:nowrap; }
.bubble-browse-page .pop-sort a[aria-current] { color:#fff; }
.bubble-browse-page .sort-tabs a[aria-current] { color:#fff; background:var(--hime-selected); box-shadow:inset 0 1px 1px #ffffff66,0 3px 7px #ed438b26; }
.bubble-browse-page .filter-select,.bubble-browse-page .browse-filter-panel>summary { border-color:var(--hime-line); border-radius:16px; background:#fff; }
.bubble-browse-page .filter-select { height:var(--hime-control-height); }
.bubble-browse-page .filter-select select { border-radius:16px; font-family:var(--hime-font); line-height:var(--hime-control-line); }
.bubble-browse-page .home-area-filter :is(select,button) { box-sizing:border-box; height:var(--hime-control-height); min-height:var(--hime-control-height); padding-top:0; padding-bottom:0; font-family:var(--hime-font); line-height:var(--hime-control-line); }
.bubble-browse-page .home-store-link .button { min-height:44px; padding:10px 16px; font-size:12px; }
.bubble-browse-page .home-store-link .bubble-icon { width:16px; height:16px; }
.bubble-browse-page .home-area-filter button { display:inline-flex; align-items:center; justify-content:center; }

/* Home sections share one alignment grid and three quiet horizontal dividers. */
.bubble-pop-home { --home-gutter:36px; --home-divider:#e6b9cb; }

.bubble-pop-home .pop-home { max-width:1280px; padding-left:var(--home-gutter); padding-right:var(--home-gutter); }
.bubble-pop-home .pop-browse-controls { display:grid; grid-template-columns:296px minmax(0,1fr); align-items:center; gap:12px 24px; padding:16px 0; margin-bottom:24px; border-bottom:1px solid var(--home-divider); }
.bubble-pop-home .pop-sort { margin:0; justify-self:start; }
.bubble-pop-home .pop-browse-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; min-width:0; }
.bubble-pop-home .pop-categories { min-width:0; margin:0!important; }
.bubble-pop-home .home-store-link { min-width:0; }
.bubble-pop-home .home-store-link .button { display:flex; align-items:center; justify-content:center; gap:6px; height:44px; padding:0 14px; white-space:nowrap; }
.bubble-pop-home .home-area-filter { grid-column:1 / -1; justify-content:flex-start; margin:0; padding:0; }
.bubble-pop-home .pop-carousel { max-width:none; }
.bubble-pop-home .pop-discover { margin-top:20px; padding-top:24px; border-top:1px solid var(--home-divider); }
.bubble-pop-home .pop-section-heading { margin-top:0; }

.bubble-browse-page .library-pagination a { border-color:var(--hime-line); border-radius:50%; background:#fff; color:var(--hime-berry); }
.bubble-browse-page .library-pagination a[aria-current] { background:var(--hime-selected); color:#fff; }

/* A saved list without playable videos needs one clear next step, not empty filters. */
.bubble-browse-page .saved-heading { margin-bottom:22px; }
.bubble-browse-page .saved-library-empty .library-content { max-width:680px; margin:0 auto; padding:0 24px 24px; border:1px solid var(--hime-line); border-radius:22px; background:#fff; box-shadow:var(--hime-soft-shadow); }
.bubble-browse-page .saved-library-empty .library-empty { min-height:300px; }
.bubble-browse-page .saved-library-empty .library-empty>.bubble-icon { width:44px; height:44px; color:var(--hime-pink); }
.bubble-browse-page .saved-library-empty .library-empty h2 { line-height:1.6; }
.bubble-browse-page .saved-guidance { margin-top:28px; padding-top:18px; border-top:1px solid var(--hime-line); color:var(--hime-muted); font-size:12px; line-height:1.8; }
.bubble-browse-page .saved-guidance .saved-note { margin:0 0 6px; }
.bubble-browse-page .saved-help summary { width:fit-content; cursor:pointer; color:var(--hime-berry); }
.bubble-browse-page .saved-help p { margin:8px 0 0; max-width:560px; }
.bubble-browse-page .saved-library-empty .saved-guidance { margin-top:0; }
.bubble-browse-page .saved-unavailable { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; margin:0 0 18px; }
.bubble-browse-page .saved-library-empty .saved-unavailable { margin:20px 0 0; }

/* Video cards stay recognisable when moving between discovery pages. */
.bubble-browse-page .library-card { padding:7px; border:1px solid #f8e0e9; border-radius:18px; background:#fff; box-shadow:var(--hime-soft-shadow); }
.bubble-browse-page .card-picture { aspect-ratio:9/16; border-radius:12px; }
.bubble-browse-page .card-category { display:block; top:8px; left:8px; max-width:calc(100% - 16px); background:#fffffff2; color:var(--hime-berry); border:1px solid var(--hime-line); border-radius:20px; padding:4px 8px; font-size:10px; font-weight:700; }
.bubble-browse-page .card-play { opacity:1; left:10px; top:auto; bottom:10px; transform:none; width:28px; height:28px; background:var(--coral); }
.bubble-browse-page .card-play svg { width:14px; height:14px; margin-left:1px; }
.bubble-browse-page .card-duration { bottom:10px; right:10px; }
.bubble-browse-page .card-copy { padding:10px 4px 0; }
.bubble-browse-page .card-person img { border:2px solid #fff; outline:1px solid #f19cbe; }
.bubble-browse-page .card-person small { color:var(--muted); }
.bubble-browse-page .save-button { color:#796673; }
.bubble-browse-page .save-button[aria-pressed="true"] { color:var(--coral); }

/* Store discovery uses area filters; profiles use their available video categories. */
.hime-store-pages .profile-main { padding-top:30px; overflow:visible; }
.hime-store-pages .profile-page-heading { margin-bottom:28px; }
.hime-store-pages .profile-page-heading h1 { margin:8px 0 10px; font-size:30px; line-height:1.5; }
.hime-store-pages .profile-page-heading p { color:var(--muted); line-height:1.9; }
.hime-store-pages .profile-page-heading .profile-kind { color:var(--hime-berry); font-size:13px; font-weight:700; }
.hime-store-pages .directory-filter-heading { margin:0 0 15px; font-size:14px; color:#796673; }
.hime-store-pages .store-directory { gap:24px; margin-top:28px; }
.hime-store-pages .store-card { padding:12px; border:1px solid var(--hime-line); border-radius:22px; background:#fff; box-shadow:var(--hime-soft-shadow); color:var(--ink); min-width:0; }
.hime-store-pages .store-card-image { height:300px; border-radius:14px; background:linear-gradient(135deg,#fbe1ec,#fff0f5); }
.hime-store-pages .store-card>div+div { padding:16px 6px 8px; min-width:0; }
.hime-store-pages .store-card span { display:inline-block; padding:5px 9px; border-radius:20px; background:#fff0f6; color:var(--hime-berry); font-size:11px; }
.hime-store-pages .store-card h2 { font-size:23px; line-height:1.5; overflow-wrap:anywhere; }
.hime-store-pages .store-card p { color:var(--muted); margin:8px 0; }
.hime-store-pages .store-card strong { color:var(--hime-berry); line-height:1.8; }
.hime-store-pages .profile-back { margin-bottom:20px; padding:9px 15px; border:1px solid var(--hime-line); border-radius:24px; background:#fff; color:var(--hime-berry); }
.hime-store-pages .profile-hero { max-width:none; grid-template-columns:190px minmax(0,1fr); column-gap:28px; row-gap:0; padding:24px; border:1px solid var(--hime-line); border-radius:24px; background:#fff; box-shadow:var(--hime-soft-shadow); }
.hime-store-pages .profile-portrait { grid-row:1 / span 2; width:190px; height:250px; border-radius:16px; background:#fff0f6; }
.hime-store-pages .profile-intro { align-self:end; min-width:0; }
.hime-store-pages .profile-overview { align-self:start; min-width:0; }
.hime-store-pages .profile-kind { margin:0; color:var(--hime-berry); font-weight:700; }
.hime-store-pages .profile-hero h1 { font-size:32px; }
.hime-store-pages .profile-bio { max-width:760px; color:#66535f; margin:12px 0; }
.hime-store-pages .profile-store { color:var(--hime-berry); }
.hime-store-pages .profile-stats { color:var(--muted); margin:10px 0 0; }
.hime-store-pages .area-badge { border:1px solid var(--hime-line); background:var(--hime-paper); color:var(--hime-berry); }
.hime-store-pages .store-official-links a { border-color:var(--hime-line); border-radius:24px; color:var(--hime-berry); }
.hime-store-pages .store-official-links .official-primary { background:var(--hime-selected); color:#fff; border-color:transparent; }
.hime-store-pages .store-official-links a span { color:inherit; }
.hime-store-pages .profile-members { margin:30px 0; }
.hime-store-pages :is(.profile-members,.profile-list-heading,.store-information) h2 { padding-left:13px; border-left:5px solid var(--coral); font-size:21px; line-height:1.4; }
.hime-store-pages .member-rail { padding:12px 5px; }
.hime-store-pages .member-rail a { color:var(--ink); }
.hime-store-pages .member-rail img { border:3px solid #fff; outline:1px solid #f19cbe; box-shadow:0 3px 8px #ab4b7020; }
.hime-store-pages .member-rail small { color:var(--muted); }
.hime-store-pages .profile-list-heading { margin:28px 0 24px; }
.hime-store-pages .profile-list-heading h2 { overflow-wrap:anywhere; min-width:0; }
.hime-store-pages .store-information { background:#fff; border-color:var(--hime-line); border-radius:22px; box-shadow:var(--hime-soft-shadow); }
.hime-store-pages .profile-share,.hime-store-pages .profile-privacy { color:#796673; }
.hime-store-pages .profile-share input { border-color:var(--hime-line); border-radius:12px; }

@media(min-width:701px) {
  .bubble-browse-page .browse-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:522px; max-width:100%; }
  .bubble-browse-page .browse-filters-single-area { grid-template-columns:repeat(2,minmax(0,1fr)); width:344px; }
  .bubble-browse-page .filter-select { min-width:0; }
  .bubble-browse-page .filter-select select { width:100%; min-width:0; max-width:none; }
}
@media(min-width:701px) and (max-width:1020px) {
  .bubble-pop-home { --home-gutter:28px; }
  .bubble-pop-home .pop-browse-controls { grid-template-columns:minmax(0,1fr); }
  .bubble-browse-page .browse-toolbar { flex-wrap:wrap; }
  .bubble-browse-page .browse-toolbar>.sort-tabs { flex-shrink:0; }

  .bubble-browse-page .library-main { padding-left:28px; padding-right:28px; }
}
@media(max-width:700px) {
  .bubble-pop-home { --home-gutter:16px; }
  .bubble-pop-home .pop-browse-controls { grid-template-columns:minmax(0,1fr); gap:8px; padding:12px 0; margin-bottom:16px; }
  .bubble-pop-home .pop-sort { width:100%; }
  .bubble-pop-home .pop-browse-row { grid-template-columns:minmax(0,1fr); gap:0; }
  .bubble-pop-home .pop-categories .category-tabs { gap:8px; }
  .bubble-pop-home .pop-categories .category-tabs a { min-width:68px; padding:0 12px; }
  .bubble-pop-home .pop-categories::before,.bubble-pop-home .pop-categories::after { width:8px; }
  .bubble-pop-home .home-store-link { display:none; }
  .bubble-pop-home .pop-carousel { margin-left:calc(-1 * var(--home-gutter)); margin-right:calc(-1 * var(--home-gutter)); padding-left:var(--home-gutter); padding-right:var(--home-gutter); }
  .bubble-pop-home .pop-preview-next { left:calc(var(--portrait-width) + var(--home-gutter) + 12px); }
  .bubble-pop-home .pop-discover { padding-left:0; padding-right:0; padding-top:20px; margin-top:16px; }
  .bubble-pop-home :is(.pop-demo-note,.pop-privacy) { margin-left:0; margin-right:0; }
  .bubble-browse-page .library-main { padding-left:14px; padding-right:14px; }
  .bubble-browse-page .saved-library-empty .library-content { padding:0 18px 20px; border-radius:18px; }
  .bubble-browse-page .saved-library-empty .library-empty { min-height:300px; padding:34px 0; }
  .bubble-browse-page .saved-guidance { font-size:11px; }

  .bubble-browse-page .category-tabs { gap:8px; }
  .bubble-browse-page .category-tabs a { padding:0 18px; font-size:12px; }
  .bubble-browse-page :is(.pop-sort,.sort-tabs) a { padding:0 6px!important; font-size:12px!important; }
  .bubble-browse-page .browse-toolbar { align-items:center!important; }
  .bubble-browse-page .browse-filter-panel>summary { height:var(--hime-control-height); min-height:var(--hime-control-height); padding:0 12px; line-height:var(--hime-control-line); }
  .bubble-browse-page .browse-toolbar>.sort-tabs { flex:1; }
  .bubble-browse-page .card-copy { padding:9px 2px 0; }
  .bubble-browse-page .library-card h2 { font-size:12px; }
  .hime-store-pages .profile-page-heading { margin:0 0 24px; }
  .hime-store-pages .profile-page-heading h1 { font-size:24px; letter-spacing:-.03em; }
  .hime-store-pages .profile-page-heading p { margin:8px 0; font-size:12px; }
  .hime-store-pages .directory-filter-heading { font-size:12px; }
  .hime-store-pages .store-directory { gap:16px; margin-top:22px; }
  .hime-store-pages .store-card { grid-template-columns:108px minmax(0,1fr); gap:14px; padding:12px; border-radius:20px; align-items:center; }
  .hime-store-pages .store-card-image { height:180px; border-radius:12px; }
  .hime-store-pages .store-card>div+div { padding:0; }
  .hime-store-pages .store-card span { font-size:10px; padding:4px 7px; }
  .hime-store-pages .store-card h2 { font-size:21px; margin:7px 0; }
  .hime-store-pages .store-card p { font-size:12px; }
  .hime-store-pages .store-card strong { font-size:11px; margin-top:7px; }
  .hime-store-pages .profile-back { font-size:12px; margin-bottom:16px; }
  .hime-store-pages .profile-hero { grid-template-columns:96px minmax(0,1fr); gap:16px; padding:16px; border-radius:20px; align-items:center; }
  .hime-store-pages .profile-portrait { grid-row:auto; width:96px; height:134px; border-radius:12px; }
  .hime-store-pages .profile-intro { align-self:center; }
  .hime-store-pages .profile-overview { grid-column:1 / -1; }
  .hime-store-pages .profile-hero h1 { font-size:25px; margin:8px 0; }
  .hime-store-pages .profile-kind { gap:8px; font-size:11px; }
  .hime-store-pages .profile-bio { margin:0 0 10px; }
  .hime-store-pages .profile-tagline { font-size:13px; }
  .hime-store-pages .profile-members { margin:26px 0; }
  .hime-store-pages :is(.profile-members,.profile-list-heading,.store-information) h2 { font-size:18px; padding-left:10px; border-left-width:4px; }
  .hime-store-pages .profile-list-heading { gap:18px; margin:26px 0 20px; }
  .hime-store-pages .profile-list-heading .sort-tabs { align-self:center; }
}
@media(max-width:360px) {
  .bubble-pop-home { --home-gutter:12px; }
  .bubble-pop-home .pop-categories .category-tabs a { min-width:64px; padding:0 10px; }
  .hime-store-pages .store-card { grid-template-columns:92px minmax(0,1fr); gap:12px; padding:10px; }
  .hime-store-pages .store-card-image { height:164px; }
  .hime-store-pages .profile-page-heading h1 { font-size:21px; }
  .hime-store-pages .profile-hero { grid-template-columns:80px minmax(0,1fr); gap:12px; padding:14px; }
  .hime-store-pages .profile-portrait { width:80px; height:116px; }
  .hime-store-pages .profile-hero h1 { font-size:23px; }
  .bubble-browse-page .browse-toolbar { flex-wrap:wrap!important; }
  .bubble-browse-page .browse-toolbar>.sort-tabs { flex:0 0 100%; }
  .bubble-browse-page .browse-filter-panel { flex-basis:102px; }
}
@media(prefers-reduced-motion:reduce) {
  .bubble-browse-page .category-tabs a { transition:none; }
}
