:root{color-scheme:dark;--ink:#12100e;--gold:#e8b574;--cream:#fff7ec;--muted:#d0c8bd;--line:rgba(255,255,255,.19);--glass:rgba(19,18,18,.70);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--cream)}button{font:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.tour{position:fixed;inset:0;overflow:hidden;background:#151211;isolation:isolate}.poster,.viewer,.shade,.hotspots{position:absolute;inset:0;width:100%;height:100%}.poster{background-position:center;background-size:cover;filter:blur(14px);transform:scale(1.05);opacity:.70;transition:opacity .7s}.viewer{display:block;touch-action:none;cursor:grab;z-index:1}.viewer.dragging{cursor:grabbing}.shade{pointer-events:none;z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.49),transparent 25%,transparent 57%,rgba(0,0,0,.57) 100%)}.hotspots{z-index:3;pointer-events:none}
.topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;padding:24px clamp(18px,3.4vw,58px);gap:12px;pointer-events:none}.brand{display:flex;align-items:center;gap:13px;text-shadow:0 1px 15px #0007}.monogram{display:grid;place-items:center;position:relative;width:48px;height:48px;font-family:Georgia,serif;font-size:24px;font-weight:700;background:#c57b41;color:#1a1511;border:1px solid #efc28e;border-radius:50%;box-shadow:0 6px 25px #0006}.monogram span{font-size:17px;position:absolute;right:7px;top:12px;color:#fff7eb}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:21px;font-weight:800;letter-spacing:.18em;line-height:1}.brand-copy span{font-size:9px;font-weight:700;letter-spacing:.23em;color:#f3e5d6}.top-actions{display:flex;align-items:center;gap:9px;pointer-events:auto}.pill{background:#10100ed4;border:1px solid var(--line);padding:11px 13px;border-radius:50px;backdrop-filter:blur(14px);white-space:nowrap;font-size:12px;font-weight:650;letter-spacing:.02em}.live-dot{display:inline-block;width:7px;height:7px;background:var(--gold);border-radius:50%;margin-right:6px;box-shadow:0 0 14px var(--gold)}.pill b{color:var(--gold)}.top-button{height:44px;border:1px solid #ffffff4b;border-radius:12px;background:#151312af;backdrop-filter:blur(13px);color:#fff;padding:0 15px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;letter-spacing:.01em;font-size:12px;font-weight:750;transition:background .15s,transform .15s}.top-button:hover{background:#4a3428;transform:translateY(-1px)}.top-button.accent{background:#c27b42;border-color:#f1bd88;color:#1a100a}.top-button.accent:hover{background:#e1a269}.top-button svg,.toolbox svg{height:18px;width:18px}
.hero-label{position:absolute;z-index:4;left:clamp(18px,3.4vw,58px);top:clamp(104px,19vh,180px);max-width:min(480px,calc(100vw - 36px));pointer-events:none;text-shadow:0 2px 28px #000c;transition:opacity .2s}.overline{font-size:10px;font-weight:800;letter-spacing:.24em;color:#f4cf9d;display:flex;align-items:center;gap:10px}.gold-line{width:23px;height:2px;background:var(--gold);display:inline-block}.hero-label h1{margin:16px 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,5vw,80px);line-height:1.04;letter-spacing:-.045em;font-weight:500}.hero-label p{font-size:clamp(12px,1.2vw,15px);font-weight:500;color:#f2e7d9;margin:0;line-height:1.6}.scene-counter{position:absolute;z-index:4;left:clamp(18px,3.4vw,58px);bottom:clamp(175px,25vh,244px);font-family:Georgia,serif;font-size:21px;text-shadow:0 2px 8px #000}.scene-counter span{font-family:inherit;font-size:15px;color:#e9d7c2}.help{position:absolute;z-index:4;right:clamp(18px,3.4vw,58px);bottom:clamp(175px,25vh,240px);font-size:11px;line-height:1.5;color:#f0e3d3;text-shadow:0 1px 9px #000c}.mouse-icon{font-size:17px;color:var(--gold);vertical-align:-2px;margin-right:4px}
.toolbox{position:absolute;right:clamp(18px,3.4vw,58px);bottom:clamp(102px,15vh,142px);z-index:5;display:flex;align-items:center;gap:2px;padding:5px;background:#1c1715bf;border:1px solid #ffffff35;box-shadow:0 12px 30px #0006;backdrop-filter:blur(16px);border-radius:13px}.toolbox button{background:transparent;color:#fff;border:0;width:40px;height:40px;display:grid;place-items:center;border-radius:8px;cursor:pointer;font-size:24px;line-height:1}.toolbox button:hover{background:#e3a46d30;color:var(--gold)}.tool-divider{height:22px;width:1px;background:#ffffff3c;margin:0 3px}
.dock{position:absolute;z-index:4;bottom:0;left:0;right:0;padding:20px clamp(18px,3.4vw,58px) calc(18px + env(safe-area-inset-bottom));background:linear-gradient(0deg,#14100de8 0%,#14100d80 75%,transparent 100%);pointer-events:none}.scene-strip{display:flex;gap:11px;align-items:stretch;max-width:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#966447 transparent;pointer-events:auto;padding:4px 0 2px}.scene-tile{flex:0 0 164px;min-width:0;text-align:left;display:flex;align-items:center;gap:9px;border:1px solid #ffffff2b;border-radius:13px;background:#1a1815a8;color:#fff;padding:7px 9px 7px 7px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;backdrop-filter:blur(9px)}.scene-tile:hover{background:#30231c;transform:translateY(-2px)}.scene-tile.active{border-color:#eec18d;background:#553a29b5}.scene-tile img{width:55px;height:55px;object-fit:cover;border-radius:9px;flex:none}.tile-label{display:grid;gap:4px}.tile-number{font-size:9px;letter-spacing:.12em;color:#dca96b;font-weight:800}.tile-name{font-size:12px;font-weight:760;line-height:1.18}
.hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;padding:0;pointer-events:auto;cursor:pointer;color:#fff;background:none;border:0;filter:drop-shadow(0 4px 15px #0009);max-width:180px;transition:opacity .12s}.hotspot-mark{display:grid;place-items:center;background:#d48f50;border:2px solid #fff8e7;border-radius:50%;width:44px;height:44px;font-size:24px;font-weight:600;box-shadow:0 0 0 7px #df98613c,0 0 0 12px #e09a6c13;animation:pulse 3.3s ease-in-out infinite}.hotspot-name{border:1px solid #ffffff88;border-radius:18px;background:#13110ed9;backdrop-filter:blur(9px);color:#fff7ef;font-weight:750;font-size:11px;line-height:1.3;max-width:170px;padding:8px 11px;white-space:nowrap}.hotspot:hover .hotspot-mark{background:#f0ae6a;transform:scale(1.1)}@keyframes pulse{50%{box-shadow:0 0 0 9px #df98611d,0 0 0 15px #e09a6c0e}}
.scrim{position:absolute;z-index:9;inset:0;background:#0009;backdrop-filter:blur(3px)}.scrim[hidden]{display:none}.side-panel{position:absolute;z-index:10;right:0;top:0;bottom:0;width:min(460px,94vw);background:#181411f4;box-shadow:-25px 0 70px #000b;border-left:1px solid #ffffff26;display:flex;flex-direction:column;transform:translateX(102%);visibility:hidden;transition:transform .26s ease,visibility .26s;}.side-panel.open{transform:translateX(0);visibility:visible}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:30px 27px 20px;border-bottom:1px solid #ffffff1f}.mini-kicker{font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:800}.panel-top h2{font-family:Georgia,serif;font-weight:400;font-size:30px;line-height:1.05;margin:9px 0 0}.close-button{border:1px solid #ffffff3a;color:#fff;width:37px;height:37px;border-radius:50%;background:transparent;cursor:pointer;font-size:28px;line-height:1}.close-button:hover{background:#d38d4830}.scene-list{display:grid;gap:11px;padding:22px;overflow:auto}.scene-option{display:flex;gap:14px;align-items:center;border:1px solid #ffffff1d;border-radius:16px;background:#ffffff06;padding:9px;text-align:left;color:#fff;cursor:pointer}.scene-option img{width:100px;height:67px;object-fit:cover;border-radius:9px}.scene-option.active{border-color:var(--gold);background:#9c663128}.scene-option:hover{background:#ae7b3b29}.option-body{display:grid;gap:6px}.option-body small{font-size:10px;letter-spacing:.12em;color:#d1a376;text-transform:uppercase}.option-body strong{font-size:17px}.option-body span{font-size:11px;color:var(--muted)}.panel-foot{border-top:1px solid #ffffff18;margin-top:auto;padding:18px 26px;font-size:11px;color:#cbb8a7;line-height:1.55}.map-scroll{padding:16px 20px 25px;overflow:auto}.map-scroll p{font-size:13px;line-height:1.55;color:#e0d5c8;margin:4px 6px 15px}.map-figure{position:relative;background:#fff;border-radius:12px;overflow:hidden}.map-figure img{width:100%;height:auto;display:block}.map-pin{position:absolute;transform:translate(-50%,-50%);border:2px solid white;border-radius:50%;background:#a9582f;color:#fff;box-shadow:0 2px 12px #0007;width:29px;height:29px;font-size:13px;font-weight:800;cursor:pointer}.map-pin:hover{background:#d77e3c;transform:translate(-50%,-50%) scale(1.15)}.map-legend{display:flex;gap:8px;flex-wrap:wrap;padding:14px 2px 8px}.map-legend span{font-size:11px;color:#f0e6dc}.map-legend b{display:inline-grid;place-items:center;background:#ab623a;border-radius:50%;width:18px;height:18px;font-size:9px;margin-right:3px}.map-scroll small{display:block;line-height:1.45;color:#ae9c8c;font-size:10px}
.load-mask{position:absolute;z-index:11;inset:0;display:grid;place-items:center;background:#161210f4;transition:opacity .35s,visibility .35s}.load-mask.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-card{width:min(360px,90vw);text-align:center}.loading-symbol{font-family:Georgia,serif;font-weight:800;color:#1a110b;background:#de9d5d;border:2px solid #ffd4a0;border-radius:50%;width:62px;height:62px;display:grid;place-items:center;margin:0 auto 21px;font-size:21px}.loading-card>span{font-size:10px;letter-spacing:.18em;font-weight:800;color:#d9b68f}.loading-card h2{font-family:Georgia,serif;font-size:26px;font-weight:400;margin:14px 0 20px}.progress-track{height:4px;background:#ffffff27;border-radius:4px;overflow:hidden}.progress-track>div{width:0;height:100%;background:#e8a76c;transition:width .15s}.loading-card p{font-size:12px;line-height:1.5;color:#e0d4c7}.toast{position:absolute;z-index:7;left:50%;bottom:170px;transform:translateX(-50%) translateY(14px);background:#20160fed;border:1px solid #e3a46d6b;border-radius:12px;padding:12px 16px;box-shadow:0 10px 30px #0007;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;font-size:12px;max-width:min(90vw,450px);text-align:center}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:900px){.topbar{padding:15px}.pill{display:none}.brand-copy strong{font-size:16px}.brand-copy span{font-size:8px}.monogram{width:41px;height:41px;font-size:21px}.top-button{height:40px;padding:0 11px}.hero-label{top:90px;left:19px;max-width:80vw}.hero-label h1{font-size:clamp(31px,7vw,48px);margin-top:10px}.hero-label p{font-size:12px}.scene-counter{left:18px;bottom:167px}.help{right:auto;left:18px;bottom:146px;font-size:10px}.toolbox{right:14px;bottom:145px}.toolbox button{width:33px;height:34px}.dock{padding:14px 12px calc(13px + env(safe-area-inset-bottom))}.scene-tile{flex-basis:134px}.scene-tile img{width:42px;height:42px}.tile-name{font-size:11px}.toast{bottom:220px}}
@media(max-width:560px){.top-button span{display:none}.top-button{width:42px}.top-actions{gap:6px}.brand{gap:8px}.brand-copy{max-width:160px}.brand-copy strong{letter-spacing:.14em}.hero-label{top:92px}.hero-label h1{font-size:35px}.scene-counter{bottom:152px}.help{bottom:130px;left:14px}.hide-mobile{display:none}.toolbox{bottom:113px;right:12px;gap:0;padding:3px}.toolbox button{width:32px;height:33px}.toolbox svg{height:15px;width:15px}.dock{padding:11px 10px calc(10px + env(safe-area-inset-bottom))}.scene-strip{gap:7px}.scene-tile{flex-basis:112px;padding:5px;gap:6px}.scene-tile img{width:35px;height:38px}.tile-number{font-size:8px}.tile-name{font-size:10px}.hotspot-mark{width:39px;height:39px;font-size:22px}.hotspot-name{font-size:10px;padding:5px 7px}.panel-top{padding:20px}.panel-top h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:0.01ms!important}}
.hotspot[hidden]{display:none!important}

/* PalaFolli: pianta completa accessibile e cliccabile */
.map-panel{width:min(1080px,97vw)}
.map-scroll{padding:18px 22px 32px;min-height:0;overflow-y:auto;overflow-x:hidden}
.map-scroll>p{max-width:750px;margin:0 0 14px;font-size:13px;line-height:1.65}
.map-scroll .map-instruction{color:#bbab9c;font-size:11px;margin:12px 0 9px}
.map-keygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0 9px}
.map-jump{display:flex;align-items:center;gap:10px;min-height:41px;padding:7px 10px;color:#f1e5d9;border:1px solid #ffffff27;background:#ffffff09;border-radius:10px;cursor:pointer;text-align:left;font-size:12px;font-weight:700}
.map-jump:hover,.map-jump.active{border-color:#dfab76;background:#77503466}
.map-jump>span{display:grid;place-items:center;flex:none;width:23px;height:23px;background:#ac6238;border:1px solid #ffd1aa;border-radius:50%;color:#fff;font-size:11px}
.map-pan-container{overflow-x:auto;overflow-y:hidden;max-width:100%;border-radius:13px;border:1px solid #fff5e7;scrollbar-width:thin;scrollbar-color:#b78158 #2a211b}
.map-figure{width:100%;min-width:700px;overflow:hidden;position:relative;border-radius:0;background:#fff}
.map-figure img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}
.map-pin{width:31px;height:31px;background:#9d552d;border:2px solid #fff;box-shadow:0 0 0 4px #9d552d3d,0 3px 15px #0009;transition:background .15s,transform .15s;z-index:1}
.map-pin:hover,.map-pin.active{background:#e18d42;transform:translate(-50%,-50%) scale(1.13);z-index:2}
.map-pin:after{content:attr(data-label);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);white-space:nowrap;background:#23180e;color:white;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:700;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 4px 14px #0005}
.map-pin:hover:after,.map-pin:focus-visible:after{opacity:1;visibility:visible}
.map-scroll>small{margin:12px 2px 0;font-size:11px}
@media(max-width:760px){.map-panel{width:100vw}.map-scroll{padding:15px 13px 25px}.map-keygrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.map-figure{min-width:730px}.map-scroll .map-instruction{display:block}.map-jump{font-size:11px;min-height:37px}.map-pin{width:29px;height:29px}}
