#vp-portal {
  --vp-atlas:url("/portal/assets/listing-concepts.jpg");
  --vp-hardware:url("/portal/assets/vr-concept.jpg");
  background:var(--vp-bg);
  color:var(--vp-text);
  font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  min-width:0;
  isolation:isolate;
}

#vp-portal * {
  box-sizing:border-box;
}

#vp-portal [hidden] {
  display:none!important;
}

#vp-portal button,#vp-portal input,#vp-portal select {
  font:inherit;
}

#vp-portal button {
  cursor:inherit;
}

#vp-portal button:focus-visible,#vp-portal input:focus-visible,#vp-portal select:focus-visible {
  outline:3px solid var(--vp-accent);
  outline-offset:3px;
}

#vp-portal .vp-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}

#vp-portal .vp-brand {
  background:none;
  border:0;
  color:var(--vp-text);
  font-size:24px;
  letter-spacing:-1.2px;
  font-weight:700;
  padding:0;
}

#vp-portal .vp-nav {
  display:flex;
  align-items:center;
}

#vp-portal .vp-nav :is(a,button) {
  border:0;
  background:none;
  color:var(--vp-muted);
  padding:6px 0;
}

#vp-portal h1 {
  font-size:clamp(27px,4.1vw,41px);
  line-height:1.13;
  letter-spacing:-1.65px;
  font-weight:650;
  margin:0 0 10px;
}

#vp-portal .vp-intro p {
  max-width:650px;
  color:var(--vp-muted);
  margin:0;
}

#vp-portal .vp-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  padding:22px 0 19px;
}

#vp-portal .vp-location {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  font-size:12px;
  color:var(--vp-muted);
}

#vp-portal .vp-location button {
  border:0;
  background:none;
  color:var(--vp-muted);
  padding:0;
  font-size:12px;
}

#vp-portal .vp-location strong {
  color:var(--vp-text);
  font-weight:600;
}

#vp-portal .vp-tools {
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap;
}

#vp-portal .vp-search-wrap {
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--vp-border);
  border-radius:8px;
  padding:7px 10px;
  width:190px;
  color:var(--vp-muted);
}

#vp-portal .vp-search-wrap svg {
  width:15px;
  height:15px;
  flex-shrink:0;
}

#vp-portal .vp-search-wrap input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:var(--vp-text);
  font-size:12px;
  outline-offset:5px;
}

#vp-portal .vp-free {
  border:1px solid var(--vp-border);
  border-radius:8px;
  background:var(--vp-bg);
  color:var(--vp-muted);
  font-size:12px;
  padding:8px 10px;
  white-space:nowrap;
}

#vp-portal .vp-free[aria-pressed=true] {
  background:var(--vp-selected);
  color:var(--vp-accent);
  border-color:transparent;
}

#vp-portal .vp-grid {
  display:grid;
  grid-template-columns:repeat(var(--vp-columns,3),minmax(0,1fr));
  gap:40px 22px;
}

/* Collection cards share the same desktop scale on Home and Explore. */
@media(min-width:481px) and (max-width:899px) {
  #vp-portal[data-page=explore] .vp-grid,
  #vp-portal[data-page=home] .site-latest .vp-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(min-width:900px) {
  #vp-portal[data-page=explore] .vp-grid,
  #vp-portal[data-page=home] .site-latest .vp-grid {
    --vp-columns:4;
  }
}

#vp-portal .vp-item {
  min-width:0;
  position:relative;
}

#vp-portal .vp-media-button {
  padding:0;
  background:var(--vp-surface);
  width:100%;
  aspect-ratio:3/2;
  overflow:hidden;
  position:relative;
  color:var(--vp-text);
}

#vp-portal .vp-art {
  position:absolute;
  inset:0;
  background-size:200% 200%;
  background-image:var(--vp-atlas);
  transition:transform .35s ease;
}

#vp-portal .vp-media-button:hover:where(html:not(.touch-input) *) .vp-art {
  transform:scale(1.035);
}

#vp-portal .vp-item-save {
  position:absolute;
  top:10px;
  right:10px;
  border-radius:50%;
  width:30px;
  height:30px;
  padding:0;
  display:grid;
  place-items:center;
  z-index:2;
}

#vp-portal .vp-item-save svg {
  width:15px;
  height:15px;
}

#vp-portal .vp-item-save[aria-pressed=true] svg {
  fill:currentColor;
}

#vp-portal .vp-item-category {
  display:block;
  text-transform:uppercase;
  color:var(--vp-muted);
  margin:13px 0 4px;
}

#vp-portal .vp-name {
  line-height:1.25;
  margin:0 0 6px;
}

#vp-portal .vp-summary {
  font-size:12px;
  line-height:1.5;
  margin:0;
  color:var(--vp-muted);
  min-height:36px;
}

#vp-portal .vp-view {
  font-size:11px;
  background:none;
  border:0;
  padding:3px 0;
  white-space:nowrap;
}

#vp-portal .vp-story-art {
  position:absolute;
  inset:0;
  background:linear-gradient(140deg,#101c42,#6f558e);
  color:#fff;
  text-align:left;
  padding:26px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

#vp-portal .vp-story-art small {
  font-size:10px;
  letter-spacing:2px;
  color:#e0d6f3;
}

#vp-portal .vp-story-art b {
  font:400 29px/1.04 Georgia,serif;
  letter-spacing:-.6px;
  margin:13px 0;
}

#vp-portal .vp-story-art span {
  font-size:11px;
  color:#dfd9e9;
}

#vp-portal .vp-empty {
  grid-column:1/-1;
  text-align:center;
  padding:65px 18px;
  color:var(--vp-muted);
}

#vp-portal .vp-empty button {
  display:block;
  margin:18px auto 0;
}

#vp-portal .vp-detail {
  border-radius:14px;
  overflow:hidden;
}

#vp-portal .vp-detail-top {
  display:grid;
  grid-template-columns:1.05fr 1fr;
}

#vp-portal .vp-detail-photo {
  position:relative;
  min-height:365px;
  overflow:hidden;
}

#vp-portal .vp-detail-info {
  padding:30px;
  min-width:0;
}

#vp-portal .vp-detail-info h2 {
  font-size:31px;
  line-height:1.1;
  margin:8px 0 12px;
}

#vp-portal .vp-detail-copy>p {
  color:var(--vp-muted);
  font-size:14px;
  margin:0 0 18px;
}

#vp-portal .vp-example {
  color:var(--vp-muted);
  font-size:12px;
  line-height:1.5;
  letter-spacing:.4px;
}

#vp-portal .vp-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:22px 0;
}

#vp-portal .vp-facts dt {
  font-size:10px;
  color:var(--vp-muted);
  margin-bottom:3px;
}

#vp-portal .vp-facts dd {
  font-size:12px;
  color:var(--vp-text);
  margin:0;
}

#vp-portal .vp-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

#vp-portal .vp-visit {
  border:0;
  padding:11px 17px;
  font-size:12px;
}

#vp-portal .vp-save-detail {
  border:1px solid var(--vp-border);
  background:var(--vp-bg);
  color:var(--vp-text);
  padding:11px 17px;
  font-size:12px;
}

#vp-portal .vp-detail-note {
  padding:22px 28px;
  border-top:1px solid var(--vp-border);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}

#vp-portal .vp-detail-note h3 {
  font-size:13px;
  margin:0 0 6px;
}

#vp-portal .vp-detail-note p {
  font-size:12px;
  margin:0;
  color:var(--vp-muted);
}

#vp-portal .vp-back {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:none;
  border:0;
  color:var(--vp-muted);
  font-size:12px;
  padding:0;
}

#vp-portal .vp-back svg {
  width:15px;
  height:15px;
}

#vp-portal .vp-status {
  min-height:20px;
  font-size:12px;
  color:var(--vp-muted);
}

#vp-portal .vp-footer {
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--vp-border);
  display:flex;
  justify-content:space-between;
  gap:15px;
  flex-wrap:wrap;
  font-size:10px;
  color:var(--vp-muted);
}

#vp-portal .vp-info-panel {
  padding:30px;
  background:var(--vp-surface);
  border-radius:14px;
}

#vp-portal .vp-info-panel h2 {
  font-size:25px;
  letter-spacing:-.7px;
  margin-top:0;
}

#vp-portal .vp-info-panel p {
  color:var(--vp-muted);
  max-width:560px;
}

#vp-portal .vp-result-count {
  font-size:11px;
  font-weight:400;
  color:var(--vp-muted);
}

@media(max-width:760px) {
  #vp-portal .vp-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  #vp-portal .vp-detail-top {
    grid-template-columns:1fr
  }

  #vp-portal .vp-detail-photo {
    min-height:340px
  }

  #vp-portal .vp-detail-info {
    padding:24px
  }

  #vp-portal .vp-detail-note {
    padding:22px 24px
  }

}

@media(max-width:480px) {
  #vp-portal .vp-header {
    padding:18px;
    flex-wrap:wrap
  }

  #vp-portal .vp-nav {
    gap:21px
  }

  #vp-portal .vp-main {
    padding:0 18px 22px
  }

  #vp-portal .vp-intro {
    padding:24px 0 21px
  }

  #vp-portal .vp-grid {
    grid-template-columns:1fr;
    gap:36px
  }

  #vp-portal .vp-media-button {
    aspect-ratio:3/2
  }

  #vp-portal .vp-summary {
    min-height:0
  }

  #vp-portal .vp-tools {
    width:100%
  }

  #vp-portal .vp-search-wrap {
    flex:1;
    width:auto;
    min-width:120px
  }

  #vp-portal .vp-search-wrap input {
    font-size:16px
  }

  #vp-portal .vp-detail-photo {
    min-height:265px
  }

  #vp-portal .vp-detail-note {
    grid-template-columns:1fr;
    gap:18px
  }

  #vp-portal .vp-story-art b {
    font-size:35px
  }

}

@media(pointer:coarse) {
  #vp-portal button {
    min-height:44px
  }

  #vp-portal .vp-item-save {
    width:44px;
    height:44px
  }

}

@media(prefers-reduced-motion:reduce) {
  #vp-portal .vp-art {
    transition:none
  }

}

#vp-portal {
  --vp-bg:#171716;
  --vp-text:#f5f2f0;
  --vp-muted:#aba7a5;
  --vp-surface:#211f20;
  --vp-border:#ffffff1c;
  --vp-accent:#d2829b;
  --vp-selected:#d2829b15;
  --vp-cutouts:url("/portal/assets/category-cutouts.png");
  --vp-device:url("/portal/assets/connected-devices.png");
  font-family:Inter,sans-serif;
  font-weight:300;
  color-scheme:dark;
}

#vp-portal .vp-header {
  padding:26px 35px;
  border-bottom:1px solid #ffffff0d;
}

#vp-portal .vp-brand img {
  width:250px;
  height:auto;
  display:block;
}

#vp-portal .vp-nav {
  gap:22px;
}

#vp-portal .vp-nav :is(a,button) {
  font-size:12px;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:300;
}

#vp-portal .vp-nav :is(a,button)[aria-pressed=true] {
  font-weight:400;
  color:var(--vp-text);
}

#vp-portal .vp-nav .vp-login {
  color:#242020;
  background:linear-gradient(108deg,#ffffffc2,#ffffff9e 44%,#ffffffba);
  border:1px solid #ffffff57;
  border-radius:30px;
  padding:10px 20px;
  font-size:11px;
  line-height:14px;
  letter-spacing:.15em;
  font-weight:600;
  box-shadow:0 8px 22px #0003,inset 0 1px #ffffff85;
}

#vp-portal .vp-main {
  padding:0 35px 24px;
}

#vp-portal .vp-intro {
  padding:35px 0 23px;
}

#vp-portal .vp-intro h1 {
  font-weight:300;
  font-size:43px;
  letter-spacing:.01em;
}

#vp-portal .vp-intro p {
  font-size:15px;
  font-weight:300;
  line-height:1.8;
  letter-spacing:.01em;
}

#vp-portal:is([data-page=explore],[data-page=chat]) .vp-intro {
  padding-bottom:clamp(36px,4vw,48px);
}

#vp-portal:is([data-page=explore],[data-page=chat]) .vp-intro h1 {
  margin-bottom:clamp(18px,2vw,24px);
}

#vp-portal .vp-name {
  font-weight:400;
  font-size:18px;
  letter-spacing:0;
}

#vp-portal .vp-summary {
  font-weight:300;
}

#vp-portal .vp-item-category {
  font-weight:300;
  letter-spacing:.12em;
  font-size:9px;
}

#vp-portal .vp-media-button {
  border-radius:9px;
  border:1px solid #ffffff0d;
}

#vp-portal .vp-item-save {
  background:#17171680;
  color:#ded8d5;
  border:1px solid #ffffff1a;
  box-shadow:none;
}

#vp-portal .vp-item-save[aria-pressed=true] {
  color:#f0bacb;
  background:#492e39;
}

#vp-portal .vp-search-wrap,#vp-portal .vp-free {
  border-radius:24px;
  font-weight:300;
}

#vp-portal .vp-view {
  color:#e1a7b9;
}

#vp-portal .vp-visit {
  background:linear-gradient(108deg,#ffffffc2,#ffffff9e 44%,#ffffffba);
  color:#242020;
  border-radius:28px;
  font-weight:500;
}

#vp-portal .vp-save-detail {
  border-radius:28px;
  font-weight:300;
}

#vp-portal .vp-detail-info h2 {
  font-weight:300;
  letter-spacing:0;
}

#vp-portal .vp-detail {
  border:1px solid var(--vp-border);
  background:linear-gradient(145deg,#ffffff0d,#ffffff04 58%,#ffffff07);
}

#vp-portal .vp-detail-note h3 {
  font-weight:400;
}

#vp-portal .vp-detail-note {
  background:#ffffff02;
}

#vp-portal .site-hero {
  position:relative;
  text-align:center;
  padding:38px 12px 30px;
  background:radial-gradient(ellipse at 65% 34%,#69374618,transparent 60%);
}

#vp-portal .site-eyebrow {
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:9px;
  color:#b4a6ab;
  font-weight:300;
  margin:0 0 20px;
}

#vp-portal .site-hero h1 {
  font-size:clamp(36px,5.6vw,59px);
  font-weight:300;
  letter-spacing:.005em;
  line-height:1.12;
  margin:0;
}

#vp-portal .site-hero h1 span {
  color:#e0bcc8;
}

#vp-portal .site-hero>p:not(.site-eyebrow) {
  max-width:505px;
  margin:21px auto 22px;
  color:#f5f2f0ba;
  font-size:15px;
  line-height:1.65;
  letter-spacing:.01em;
}

#vp-portal .site-actions {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}

#vp-portal .site-primary {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border-radius:50px;
  background:linear-gradient(108deg,#ffffffc2,#ffffff9e 44%,#ffffffba);
  color:#242020;
  border:1px solid #ffffff57;
  box-shadow:0 12px 28px #00000047,inset 0 1px #ffffff85,inset 0 -1px #24202026;
  min-height:43px;
  padding:0 27px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}

#vp-portal .chat-invitation .site-primary .btn-text {
  line-height:1;
}
#vp-portal .chat-invitation .site-primary .portal-arrow {
  display:block;
  align-self:center;
}

#vp-portal .site-secondary {
  background:none;
  border:0;
  color:#f5f2f0b0;
  letter-spacing:.08em;
  font-size:11px;
  padding:12px 2px;
  font-weight:300;
}

#vp-portal .site-section-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:15px;
  margin:0 0 15px;
}

#vp-portal .site-section-head h2 {
  min-width:0;
  font-size:24px;
  font-weight:300;
  letter-spacing:.01em;
  margin:0;
}

#vp-portal .site-section-head :is(a,button) {
  flex-shrink:0;
  white-space:nowrap;
  border:0;
  background:none;
  color:var(--vp-muted);
  font-size:11px;
  font-weight:300;
}

#vp-portal .site-category-section {
  padding:20px 0 28px;
}

#vp-portal .site-category-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  padding-top:4px;
}

#vp-portal .site-category-tile {
  position:relative;
  min-width:0;
  border:0;
  background:transparent;
  text-align:left;
  color:var(--vp-text);
  padding:0;
}

#vp-portal .site-category-media {
  --category-glow:168 118 138;
  position:relative;
  display:block;
  margin-bottom:15px;
  isolation:isolate;
}

#vp-portal .site-category-media::before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  border-radius:13px;
  background:radial-gradient(ellipse at 50% 32%,rgb(var(--category-glow) / .16),transparent 78%),linear-gradient(145deg,#29292a,#1d1d1e);
  border:1px solid #ffffff16;
  box-shadow:inset 0 1px #ffffff0a;
}

#vp-portal .site-category-media.world {
  --category-glow:135 157 180;
}

#vp-portal .site-category-media.games {
  --category-glow:171 150 132;
}

#vp-portal .site-category-media.devices {
  --category-glow:159 125 146;
}

#vp-portal .site-category-cutout {
  display:block;
  position:absolute;
  inset:0;
  background-image:var(--vp-cutouts);
  background-size:300% 100%;
  background-position:0 0;
  filter:drop-shadow(0 9px 9px #0003);
  transition:transform .35s ease;
  transform-origin:50% 100%;
}

#vp-portal .world .site-category-cutout {
  background-position:50% 0;
  transform:translateY(-12px);
}

#vp-portal .games .site-category-cutout {
  background-position:100% 0;
}

#vp-portal .devices .site-category-cutout {
  background-image:var(--vp-device);
  background-repeat:no-repeat;
}

#vp-portal .site-category-tile:hover:where(html:not(.touch-input) *) .site-category-cutout {
  transform:translateY(-5px);
}

#vp-portal .site-category-tile:hover:where(html:not(.touch-input) *) .world .site-category-cutout {
  transform:translateY(-17px);
}

#vp-portal .site-category-name {
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:15px;
  font-weight:400;
  line-height:1.35;
}

#vp-portal .site-category-name span {
  color:var(--vp-accent);
  font-weight:300;
}

#vp-portal .site-category-description {
  display:block;
  font-size:11px;
  color:var(--vp-muted);
  font-weight:300;
  margin-top:7px;
  line-height:1.6;
  min-height:3.2em;
}

#vp-portal .site-category-link {
  display:block;
  font-size:10px;
  color:#d7a5b6;
  font-weight:300;
  letter-spacing:.04em;
  margin-top:12px;
}

#vp-portal .site-latest {
  border-top:1px solid var(--vp-border);
  padding:28px 0;
}

#vp-portal .site-chat-callout {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  border:1px solid #ffffff1c;
  background:#ffffff03;
  border-radius:12px;
  padding:20px;
  margin:12px 0 28px;
  transition:border-color .2s ease;
}
#vp-portal .site-chat-callout > div { flex:1 1 420px; min-width:0; }
#vp-portal .site-chat-callout > .site-primary { flex:0 0 auto; }

#vp-portal .site-chat-callout .site-eyebrow {
  margin-bottom:8px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.2em;
  color:var(--vp-accent);
}

#vp-portal .site-chat-callout h2 {
  font-size:24px;
  font-weight:300;
  margin:0 0 10px;
  line-height:1.25;
  letter-spacing:.01em;
}

#vp-portal .site-chat-callout p:not(.site-eyebrow) {
  font-size:15px;
  font-weight:300;
  line-height:1.65;
  color:var(--vp-muted);
  margin:0;
  max-width:450px;
}

#vp-portal .site-compact-categories {
  padding-bottom:26px;
}

#vp-portal .site-compact-categories .site-category-media {
  margin-bottom:12px;
}

#vp-portal .site-compact-categories .site-category-description,#vp-portal .site-compact-categories .site-category-link {
  display:none;
}

#vp-portal .site-compact-categories .site-category-tile[aria-pressed=true] .site-category-media::before {
  border-color:#d2829b99;
}

#vp-portal .site-compact-categories .site-category-tile[aria-pressed=true] .site-category-name {
  color:#ecc0cf;
}

#vp-portal .site-footer-links {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

#vp-portal .site-footer-links :is(a,button) {
  border:0;
  background:none;
  color:var(--vp-muted);
  padding:0;
  font-size:10px;
  font-weight:300;
}

@media(max-width:760px) {
  #vp-portal .vp-header {
    padding:22px 25px;
    flex-wrap:wrap
  }

  #vp-portal .vp-brand img {
    width:clamp(185px,calc(100vw - 330px),215px)
  }

  #vp-portal .vp-nav {
    gap:10px;
    flex-wrap:wrap
  }

  #vp-portal .vp-nav :is(a,button) {
    font-size:11px
  }

  #vp-portal .vp-main {
    padding:0 25px 22px
  }

  #vp-portal .site-category-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
  }

  #vp-portal .site-category-media {
    height:270px
  }

  #vp-portal .site-compact-categories .site-category-media {
    height:200px
  }

}

@media(max-width:480px) {
  #vp-portal .vp-header {
    padding:20px 18px
  }

  #vp-portal .vp-brand img {
    width:215px
  }

  #vp-portal .vp-nav {
    gap:16px;
    width:100%
  }

  #vp-portal .vp-nav :is(a,button) {
    font-size:11px
  }

  #vp-portal .vp-nav .vp-login {
    padding:8px 14px
  }

  #vp-portal .vp-main {
    padding:0 18px 20px
  }

  #vp-portal .site-hero {
    padding:28px 0 24px
  }

  #vp-portal .site-hero h1 {
    font-size:36px
  }

  #vp-portal .site-hero>p:not(.site-eyebrow) {
    font-size:14px
  }

  #vp-portal .site-category-grid {
    gap:14px
  }

  #vp-portal .site-category-media {
    height:195px
  }

  #vp-portal .site-category-media::before {
    top:38px
  }

  #vp-portal .site-category-name {
    font-size:12px
  }

  #vp-portal .site-category-description {
    font-size:11px
  }

  #vp-portal .site-section-head h2 {
    font-size:21px
  }

  #vp-portal .site-compact-categories .site-category-media {
    height:155px
  }

  #vp-portal .site-section-head :is(a,button) {
    font-size:10px
  }

  #vp-portal .vp-intro h1 {
    font-size:35px
  }

}

@media(prefers-reduced-motion:reduce) {
  #vp-portal .site-category-cutout {
    transition:none
  }

}

#vp-portal .site-category-media {
  --figure-height:180px;
  --figure-breakout:36px;
  height:var(--figure-height);
}

#vp-portal .site-category-media::before {
  top:var(--figure-breakout,50px);
}

#vp-portal .site-category-cutout {
  width:calc(var(--figure-height) * .75);
  left:50%;
  right:auto;
  margin-left:calc(var(--figure-height) * -.375);
}

#vp-portal .devices .site-category-cutout {
  width:100%;
  left:0;
  margin-left:0;
  background-size:90% auto;
  background-position:center 20%;
}

#vp-portal .site-compact-categories .site-category-media {
  --figure-height:153px;
  height:var(--figure-height);
}

#vp-portal .site-compact-categories .site-category-media::before {
  top:36px;
}

@media(max-width:760px) {
  #vp-portal .site-category-media {
    --figure-height:210px
  }

  #vp-portal .site-compact-categories .site-category-media {
    --figure-height:200px
  }

}

@media(max-width:480px) {
  #vp-portal .site-category-media {
    --figure-height:155px
  }

  #vp-portal .site-compact-categories .site-category-media {
    --figure-height:155px
  }

}

/* Real pages: native links, keyboard controls and a flow-based header. */
html {
  background:#171716;
  color:#f5f2f0;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  scrollbar-gutter:stable;
}

body {
  margin:0;
  font-family:Inter,sans-serif;
  font-weight:300;
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

a {
  color:inherit;
}

#vp-portal {
  max-width:1200px;
  margin:auto;
  min-height:100vh;
}

/* Header-only wrappers never impose a full page height on account or guides. */
#vp-portal:is([data-page=guides],[data-page=account]) {
  min-height:0;
  width:100%;
  flex-shrink:0;
}

#vp-portal .vp-nav .vp-login {
  min-width:92px;
  justify-content:center;
}

#vp-portal a {
  text-decoration:none;
}

#vp-portal a:focus-visible {
  outline:2px solid var(--vp-accent);
  outline-offset:4px;
  border-radius:3px;
}


#vp-portal .vp-brand {
  display:block;
  flex-shrink:0;
}

#vp-portal .vp-nav a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
}

#vp-portal .vp-nav a[aria-current=page] {
  color:var(--vp-text);
}

#vp-portal .site-category-tile {
  display:block;
}

#vp-portal .vp-media-button {
  display:block;
}

#vp-portal .vp-item-save {
  cursor:pointer;
  font-size:17px;
  line-height:1;
}

#vp-portal .vp-view {
  display:inline-flex;
  align-items:center;
  min-height:30px;
}

#vp-portal .site-category-tile[aria-current=page] .site-category-media::before {
  border-color:#d2829b99;
}

#vp-portal .site-category-tile[aria-current=page] .site-category-name {
  color:#ecc0cf;
}

#vp-portal .vp-visit,#vp-portal .vp-save-detail {
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

#vp-portal .vp-visit:disabled {
  background:#ffffff12;
  border:1px solid var(--vp-border);
  color:var(--vp-muted);
  cursor:default;
}

#vp-portal .vp-detail-info h1 {
  font-weight:300;
  letter-spacing:0;
  font-size:34px;
  margin:10px 0 14px;
}

#vp-portal .vp-detail-note h2 {
  font-weight:400;
  font-size:13px;
  margin:0 0 8px;
}

#vp-portal .detail-example-note {
  font-size:11px;
  margin:18px 0 0;
  line-height:1.6;
}

#vp-portal .detail-breadcrumb {
  margin:26px 0 20px;
}

#vp-portal .vp-back {
  margin-bottom:20px;
}

#vp-portal .vp-free {
  display:flex;
  align-items:center;
  gap:6px;
}

#vp-portal input[type=checkbox] {
  accent-color:#d2829b;
}

#vp-portal .vp-info-panel {
  font-size:14px;
  line-height:1.8;
}

#vp-portal .vp-info-panel h2 {
  font-weight:300;
}

#vp-portal .saved-notice {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  font-size:12px;
  color:var(--vp-muted);
  padding-bottom:18px;
}

#vp-portal .portal-notice {
  font-size:12px;
  color:var(--vp-muted);
}

#vp-portal .vp-status {
  margin-top:14px;
}

#vp-portal .art-portrait {
  background-position:0% 0%;
}

#vp-portal .art-world {
  background-position:100% 0%;
}

#vp-portal .art-device {
  background-position:0% 100%;
}

#vp-portal .art-man {
  background-position:100% 100%;
}

#vp-portal .art-hardware {
  background-image:var(--vp-hardware);
  background-size:cover;
  background-position:center;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

.skip-link {
  position:absolute;
  top:0;
  left:10px;
  z-index:300;
  transform:translateY(-110%);
  background:#f5f2f0;
  color:#171716;
  padding:12px;
}

.skip-link:focus {
  transform:translateY(0);
}

#agegate[hidden], html.age-confirmed #agegate {
  display:none;
}

#agegate {
  position:fixed;
  inset:0;
  z-index:200;
  background:#171716fa;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  font-family:Inter,sans-serif;
  color:#f5f2f0;
}

#agegate .gate-box {
  position:relative;
  top:-24px;
  text-align:center;
  max-width:450px;
}
#agegate .gate-brand {
  display:block;
  width:250px;
  height:auto;
  margin:0 auto 56px;
}

#agegate h2 {
  font-size:clamp(26px,3.5vw,30px);
  font-weight:300;
  line-height:1.15;
  margin:0 0 28px;
}

#agegate p {
  font-size:clamp(15px,2vw,16px);
  line-height:1.6;
  color:#c4bfbc;
  margin:0 0 42px;
}

#agegate .site-actions {
  display:flex;
  justify-content:center;
  gap:25px;
  align-items:center;
  flex-wrap:wrap;
}

#agegate .site-primary {
  font-family:inherit;
  background:linear-gradient(108deg,#ffffffc2,#ffffff9e 44%,#ffffffba);
  border:1px solid #ffffff57;
  border-radius:30px;
  min-height:48px;
  padding:0 30px;
  letter-spacing:.15em;
  color:#242020;
  font-size:13px;
  font-weight:600;
}

#agegate .site-secondary {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:13px;
  color:#c4bfbc;
  text-transform:uppercase;
  letter-spacing:.15em;
  text-decoration:none;
}

#agegate :focus-visible {
  outline:2px solid #d2829b;
  outline-offset:4px;
}
@media(max-width:760px) {
  #agegate .gate-brand { width:min(215px,calc(100vw - 120px)); }
}
@media(max-height:450px) {
  #agegate .gate-box { top:0; }
}

@media(min-width:1050px) {
  #vp-portal .site-category-media {
    --figure-height:220px
  }

  #vp-portal .site-compact-categories .site-category-media {
    --figure-height:185px
  }

}

@media(max-width:760px) {
  #vp-portal .vp-header {
    align-items:center
  }

  #vp-portal .vp-nav {
    justify-content:flex-start
  }

  #vp-portal .vp-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}

@media(max-width:480px) {

  #vp-portal .vp-grid {
    grid-template-columns:1fr
  }

  #vp-portal .vp-nav {
    gap:10px 12px
  }

  #vp-portal .vp-nav a {
    font-size:11px
  }

  #vp-portal .vp-search-wrap input {
    font-size:16px
  }

  #vp-portal .vp-tools {
    gap:8px
  }

  #vp-portal .saved-notice {
    align-items:flex-start;
    flex-direction:column
  }

}

@media(pointer:coarse) {
  #vp-portal .vp-nav a,#vp-portal .vp-view,#vp-portal .site-secondary {
    min-height:44px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  #vp-portal * {
    animation:none!important;
    transition:none!important
  }

}

#vp-portal button:not(:disabled) {
  cursor:pointer;
}

/* Image tiles are the category selector; keep the results toolbar singular. */
#vp-portal .vp-results-heading {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:12px;
}

#vp-portal .vp-results-heading h2 {
  font-size:18px;
  font-weight:300;
  letter-spacing:.01em;
  margin:0;
}

#vp-portal .vp-results-heading .vp-view {
  margin-left:4px;
}

#vp-portal[data-page=explore] .vp-toolbar {
  padding:6px 0 22px;
}

#vp-portal.portal-enhanced .search-submit {
  display:none;
}

/* Chat introduction: the same portal shell, with three expandable principles. */
#vp-portal .chat-principles {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:20px;
  row-gap:14px;
  align-items:stretch;
  scroll-margin-top:24px;
}

#vp-portal .chat-principle {
  border:1px solid #ffffff18;
  border-radius:20px;
  background:linear-gradient(155deg,#d2829b13,#ffffff04 68%);
  min-width:0;
}

#vp-portal .chat-principle[data-chat-principle=quality] {
  background:linear-gradient(155deg,#c4b29b13,#ffffff04 68%);
}

#vp-portal .chat-principle[data-chat-principle=privacy] {
  background:linear-gradient(155deg,#b0bdd013,#ffffff04 68%);
}

#vp-portal .chat-card-label {
  display:block;
  color:var(--vp-accent);
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:0;
}

#vp-portal .chat-card-title {
  display:block;
  font-size:clamp(23px,2.4vw,28px);
  line-height:1.2;
  font-weight:300;
  letter-spacing:-.025em;
  margin:0;
}

#vp-portal .chat-principle p {
  font-size:13px;
  line-height:1.85;
  color:var(--vp-muted);
  margin:0;
}

#vp-portal .chat-invitation {
  display:block;
  margin-top:48px;
  border:1px solid #ffffff18;
  border-radius:20px;
  background:radial-gradient(ellipse at 50% 100%,#d2829b0e,transparent 70%);
  overflow:hidden;
  transition:border-color .2s ease;
}

#vp-portal .chat-invitation-top {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:20px 26px;
  border-bottom:1px solid #ffffff10;
  color:var(--vp-muted);
  font-size:10px;
  letter-spacing:.1em;
}

#vp-portal .chat-invitation-body {
  text-align:center;
  padding:40px 20px;
}

#vp-portal .chat-guides {
  display:flex;
  justify-content:center;
  margin-top:24px;
}
#vp-portal .chat-guides a {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 0;
  color:var(--vp-muted);
  font-size:13px;
  font-weight:300;
  line-height:1.5;
  text-decoration:none;
}
#vp-portal .chat-guides a:hover:where(html:not(.touch-input) *) { color:var(--vp-text); }

#vp-portal .chat-invitation h2 {
  font-size:clamp(30px,4vw,46px);
  font-weight:300;
  line-height:1.2;
  letter-spacing:-.025em;
  margin:0 0 18px;
}

#vp-portal .chat-invitation-body>p:not(.site-eyebrow) {
  font-size:14px;
  line-height:1.8;
  color:var(--vp-muted);
  margin:0 0 28px;
}

#vp-portal .chat-invitation-body .chat-tab-note {
  font-size:11px!important;
  margin:20px 0 0!important;
}

@media(max-width:760px) {
  #vp-portal .chat-principles {
    grid-template-columns:1fr
  }

  #vp-portal .chat-card-label {
    margin-bottom:0
  }

  #vp-portal .chat-invitation-top {
    flex-wrap:wrap;
    font-size:9px
  }

  #vp-portal .chat-invitation-body {
    padding:32px 20px
  }

}

#vp-portal .chat-principle {
  display:grid;
  grid-template-rows:subgrid;
  grid-row:1 / span 3;
  align-content:start;
  text-align:left;
  color:var(--vp-text);
  padding:22px;
  font:inherit;
  transition:border-color .2s,background .2s;
}

#vp-portal .chat-principle[data-chat-principle=freedom] { grid-column:1; }
#vp-portal .chat-principle[data-chat-principle=quality] { grid-column:2; }
#vp-portal .chat-principle[data-chat-principle=privacy] { grid-column:3; }

#vp-portal .chat-principle:hover:where(html:not(.touch-input) *),#vp-portal .chat-principle[aria-expanded=true] {
  border-color:#d2829b99;
}

#vp-portal .chat-principle[aria-expanded=true] {
  background:#d2829b14;
}

#vp-portal .chat-principle .chat-card-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

#vp-portal .chat-expand {
  font-size:23px;
  line-height:1;
  font-weight:200;
  transition:transform .2s;
}

#vp-portal .chat-principle[aria-expanded=true] .chat-expand {
  transform:rotate(45deg);
}

#vp-portal .chat-card-description {
  display:block;
  font-size:13px;
  line-height:1.65;
  color:var(--vp-muted);
}

#vp-portal .chat-principle-panel {
  grid-column:1 / -1;
  margin-top:4px;
  padding:22px 24px;
  border:1px solid #ffffff18;
  border-radius:20px;
  background:#ffffff04;
}

#vp-portal .chat-principle-panel h2 {
  font-size:22px;
  font-weight:300;
  margin:0 0 18px;
  color:var(--vp-accent);
}

#vp-portal .chat-panel-columns {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px 28px;
}

#vp-portal .chat-principle-panel h3 {
  font-size:16px;
  font-weight:400;
  margin:0 0 8px;
  line-height:1.5;
}

#vp-portal .chat-principle-panel p {
  font-size:14px;
  line-height:1.65;
  color:var(--vp-muted);
  margin:0;
}

#vp-portal .chat-principle-panel a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--vp-accent);
  font-size:13px;
  margin-top:14px;
}

@media(max-width:760px) {
  /* Source order pairs every trigger with its details. Desktop placement is
     reset here so a stacked card expands in place, including after resize. */
  #vp-portal .chat-principle[data-chat-principle] {
    grid-column:1;
    grid-row:auto / span 3;
  }

  #vp-portal .chat-panel-columns {
    grid-template-columns:1fr
  }

  #vp-portal .chat-principle-panel {
    margin-top:0;
    padding:20px
  }

}

/* Shared ivory glass finish; each button retains its existing compact sizing. */
:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)) {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:#242020;
  font-weight:600;
  background:linear-gradient(108deg,rgba(255,255,255,.76),rgba(255,255,255,.62) 44%,rgba(255,255,255,.73));
  background-clip:padding-box;
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 12px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.52),inset 0 -1px 0 rgba(36,32,32,.15);
  backdrop-filter:blur(17px) saturate(145%);
  -webkit-backdrop-filter:blur(17px) saturate(145%);
  text-shadow:0 1px 0 rgba(255,255,255,.50);
  transition:transform .18s ease,border-color .35s ease,box-shadow .35s ease,background .35s ease;
}

:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled))::before {
  content:'';
  position:absolute;
  pointer-events:none;
  z-index:-1;
  inset:-55% -20%;
  background:radial-gradient(ellipse at 24% 48%,rgba(255,255,255,.58) 0 11%,transparent 27%),radial-gradient(ellipse at 70% 55%,rgba(255,255,255,.35) 0 10%,transparent 30%),radial-gradient(ellipse at 46% 15%,rgba(255,255,255,.16),transparent 28%);
  filter:blur(10px);
  opacity:.65;
  animation:ivoryLiquidDrift 9s ease-in-out infinite alternate;
  transition:opacity .35s ease;
}

:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)):is(:hover:where(html:not(.touch-input) *),.is-tap-feedback) {
  border-color:rgba(255,255,255,.52);
  background:linear-gradient(108deg,rgba(255,255,255,.84),rgba(255,255,255,.68) 44%,rgba(255,255,255,.80));
  box-shadow:0 14px 31px rgba(0,0,0,.31),inset 0 1px 0 rgba(255,255,255,.62),inset 0 -1px 0 rgba(36,32,32,.17);
}

:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)):is(:hover:where(html:not(.touch-input) *),.is-tap-feedback)::before {
  opacity:.74;
}

:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)):focus-visible {
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:4px;
}
#agegate .site-primary:focus-visible {
  outline:2px solid #d2829b;
}
#agegate:focus { outline:none; }

:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)):active:where(html:not(.touch-input) *) {
  transform:translateY(1px) scale(.995);
}
/* The card owns its border; its visual button responds only to direct contact. */
#vp-portal :is(.site-chat-callout,.chat-invitation) {
  touch-action:manipulation;
}
#vp-portal :is(.site-chat-callout,.chat-invitation) .site-primary {
  pointer-events:auto;
}
#vp-portal :is(.site-chat-callout,.chat-invitation):is(:active:where(html:not(.touch-input) *),:focus-visible:where(html:not(.pointer-focus) *)) {
  border-color:#d2829b99;
}
#vp-portal :is(.site-chat-callout,.chat-invitation):hover:where(html:not(.touch-input) *) { border-color:#d2829b99; }

@keyframes ivoryLiquidDrift {
  0% {
    transform:translate3d(-4%,-2%,0) scale(1);
  }

  50% {
    transform:translate3d(3%,3%,0) scale(1.04);
  }

  100% {
    transform:translate3d(6%,-1%,0) scale(1.01);
  }

}

@media(prefers-reduced-motion:reduce) {
  :is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled)),:is(#vp-portal,#agegate) :is(.site-primary,.vp-login,.vp-visit:not(:disabled))::before {
    animation:none!important;
    transition:none!important
  }

}

/* Startup state prevents unfiltered results flashing before feature initialization. */
html.age-pending {
  overflow:hidden;
}

/* Keep the first paint out of the entrance fade while scripts initialize.
   The independent boot fallback removes portal-pending if a module fails. */
html.age-pending #vp-portal > .vp-main,
html.portal-pending #vp-portal > .vp-main {
  visibility:hidden;
}

html.portal-pending #vp-portal[data-page=explore] .vp-toolbar, html.portal-pending #vp-portal[data-page=explore] #product-list, html.portal-pending #vp-portal[data-page=explore] #saved-notice {
  visibility:hidden;
}

/* One horizontal arrow size and stroke throughout portal navigation and actions. */
#vp-portal .portal-arrow {
  display:inline-block;
  width:16px;
  height:16px;
  flex:none;
  vertical-align:-3px;
  letter-spacing:normal;
}
#vp-portal :is(.vp-view,.vp-back) .portal-arrow {
  margin-inline-start:6px;
}
#vp-portal .vp-back .portal-arrow {
  margin-inline-start:0;
  margin-inline-end:6px;
}

/* Homepage atmosphere: bounded decorative layers, with no layout or input impact. */
#vp-portal .site-hero {
  isolation:isolate;
}
#vp-portal .hero-atmosphere {
  position:absolute;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
  border-radius:inherit;
  opacity:.8;
  mask-image:
    linear-gradient(to bottom,transparent 0%,#000 22%,#000 100%),
    radial-gradient(ellipse at 50% 42%,#000 20%,transparent 74%);
  mask-composite:intersect;
  -webkit-mask-image:
    linear-gradient(to bottom,transparent 0%,#000 22%,#000 100%),
    radial-gradient(ellipse at 50% 42%,#000 20%,transparent 74%);
  -webkit-mask-composite:source-in;
}
/* One fixed grid; the animated layers underneath contain only light. */
#vp-portal .hero-atmosphere::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background-image:
    linear-gradient(to right,#d8a4b530 1px,transparent 1px),
    linear-gradient(to bottom,#d8a4b530 1px,transparent 1px);
  background-size:16px 16px;
}
#vp-portal .hero-atmosphere::after {
  content:'';
  z-index:2;
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 50% 44%,#171716b3 0%,#17171659 30%,transparent 66%);
}
#vp-portal .hero-field {
  position:absolute;
  width:62%;
  height:115%;
  top:-16%;
  left:-8%;
  background-image:radial-gradient(ellipse at 50% 50%,#d2829b66, #b4617b30 35%,transparent 68%);
  mask-image:radial-gradient(ellipse,#000 8%,transparent 69%);
  -webkit-mask-image:radial-gradient(ellipse,#000 8%,transparent 69%);
  opacity:.7;
}
#vp-portal .hero-field-ivory {
  left:51%;
  top:-8%;
  width:55%;
  background-image:radial-gradient(ellipse at 50% 50%,#e9d9cb45,#d2829b2b 35%,transparent 68%);
  opacity:.55;
}
#vp-portal .hero-field-dusk {
  left:25%;
  top:5%;
  width:48%;
  opacity:.35;
}
#vp-portal .hero-motion-ready .hero-atmosphere {
  opacity:.8;
}
#vp-portal .hero-motion-ready .hero-field {
  animation:hero-rose-drift 14s ease-in-out infinite alternate;
  animation-play-state:paused;
}
#vp-portal .hero-motion-ready .hero-field-ivory {
  animation-name:hero-ivory-drift;
  animation-duration:18s;
}
#vp-portal .hero-motion-ready .hero-field-dusk {
  animation-name:hero-dusk-drift;
  animation-duration:23s;
}
#vp-portal .hero-motion-running .hero-atmosphere,
#vp-portal .hero-motion-running .hero-field {
  animation-play-state:running;
}
@keyframes hero-rose-drift {
  0% { transform:translate3d(-8%,5%,0); opacity:.65; }
  55% { opacity:1; }
  100% { transform:translate3d(25%,-10%,0); opacity:.75; }
}
@keyframes hero-ivory-drift {
  0% { transform:translate3d(8%,-6%,0); opacity:.45; }
  60% { opacity:.85; }
  100% { transform:translate3d(-24%,12%,0); opacity:.65; }
}
@keyframes hero-dusk-drift {
  0% { transform:translate3d(-12%,12%,0); opacity:.25; }
  100% { transform:translate3d(16%,-14%,0); opacity:.6; }
}
@media(max-width:480px) {
  #vp-portal .hero-atmosphere::before {
    background-size:20px 20px;
  }
  #vp-portal .hero-field-dusk { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  #vp-portal .hero-motion-ready .hero-atmosphere,
  #vp-portal .hero-motion-ready .hero-field {
    animation:none!important;
    transform:none;
  }
}

/* Keep navigation arrows vertically centred with their accompanying labels. */
#vp-portal :is(.site-category-link,.site-secondary,.vp-back),
#vp-portal .site-section-head>a,
#vp-portal .chat-principle-panel a,
#vp-portal .vp-story-art>span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
#vp-portal .site-category-name {
  align-items:center;
  justify-content:flex-start;
  gap:6px;
}
#vp-portal .site-category-name>span {
  display:inline-flex;
  align-items:center;
}
#vp-portal .vp-back .portal-arrow {
  margin:0;
}

/* Refined listing cards: image and title are the entry points; pricing lives in details. */
#vp-portal .vp-media-button .vp-art {
  background-size:200% auto;
  background-repeat:no-repeat;
}
#vp-portal .vp-media-button .art-hardware {
  background-size:contain;
  background-color:#d9d9dc;
}
#vp-portal .art-story {
  background-position:100% 0%;
  filter:hue-rotate(320deg);
}
#vp-portal .vp-free-label {
  display:inline-block;
  margin-top:10px;
  color:var(--vp-muted);
  font-size:11px;
}

/* Real product names, without invented product imagery or third-party embeds. */
#vp-portal .vp-art.vp-brand-art {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:24px;
  background:radial-gradient(ellipse at 50% 100%,#493139 0%,#242023 48%,#19191a 100%);
  text-align:center;
}
#vp-portal .vp-brand-art span {
  color:#ead5dd;
  font-size:clamp(24px,3vw,40px);
  font-weight:300;
  letter-spacing:-.03em;
  line-height:1.15;
}
#vp-portal .vp-brand-art small {
  color:#b3a5aa;
  font-size:12px;
  letter-spacing:.05em;
}
#vp-portal .vp-brand-art .vp-product-icon {
  width:48px;
  height:48px;
  object-fit:contain;
  flex:none;
}
#vp-portal .vp-product-image img {
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:4/5;
  max-height:none;
  object-fit:cover;
  object-position:center top;
}
#vp-portal .vp-art.vp-logo-art {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  background:radial-gradient(ellipse at 50% 100%,#352a32 0%,#201d22 50%,#161619 100%);
}
#vp-portal .vp-product-logo {
  display:block;
  width:88%;
  max-width:280px;
  max-height:64px;
  object-fit:contain;
}
#vp-portal .vp-product-logo[src="/portal/assets/ohchat-logo-v1.png"] {
  max-height:48px;
}
#vp-portal .vp-detail-photo:has(.vp-product-image) {
  aspect-ratio:4/5;
  align-self:start;
}
#vp-portal .vp-detail-photo .vp-art.vp-product-image {
  position:relative;
  inset:auto;
  aspect-ratio:4/5;
  height:100%;
  min-height:0;
  background:#17171b;
}

/* Shared editorial detail, used on the real page and in its quick view. */
#vp-portal .vp-detail-photo {
  min-height:0;
  aspect-ratio:1;
}
#vp-portal .vp-detail-photo .vp-art {
  min-height:100%;
}
#vp-portal .vp-detail-info :is(h1,h2) {
  font-size:clamp(26px,3vw,34px);
  line-height:1.15;
  margin:10px 0 16px;
  font-weight:300;
}
#vp-portal .vp-essentials {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  margin:0 0 16px;
  list-style:none;
  color:var(--vp-muted);
  font-size:12px;
}
#vp-portal .vp-essentials li {
  padding:5px 10px;
  border:1px solid var(--vp-border);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  line-height:1.35;
  max-width:100%;
  overflow-wrap:anywhere;
}

#vp-portal .vp-editorial {
  margin:24px 0;
}
#vp-portal .vp-editorial h3 {
  margin:0 0 8px;
  font-size:13px;
  font-weight:400;
}
#vp-portal .vp-editorial p {
  color:var(--vp-muted);
  margin:0;
  font-size:14px;
  line-height:1.65;
}
#vp-portal .vp-detail-info .vp-before {
  font-size:12px;
}
body.vp-quick-open {
  position:fixed;
  top:var(--vp-scroll-top);
  width:100%;
  overflow:hidden;
}
#vp-portal .vp-quick-view {
  width:min(880px,calc(100% - 48px));
  max-width:none;
  max-height:calc(100dvh - 48px);
  margin:auto;
  padding:0;
  border:1px solid var(--vp-border);
  border-radius:18px;
  background:var(--vp-bg);
  color:var(--vp-text);
  overscroll-behavior:contain;
}
#vp-portal .vp-quick-view::backdrop {
  background:#0009;
}
#vp-portal .vp-quick-controls {
  position:sticky;
  top:0;
  height:0;
  z-index:5;
  pointer-events:none;
}
#vp-portal .vp-quick-close {
  box-sizing:border-box;
  position:absolute;
  top:max(10px,env(safe-area-inset-top));
  right:max(10px,env(safe-area-inset-right));
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid transparent;
  border-radius:50%;
  background:#3b3937e6;
  color:var(--vp-text);
  cursor:pointer;
  pointer-events:auto;
}
#vp-portal .vp-quick-close:focus-visible {
  outline:2px solid #d2829b;
  outline-offset:2px;
  border-color:#d2829b;
  color:#d2829b;
}
#vp-portal .vp-quick-view .vp-example {
  display:block;
  padding-right:30px;
}
#vp-portal .vp-quick-close svg {
  display:block;
  width:16px;
  height:16px;
  flex-shrink:0;
}
#vp-portal .vp-quick-view .vp-detail { border:0; border-radius:0; }
@media(max-width:760px) {
  #vp-portal .vp-detail-photo { aspect-ratio:3/2; }
}
@media(max-width:600px) {
  #vp-portal .vp-quick-view {
    width:100%;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    border:0;
    border-radius:0;
    padding-bottom:env(safe-area-inset-bottom);
  }
}

/* Fresh transparent artwork on a shared, softly rose-tinted frame. */
#vp-portal .site-category-frame {
  position:relative;
  display:block;
  width:min(100%,180px);
  margin-bottom:15px;
  transition:transform .24s ease;
}
@media(max-width:899px) {
  #vp-portal .site-category-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px) {
  #vp-portal .site-category-name {
    font-size:12px;
  }
}
#vp-portal .site-category-art {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:440/680;
  border-radius:0 0 3% 3% / 0 0 2% 2%;
}
#vp-portal .site-category-name:has(.site-category-soon) {
  align-items:baseline;
  flex-wrap:wrap;
  column-gap:8px;
  row-gap:2px;
}
#vp-portal .site-category-soon {
  display:inline;
  margin-top:0;
  color:var(--vp-muted);
  font-size:11px;
  font-weight:400;
  line-height:1.4;
}
#vp-portal .site-category-outline {
  pointer-events:none;
  stroke:var(--vp-accent);
  stroke-width:1;
  opacity:0;
  transition:opacity .24s ease;
}
#vp-portal .site-category-neutral-edge {
  stroke:#69605e;
  stroke-width:1;
  transition:opacity .24s ease;
}
#vp-portal .site-category-tile[aria-current=page] .site-category-outline,
#vp-portal .site-category-tile:focus-visible:where(html:not(.pointer-focus) *) .site-category-outline {
  opacity:.6;
}
#vp-portal .site-category-tile[aria-current=page] .site-category-neutral-edge,
#vp-portal .site-category-tile:focus-visible:where(html:not(.pointer-focus) *) .site-category-neutral-edge { opacity:0; }
#vp-portal .site-category-tile:focus-visible:where(html:not(.pointer-focus) *) .site-category-frame {
  transform:translateY(-3px);
}
#vp-portal .site-category-tile:is(:hover:where(html:not(.touch-input) *),:active:where(html:not(.touch-input) *)) .site-category-outline { opacity:.6; }
#vp-portal .site-category-tile:is(:hover:where(html:not(.touch-input) *),:active:where(html:not(.touch-input) *)) .site-category-neutral-edge { opacity:0; }
@media (hover:hover) and (pointer:fine) {
  #vp-portal .site-category-tile:hover:where(html:not(.touch-input) *) .site-category-frame {
    transform:translateY(-3px);
  }
}
@media (prefers-reduced-motion:reduce) {
  #vp-portal .site-category-outline,#vp-portal .site-category-neutral-edge,
  #vp-portal .site-category-frame { transition:none; }
  #vp-portal .site-category-tile:is(:hover:where(html:not(.touch-input) *),:focus-visible) .site-category-frame {
    transform:none;
  }
}

/* Entrance only: native navigation, dialog focus and closing stay immediate.
   No persistent opacity or animation dependency can leave content hidden. */
@media (prefers-reduced-motion:no-preference) {
  #vp-portal .vp-quick-view[open] {
    animation:portal-modal-enter 220ms ease-out;
  }
  #vp-portal .vp-quick-view[open]::backdrop {
    animation:portal-page-enter 220ms ease-out;
  }
  #vp-portal .chat-principle-panel:not([hidden]) {
    animation:portal-page-enter 180ms ease-out;
  }
}
@keyframes portal-page-enter {
  from { opacity:0; }
  to { opacity:1; }
}
@keyframes portal-modal-enter {
  from { opacity:0; }
  to { opacity:1; }
}

/* Public mobile header: desktop links and no-script navigation stay unchanged. */
#vp-portal .vp-menu-toggle { display:none; }
@media(max-width:760px) {
  html.nav-pending #vp-portal .vp-public-header,
  #vp-portal .vp-public-header.vp-nav-ready {
    min-height:77px; /* 44px control + 32px padding + 1px bottom border */
  }
  /* Head script holds the collapsed geometry before enhancement is ready. */
  html.nav-pending #vp-portal .vp-public-header {
    flex-wrap:nowrap; padding:16px 25px; gap:12px;
  }
  html.nav-pending #vp-portal .vp-public-header .vp-brand img {
    width:min(215px,calc(100vw - 120px));
  }
  html.nav-pending #vp-portal .vp-public-header .vp-nav { display:none; }
  #vp-portal .vp-public-header.vp-nav-ready {
    position:relative;
    z-index:50;
    flex-wrap:nowrap;
    padding:16px 25px;
    gap:12px;
  }
  #vp-portal .vp-public-header.vp-nav-ready .vp-brand img {
    width:min(215px,calc(100vw - 120px));
  }
  #vp-portal .vp-public-header.vp-nav-ready .vp-menu-toggle {
    display:grid;
    place-items:center;
    flex-shrink:0;
    width:44px;
    height:44px;
    margin:0;
    padding:0;
    border:1px solid var(--vp-border);
    border-radius:10px;
    background:transparent;
    color:var(--vp-text);
    cursor:pointer;
  }
  #vp-portal .vp-public-header.vp-nav-ready .vp-nav {
    display:none;
    position:absolute;
    top:calc(100% - 8px);
    right:25px;
    width:min(190px,calc(100vw - 50px));
    padding:8px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    border:1px solid var(--vp-border);
    border-radius:12px;
    background:var(--vp-bg);
    box-shadow:0 12px 28px #0007;
  }
  #vp-portal .vp-public-header.vp-nav-ready.vp-menu-open .vp-nav { display:flex; }
  #vp-portal .vp-public-header.vp-nav-ready .vp-nav a {
    justify-content:flex-start;
    width:100%;
    min-width:0;
    min-height:44px;
    padding:10px 16px;
    font-size:12px;
    line-height:24px;
    letter-spacing:.13em;
    font-weight:300;
    color:var(--vp-muted);
    background:none;
    border:0;
    border-radius:6px;
    box-shadow:none;
  }
  #vp-portal .vp-public-header.vp-nav-ready .vp-nav a::before { display:none; }
  #vp-portal .vp-public-header.vp-nav-ready .vp-nav a:is(:hover:where(html:not(.touch-input) *),:focus-visible,[aria-current=page]) {
    color:var(--vp-text);
    background:#ffffff0a;
  }
}
@media(max-width:480px) {
  html.nav-pending #vp-portal .vp-public-header { padding-inline:18px; }
  #vp-portal .vp-public-header.vp-nav-ready { padding-inline:18px; }
  #vp-portal .vp-public-header.vp-nav-ready .vp-nav {
    right:18px;
    width:min(190px,calc(100vw - 36px));
  }
}

/* Shared compact dropdown finish for public and signed-in mobile navigation. */
@media(max-width:760px) {
  #vp-portal .vp-nav.vp-mobile-menu {
    width:190px;
    max-width:calc(100vw - 36px);
    padding:8px;
    gap:0;
    align-items:stretch;
    border:1px solid var(--vp-border);
    border-radius:12px;
    background:var(--vp-bg);
    box-shadow:0 12px 28px #0007;
  }
  #vp-portal .vp-nav.vp-mobile-menu :is(a,button) {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    min-width:0;
    min-height:44px;
    padding:10px 16px;
    font-family:inherit;
    font-size:12px;
    line-height:24px;
    letter-spacing:.13em;
    font-weight:300;
    text-transform:uppercase;
    text-shadow:none;
    color:var(--vp-muted);
    background:none;
    border:0;
    border-radius:6px;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    transform:none;
  }
  #vp-portal .vp-nav.vp-mobile-menu :is(a,button)::before { display:none; }
  #vp-portal .vp-nav.vp-mobile-menu :is(a,button):is(:hover:where(html:not(.touch-input) *),:focus-visible,[aria-current=page],.active) {
    color:var(--vp-text);
    background:#ffffff0a;
  }
}

/* Mobile discovery row uses native swiping; links stay reachable by keyboard. */
@media(max-width:760px) {
  #vp-portal[data-page=home] .site-latest .vp-grid {
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:84%;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scroll-padding-inline:6px;
    padding:6px;
    margin-inline:-6px;
    scrollbar-width:none;
  }
  #vp-portal[data-page=home] .site-latest .vp-grid::-webkit-scrollbar { display:none; }
  #vp-portal[data-page=home] .site-latest .vp-item {
    scroll-snap-align:start;
  }
}

/* One Account entry groups private controls beside the shared primary links. */
#vp-portal .vp-account-menu { position:relative; }
#vp-portal .vp-account-menu>summary {
  display:flex;
  align-items:center;
  min-height:36px;
  padding:6px 0;
  list-style:none;
  font:300 12px/1.5 Inter,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--vp-muted);
  cursor:pointer;
}
#vp-portal .vp-account-menu>summary::-webkit-details-marker { display:none; }
#vp-portal .vp-account-menu>summary::after { content:'⌄'; margin-left:6px; }
#vp-portal .vp-account-menu>summary:is(:hover:where(html:not(.touch-input) *),[aria-current=page]),
#vp-portal .vp-account-menu[open]>summary { color:var(--vp-text); }
#vp-portal .vp-account-menu>summary:focus-visible { outline:2px solid var(--vp-text); outline-offset:2px; }
#vp-portal .vp-account-panel {
  position:absolute;
  z-index:60;
  top:calc(100% + 10px);
  right:0;
  width:230px;
  padding:8px;
  border:1px solid var(--vp-border);
  border-radius:12px;
  background:var(--vp-bg);
  box-shadow:0 12px 28px #0007;
}
#vp-portal .vp-nav .vp-account-panel :is(a,button),
#vp-portal .vp-account-panel .vp-account-balance {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  min-height:44px;
  margin:0;
  padding:10px 12px;
  border:0;
  border-radius:6px;
  color:var(--vp-muted);
  background:none;
  font:300 12px/24px Inter,sans-serif;
  letter-spacing:.03em;
  text-transform:none;
  box-shadow:none;
}
#vp-portal .vp-nav .vp-account-panel :is(a,button):is(:hover:where(html:not(.touch-input) *),:focus-visible,[aria-current=page]) {
  background:#ffffff0a;
  color:var(--vp-text);
}
#vp-portal .vp-nav [data-nav-admin] { margin-left:8px; padding-left:16px; border-left:1px solid var(--vp-border); }
@media(max-width:760px) {
  #vp-portal .vp-nav.vp-mobile-menu .vp-account-menu>summary {
    min-height:44px;
    padding:10px 16px;
    font-size:12px;
    line-height:24px;
    border-radius:6px;
  }
  #vp-portal .vp-nav.vp-mobile-menu .vp-account-menu[open]>summary { background:#ffffff0a; }
  #vp-portal .vp-account-panel {
    position:static;
    width:100%;
    padding:0 0 0 4px;
    border:0;
    border-left:1px solid var(--vp-border);
    border-radius:0;
    box-shadow:none;
    background:none;
  }
  #vp-portal .vp-nav.vp-mobile-menu .vp-account-panel :is(a,button) {
    padding:10px 12px;
    letter-spacing:.03em;
    text-transform:none;
  }
  #vp-portal .vp-nav [data-nav-admin] { margin:8px 0 0; border-left:0; border-top:1px solid var(--vp-border); border-radius:0; }
}

/* Hide the provisional Login label until the first server session check ends.
   Without JavaScript the class is never set and the ordinary Login link works. */
html.session-pending #vp-portal .vp-nav [data-session-link] {
  color:transparent; text-shadow:none; pointer-events:none;
}
#vp-portal .vp-public-header { position:relative; z-index:50; }
#vp-portal .vp-account-menu>summary { min-width:92px; }
#vp-portal .vp-nav .vp-account-panel :is(a,button),
#vp-portal .vp-account-panel .vp-account-balance {
  gap:10px;
  font:300 12px/24px Inter,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
}
#vp-portal .vp-account-icon { flex:0 0 16px; width:16px; height:16px; }
#vp-portal .vp-account-panel .vp-account-amount {
  margin-left:auto;
  letter-spacing:0;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
#vp-portal .vp-account-panel [data-nav-logout] { cursor:pointer; }
@media(max-width:760px) {
  #vp-portal .vp-nav.vp-mobile-menu .vp-account-panel :is(a,button) {
    letter-spacing:.13em;
    text-transform:uppercase;
  }
  #vp-portal .vp-nav.vp-mobile-menu .vp-account-panel .vp-account-balance { padding:10px 12px; }
}

/* Keep the legal links at the page center independently of the left links. */
#vp-portal .vp-footer {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:20px;}
#vp-portal .site-footer-links {grid-column:1;}
#vp-portal .site-footer-legal {grid-column:2;display:flex;gap:28px;justify-content:center;}
#vp-portal .site-footer-legal a {color:var(--vp-muted);font-size:14px;font-weight:300;line-height:1.5;text-decoration:none;}
#vp-portal .site-footer-legal a:hover:where(html:not(.touch-input) *) {color:var(--vp-text);}
@media(max-width:600px){
 #vp-portal .vp-footer {grid-template-columns:1fr;gap:24px;}
 #vp-portal .site-footer-legal {grid-column:1;}
}

/* Keep footer links and the About/Partners links on the same type scale. */
#vp-portal .site-footer-legal a,#vp-portal .site-about-links a,#vp-portal .info-actions a {font-size:14px;font-weight:300;line-height:1.5;}

/* A vector heart avoids font-dependent baseline offsets. */
#vp-portal .vp-item-save svg {display:block;width:18px;height:18px;transform:translateY(-.5px);}

/* Give opened listings one clear path to the experience. */
#vp-portal .vp-detail-info {
  padding:44px 40px;
}
#vp-portal .vp-detail-info :is(h1,h2) {
  margin:14px 0 24px;
}
#vp-portal .vp-detail-copy>p {
  max-width:36ch;
  font-size:15px;
  line-height:1.8;
  margin:0 0 28px;
}
#vp-portal .vp-detail-info .vp-essentials {
  margin-bottom:30px;
  gap:9px;
}
#vp-portal .vp-detail-info p.vp-detail-hook {
  font-size:14px;
  line-height:1.75;
  margin:0 0 36px;
}
#vp-portal .vp-detail-info .vp-actions {
  margin-top:12px;
}
/* Treat the outbound CTA as one control, not selectable text, on every device. */
#vp-portal .vp-visit,
#vp-portal .vp-visit * {
  -webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;
  user-select:none;
}
#vp-portal .vp-visit > * { pointer-events:none; }
#vp-portal .vp-detail-info .vp-visit {
  min-height:46px;
  padding:13px 22px;
}
@media(max-width:760px) {
  #vp-portal .vp-detail-info { padding:32px 26px 36px; }
  #vp-portal .vp-detail-copy>p { max-width:40ch; }
}
@media(max-width:400px) {
  #vp-portal .vp-detail-info { padding:28px 22px 32px; }
}

/* No placeholder artwork while a listing photo awaits selection. */
#vp-portal .vp-detail-top.vp-detail-no-photo { grid-template-columns:1fr; }

#vp-portal .vp-quick-navigation {
  position:absolute; top:50%; left:10px; right:10px; transform:translateY(-50%);
  display:flex; justify-content:space-between; pointer-events:none; z-index:4;
}
#vp-portal .vp-quick-navigation button {
  box-sizing:border-box;
  display:grid; place-items:center; width:44px; height:44px; padding:0;
  border:1px solid transparent; border-radius:50%; background:#3b3937e6; color:var(--vp-text);
  cursor:pointer; pointer-events:auto;
}
#vp-portal .vp-quick-navigation button:disabled { opacity:.25; cursor:default; }
#vp-portal .vp-quick-navigation button:focus-visible:not(:disabled) { outline:2px solid #d2829b; outline-offset:2px; border-color:#d2829b; color:#d2829b; }
#vp-portal :is(.vp-quick-close,.vp-quick-navigation button):active:not(:disabled) { border-color:#d2829b; color:#d2829b; }
@media(hover:hover) {
  html:not(.touch-input) #vp-portal :is(.vp-quick-close,.vp-quick-navigation button):hover:not(:disabled) {
    border-color:#d2829b;
    color:#d2829b;
  }
}

#vp-portal #quick-view-content { position:relative; }
#vp-portal .vp-modal-outgoing {
  position:absolute; inset:0 0 auto; width:100%; background:var(--vp-bg);
  pointer-events:none; z-index:1;
}
@media (prefers-reduced-motion:no-preference) {
  #vp-portal .vp-modal-outgoing { animation:portal-modal-leave 220ms ease-out forwards; }
  #vp-portal #quick-view-content:has(> .vp-modal-outgoing) { pointer-events:none; }
}
@keyframes portal-modal-leave { from { opacity:1; } to { opacity:0; } }
@media (prefers-reduced-motion:reduce) {
  #vp-portal .vp-modal-outgoing { display:none; }
}

/* Fit the selected Swipey crop inside the standard modal image frame. */
#vp-portal .vp-product-image img[src="/portal/assets/swipey-detail-v4.jpg"] {
  object-fit:contain;
  object-position:center;
}

/* Compact mobile detail: a full-width hero and a naturally sized information panel. */
@media(max-width:760px) {
  #vp-portal .vp-quick-view {
    --vp-mobile-photo:clamp(180px,50svh,430px);
    width:calc(100% - 24px); max-width:520px;
    height:fit-content; max-height:calc(100svh - 24px - env(safe-area-inset-bottom));
    margin:auto; padding:0; overflow:hidden; box-sizing:border-box;
    border:1px solid var(--vp-border); border-radius:18px;
  }
  #vp-portal #quick-view-content,
  #vp-portal .vp-quick-view .vp-detail { height:auto; min-height:0; }
  #vp-portal .vp-quick-view .vp-detail-top {
    height:auto; min-height:0; grid-template-columns:1fr;
    grid-template-rows:var(--vp-mobile-photo) auto;
  }
  #vp-portal .vp-quick-view .vp-detail-top.vp-detail-no-photo { grid-template-rows:auto; }
  #vp-portal .vp-quick-view .vp-detail-photo,
  #vp-portal .vp-quick-view .vp-detail-photo .vp-art.vp-product-image {
    height:100%; min-height:0; aspect-ratio:auto; align-self:stretch;
  }
  #vp-portal .vp-quick-view .vp-product-image img {
    width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:center top;
  }
  #vp-portal .vp-quick-view .vp-detail-info {
    display:flex; flex-direction:column; min-height:0; padding:18px 20px 20px; box-sizing:border-box;
    max-height:calc(100svh - var(--vp-mobile-photo) - 26px - env(safe-area-inset-bottom));
  }
  #vp-portal .vp-quick-view .vp-detail-no-photo .vp-detail-info {
    max-height:calc(100svh - 26px - env(safe-area-inset-bottom)); padding-top:58px;
  }
  #vp-portal .vp-quick-view .vp-example { flex:none; font-size:12px; }
  #vp-portal .vp-quick-view .vp-detail-info :is(h1,h2) { flex:none; font-size:26px; margin:6px 0 12px; }
  #vp-portal .vp-quick-view .vp-detail-copy {
    flex:0 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain;
  }
  #vp-portal .vp-quick-view .vp-detail-copy>p { max-width:none; font-size:14px; line-height:1.55; margin:0 0 14px; }
  #vp-portal .vp-quick-view .vp-detail-info .vp-essentials { gap:6px; margin:0; }
  #vp-portal .vp-quick-view .vp-detail-info p.vp-detail-hook { display:none; }
  #vp-portal .vp-quick-view .vp-detail-info .vp-actions { flex:none; margin:18px 0 0; }
  #vp-portal .vp-quick-view .vp-detail-info .vp-visit { width:100%; box-sizing:border-box; }
  #vp-portal .vp-quick-view .vp-quick-navigation { top:calc(var(--vp-mobile-photo) / 2); }
}

/* Compact feature labels preserve meaning without dominating the copy. */
#vp-portal .vp-detail-info .vp-essentials { gap:6px; }
#vp-portal .vp-essentials li {
  padding:3px 8px;
  font-size:11.5px;
  line-height:1.35;
  background:transparent;
}

/* Keep desktop copy and wrapping pills out of the side navigation's hit area. */
@media(min-width:761px) {
  #vp-portal .vp-quick-view .vp-detail-info { padding-right:76px; }
}
#vp-portal .vp-essentials li { overflow-wrap:normal; }

/* Keep the selected portrait intact; decorative blur fills the mobile hero. */
#vp-portal .vp-product-image img.vp-photo-backdrop { display:none; }
@media(max-width:760px) {
  #vp-portal .vp-quick-view .vp-product-image { isolation:isolate; overflow:hidden; }
  #vp-portal .vp-quick-view .vp-product-image img.vp-photo-backdrop {
    display:block; position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; filter:blur(22px) brightness(.6);
    transform:scale(1.15); pointer-events:none; z-index:-1;
  }
  #vp-portal .vp-quick-view .vp-product-image img.vp-photo-portrait {
    position:relative; width:100%; height:100%; object-fit:contain; object-position:center;
  }
  /* Trim the captured screen label from GoLove's otherwise uncropped photo. */
  #vp-portal .vp-quick-view .vp-product-image img.vp-photo-portrait[src="/portal/assets/golove-detail-v2.jpg"] {
    transform:scale(1.08);
  }
}

/* Align compact labels and avoid Safari stretching an auto-height modal. */
/* Bring MyLovely's subject forward and trim the empty ceiling above her. */
#vp-portal .vp-product-image img.vp-photo-portrait[src="/portal/assets/mylovely-detail-v1.jpg"],
#vp-portal .vp-quick-view .vp-product-image img.vp-photo-portrait[src="/portal/assets/mylovely-detail-v1.jpg"] {
  object-fit:cover;
  object-position:center 30%;
}

#vp-portal .vp-essentials { align-items:center; }
#vp-portal .vp-essentials li {
  display:inline-flex; align-items:center; justify-content:center;
  box-sizing:border-box; min-height:24px; padding:4px 9px;
  line-height:1.3; text-align:center;
}
@media(max-width:760px) {
  #vp-portal .vp-quick-view .vp-detail,
  #vp-portal .vp-quick-view .vp-detail-info { background:#1f1f1e; }
  #vp-portal .vp-quick-view { min-height:0; align-self:center; background:#1f1f1e; }
  #vp-portal #quick-view-content { display:block; }
}

/* A stable mobile frame: image loading never determines layout dimensions.
   Extra space belongs to the portrait, not an empty area below the button. */
@media(max-width:760px) {
  #vp-portal .vp-quick-view {
    inset:12px 0 auto;
    margin:0 auto;
    height:calc(100svh - 24px - env(safe-area-inset-bottom));
    max-height:calc(100svh - 24px - env(safe-area-inset-bottom));
  }
  #vp-portal #quick-view-content,
  #vp-portal .vp-quick-view .vp-detail,
  #vp-portal .vp-quick-view .vp-detail-top { height:100%; }
  #vp-portal .vp-quick-view .vp-detail-top { grid-template-rows:minmax(0,1fr) auto; }
  #vp-portal .vp-quick-view .vp-detail-photo { position:relative; overflow:hidden; }
  #vp-portal .vp-quick-view .vp-detail-photo .vp-art.vp-product-image { position:absolute; inset:0; }
  #vp-portal .vp-quick-view .vp-product-image img.vp-photo-portrait { position:absolute; inset:0; }
}

#vp-portal #explore-results, #vp-portal .site-compact-categories { scroll-margin-top:20px; }

/* Search focus follows the rounded field instead of boxing the text input. */
#vp-portal .vp-search-wrap input:focus { outline:none; box-shadow:none; }
#vp-portal .vp-search-wrap:has(input:focus-visible) { border-color:#ffffff40; }

/* Mobile Explore keeps vertical browsing at the homepage card width. */
@media(max-width:760px) {
  #vp-portal[data-page=explore] #product-list {
    grid-template-columns:minmax(0,84%);
    justify-content:center;
    gap:40px;
  }
}



/* Image-led discovery filters, smaller than the product cards. */
#vp-portal .vp-discovery-filters {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px; margin:0 0 28px;
}
#vp-portal .vp-filter-card {
  display:block; position:relative; isolation:isolate; min-width:0; height:88px;
  box-sizing:border-box; padding:0; overflow:hidden; text-align:left;
  border:1px solid #ffffff20; border-radius:8px; background:#171716;
  color:var(--vp-text,#eee); font:inherit; cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease;
}
#vp-portal .vp-filter-picture { display:block; position:absolute; inset:0; overflow:hidden; background:#171716; }
#vp-portal .vp-filter-picture img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 32%; }
#vp-portal .vp-filter-card::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 35%,#17171630 55%,#171716e6 100%);
}
#vp-portal .vp-filter-label {
  display:block; position:absolute; z-index:1; bottom:9px; left:10px; right:8px;
  color:#f2ece9; font-size:12px; line-height:1.3; letter-spacing:.015em;
}
#vp-portal .vp-filter-card[aria-pressed="true"] { border-color:#d2829b; box-shadow:0 0 0 1px #d2829b55; }
#vp-portal .vp-filter-card[aria-pressed="true"] .vp-filter-label { color:#f3c6d5; }
#vp-portal .vp-filter-card:focus-visible { outline:2px solid #f3c6d5; outline-offset:4px; }
#vp-portal .vp-filter-card:disabled { cursor:default; }
#vp-portal button[data-filter-reset] { margin-left:auto; background:none; border:0; font:inherit; font-size:12px; cursor:pointer; color:#d2829b; }
#vp-portal button[data-filter-reset]:disabled { opacity:.4; cursor:default; }
#vp-portal button[data-filter-reset]:focus-visible { outline:2px solid #f3c6d5; outline-offset:4px; }
@media(hover:hover) { #vp-portal .vp-filter-card:not(:disabled):hover:where(html:not(.touch-input) *) { border-color:#d2829b99; } }
@media(max-width:760px) {
  #vp-portal .vp-discovery-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:22px; }
  #vp-portal .vp-filter-card { height:80px; }
  #vp-portal .vp-filter-label { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { #vp-portal .vp-filter-card { transition:none; } }

/* Captions follow the same width and inset as the category artwork frame. */
#vp-portal .site-category-caption { display:block; width:min(100%,180px); }
#vp-portal .site-category-caption > :is(.site-category-name,.site-category-description,.site-category-link) { margin-inline:.909091%; }
#vp-portal button[data-filter-reset][hidden] { display:none; }


/* Explore: image-led discovery. Ordinary grid is the no-script fallback. */
#vp-portal[data-page=explore] .vp-discovery-pills {
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px;
}
#vp-portal .vp-discovery-pills :is(.vp-filter-card,.vp-discovery-all,.vp-category-filter) {
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:auto; height:auto; min-height:38px; padding:9px 16px;
  border:1px solid #ffffff40; border-radius:24px; background:var(--vp-bg);
  font-size:13px; line-height:1.3; color:#ded8d5; text-decoration:none;
}
#vp-portal .vp-discovery-pills .vp-filter-card::after { display:none; }
#vp-portal .vp-discovery-pills .vp-filter-label { position:static; font:inherit; color:inherit; }
#vp-portal .vp-discovery-all:focus-visible { outline:2px solid #f3c6d5; outline-offset:4px; }
#vp-portal[data-page=explore] #product-list.vp-masonry {
  --discovery-columns:5; --discovery-gap:22;
  position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:28px 22px; justify-content:initial; align-items:start;
}
#vp-portal[data-page=explore] #product-list.vp-masonry-ready { display:block; }
#vp-portal .vp-masonry-ready > .vp-discovery-item { position:absolute; margin:0; }
#vp-portal .vp-masonry > [hidden] { display:none; }
#vp-portal .vp-discovery-content { min-width:0; }
#vp-portal .vp-discovery-media {
  display:block; position:relative; isolation:isolate; width:100%;
  aspect-ratio:4/5; border:1px solid #ffffff1c; border-radius:12px;
  background:var(--vp-bg); overflow:hidden; box-sizing:border-box;
  transition:border-color .2s ease;
}
#vp-portal .vp-discovery-photo {
  display:block; width:100%; height:100%; object-fit:cover; object-position:var(--discovery-position,50% 30%);
  transition:transform .3s ease;
}
#vp-portal .vp-discovery-caption { padding:9px 1px 0; }
#vp-portal[data-page=home] #home-picks .vp-discovery-caption { position:relative; }
#vp-portal[data-page=home] #home-picks .vp-name a::after { content:''; position:absolute; inset:0; }
#vp-portal .vp-discovery-caption .vp-name { margin:0 0 3px; font-size:16px; line-height:1.3; }
#vp-portal .vp-discovery-caption .vp-name a { display:flex; gap:8px; justify-content:space-between; }
#vp-portal .vp-discovery-caption .vp-name span { font-size:14px; color:var(--vp-accent); }
#vp-portal .vp-discovery-caption .vp-item-category {
  margin:0; font-size:10px; letter-spacing:.08em; line-height:1.4;
}
@media(max-width:1199px) {
  #vp-portal[data-page=explore] #product-list.vp-masonry { --discovery-columns:4; grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:959px) {
  #vp-portal[data-page=explore] #product-list.vp-masonry { --discovery-columns:3; grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:700px) {
  #vp-portal[data-page=explore] #product-list.vp-masonry { --discovery-columns:2; --discovery-gap:14; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
  #vp-portal .vp-discovery-pills :is(.vp-filter-card,.vp-discovery-all,.vp-category-filter) { min-height:36px; padding:8px 13px; font-size:12px; }
  #vp-portal .vp-discovery-caption .vp-name { font-size:15px; }
}
@media(max-width:359px) {
  #vp-portal[data-page=explore] #product-list.vp-masonry { --discovery-columns:1; grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
  #vp-portal .vp-discovery-media, #vp-portal .vp-discovery-photo { transition:none; }
}

/* Keep result announcements accessible without a second visible heading. */
#vp-portal .vp-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
#vp-portal .vp-category-filter:focus-visible { outline:2px solid #f3c6d5; outline-offset:4px; }
#vp-portal .vp-discovery-pills :is(.vp-discovery-all,.vp-category-filter) { background:#ffffff07; }



/* Brand signature on the listing portrait; no badge and no image alteration. */
#vp-portal .vp-product-image:has(.vp-photo-logo) { isolation:isolate; }
#vp-portal .vp-product-image:has(.vp-photo-logo)::after {
  content:""; position:absolute; z-index:1; inset:auto 0 0; height:28%;
  background:linear-gradient(transparent,#00000024 45%,#0000008c);
  pointer-events:none;
}
#vp-portal .vp-photo-logo {
  position:absolute; z-index:2; left:20px; bottom:20px;
  display:block; width:clamp(100px,35%,148px); height:30px;
  pointer-events:none;
}
#vp-portal .vp-product-image .vp-photo-logo img,
#vp-portal .vp-quick-view .vp-product-image .vp-photo-logo img {
  display:block; position:static; width:100%; height:100%; max-height:30px;
  aspect-ratio:auto; object-fit:contain; object-position:left bottom;
  filter:drop-shadow(0 1px 3px #0008);
}
@media(max-width:760px) {
  #vp-portal .vp-photo-logo { left:16px; bottom:16px; height:26px; width:clamp(100px,32%,130px); }
}

/* Centre the three destinations as one balanced group, with matching captions. */
#vp-portal[data-page=home] .site-category-section { padding:8px 0 40px; }
#vp-portal[data-page=home] .site-category-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%; max-width:900px; margin-inline:auto;
  gap:28px; padding-top:0;
}
#vp-portal[data-page=home] .site-category-tile { width:min(100%,180px); justify-self:center; }
#vp-portal[data-page=home] :is(.site-category-frame,.site-category-caption) { width:100%; }
#vp-portal[data-page=home] .site-category-name { font-size:20px; line-height:1.3; }
#vp-portal[data-page=home] .site-category-description { font-size:14px; margin-top:10px; line-height:1.6; }
#vp-portal[data-page=home] .site-category-section + .site-latest { padding-top:22px; }
#vp-portal[data-page=home] .site-about-intro { padding-bottom:16px; }
#vp-portal[data-page=home] .vp-status:empty { display:none; }
@media(min-width:600px) and (max-width:899px) {
  #vp-portal[data-page=home] .site-category-grid { max-width:720px; gap:22px; }
}
@media(max-width:599px) {
  #vp-portal[data-page=home] .site-category-grid { max-width:450px; gap:12px; }
  #vp-portal[data-page=home] .site-category-frame { margin-bottom:10px; }
  #vp-portal[data-page=home] .site-category-name { font-size:15px; }
  #vp-portal[data-page=home] .site-category-description { font-size:11px; margin-top:8px; line-height:1.5; }
  #vp-portal[data-page=home] .site-category-soon { font-size:10px; }
}

@media(max-width:599px) {
  #vp-portal[data-page=home] .site-category-section { padding:8px 0 32px; }
}

#vp-portal .site-category-name > .site-category-arrow { margin-left:auto; color:var(--vp-accent); flex:none; }

/* Keep photo saving separate from the outbound action and brand overlay. */
#vp-portal .vp-detail-photo { position:relative; }
#vp-portal .vp-detail-photo > .vp-photo-save {
  top:12px; right:12px; width:36px; height:36px; z-index:3;
  background:#171716b3;
}
#vp-portal .vp-detail-photo > .vp-photo-save[aria-pressed=true] {
  color:var(--vp-accent); background:#492e39;
}
@media(max-width:760px) {
  #vp-portal .vp-quick-view .vp-detail-photo > .vp-photo-save {
    left:max(12px,env(safe-area-inset-left)); right:auto;
    top:max(10px,env(safe-area-inset-top));
    width:44px; height:44px;
  }
}

#vp-portal #home-picks > [hidden] { display:none; }
@media(min-width:761px) {
  #vp-portal[data-page=home] #home-picks {
    grid-template-columns:repeat(5,minmax(0,1fr));
    max-width:1060px; margin-inline:auto;
  }
  #vp-portal #home-picks > .vp-item { width:min(100%,180px); justify-self:center; }
}
@media(max-width:760px) {
  #vp-portal[data-page=home] #home-picks { grid-auto-columns:min(32%,180px); }
  #vp-portal #home-picks .vp-name { font-size:14px; }
}

.site-contact-links { display:flex; justify-content:center; align-items:center; gap:28px; margin-top:24px; }
.site-contact-links a { font-size:14px; font-weight:300; color:var(--vp-muted,#aaa); text-decoration:none; }
.site-contact-links a:hover:where(html:not(.touch-input) *) { color:var(--vp-text,#eee); }

/* Mobile details are a native horizontal strip of complete cards. */
@media(max-width:760px) {
  #vp-portal .vp-quick-view .vp-quick-navigation { display:none; }
  #vp-portal #quick-view-content.vp-modal-carousel {
    display:flex; overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
    scrollbar-width:none; touch-action:auto;
  }
  #vp-portal #quick-view-content.vp-modal-carousel::-webkit-scrollbar { display:none; }
  #vp-portal #quick-view-content.vp-modal-carousel > .vp-detail {
    flex:0 0 100%; width:100%; min-width:0; box-sizing:border-box;
    scroll-snap-align:start; scroll-snap-stop:always;
  }
  #vp-portal .vp-quick-view .vp-detail-photo { touch-action:auto; }
  #vp-portal .vp-quick-view .vp-detail-copy { overscroll-behavior-x:auto; }
}

/* Short landscape windows retain a reachable action through native vertical
   scrolling inside each slide; horizontal swiping remains on the parent strip. */
@media(max-width:760px) and (max-height:500px) {
  #vp-portal #quick-view-content.vp-modal-carousel > .vp-detail { overflow-y:auto; }
  #vp-portal .vp-quick-view .vp-detail-top {
    height:auto; min-height:100%; grid-template-rows:min(42svh,210px) auto;
  }
  #vp-portal .vp-quick-view .vp-detail-info { max-height:none; }
  #vp-portal .vp-quick-view .vp-detail-copy { flex:none; overflow:visible; }
}

/* One quiet return control, below dialogs and clear of mobile safe areas. */
#vp-portal .vp-back-to-top {
  position:fixed; right:max(20px,env(safe-area-inset-right));
  bottom:max(20px,env(safe-area-inset-bottom)); z-index:40;
}
#vp-portal .vp-back-to-top {
  display:flex; align-items:center; gap:8px; padding:11px 15px;
  border:1px solid #d2829b66; border-radius:999px;
  background:var(--vp-bg); color:var(--vp-accent); font-size:13px;
  font-weight:400; letter-spacing:normal; line-height:normal;
  text-decoration:none;
  cursor:pointer; box-shadow:0 4px 20px #0003;
}
#vp-portal .vp-back-to-top:hover:where(html:not(.touch-input) *) { border-color:var(--vp-accent); }
#vp-portal .vp-discovery-pills :is(.vp-filter-card,.vp-discovery-all,.vp-category-filter):is([aria-pressed=true],[aria-current=page]) {
  background:var(--vp-bg); color:var(--vp-accent);
  border-color:#d2829b66; box-shadow:0 4px 20px #0003;
}
@media(hover:hover) {
  #vp-portal .vp-discovery-pills :is(.vp-filter-card,.vp-discovery-all,.vp-category-filter):not([aria-pressed=true]):not([aria-current=page]):not(:disabled):hover:where(html:not(.touch-input) *) {
    border-color:#ffffff80;
  }
}
body.vp-quick-open #vp-portal .vp-back-to-top { display:none; }

/* Quiet grouped entrances. Text stays still; card rows settle by only 2px. */
@keyframes vp-content-arrive {
  0% { opacity:0; transform:translateY(var(--vp-arrival-distance,0px)); }
  100% { opacity:1; transform:translateY(0); }
}
#vp-portal [data-page-reveal=pending] { opacity:0; }
#vp-portal [data-page-reveal=arriving] {
  animation:vp-content-arrive 900ms cubic-bezier(.4,0,.2,1) both;
  animation-delay:var(--vp-page-delay,0ms);
}
/* Homepage keeps the short sequence with a softer 1.2-second fade. */
#vp-portal[data-page=home] [data-page-reveal=arriving]{animation-duration:1200ms}
#vp-portal[data-page=home] .site-hero > [data-page-reveal=arriving] {
  animation-name:vp-home-title-arrive;
}
@keyframes vp-home-title-arrive {
  from { opacity:0; }
  to { opacity:1; }
}
@media(prefers-reduced-motion:reduce) {
  #vp-portal [data-page-reveal] { opacity:1; animation:none; }
}

/* Account entry is a full page: header, flexible content, shared footer. */
#vp-portal:is([data-page=login],[data-page=signup]) {
  display:flex; flex-direction:column; width:100%; margin:0 auto;
  min-height:100vh; min-height:100svh;
}
#vp-portal .vp-entry-footer { flex:0 0 auto; }

/* Match title typography while preserving the live entry layout. */
#vp-portal[data-page=login] .account-entry h1 {
  font-weight:300;
  letter-spacing:.01em;
}

/* Keep pointer focus free of outlines, after all component focus rules.
   Tab navigation removes pointer-focus and retains the keyboard indicator. */
html.pointer-focus #vp-portal :is(a,button,summary):focus,
html.pointer-focus #agegate :is(a,button):focus { outline:none; }

/* One tap-selected touch state across cards. Native hover is mouse-only above. */
#vp-portal :is(.chat-principle,.site-chat-callout,.chat-invitation,.vp-back-to-top).is-tap-feedback { border-color:#d2829b99; }
#vp-portal .site-category-tile.is-tap-feedback .site-category-outline { opacity:.6; }
#vp-portal .site-category-tile.is-tap-feedback .site-category-neutral-edge { opacity:0; }

/* Approved action-arrow standard: one size, current text colour, 12px total gap.
   Shape/colour of silver actions and rounded rose controls remain distinct. */
#vp-portal :is(.vp-visit,.site-primary,.vp-login,.vp-back-to-top,.tv-tab,.room-link,.home-live-room):has(>.portal-arrow){display:inline-flex;align-items:center;justify-content:center;gap:12px}
#vp-portal :is(.vp-visit,.site-primary,.vp-login,.vp-back-to-top,.tv-tab,.room-link,.home-live-room)>.portal-arrow{display:block;flex:0 0 16px;width:16px;height:16px;margin:0;color:inherit;stroke:currentColor;vertical-align:middle}
#vp-portal .preview-smoke-content{justify-content:center;gap:12px}
#vp-portal .preview-smoke-content>.preview-smoke-arrow{width:16px;height:16px;flex:0 0 16px;margin:0}
#vp-portal .preview-smoke-content .portal-arrow{display:block;width:16px;height:16px;flex:none;margin:0;color:inherit;stroke:currentColor}

/* Connected toy: a quiet card indicator, with the same hint on keyboard focus. */
#vp-portal .card,#vp-portal .vp-discovery-caption{position:relative}
#vp-portal .connected-toy{position:absolute;right:0;bottom:21px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--vp-accent);cursor:help;z-index:2;border:0;padding:0;background:none;font:inherit}
#vp-portal .connected-toy svg{display:block;overflow:visible}
#vp-portal .connected-toy-tip{position:absolute;right:0;bottom:calc(100% + 7px);padding:5px 8px;border-radius:4px;background:var(--vp-surface);border:1px solid var(--vp-border);color:var(--vp-text);font-size:12px;line-height:1.4;white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none}
#vp-portal .connected-toy:hover .connected-toy-tip,#vp-portal .connected-toy:focus-visible .connected-toy-tip,#vp-portal .connected-toy[aria-expanded=true] .connected-toy-tip{visibility:visible;opacity:1}
#vp-portal .connected-toy:focus-visible{outline:1px solid var(--vp-accent);outline-offset:2px;border-radius:3px}
/* Reserve the icon's 24px column plus a 12px gap, even with a room action. */
#vp-portal .card:has(>.connected-toy) .caption,
#vp-portal .vp-discovery-caption:has(>.connected-toy) .home-live-caption{padding-right:36px}

/* Essential icon spacing also works where :has() is unavailable. */
#vp-portal .card.has-connected-toy .caption,
#vp-portal .vp-discovery-caption.has-connected-toy .home-live-caption{padding-right:36px}
#vp-portal .connected-toy::before{content:"";position:absolute;inset:-10px}

/* In-card adult confirmation only; the surrounding page stays readable. */
#vp-portal .live-card-confirmation{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px;background:var(--vp-bg);border-radius:inherit}
#vp-portal .live-card-confirmation>p{margin:0;color:var(--vp-muted);font-size:13px;line-height:1.3}
#vp-portal .live-card-confirmation>.live-card-confirm{max-width:100%;min-height:44px;padding:8px 12px;font-size:13px;line-height:1.3;border-radius:5px;white-space:nowrap;cursor:pointer;touch-action:manipulation}
@media(max-width:640px){#vp-portal .live-card-confirmation{gap:4px;padding:4px}#vp-portal .live-card-confirmation>p{font-size:11px}#vp-portal .live-card-confirmation>.live-card-confirm{font-size:12px;padding:6px}}

/* Recorded shows share the caption's reserved action space, never the room text. */
#vp-portal .recorded-show{position:absolute;right:0;bottom:21px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;background:none;box-shadow:none;color:var(--vp-accent);cursor:pointer;z-index:2;text-decoration:none}
#vp-portal .recorded-show svg{display:block;flex:none}
#vp-portal .recorded-show-tip{position:absolute;right:0;bottom:calc(100% + 7px);padding:5px 8px;border-radius:4px;background:var(--vp-surface);border:1px solid var(--vp-border);color:var(--vp-text);font-size:12px;line-height:1.4;white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none}
#vp-portal .recorded-show:hover .recorded-show-tip,#vp-portal .recorded-show:focus-visible .recorded-show-tip{visibility:visible;opacity:1}
#vp-portal .recorded-show:focus-visible{outline:1px solid var(--vp-accent);outline-offset:3px;border-radius:3px}
#vp-portal .card.has-recorded-show .caption,#vp-portal .vp-discovery-caption.has-recorded-show .home-live-caption{padding-right:36px}
#vp-portal .has-recorded-show.has-connected-toy>.connected-toy{right:0}
#vp-portal .has-recorded-show.has-connected-toy>.recorded-show{right:36px}
#vp-portal .has-recorded-show.has-connected-toy>.connected-toy::before{inset:0}
#vp-portal .card.has-recorded-show.has-connected-toy .caption,#vp-portal .vp-discovery-caption.has-recorded-show.has-connected-toy .home-live-caption{padding-right:72px}
#vp-portal .has-recorded-show .home-live-caption{flex-wrap:wrap;row-gap:4px}
#vp-portal .has-recorded-show .home-live-caption .vp-name{flex:1 1 70px}
#vp-portal .has-recorded-show .home-live-room{position:static;margin-left:auto}
#vp-portal .card.has-recorded-show .caption{flex-wrap:wrap;row-gap:4px}
#vp-portal .card.has-recorded-show .model-name{min-width:0;flex:1 1 70px;overflow-wrap:anywhere}
#vp-portal .card.has-recorded-show .room-link{margin-left:auto;flex-shrink:0}

/* Selected recording: white icon only, without a button fill or underline. */
#vp-portal .recorded-show[aria-pressed="true"]{color:var(--vp-text)}

/* One centered footer with distinct editorial and legal/contact groups. */
#vp-portal .vp-footer{display:flex;justify-content:center;align-items:center;gap:0}
#vp-portal .site-footer-nav{grid-column:auto;display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:nowrap}
#vp-portal .site-footer-group{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;row-gap:8px}
#vp-portal .site-footer-group>a{white-space:nowrap}
#vp-portal .site-footer-group>a+a::before{content:'·';display:inline-block;margin:0 12px;color:var(--vp-muted)}
#vp-portal .site-footer-divider{display:block;width:1px;height:18px;flex:0 0 1px;background:var(--vp-border)}
#vp-portal .site-footer-nav a:is(:hover,:focus-visible){color:var(--vp-accent)}
@media(max-width:600px){
 #vp-portal .site-footer-nav{flex-direction:column;gap:14px;width:100%}
 #vp-portal .site-footer-divider{display:none}
 #vp-portal .site-footer-group>a+a::before{margin:0 10px}
}
