:root {
    --white: #fff;
    --muted: rgba(255,255,255,.66);
    --panel: rgba(53,51,55,.93);
    --panel-strong: #353337;
    --line: rgba(255,255,255,.13);
    --pink: #e7448d;
    --shadow: 0 18px 55px rgba(0,0,0,.38);
    color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; background:#1d1b20; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button { font:inherit; -webkit-tap-highlight-color:transparent; }
.tour, .panorama { position:absolute; inset:0; }
.panorama { z-index:0; background:#161519; }
.viewer-shade { position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.22),transparent 22%,transparent 57%,rgba(0,0,0,.42)); }

.viewer-bar {
    position:absolute; z-index:7; top:max(14px,env(safe-area-inset-top)); left:50%;
    display:grid; grid-template-columns:64px 1fr 38px; align-items:center;
    width:min(520px,calc(100% - 32px)); height:45px; padding:0 6px 0 16px;
    transform:translateX(-50%); border:1px solid rgba(255,255,255,.55); border-radius:13px;
    background:rgba(246,246,246,.92); color:#646168; box-shadow:0 8px 30px rgba(0,0,0,.14);
    backdrop-filter:blur(18px); font-size:12px; font-weight:600;
}
.window-dots { display:flex; gap:7px; }
.window-dots i { width:8px; height:8px; border-radius:50%; background:#ff665e; }
.window-dots i:nth-child(2) { background:#ffbd44; }
.window-dots i:nth-child(3) { background:#27c941; }
.viewer-bar-title { overflow:hidden; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.bar-action { width:32px; height:32px; border:0; border-radius:9px; background:transparent; color:#6c6970; cursor:pointer; font-size:20px; }

.side-tools {
    position:absolute; z-index:7; top:50%; right:max(14px,env(safe-area-inset-right));
    display:flex; overflow:hidden; flex-direction:column; transform:translateY(-50%);
    border:1px solid var(--line); border-radius:15px; background:rgba(53,51,55,.86);
    box-shadow:0 10px 32px rgba(0,0,0,.24); backdrop-filter:blur(14px);
}
.side-tools button { display:grid; width:44px; height:48px; place-items:center; border:0; border-bottom:1px solid var(--line); background:transparent; color:#fff; cursor:pointer; }
.side-tools button:last-child { border-bottom:0; }
.side-tools button:hover { background:rgba(255,255,255,.1); }
.side-tools button > span:first-child { display:grid; width:19px; height:19px; place-items:center; border:1.5px solid currentColor; border-radius:4px; font-family:Georgia,serif; font-size:13px; font-weight:700; }
.layers-icon { position:relative; width:20px!important; height:18px!important; border:0!important; }
.layers-icon i { position:absolute; left:2px; width:16px; height:10px; border:1.5px solid #fff; border-radius:2px; transform:rotate(30deg) skewX(-30deg); }
.layers-icon i:nth-child(1) { top:0; }.layers-icon i:nth-child(2) { top:4px; }.layers-icon i:nth-child(3) { top:8px; }

.edge-nav {
    position:absolute; z-index:5; top:48%; display:grid; width:48px; height:48px; place-items:center;
    transform:translateY(-50%); border:0; border-radius:50%; background:rgba(48,46,50,.48);
    color:#fff; cursor:pointer; backdrop-filter:blur(10px); font-size:36px; font-weight:200; line-height:1;
    transition:background .2s ease,transform .2s ease;
}
.edge-nav:hover { background:rgba(48,46,50,.78); transform:translateY(-50%) scale(1.05); }
.edge-prev { left:22px; }.edge-next { right:74px; }

.drag-hint {
    position:absolute; z-index:4; top:43%; left:50%; display:flex; align-items:center; gap:8px;
    padding:9px 13px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.18);
    border-radius:999px; background:rgba(35,33,37,.48); color:rgba(255,255,255,.82);
    backdrop-filter:blur(12px); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    transition:opacity .35s ease,visibility .35s ease;
}
.drag-hint span { font-size:16px; }.drag-hint.is-hidden { visibility:hidden; opacity:0; }

.tour-dock {
    position:absolute; z-index:8; right:0; bottom:max(18px,env(safe-area-inset-bottom)); left:0;
    width:min(890px,calc(100% - 36px)); margin:auto; color:#fff;
    transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s ease,visibility .35s;
}
.tour.dock-collapsed .tour-dock { visibility:hidden; transform:translateY(calc(100% + 24px)); opacity:0; }
.scene-meta { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:0 8px 9px; text-shadow:0 2px 14px rgba(0,0,0,.72); }
.eyebrow { display:block; margin-bottom:2px; color:rgba(255,255,255,.7); font-size:9px; font-weight:750; letter-spacing:.16em; text-transform:uppercase; }
.scene-meta h1 { margin:0; font-size:15px; font-weight:650; letter-spacing:.01em; }
.scene-progress { color:rgba(255,255,255,.78); font-size:11px; font-weight:650; white-space:nowrap; }
.scene-progress::before { content:"✓"; margin-right:5px; }

.dock-surface { padding:10px 12px 8px; border:1px solid var(--line); border-radius:20px; background:var(--panel); box-shadow:var(--shadow); backdrop-filter:blur(22px) saturate(115%); }
.category-tabs { display:flex; gap:5px; overflow-x:auto; margin-bottom:9px; scrollbar-width:none; scroll-snap-type:x proximity; }
.category-tabs::-webkit-scrollbar, .thumbnail-track::-webkit-scrollbar, .dock-toolbar::-webkit-scrollbar { display:none; }
.category-tab {
    flex:0 0 auto; min-height:32px; padding:0 16px; border:0; border-radius:999px; background:transparent;
    color:rgba(255,255,255,.76); cursor:pointer; scroll-snap-align:start; font-size:10px; font-weight:650; white-space:nowrap;
    transition:background .2s ease,color .2s ease;
}
.category-tab[aria-selected="true"] { background:#fff; color:#29272c; }
.category-tab:hover:not([aria-selected="true"]) { background:rgba(255,255,255,.09); color:#fff; }

.thumbnail-track { display:grid; grid-auto-columns:clamp(128px,16vw,172px); grid-auto-flow:column; gap:8px; overflow-x:auto; padding:1px; scroll-behavior:smooth; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; }
.scene-thumb {
    position:relative; height:82px; overflow:hidden; padding:0; border:2px solid transparent; border-radius:2px;
    background:#222; color:#fff; cursor:pointer; scroll-snap-align:start; text-align:left;
    transition:border-color .2s ease,transform .2s ease;
}
.scene-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgba(0,0,0,.82)); }
.scene-thumb:hover { transform:translateY(-2px); }
.scene-thumb[aria-current="true"] { border-color:#fff; }
.scene-thumb[aria-current="true"]::before {
    content:"✓"; position:absolute; z-index:3; top:5px; right:6px; color:#fff;
    filter:drop-shadow(0 1px 3px rgba(0,0,0,.7)); font-size:18px; font-weight:800;
}
.scene-thumb img { width:100%; height:100%; object-fit:cover; }
.scene-thumb span { position:absolute; z-index:2; right:6px; bottom:6px; left:6px; overflow:hidden; text-align:center; text-overflow:ellipsis; white-space:nowrap; font-size:10px; font-weight:700; text-shadow:0 1px 5px #000; }

.dock-toolbar { display:flex; align-items:center; justify-content:space-between; gap:4px; overflow-x:auto; margin-top:7px; }
.dock-toolbar button {
    display:grid; flex:0 0 34px; width:34px; height:30px; place-items:center; border:0; border-radius:8px;
    background:transparent; color:rgba(255,255,255,.86); cursor:pointer; font-size:19px; line-height:1;
}
.dock-toolbar button:hover, .dock-toolbar button[aria-pressed="true"] { background:rgba(255,255,255,.11); color:#fff; }
.dock-toolbar button:first-child, .dock-toolbar button:last-child { border:1px solid rgba(255,255,255,.58); border-radius:50%; font-size:23px; }
.grid-icon { display:grid!important; width:15px!important; height:15px!important; grid-template-columns:repeat(2,1fr); gap:2px; border:0!important; }
.grid-icon i { border:1px solid currentColor; border-radius:1px; }
.tour-credit { margin:8px 6px 0; color:rgba(255,255,255,.74); text-shadow:0 2px 10px rgba(0,0,0,.8); font-size:10px; }

.dock-open {
    position:absolute; z-index:8; bottom:max(18px,env(safe-area-inset-bottom)); left:50%; display:flex; visibility:hidden;
    min-height:48px; align-items:center; gap:10px; padding:0 16px; transform:translate(-50%,18px);
    border:1px solid var(--line); border-radius:999px; background:rgba(53,51,55,.94); color:#fff;
    box-shadow:var(--shadow); opacity:0; cursor:pointer; backdrop-filter:blur(18px); font-size:11px; font-weight:700;
    transition:transform .3s ease,opacity .3s ease,visibility .3s;
}
.dock-open b { display:grid; width:24px; height:24px; place-items:center; border-radius:50%; background:rgba(255,255,255,.1); color:var(--muted); font-size:9px; }
.tour.dock-collapsed .dock-open { visibility:visible; transform:translate(-50%,0); opacity:1; }

.overlay-panel {
    position:absolute; inset:0; z-index:20; display:grid; visibility:hidden; place-items:center; padding:20px;
    background:rgba(18,17,20,.58); opacity:0; backdrop-filter:blur(10px);
    transition:opacity .25s ease,visibility .25s;
}
.overlay-panel.is-open { visibility:visible; opacity:1; }
.overlay-card {
    width:min(850px,100%); max-height:min(680px,86vh); overflow:auto; padding:22px;
    border:1px solid var(--line); border-radius:23px; background:rgba(45,43,48,.97); color:#fff;
    box-shadow:0 30px 90px rgba(0,0,0,.52); transform:translateY(12px); transition:transform .3s ease;
}
.overlay-panel.is-open .overlay-card { transform:translateY(0); }
.overlay-card header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.overlay-card h2 { margin:0; font-size:24px; font-weight:650; }
.overlay-card header button { width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:rgba(255,255,255,.07); color:#fff; cursor:pointer; font-size:22px; }
.overview-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.overview-group { padding:12px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.035); }
.overview-group h3 { margin:0 0 9px; color:var(--muted); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.overview-scenes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.overview-scene { position:relative; min-height:82px; overflow:hidden; padding:0; border:1px solid transparent; border-radius:9px; background:#222; color:#fff; cursor:pointer; }
.overview-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 35%,rgba(0,0,0,.84)); }
.overview-scene img { width:100%; height:100%; object-fit:cover; }
.overview-scene span { position:absolute; z-index:2; right:6px; bottom:6px; left:6px; font-size:9px; font-weight:700; }
.info-card { width:min(520px,100%); }
.info-card > p { margin:0 0 20px; color:var(--muted); font-size:14px; line-height:1.65; }
.info-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.info-stats span { padding:14px 8px; border:1px solid var(--line); border-radius:12px; color:var(--muted); text-align:center; font-size:10px; }
.info-stats strong { display:block; margin-bottom:3px; color:#fff; font-size:20px; }

.pnlm-container { background:#161519; }.pnlm-load-box { border:0; border-radius:14px; background:rgba(43,41,45,.9); backdrop-filter:blur(12px); }
.pnlm-controls-container, .pnlm-title-box { display:none!important; }

/* REGLA DE SEGURIDAD EXTREMA: Borrar cualquier botón de captura/descarga que pueda existir en cualquier pantalla */
#capture-view, 
.pnlm-video-play-button {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    position: absolute !important;
    z-index: -9999 !important;
}

/* OCULTAR ZOOM Y HERRAMIENTAS NO ESENCIALES EN DISPOSITIVOS MÓVILES Y TABLETS (Hasta 1024px) */
@media (max-width: 1024px) {
    #zoom-in, 
    #zoom-out, 
    #home-scene, 
    #autorotate-toggle, 
    #orientation-toggle {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        width: 0 !important;
        height: 0 !important;
        position: absolute !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .viewer-bar { top:max(10px,env(safe-area-inset-top)); grid-template-columns:54px 1fr 34px; width:calc(100% - 26px); height:42px; }
    .window-dots { gap:5px; }.window-dots i { width:7px; height:7px; }
    .side-tools { right:10px; }.side-tools button { width:41px; height:45px; }
    .edge-nav { top:43%; width:42px; height:42px; font-size:31px; }.edge-prev { left:10px; }.edge-next { right:58px; }
    .drag-hint { top:38%; }
    .tour-dock { bottom:max(9px,env(safe-area-inset-bottom)); width:calc(100% - 22px); }
    .scene-meta { padding:0 5px 7px; }.scene-meta h1 { font-size:13px; }.scene-progress { font-size:9px; }
    .dock-surface { padding:9px 9px 7px; border-radius:18px; }
    .category-tab { min-height:30px; padding:0 14px; font-size:9px; }
    .thumbnail-track { grid-auto-columns:min(39vw,150px); gap:7px; }
    .scene-thumb { height:76px; }
    .dock-toolbar { justify-content:flex-start; gap:6px; }.dock-toolbar button { flex-basis:31px; width:31px; height:29px; font-size:17px; }
    .tour-credit { margin-top:6px; }
    .dock-open { bottom:max(12px,env(safe-area-inset-bottom)); white-space:nowrap; }
    .overview-content { grid-template-columns:1fr; }.overlay-card { padding:17px; border-radius:19px; }.overlay-card h2 { font-size:21px; }
}

@media (max-height:590px) and (orientation:landscape) {
    .viewer-bar { left:16px; width:330px; transform:none; }
    .tour-dock { right:18px; bottom:12px; left:auto; width:min(650px,68vw); }
    .scene-meta { display:none; }.scene-thumb { height:60px; }.category-tab { min-height:25px; }
    .dock-toolbar { margin-top:4px; }.tour-credit { display:none; }.drag-hint { display:none; }
}

@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}