/* RESERVA × COMUNIDAB — Front-facing premium floating jars. No 360° rotation. */
.r3d-viewer{
  --jar-glow:#e88734;position:relative;width:100%;height:340px;
  isolation:isolate;overflow:hidden;border-radius:18px;
  background:radial-gradient(ellipse 50% 48% at 50% 50%,color-mix(in srgb,var(--jar-glow) 13%,transparent),transparent 82%),linear-gradient(160deg,#111515,#080a0a);
  -webkit-user-select:none;user-select:none;pointer-events:none;
}
.r3d-viewer[data-variant="temptation"]{--jar-glow:#b83e77}
.r3d-viewer[data-variant="apple-gummy"]{--jar-glow:#8edb54}
.r3d-viewer[data-variant="mind-flayer"]{--jar-glow:#bdd13c}
.r3d-viewer.r3d-compact{height:100%;border-radius:0;background:radial-gradient(ellipse 62% 50% at 50% 46%,color-mix(in srgb,var(--jar-glow) 12%,transparent),transparent 88%),#090c0c}
.r3d-viewer.r3d-detail{height:340px}
.r3d-ambient-light{position:absolute;inset:15% 16% 19%;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--jar-glow) 9%,transparent),transparent 67%);filter:blur(23px);opacity:.7;pointer-events:none}
.r3d-photo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;animation:r3d-float 6.8s ease-in-out infinite;will-change:transform;filter:drop-shadow(0 13px 13px #0008)}
.r3d-photo img{display:block;width:auto;height:94%;max-width:94%;max-height:100%;object-fit:contain;image-rendering:auto;transform:translateZ(0)}
.r3d-compact .r3d-photo img{height:94%;max-width:94%}
.r3d-shadow{position:absolute;z-index:1;width:57%;height:17px;bottom:3.8%;left:50%;border-radius:50%;background:#000b;filter:blur(12px);transform:translateX(-50%) scale(1);animation:r3d-shadowFloat 6.8s ease-in-out infinite;pointer-events:none}
@keyframes r3d-float{0%,100%{transform:translate3d(0,3px,0)}50%{transform:translate3d(0,-5px,0)}}
@keyframes r3d-shadowFloat{0%,100%{opacity:.46;transform:translateX(-50%) scale(1)}50%{opacity:.31;transform:translateX(-50%) scale(.91)}}
.product-art:has(> .r3d-viewer){background:#0a0c0c}
.sheet .r3d-viewer.r3d-detail{margin:12px 0;border:1px solid #262b29}
@media(max-width:700px){.r3d-viewer.r3d-detail{height:295px}}
@media(prefers-reduced-motion:reduce){.r3d-photo,.r3d-shadow{animation:none!important;will-change:auto}}

/* Admin stocks and editor preview with semantic switch */
.stock-card > .r3d-viewer.r3d-compact{height:155px;margin:12px 0;border:1px solid #242b29;border-radius:15px}
.photo-editor > .r3d-viewer.r3d-detail{height:250px;margin:0 0 14px}
.r3d-admin-pill{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:700;color:#8fffe6;background:rgba(143,255,230,.08);border:1px solid rgba(143,255,230,.22);border-radius:20px;padding:4px 10px;margin:0 0 9px}
.r3d-admin-toggle input:disabled+i{opacity:.38;cursor:not-allowed}
.r3d-admin-toggle input:focus-visible+i{outline:2px solid #8fffe6;outline-offset:3px}
/* Low-power devices can opt out of motion; no 360 or drag listeners installed. */
@media(prefers-reduced-motion:reduce){.r3d-viewer .r3d-photo,.r3d-viewer .r3d-shadow{animation:none!important}}

/* V2 · cinematic per-variety atmosphere, GPU-friendly, all detail kept BEHIND the HD jar */
.r3d-viewer::before{
  content:"";position:absolute;inset:-4%;z-index:0;pointer-events:none;
  background-position:center;background-size:cover;opacity:.92;
  animation:r3d-atmos-drift 15s ease-in-out infinite alternate;
  will-change:transform;
}
.r3d-viewer[data-variant="24k"]::before{background-image:url('/assets/jars/24k-atmosphere-hd.webp')}
.r3d-viewer[data-variant="temptation"]::before{background-image:url('/assets/jars/temptation-atmosphere-hd.webp')}
.r3d-viewer[data-variant="apple-gummy"]::before{background-image:url('/assets/jars/apple-gummy-atmosphere-hd.webp')}
.r3d-viewer[data-variant="mind-flayer"]::before{background-image:url('/assets/jars/mind-flayer-atmosphere-hd.webp')}
.r3d-viewer::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
 background:radial-gradient(ellipse 60% 78% at 50% 45%,transparent 22%,rgba(3,5,6,.30) 77%,rgba(3,5,6,.68) 100%);
}
.r3d-viewer.r3d-compact::before{opacity:.75;animation-duration:21s}
.r3d-viewer.r3d-compact::after{background:radial-gradient(ellipse 70% 88% at 50% 48%,transparent 30%,rgba(2,4,5,.37) 100%)}
.r3d-viewer .r3d-ambient-light{z-index:1;opacity:.36;filter:none}
.r3d-viewer .r3d-photo{z-index:2}
@keyframes r3d-atmos-drift{0%{transform:translate3d(-1.1%,.5%,0) scale(1.02)}100%{transform:translate3d(1.1%,-.7%,0) scale(1.065)}}
/* Don't force composition/animation for reduced-motion visitors. */
@media(prefers-reduced-motion:reduce){.r3d-viewer::before{animation:none!important;will-change:auto!important}}

/* r3d-mobile-catalog-v1 · matches approved two-column premium gallery when a jar is enabled;
   regular RESERVA layout is unchanged while all jar switches are OFF. */
@media (min-width:360px) and (max-width:700px){
 .products-grid:has(.r3d-viewer){grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
 .products-grid:has(.r3d-viewer) .product-card{min-height:297px;border-radius:18px;display:flex;flex-direction:column}
 .products-grid:has(.r3d-viewer) .product-art{height:174px;flex:0 0 174px}
 .products-grid:has(.r3d-viewer) .product-body{padding:12px;flex:1;display:flex;flex-direction:column}
 .products-grid:has(.r3d-viewer) .product-title{gap:4px;align-items:flex-start}
 .products-grid:has(.r3d-viewer) .product-title h3{font-size:16px;line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere}
 .products-grid:has(.r3d-viewer) .product-title p{font-size:10px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
 .products-grid:has(.r3d-viewer) .circle-arrow{width:27px;height:27px;flex:0 0 27px}
 .products-grid:has(.r3d-viewer) .circle-arrow svg{width:15px;height:15px}
 .products-grid:has(.r3d-viewer) .stock-line{margin-top:auto;padding-top:14px;gap:4px;flex-wrap:wrap;font-size:10px}
 .products-grid:has(.r3d-viewer) .selected-tag{margin-top:9px;line-height:1.2}
}
@media (max-width:359px){.products-grid:has(.r3d-viewer){grid-template-columns:1fr}}
