﻿    /* TOPBAR */
    .topbar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 32px;
      background: var(--topbar-bg);
      backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border);
      height: 56px
    }

    .tb-logo {
      width: 120px;
      display: flex;
      align-items: center;
      line-height: 1
    }

    .tb-logo img {
      width: 100%;
      height: auto;
      object-fit: contain;
      filter: drop-shadow(0 0 8px rgba(196, 168, 130, 0.15));
    }

    .tb-back {
      font-size: 8px;
      letter-spacing: .25em;
      color: var(--dim);
      text-decoration: none;
      cursor: none;
      transition: color .3s;
      display: flex;
      align-items: center;
      gap: 8px
    }

    .tb-back:hover {
      color: var(--cream)
    }

    /* VIEW TABS — topbar */
    .view-tabs {
      display: flex;
      gap: 2px
    }

    .vtab {
      font-size: 8px;
      letter-spacing: .22em;
      padding: 7px 16px;
      background: none;
      border: 1px solid transparent;
      color: var(--dim);
      cursor: none;
      transition: all .3s;
      position: relative;
      overflow: hidden
    }

    .vtab::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: var(--amber);
      transform: scaleX(0);
      transition: transform .3s
    }

    .vtab.on {
      color: var(--amber);
      border-color: var(--border)
    }

    .vtab.on::after {
      transform: scaleX(1)
    }

    .vtab:hover {
      color: var(--cream)
    }

    /* MAIN LAYOUT */
    #app {
      display: flex;
      width: 100vw;
      height: 100vh;
      padding-top: 56px
    }

    /* CANVAS */
    .p-canvas {
      flex: 1;
      position: relative;
      overflow: hidden;
      background: var(--darker)
    }

    .canvas-glow {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      transition: background .6s ease
    }

    /* Image display */
    .view-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      filter: invert(1);
      mix-blend-mode: screen;
      mix-blend-mode: screen;
      object-position: center;
      user-select: none;
      pointer-events: none;
      z-index: 1;
      opacity: 0;
      transition: opacity .5s ease, filter .5s;
      filter: brightness(.72) contrast(1.08) sepia(.18);
      mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) 58%, rgba(0, 0, 0, 0) 100%);
      -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) 58%, rgba(0, 0, 0, 0) 100%);
    }

    .view-img.active {
      opacity: .92
    }

    /* face image is landscape — adjust */
    #img-face {
      object-position: 48% center;
      mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) 65%, rgba(0, 0, 0, 0) 100%)
    }

    #img-body {
      object-position: center 30%
    }

    /* HOTSPOTS */
    #hotspotsLayer {
      position: absolute;
      inset: 0;
      z-index: 10;
      transition: opacity .35s
    }

    #hotspotsLayer.fading {
      opacity: 0
    }

    .hotspot {
      position: absolute;
      width: 30px;
      height: 30px;
      transform: translate(-50%, -50%);
      cursor: none
    }

    .hotspot::before,
    .hotspot::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      border-radius: 50%
    }

    .hotspot::before {
      width: 7px;
      height: 7px;
      background: var(--cream);
      box-shadow: 0 0 9px rgba(var(--cream-rgb), .65);
      z-index: 2;
      transition: transform .4s cubic-bezier(0.34, 1.56, 0.64, 1), background .3s, box-shadow .3s
    }

    .hotspot::after {
      width: 100%;
      height: 100%;
      border: 1px solid rgba(var(--warm-rgb), .55);
      animation: radar 2.5s ease-out infinite;
      z-index: 1
    }

    @keyframes radar {
      0% {
        width: 100%;
        height: 100%;
        opacity: .6
      }

      100% {
        width: 320%;
        height: 320%;
        opacity: 0
      }
    }

    .hotspot:hover::before {
      transform: translate(-50%, -50%) scale(1.7);
      background: var(--warm)
    }

    .hotspot.on::before {
      transform: translate(-50%, -50%) scale(2.2);
      background: var(--warm);
      box-shadow: 0 0 16px rgba(var(--warm-rgb), .85)
    }

    .hotspot.on::after {
      animation: none;
      width: 200%;
      height: 200%;
      border-color: rgba(var(--warm-rgb), .6);
      opacity: .4
    }

    .hs-label {
      position: absolute;
      left: calc(100% + 11px);
      top: 50%;
      transform: translateY(-50%);
      font-size: 8px;
      letter-spacing: .16em;
      color: rgba(var(--warm-rgb), .5);
      white-space: nowrap;
      pointer-events: none;
      transition: color .25s;
      background: var(--tab-bg-inactive);
      padding: 2px 7px;
    }

    .hs-label.flip {
      left: auto;
      right: calc(100% + 11px);
      text-align: right
    }

    .hotspot.on .hs-label,
    .hotspot:hover .hs-label {
      color: var(--cream)
    }

    /* View label bottom */
    .view-label {
      position: absolute;
      bottom: 22px;
      left: 32px;
      z-index: 20;
      font-size: 7px;
      letter-spacing: .4em;
      color: rgba(var(--warm-rgb), .35);
      transition: opacity .3s
    }

    /* ANCHORED JEWELRY */
    .anchored-jewel {
      position: absolute;
      transform: translate(-50%, -50%);
      font-size: 14px;
      color: var(--amber);
      text-shadow: 0 0 12px rgba(var(--warm-rgb), 0.8), 0 0 4px rgba(var(--cream-rgb), 0.5);
      z-index: 15;
      pointer-events: none;
      animation: jewelPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    }

    @keyframes jewelPop {
      0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 0;
      }

      60% {
        transform: translate(-50%, -50%) scale(1.3);
        opacity: 1;
      }

      100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
      }
    }

    .ripple-effect {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 40px;
      height: 40px;
      background: radial-gradient(circle, rgba(var(--warm-rgb), 0.8) 0%, transparent 70%);
      border-radius: 50%;
      transform: translate(-50%, -50%) scale(0);
      opacity: 1;
      pointer-events: none;
      z-index: 14;
      animation: rippleAnim 0.6s ease-out forwards;
    }

    @keyframes rippleAnim {
      0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 1;
      }

      100% {
        transform: translate(-50%, -50%) scale(3);
        opacity: 0;
      }
    }

    /* PANEL */
    .p-panel {
      width: 400px;
      background: var(--glass);
      backdrop-filter: blur(28px) saturate(1.9);
      -webkit-backdrop-filter: blur(28px) saturate(1.9);
      border-left: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      position: relative;
      flex-shrink: 0
    }

    .p-panel::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 35%;
      background: linear-gradient(170deg, rgba(var(--warm-rgb), .055) 0%, transparent 100%);
      pointer-events: none
    }

    /* Panel header */
    .ph {
      padding: 20px 28px 16px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0
    }

    .ph-logo {
      /* Reduce default logo size in the panel to avoid it becoming too large */
      width: 88px;
      max-width: 50%;
      margin-bottom: 6px;
    }

    .ph-logo img {
      width: 100%;
      height: auto;
      object-fit: contain;
      filter: invert(1);
      mix-blend-mode: screen;
      mix-blend-mode: screen;
    }

    /* Extra safety: cap topbar and panel logo sizes on very large viewports */
    .tb-logo img,
    .ph-logo img {
      max-width: 180px;
      max-height: 56px;
      width: auto;
      height: auto;
    }

    @media (max-width: 720px) {
      .ph-logo { width: 64px; }
      .tb-logo { width: 90px; }
      .tb-logo img, .ph-logo img { max-height: 44px; }
    }

    .ph-sub {
      font-size: 7px;
      letter-spacing: .38em;
      color: var(--amber);
      margin-top: 3px
    }

    .ph-rule {
      height: 1px;
      background: linear-gradient(to right, var(--border), transparent);
      margin-top: 14px
    }

    /* Artist banner */
    #artist-banner {
      display: none;
      align-items: center;
      justify-content: space-between;
      padding: 9px 28px;
      background: rgba(var(--warm-rgb), .1);
      border-bottom: 1px solid rgba(var(--warm-rgb), .15);
      flex-shrink: 0
    }

    #artist-banner.show {
      display: flex
    }

    .ab-label {
      font-size: 7px;
      letter-spacing: .35em;
      color: var(--amber);
      margin-bottom: 2px
    }

    .ab-name {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-style: italic;
      color: var(--cream)
    }

    .ab-change {
      font-size: 7px;
      letter-spacing: .2em;
      color: var(--dim);
      text-decoration: none;
      cursor: none;
      transition: color .3s
    }

    .ab-change:hover {
      color: var(--cream)
    }

    /* ZONE BOX */
    .zone-box {
      margin: 16px 28px 0;
      padding: 18px 20px;
      border: 1px solid var(--border);
      background: rgba(var(--dark-rgb), .25);
      position: relative;
      overflow: hidden;
      transition: border-color .35s;
      flex-shrink: 0
    }

    .zone-box::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--amber), transparent);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .4s
    }

    .zone-box.sel::before {
      transform: scaleX(1)
    }

    .zone-box.sel {
      border-color: rgba(196, 168, 130, .22)
    }

    .zone-pulse {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(196, 168, 130, .04);
      opacity: 0;
      pointer-events: none;
      animation: none
    }

    .zone-box.sel .zone-pulse {
      animation: zpulse .35s ease forwards
    }

    @keyframes zpulse {
      0% {
        opacity: .4;
        transform: scale(0.98);
      }

      50% {
        opacity: .1;
        transform: scale(1);
      }

      100% {
        opacity: 0;
        transform: scale(1);
      }
    }

    .zone-eyebrow {
      font-size: 7px;
      letter-spacing: .4em;
      color: var(--amber);
      margin-bottom: 6px
    }

    .zone-name {
      font-family: 'Cormorant Garamond', serif;
      font-size: 24px;
      font-style: italic;
      color: var(--cream);
      line-height: 1.1
    }

    .zone-desc {
      font-size: 10px;
      letter-spacing: .06em;
      color: var(--dim);
      margin-top: 4px;
      line-height: 1.5
    }

    .zone-price {
      position: absolute;
      top: 14px;
      right: 16px;
      font-family: 'DM Mono', monospace;
      font-size: 11px;
      color: var(--warm)
    }

    /* PANEL BODY */
    .pb {
      padding: 16px 28px 28px;
      overflow-y: auto;
      flex: 1;
      scroll-behavior: smooth
    }

    .pb::-webkit-scrollbar {
      width: 2px
    }

    .pb::-webkit-scrollbar-thumb {
      background: rgba(196, 168, 130, .18)
    }

    .slabel {
      font-size: 7px;
      letter-spacing: .4em;
      color: var(--amber);
      margin: 20px 0 12px;
      display: flex;
      align-items: center;
      gap: 10px
    }

    .slabel::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(to right, var(--border), transparent)
    }

    /* JEWELRY */
    .j-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7px
    }

    .j-card {
      padding: 14px 10px;
      text-align: center;
      background: rgba(255, 255, 255, .015);
      border: 1px solid var(--border);
      cursor: none;
      transition: all .28s;
      position: relative;
      overflow: hidden
    }

    .j-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--amber), transparent);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .35s
    }

    .j-card:hover {
      background: rgba(196, 168, 130, .04);
      border-color: rgba(196, 168, 130, .22)
    }

    .j-card.on {
      background: rgba(196, 168, 130, .07);
      border-color: rgba(196, 168, 130, .45);
      box-shadow: 0 0 12px rgba(196, 168, 130, .1);
    }

    .j-card.on::before {
      transform: scaleX(1)
    }

    .j-icon {
      font-size: 16px;
      margin-bottom: 6px;
      opacity: .85
    }

    .j-name {
      font-size: 9px;
      letter-spacing: .06em;
      color: var(--cream);
      margin-bottom: 3px;
      line-height: 1.35
    }

    .j-price {
      font-family: 'DM Mono', monospace;
      font-size: 9px;
      color: var(--warm)
    }

    .j-note {
      font-size: 7px;
      color: var(--dim);
      margin-top: 3px;
      display: block;
      letter-spacing: .04em
    }

    /* UPLOAD */
    .upload-z {
      display: block;
      padding: 18px;
      text-align: center;
      border: 1px dashed rgba(196, 168, 130, .18);
      cursor: none;
      transition: all .3s;
      position: relative
    }

    .upload-z:hover {
      border-color: rgba(196, 168, 130, .45);
      background: rgba(196, 168, 130, .025)
    }

    .upload-z input {
      position: absolute;
      inset: 0;
      opacity: 0;
      cursor: pointer;
      width: 100%;
      height: 100%
    }

    .uz-icon {
      font-size: 16px;
      opacity: .4;
      margin-bottom: 6px
    }

    .uz-text {
      font-size: 9px;
      letter-spacing: .14em;
      color: var(--dim)
    }

    .uz-sub {
      font-size: 8px;
      letter-spacing: .06em;
      color: rgba(196, 168, 130, .3);
      margin-top: 3px
    }

    .ref-preview {
      display: none;
      margin-top: 8px;
      border: 1px solid var(--border);
      padding: 9px;
      text-align: center
    }

    .ref-preview img {
      max-height: 66px;
      max-width: 100%;
      object-fit: contain;
      filter: invert(1);
      mix-blend-mode: screen;
      mix-blend-mode: screen;
    }

    .btn-clear-ref {
      margin-top: 7px;
      background: none;
      border: 1px solid var(--border);
      color: var(--dim);
      font-size: 8px;
      letter-spacing: .18em;
      padding: 5px 10px;
      cursor: none;
      transition: color .3s
    }

    .btn-clear-ref:hover {
      color: var(--cream)
    }

    /* PRICE */
    .price-block {
      margin-top: 20px;
      padding: 18px 20px;
      background: rgba(0, 0, 0, .32);
      border: 1px solid var(--border);
      text-align: center;
      position: relative;
      overflow: hidden
    }

    .price-block::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(154, 122, 86, .4), transparent)
    }

    .price-eye {
      font-size: 7px;
      letter-spacing: .4em;
      color: var(--dim);
      margin-bottom: 8px
    }

    .price-amt {
      font-family: 'Cormorant Garamond', serif;
      font-size: 40px;
      font-weight: 300;
      color: var(--cream);
      display: block;
      line-height: 1;
      transition: text-shadow .4s
    }

    .price-amt.glow {
      text-shadow: 0 0 22px rgba(196, 168, 130, .4)
    }

    .price-sub {
      font-size: 8px;
      letter-spacing: .08em;
      color: var(--dim);
      margin-top: 7px;
      line-height: 1.6
    }

    /* BUTTONS */
    .btn-wa {
      display: block;
      width: 100%;
      margin-top: 14px;
      padding: 15px;
      background: var(--cream);
      color: var(--darker);
      border: none;
      font-family: 'Josefin Sans', sans-serif;
      font-size: 8px;
      font-weight: 400;
      letter-spacing: .35em;
      cursor: none;
      position: relative;
      overflow: hidden;
      transition: color .3s
    }

    .btn-wa::after {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--warm);
      transform: translateX(-105%);
      transition: transform .45s cubic-bezier(.76, 0, .24, 1)
    }

    .btn-wa span {
      position: relative;
      z-index: 1
    }

    .btn-wa:hover::after {
      transform: translateX(0)
    }

    .btn-wa:disabled {
      opacity: .38;
      pointer-events: none
    }

    .btn-back-lnk {
      display: block;
      width: 100%;
      margin-top: 7px;
      padding: 12px;
      background: none;
      color: var(--dim);
      border: 1px solid var(--border);
      font-family: 'Josefin Sans', sans-serif;
      font-size: 8px;
      letter-spacing: .26em;
      cursor: none;
      transition: all .3s;
      text-align: center;
      text-decoration: none
    }

    .btn-back-lnk:hover {
      color: var(--cream);
      border-color: rgba(196, 168, 130, .28)
    }

    /* TOAST */
    #toast {
      position: fixed;
      bottom: 26px;
      left: 50%;
      transform: translateX(-50%) translateY(14px);
      background: var(--dark);
      border: 1px solid var(--border);
      padding: 9px 20px;
      font-size: 8px;
      letter-spacing: .18em;
      color: var(--cream);
      z-index: 9999;
      opacity: 0;
      transition: opacity .3s, transform .3s;
      pointer-events: none;
      white-space: nowrap
    }

    #toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0)
    }

    /* WAKE ANIMATION FOR BTN */
    @keyframes btnWake {
      0% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.02);
        background: var(--warm);
        color: var(--dark);
      }

      100% {
        transform: scale(1);
      }
    }

    .btn-wa.wake {
      animation: btnWake .4s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    /* EDITOR VISUAL ADMIN */
    #adminPanel {
      position: absolute;
      top: 66px;
      right: 32px;
      z-index: 300;
      background: rgba(10, 7, 4, .9);
      border: 1px solid rgba(212, 165, 90, .4);
      padding: 12px 16px;
      backdrop-filter: blur(10px);
      display: none;
      flex-direction: column;
      gap: 10px;
    }

    #adminPanel.show {
      display: flex;
    }

    .admin-title {
      font-size: 8px;
      letter-spacing: .2em;
      color: #d4a55a;
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 4px;
    }

    .admin-btn {
      font-size: 7px;
      letter-spacing: .15em;
      padding: 6px 10px;
      background: rgba(212, 165, 90, .15);
      color: var(--cream);
      border: 1px solid rgba(212, 165, 90, .3);
      cursor: pointer;
      transition: all .2s;
    }

    .admin-btn:hover {
      background: rgba(212, 165, 90, .25);
    }

    body.editing-mode .hotspot {
      cursor: grab;
    }

    body.editing-mode .hotspot:active {
      cursor: grabbing;
    }

    body.editing-mode .hotspot::after {
      animation: none;
      border-color: #d4a55a;
    }

    body.editing-mode .hotspot::before {
      background: #d4a55a;
    }


    .ref-preview {
      display: none;
      margin-top: 8px;
      border: 1px solid var(--border);
      padding: 9px;
      text-align: center
    }

    .ref-preview img {
      max-height: 66px;
      max-width: 100%;
      object-fit: contain;
      filter: invert(1);
      mix-blend-mode: screen;
      mix-blend-mode: screen;
    }

    .btn-clear-ref {
      margin-top: 7px;
      background: none;
      border: 1px solid var(--border);
      color: var(--dim);
      font-size: 8px;
      letter-spacing: .18em;
      padding: 5px 10px;
      cursor: none;
      transition: color .3s
    }

    .btn-clear-ref:hover {
      color: var(--cream)
    }

    /* PRICE */
    .price-block {
      margin-top: 20px;
      padding: 18px 20px;
      background: rgba(0, 0, 0, .32);
      border: 1px solid var(--border);
      text-align: center;
      position: relative;
      overflow: hidden
    }

    .price-block::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(154, 122, 86, .4), transparent)
    }

    .price-eye {
      font-size: 7px;
      letter-spacing: .4em;
      color: var(--dim);
      margin-bottom: 8px
    }

    .price-amt {
      font-family: 'Cormorant Garamond', serif;
      font-size: 40px;
      font-weight: 300;
      color: var(--cream);
      display: block;
      line-height: 1;
      transition: text-shadow .4s
    }

    .price-amt.glow {
      text-shadow: 0 0 22px rgba(196, 168, 130, .4)
    }

    .price-sub {
      font-size: 8px;
      letter-spacing: .08em;
      color: var(--dim);
      margin-top: 7px;
      line-height: 1.6
    }

    /* BUTTONS */
    .btn-wa {
      display: block;
      width: 100%;
      margin-top: 14px;
      padding: 15px;
      background: var(--cream);
      color: var(--darker);
      border: none;
      font-family: 'Josefin Sans', sans-serif;
      font-size: 8px;
      font-weight: 400;
      letter-spacing: .35em;
      cursor: none;
      position: relative;
      overflow: hidden;
      transition: color .3s
    }

    .btn-wa::after {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--warm);
      transform: translateX(-105%);
      transition: transform .45s cubic-bezier(.76, 0, .24, 1)
    }

    .btn-wa span {
      position: relative;
      z-index: 1
    }

    .btn-wa:hover::after {
      transform: translateX(0)
    }

    .btn-wa:disabled {
      opacity: .38;
      pointer-events: none
    }

    .btn-back-lnk {
      display: block;
      width: 100%;
      margin-top: 7px;
      padding: 12px;
      background: none;
      color: var(--dim);
      border: 1px solid var(--border);
      font-family: 'Josefin Sans', sans-serif;
      font-size: 8px;
      letter-spacing: .26em;
      cursor: none;
      transition: all .3s;
      text-align: center;
      text-decoration: none
    }

    .btn-back-lnk:hover {
      color: var(--cream);
      border-color: rgba(196, 168, 130, .28)
    }

    /* TOAST */
    #toast {
      position: fixed;
      bottom: 26px;
      left: 50%;
      transform: translateX(-50%) translateY(14px);
      background: var(--dark);
      border: 1px solid var(--border);
      padding: 9px 20px;
      font-size: 8px;
      letter-spacing: .18em;
      color: var(--cream);
      z-index: 9999;
      opacity: 0;
      transition: opacity .3s, transform .3s;
      pointer-events: none;
      white-space: nowrap
    }

    #toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0)
    }

    #toast.ok {
      border-color: rgba(74, 138, 90, .45);
      color: #7abf8a
    }

    /* ===================================================
   RESPONSIVE – Piercings
   =================================================== */

    html,
    body {
      overflow-x: hidden;
      max-width: 100%;
    }

    /* Tablet/Mobile ≤ 820px */
    @media (max-width: 720px) {

      html,
      body {
        height: auto;
        overflow-y: auto;
      }

      #app {
        flex-direction: column;
        overflow-y: auto;
        height: auto;
        min-height: 100vh;
      }

      .p-canvas {
        height: 44vh;
        flex: none;
      }

      .p-panel {
        width: 100%;
        flex: 1;
        border-left: none;
        border-top: 1px solid var(--border);
      }

      /* tabs: no desbordamiento, scroll horizontal suave */
      .view-tabs {
        gap: 2px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
      }

      .view-tabs::-webkit-scrollbar {
        display: none;
      }

      .vtab {
        padding: 8px 12px;
        font-size: 8px;
        flex-shrink: 0;
      }

      #img-face {
        object-position: center center;
        mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 100%);
      }
    }

    /* Mobile ≤ 600px */
    @media (max-width: 480px) {

      /* Topbar compactado */
      .topbar {
        padding: 10px 16px;
        height: auto;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: center;
      }

      .tb-logo {
        width: 80px;
        flex-shrink: 0;
      }

      /* tabs: stretch para llenar espacio */
      .view-tabs {
        flex: 1 1 100%;
        justify-content: center;
        margin-top: 5px;
      }

      .vtab {
        font-size: 7px;
        padding: 6px 9px;
        letter-spacing: .15em;
      }

      /* Cuadrícula joyería a 1 columna */
      .j-grid {
        grid-template-columns: 1fr !important;
      }

      /* Panel padding menor */
      .p-panel {
        min-height: 0;
      }

      .pb,
      .ph {
        padding-left: 20px;
        padding-right: 20px;
      }

      /* Logo del panel ajustado */
      .ph-logo {
        width: 90px;
        max-width: 40vw;
      }
    }