:root{--bg: #1c1814;--bg-elev: #25201a;--bg-card: #2e2820;--cream: #fff8e6;--cream-soft: rgba(255, 248, 230, .75);--cream-mute: rgba(255, 248, 230, .5);--amber: #f4a23d;--amber-soft: rgba(244, 162, 61, .18);--rust: #c4502b;--ink: #0a0807;--border: rgba(255, 248, 230, .1);--border-strong: rgba(255, 248, 230, .22);--font-display: "Fraunces", "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}body{background:var(--bg);color:var(--cream);font-family:var(--font-body)}.back-link{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:8px 16px;z-index:100;background:#1c1814d9;color:var(--cream);text-decoration:none;font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.04em;border:1px solid var(--border);border-radius:999px;transition:background .3s,color .3s}.back-link:hover{background:var(--amber);color:var(--ink)}.tour{display:grid;grid-template-columns:320px 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:28px 24px 24px;border-bottom:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:12px;color:var(--amber)}.sidebar-brand svg{flex-shrink:0}.sidebar-brand-titulo{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--cream);line-height:1.1;letter-spacing:-.01em}.sidebar-brand-sub{font-size:11px;color:var(--cream-mute);margin-top:2px;letter-spacing:.08em;text-transform:uppercase}.sidebar-section{flex:1;padding:20px 16px;overflow-y:auto;overflow-x:hidden}.sidebar-section::-webkit-scrollbar{width:4px}.sidebar-section::-webkit-scrollbar-track{background:transparent}.sidebar-section::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.sidebar-section-titulo{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-mute);padding:0 8px 12px}.scene-list{display:flex;flex-direction:column;gap:6px}.scene-card{position:relative;display:grid;grid-template-columns:56px 1fr 18px;gap:12px;align-items:center;padding:8px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .25s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),border-color .25s,transform .2s;text-align:left;font-family:inherit;color:inherit;width:100%}.scene-card:hover{background:#f4a23d0f;border-color:#f4a23d26}.scene-card.is-active{background:#f4a23d1f;border-color:var(--amber)}.scene-card.is-active:before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--amber);border-radius:0 3px 3px 0}.scene-card-thumb{position:relative;width:56px;height:42px;border-radius:4px;overflow:hidden;background:var(--bg-card)}.scene-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.85) saturate(.9);transition:filter .3s,transform .4s}.scene-card.is-active .scene-card-thumb img,.scene-card:hover .scene-card-thumb img{filter:brightness(1) saturate(1)}.scene-card.is-active .scene-card-thumb img{transform:scale(1.05)}.scene-card-numero{position:absolute;top:4px;left:4px;font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--cream);background:#0a0807b3;padding:2px 5px;border-radius:3px}.scene-card-text{min-width:0}.scene-card-titulo{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--cream);line-height:1.2;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-card.is-active .scene-card-titulo{color:var(--amber)}.scene-card-zona{font-size:10.5px;color:var(--cream-mute);margin-top:1px;letter-spacing:.04em}.scene-card-arrow{color:var(--cream-mute);opacity:0;transform:translate(-4px);transition:opacity .2s,transform .2s,color .2s}.scene-card:hover .scene-card-arrow,.scene-card.is-active .scene-card-arrow{opacity:1;transform:translate(0);color:var(--amber)}.sidebar-footer{padding:16px 24px 20px;border-top:1px solid var(--border)}.sidebar-hint{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--cream-mute)}.sidebar-hint svg{flex-shrink:0;opacity:.7}.viewer-wrap{position:relative;background:#0a0807;overflow:hidden}.viewer-stage{position:relative;width:100%;height:100%;z-index:1;background:#0a0807}.pano{position:absolute;inset:0}.pano :global(.pnlm-container){background:transparent!important}.pano :global(.pnlm-load-box){background:#0a0807b3!important;color:var(--cream-soft)}.pano :global(.pnlm-load-box p){color:var(--cream-soft)}.pano :global(.pnlm-controls-container){bottom:110px!important}.loader{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-style:italic;font-size:15px;color:var(--cream-soft);pointer-events:none;transition:opacity .4s;z-index:2;background:radial-gradient(circle at center,transparent 0%,rgba(10,8,7,.4) 100%)}.pano:has(canvas)~.loader{opacity:0}.scene-panel:has(.pno) .loader{display:none}.viewer-overlay-top,.viewer-overlay-bottom{position:absolute;left:0;right:0;z-index:10;pointer-events:none}.viewer-overlay-top{top:0;padding:28px 32px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.viewer-overlay-bottom{bottom:0;padding:28px 32px;display:flex;justify-content:center;align-items:center;gap:16px}.scene-info{pointer-events:auto;max-width:360px}.scene-info-index{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--amber);margin-bottom:4px}.scene-info-titulo{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--cream);line-height:1.1;letter-spacing:-.01em;margin-bottom:2px;text-shadow:0 2px 12px rgba(0,0,0,.6)}.scene-info-zona{font-size:13px;color:var(--cream-soft);letter-spacing:.02em}.compass{pointer-events:auto;width:88px;height:88px;background:#0a08078c;border:1px solid var(--border);border-radius:50%;padding:6px;box-shadow:0 4px 20px #0006;flex-shrink:0}.compass-svg{width:100%;height:100%;display:block;overflow:visible}.compass-ring{fill:none;stroke:#fff8e61a;stroke-width:.6;stroke-dasharray:2 3}.compass-cardinal{fill:#fff8e68c;font:600 9px var(--font-mono);letter-spacing:.08em}.compass-cardinal--n{fill:var(--amber);font-weight:700}.compass-tick{stroke:#fff8e640;stroke-width:.6}.compass-needle{transform-origin:44px 44px;transition:transform .05s linear;will-change:transform}.compass-needle-front{fill:var(--amber);filter:drop-shadow(0 0 4px var(--amber-soft))}.compass-needle-back{fill:#fff8e640}.compass-center{fill:var(--amber)}.compass-halo{transform-origin:44px 44px;fill:none;stroke:var(--amber);stroke-width:1.5;opacity:0;pointer-events:none}.compass.is-dragging .compass-halo{animation:compass-halo-pulse 1.4s ease-out infinite}@keyframes compass-halo-pulse{0%{transform:scale(1);opacity:.5}to{transform:scale(1.4);opacity:0}}.nav-arrow{pointer-events:auto;width:48px;height:48px;background:#0a080780;border:1px solid var(--border);border-radius:50%;color:var(--cream);cursor:pointer;display:grid;place-items:center;transition:background .25s,border-color .25s,transform .2s}.nav-arrow:hover:not(:disabled){background:var(--amber);border-color:var(--amber);color:var(--ink);transform:scale(1.08)}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.progress{pointer-events:auto;display:flex;align-items:center;gap:14px;padding:0 20px;height:48px;background:#0a080780;border:1px solid var(--border);border-radius:24px;min-width:220px}.progress-track{width:120px;height:3px;background:#fff8e61f;border-radius:99px;overflow:hidden}.progress-fill{height:100%;width:14%;background:var(--amber);border-radius:99px;transition:width .5s cubic-bezier(.16,1,.3,1);box-shadow:0 0 8px var(--amber-soft)}.progress-counter{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--cream-soft);letter-spacing:.05em;font-variant-numeric:tabular-nums}.progress-counter-sep{opacity:.4;margin:0 2px}.scene-panel{position:absolute;inset:0;opacity:1;transition:opacity .45s cubic-bezier(.4,0,.2,1)}.scene-panel.is-leaving{opacity:0}.scene-panel.is-entering{animation:scene-enter .45s cubic-bezier(.4,0,.2,1) both}@keyframes scene-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.scene-card{opacity:0;transform:translate(-12px);animation:sidebar-in .7s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--card-i, 0) * 60ms + .2s)}@keyframes sidebar-in{to{opacity:1;transform:translate(0)}}.scene-card{overflow:hidden}.scene-card:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(244,162,61,.25) 48%,rgba(255,248,230,.4) 50%,rgba(244,162,61,.25) 52%,transparent 70%);transform:translate(-150%);transition:transform .7s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1}.scene-card:hover:after{transform:translate(150%)}.scene-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d,0 0 0 1px var(--amber)}.scene-card-thumb img{transition:transform .6s cubic-bezier(.16,1,.3,1),filter .4s}.scene-card:hover .scene-card-thumb img{transform:scale(1.15);filter:brightness(1.1) saturate(1.2)}.compass-needle{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.compass.is-dragging .compass-needle{transition:transform .06s linear}.progress-fill{transition:width .6s cubic-bezier(.34,1.56,.64,1);position:relative}.progress-fill:after{content:"";position:absolute;top:-2px;right:0;bottom:-2px;width:20px;background:linear-gradient(90deg,transparent,var(--amber),transparent);filter:blur(4px);animation:progress-shimmer 1.8s linear infinite}@keyframes progress-shimmer{0%{transform:translate(-20px);opacity:0}50%{opacity:1}to{transform:translate(20px);opacity:0}}.nav-arrow{position:relative;overflow:hidden;transition:background .3s,border-color .3s,transform .2s cubic-bezier(.34,1.56,.64,1)}.nav-arrow:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,248,230,.6) 0%,transparent 70%);transform:scale(0);opacity:0;transition:transform .5s,opacity .4s;pointer-events:none}.nav-arrow:active{transform:scale(.92)}.nav-arrow:active:before{transform:scale(1.5);opacity:1;transition:transform .2s,opacity .1s}.scene-info-index,.scene-info-titulo,.scene-info-zona{animation:info-fade-in .6s cubic-bezier(.16,1,.3,1) both}.scene-info-titulo{animation-delay:.08s}.scene-info-zona{animation-delay:.16s}@keyframes info-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.progress-counter>span:first-child{display:inline-block;animation:counter-bump .5s cubic-bezier(.34,1.56,.64,1)}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.3);color:var(--amber)}to{transform:scale(1)}}.loader{animation:loader-fade-in .4s ease}@keyframes loader-fade-in{0%{opacity:0}to{opacity:1}}.pano:has(canvas)~.loader{opacity:0;pointer-events:none}.kb-hint{position:fixed;bottom:110px;left:50%;transform:translate(-50%) translateY(20px);padding:10px 20px;background:#f4a23df2;color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.05em;border-radius:999px;opacity:0;pointer-events:none;z-index:50;box-shadow:0 8px 24px #f4a23d66}.kb-hint.is-visible{animation:kb-hint-pop 1.4s cubic-bezier(.34,1.56,.64,1)}@keyframes kb-hint-pop{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.85)}15%{opacity:1;transform:translate(-50%) translateY(0) scale(1.05)}25%{transform:translate(-50%) translateY(0) scale(1)}80%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-10px) scale(.95)}}.kb-hint kbd{background:var(--ink);color:var(--cream);padding:2px 6px;border-radius:4px;margin:0 4px}.sidebar-header{animation:fade-down .8s cubic-bezier(.16,1,.3,1) both}@keyframes fade-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.sidebar-footer{animation:fade-up .8s cubic-bezier(.16,1,.3,1) .5s both}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.compass-cardinal--n{animation:n-pulse 2.4s ease-in-out infinite}@keyframes n-pulse{0%,to{opacity:1}50%{opacity:.6}}.back-link{transition:background .3s,color .3s,box-shadow .3s}.back-link:hover{box-shadow:0 4px 20px #f4a23d4d}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scene-panel.is-leaving,.scene-panel.is-entering{display:none}}
