:root{
  --bg:#090a09;
  --bg-2:#111310;
  --bg-3:#191c17;
  --ink:#fffdf4;
  --ink-soft:rgba(255,253,244,.76);
  --ink-faint:rgba(255,253,244,.52);
  --line:rgba(255,224,96,.18);
  --panel:rgba(20,23,18,.82);
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
}
html{overflow-x:hidden}

.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:4000;padding:.75rem 1rem;background:var(--gold);color:#090a09;font-weight:800;transform:translateY(-180%);transition:transform .2s}
.skip-link:focus{transform:translateY(0)}
h1,h2,h3,h4,.nav-logo-text,.mobile-menu a,.booking-step-label .num,.cal-head h4,.stepper .val,.acc-head h4,.pillar h5,.tl-item h5,.contact-info-item h5,.footer-col h5{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-weight:700;letter-spacing:.035em}
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

#nav{padding:1rem 4vw;background:linear-gradient(180deg,rgba(7,8,7,.8),rgba(7,8,7,.22));border-bottom-color:rgba(255,255,255,.08)}
#nav::after{content:'';position:absolute;inset:auto 4vw 0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.45}
#nav.scrolled{background:rgba(14,16,13,.9);box-shadow:0 12px 40px rgba(0,0,0,.28)}
.nav-logo img{height:58px;filter:drop-shadow(0 0 14px rgba(255,207,6,.24))}
.nav-logo-text{font-size:1.08rem;letter-spacing:.08em}
.nav-links a{color:rgba(255,253,244,.84)}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:-.5rem;height:2px;background:var(--gold);transition:right .25s}
.nav-links a:hover::after,.nav-links a:focus-visible::after{right:0}
@media(min-width:1000px){#nav .nav-links,#nav .nav-cta{display:none}#nav .burger{display:flex;width:38px;gap:7px}#nav .burger span{height:3px;background:var(--gold)}.mobile-menu{align-items:flex-end;padding-right:6vw}.mobile-menu a{font-size:clamp(2rem,5vw,4.8rem);line-height:.9;text-align:right}.mobile-menu .nav-cta{font-size:.8rem}}
#burgerBtn[aria-expanded="true"] span:first-child{transform:translateY(10px) rotate(45deg)}#burgerBtn[aria-expanded="true"] span:nth-child(2){opacity:0}#burgerBtn[aria-expanded="true"] span:last-child{transform:translateY(-10px) rotate(-45deg)}
body.menu-open{overflow:hidden}
.mobile-menu{counter-reset:menu-item;align-items:stretch;justify-content:flex-start;gap:0;padding:7rem clamp(1.25rem,6vw,4rem) 3rem;background:radial-gradient(circle at 85% 12%,rgba(255,207,6,.1),transparent 30%),rgba(9,10,9,.98);transition:opacity .2s var(--ease-out)}
.mobile-menu::before{content:'NAVIGAZIONE';display:block;width:min(100%,520px);margin:0 auto .65rem;padding-bottom:.65rem;color:var(--gold);border-bottom:1px solid rgba(255,207,6,.42);font-size:.7rem;font-weight:800;letter-spacing:.18em}
.mobile-menu>a:not(.nav-cta){counter-increment:menu-item;display:grid;grid-template-columns:2.25rem 1fr;align-items:center;width:min(100%,520px);min-height:52px;margin:0 auto;padding:.7rem 0;color:#fffdf4;border-bottom:1px solid rgba(255,255,255,.14);font-size:1.22rem;line-height:1.18;letter-spacing:.035em;text-align:left;transition:color .16s ease,transform .2s var(--ease-out)}
.mobile-menu>a:not(.nav-cta)::before{content:'0' counter(menu-item);color:var(--gold);font:700 .68rem/1 'Barlow Condensed',sans-serif;letter-spacing:.1em}
.mobile-menu .nav-cta{display:flex;width:min(100%,520px);min-height:52px;margin:1rem auto 0;padding:.9rem 1rem;justify-content:center;font-size:.92rem;line-height:1;letter-spacing:.1em}
@media(hover:hover) and (pointer:fine){.mobile-menu>a:not(.nav-cta):hover{color:var(--gold);transform:translateX(6px)}}
@media(min-width:1000px){.mobile-menu>a:not(.nav-cta){min-height:62px;font-size:clamp(1.55rem,2.4vw,2.35rem)}.mobile-menu .nav-cta{min-height:56px;font-size:1rem}}

.hero{align-items:flex-end;padding:7.5rem 6vw 3.8rem;isolation:isolate;--spot-x:50%;--spot-y:45%}
.hero::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle 22rem at var(--spot-x) var(--spot-y),rgba(255,222,91,.16),transparent 68%);mix-blend-mode:screen}
.hero::after{height:13rem;background:linear-gradient(0deg,rgba(9,10,9,.88) 0%,rgba(9,10,9,.3) 52%,transparent 100%)}
.hero-slides::after{pointer-events:none;background:linear-gradient(180deg,rgba(8,9,8,.1),transparent 48%,rgba(8,9,8,.62) 86%,rgba(9,10,9,.88))}
.hero-inner{z-index:7;max-width:1320px;margin:0 auto;padding:0;display:block;text-align:left;pointer-events:none}
.hero-copy{max-width:min(46vw,700px);display:flex;flex-direction:column;align-items:flex-start;pointer-events:auto;opacity:1;transform:translateY(0);transition:opacity .38s var(--ease-out),transform .42s var(--ease-out);will-change:opacity,transform}
/* Una sola classe nascosta: evita il flash is-exiting → is-entering sul mobile */
.hero-copy.is-hidden{opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.hero-kicker{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.hero-kicker::before{content:'';width:2.5rem;height:1px;background:currentColor}
.hero h1{border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:.05em 0 .08em;color:transparent;-webkit-text-stroke:1.5px var(--gold);font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-style:normal;font-weight:700;font-size:clamp(3.4rem,6vw,6.6rem);line-height:.8;letter-spacing:.01em;text-shadow:0 14px 42px rgba(0,0,0,.72);max-width:700px;text-transform:uppercase}
.hero h1 span{display:inline;color:var(--gold);-webkit-text-stroke:0}
.hero-tagline{max-width:38ch;margin-top:.8rem;color:rgba(255,253,244,.84);font-size:clamp(.9rem,1.25vw,1.04rem);line-height:1.5}
.hero-actions{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.hero-story-link{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;padding:.65rem .25rem;color:var(--ink);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.35)}
.hero-story-link i{color:var(--gold);transition:transform .25s}
.hero-story-link:hover i{transform:translateX(4px)}
.hero-stats{justify-content:flex-start;margin-top:1rem;gap:1.4rem}
.hero-stats span{font-family:'Switzer',sans-serif;font-size:.9rem}
.hero-arrow{z-index:9;background:rgba(13,15,12,.62);border-color:rgba(255,255,255,.36);transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s ease}
.hero-slide{opacity:0;transform:translateX(7%);transition:opacity .7s var(--ease-out),transform .9s var(--ease-in-out);will-change:opacity,transform}
.hero-slide.active{opacity:1;transform:translateX(0);z-index:1}
.hero[data-direction="prev"] .hero-slide.entering{transform:translateX(-7%)}
.hero[data-direction="next"] .hero-slide.leaving{transform:translateX(-6%)}
.hero[data-direction="prev"] .hero-slide.leaving{transform:translateX(6%)}
.hero-slide.leaving{opacity:0;z-index:2}
/* Fascio sotto il testo (z 3 < hero-inner 7): non passa sopra le scritte */
.hero-slides::before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent 0,rgba(255,207,6,.72) 48%,#fff8ce 50%,rgba(255,207,6,.72) 52%,transparent 100%);opacity:0;transform:translateX(-115%);width:42%;max-width:280px}
.hero.is-switching .hero-slides::before{animation:heroSceneWipe .85s var(--ease-in-out)}
@keyframes heroSceneWipe{0%{opacity:0;transform:translateX(-120%)}30%{opacity:.7}70%{opacity:.55}100%{opacity:0;transform:translateX(280%)}}
.hero-scene{position:absolute;inset:0;overflow:hidden}.hero-scene img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.045);transition:transform 8s var(--ease-out);filter:none}.hero-slide.active .hero-scene img{transform:scale(1)}.hero-scene-real{z-index:0}.hero-scene-real img{filter:brightness(.78) saturate(.9) contrast(1.06)}.hero-scene-story{z-index:1;clip-path:inset(0 calc(100% - var(--curtain)) 0 0)}.hero-scene-story::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 35% 40%,transparent 0 20%,rgba(37,0,46,.08) 52%,rgba(6,8,5,.4)),linear-gradient(110deg,rgba(123,23,137,.12),transparent 45%,rgba(255,191,0,.08));mix-blend-mode:multiply}.hero-scene-story img{filter:brightness(.72) saturate(1.18) contrast(1.12)}.hero-curtain-divider{position:absolute;z-index:6;top:0;bottom:0;left:var(--curtain);width:1px;background:rgba(255,255,255,.72);box-shadow:0 0 28px rgba(255,207,6,.62);pointer-events:none;transition:box-shadow .2s ease}.hero-curtain-mark{position:absolute;top:50%;left:50%;width:58px;height:58px;overflow:hidden;background:#080908;border:2px solid var(--gold);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px rgba(255,255,255,.8),0 10px 35px rgba(0,0,0,.55);transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out)}.hero-slide .hero-curtain-mark img{position:absolute;top:-2px;left:50%;width:88px;height:88px;max-width:none;object-fit:contain;filter:none;transform:translateX(-50%)}.hero-slide.is-dragging .hero-curtain-mark{transform:translate(-50%,-50%) scale(.94);box-shadow:0 0 0 1px rgba(255,255,255,.8),0 5px 18px rgba(0,0,0,.58)}.hero-curtain-range{position:absolute;z-index:6;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y;-webkit-appearance:none;appearance:none;background:transparent}.hero-curtain-range::-webkit-slider-runnable-track{height:1px;background:transparent}.hero-curtain-range::-webkit-slider-thumb{width:1px;height:1px;-webkit-appearance:none;appearance:none;background:transparent}.hero-curtain-range::-moz-range-track{height:1px;background:transparent}.hero-curtain-range::-moz-range-thumb{width:1px;height:1px;border:0;background:transparent}.hero-world-label{position:absolute;z-index:5;top:7.5rem;padding:.45rem .7rem;color:#fff;background:rgba(8,9,8,.55);border:1px solid rgba(255,255,255,.25);font-size:.62rem;font-weight:800;letter-spacing:.18em;pointer-events:none}.hero-world-story{left:6vw}.hero-world-real{right:6vw}

.hero-curtain-range{pointer-events:none;cursor:default;touch-action:auto}
.hero-curtain-hit{position:absolute;z-index:6;inset:0;cursor:ew-resize;touch-action:pan-y}
.hero-event-maledizione-bosco .hero-scene-real img,.hero-event-tomba-merlino .hero-scene-real img,.hero-event-casa-delle-ombre .hero-scene-real img{filter:brightness(.96) saturate(1.08) contrast(1.14)}
.hero-event-maledizione-bosco .hero-scene-story img,.hero-event-tomba-merlino .hero-scene-story img,.hero-event-casa-delle-ombre .hero-scene-story img{filter:brightness(.92) saturate(1.24) contrast(1.16)}
.hero-event-sei-sospetti .hero-scene-real img,.hero-event-ultimo-numero .hero-scene-real img{filter:brightness(.94) saturate(1.04) contrast(1.1)}
.hero-event-sei-sospetti .hero-scene-story img,.hero-event-ultimo-numero .hero-scene-story img{filter:brightness(.9) saturate(1.14) contrast(1.14)}
.hero-event-halloween-castello .hero-scene-real img{filter:brightness(.94) saturate(1.08) contrast(1.16)}
.hero-event-halloween-castello .hero-scene-story img{filter:brightness(.92) saturate(1.18) contrast(1.2)}
.hero[data-event="halloween-castello"] h1{font-size:clamp(3rem,5.6vw,6.1rem)}
.hero[data-event="sei-sospetti"] h1,.hero[data-event="ultimo-numero"] h1{font-size:clamp(2.9rem,5.2vw,5.7rem)}
.hero[data-event="casa-delle-ombre"] h1{font-size:clamp(2.85rem,5.1vw,5.6rem)}

.timepiece{position:relative;width:min(25vw,330px);aspect-ratio:1;display:grid;place-items:center;justify-self:center;filter:drop-shadow(0 24px 34px rgba(0,0,0,.48));transform-style:preserve-3d;transition:transform .18s ease-out}
.timepiece::before,.timepiece::after{content:'';position:absolute;border:1px solid rgba(255,222,91,.42);border-radius:50%;inset:3%;animation:orbitSpin 18s linear infinite}
.timepiece::after{inset:14%;border-style:dashed;animation-direction:reverse;animation-duration:12s}
.timepiece-ring{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 4deg,rgba(255,207,6,.8) 0 1deg,transparent 1deg 15deg);mask:radial-gradient(circle,transparent 69%,#000 70% 72%,transparent 73%);opacity:.65}
.hourglass{width:46%;overflow:visible}
.hourglass-frame{fill:none;stroke:#fff7d2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.hourglass-sand{fill:var(--gold);filter:drop-shadow(0 0 7px rgba(255,207,6,.65))}
.hourglass-stream{stroke:var(--gold);stroke-width:3;stroke-linecap:round;stroke-dasharray:4 7;animation:sandFall 1.2s linear infinite}
.timepiece-label{position:absolute;bottom:3%;padding:.45rem .7rem;background:rgba(9,10,9,.72);border:1px solid rgba(255,207,6,.28);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes sandFall{to{stroke-dashoffset:-22}}

.section{padding:clamp(5.5rem,9vw,8.5rem) 5vw}
.section:nth-of-type(even){background-color:var(--bg-2)}
.ghost-bg{opacity:.07!important}
.ghost-head h2,.sec-head h2{letter-spacing:.025em;line-height:.98}
.rooms-list{scroll-padding-inline:1px}
.room-card{background:linear-gradient(155deg,rgba(29,33,25,.96),rgba(12,14,11,.98));box-shadow:0 20px 50px rgba(0,0,0,.24);transition:transform .35s,border-color .35s,box-shadow .35s}
.room-card:hover{transform:translateY(-8px);border-color:rgba(255,207,6,.42);box-shadow:0 28px 65px rgba(0,0,0,.42)}
.room-media img{filter:brightness(.82);transition:transform .7s,filter .4s}
.room-card:hover .room-media img{transform:scale(1.045);filter:brightness(1)}
.room-media-link{display:block;position:relative}.room-media-link:focus-visible{outline-offset:-4px}.room-format{position:absolute;z-index:4;right:.85rem;bottom:.85rem;left:.85rem;padding:.62rem .72rem;border-left:3px solid var(--gold);background:rgba(5,6,5,.88);color:#fff9dc;font-size:.67rem;font-weight:800;line-height:1.25;letter-spacing:.055em;text-transform:uppercase;backdrop-filter:blur(8px)}
.room-copy{padding:1.3rem 1.25rem 0}
.room-copy h3{font-size:clamp(1.45rem,2.4vw,2rem);line-height:1;color:var(--ink)}
.room-copy .room-logline{margin-top:.55rem;color:var(--gold);font-family:'EB Garamond',serif;font-style:italic;font-size:1.03rem}
.room-copy p{margin-top:.65rem;color:var(--ink-soft);font-size:.84rem;line-height:1.55}
.room-links{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.room-detail{display:inline-flex;gap:.5rem;align-items:center;color:var(--ink);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.room-detail i{color:var(--gold)}
.room-inquiry{margin:1.25rem;padding:1.15rem;border:1px solid rgba(255,207,6,.24);background:rgba(255,207,6,.06)}
.room-inquiry p{font-size:.82rem;color:var(--ink-soft);margin-bottom:.85rem}

.priority-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:1rem;margin-top:3rem}
.priority-card{position:relative;min-height:340px;overflow:hidden;border:1px solid var(--line);background:var(--bg-3);padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;transition:transform .35s,border-color .35s}
.priority-card:first-child{min-height:460px;grid-row:span 2}
.priority-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 10%,rgba(8,9,8,.9) 82%),var(--priority-image) center/cover;z-index:-2;transition:transform .7s,filter .5s;filter:brightness(.7)}
.priority-card-birthday::before{background-position:center 72%}
.priority-card::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--card-x,50%) var(--card-y,50%),rgba(255,221,76,.2),transparent 42%);z-index:-1;opacity:0;transition:opacity .25s}
.priority-card:hover{transform:translateY(-5px);border-color:rgba(255,207,6,.55)}
.priority-card:hover::before{transform:scale(1.05);filter:brightness(.9)}
.priority-card:hover::after{opacity:1}
.priority-card b{font-size:.67rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.priority-card h3{font-size:clamp(1.8rem,3vw,3rem);line-height:.95;margin:.55rem 0}
.priority-card p{max-width:40ch;color:var(--ink-soft);font-size:.88rem}
.priority-card a{margin-top:1.1rem;align-self:flex-start}

.hours-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding:clamp(2rem,5vw,4rem);background:linear-gradient(125deg,#171b14,#0c0e0b);border:1px solid var(--line);position:relative;overflow:hidden}
.hours-panel::after{content:'02:00';position:absolute;right:-.04em;bottom:-.32em;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(8rem,20vw,18rem);color:rgba(255,255,255,.025);line-height:1}
.hours-clock{position:relative;width:min(100%,320px);aspect-ratio:1;border:1px solid rgba(255,207,6,.42);border-radius:50%;display:grid;place-items:center;margin:auto}
.hours-clock::before{content:'';position:absolute;inset:9%;border:1px dashed rgba(255,255,255,.18);border-radius:50%;animation:orbitSpin 30s linear infinite}
.hours-clock strong{font-family:'Barlow Condensed',sans-serif;font-size:clamp(3.5rem,7vw,6rem);line-height:.8;color:var(--gold);font-variant-numeric:tabular-nums}
.hours-clock span{display:block;text-align:center;margin-top:.75rem;color:var(--ink-soft);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}
.hours-copy h2{font-size:clamp(2.3rem,5vw,4.3rem);line-height:.95}
.hours-copy p{margin-top:1rem;color:var(--ink-soft);max-width:54ch}
.hours-list{display:grid;gap:.75rem;margin-top:1.7rem}
.hours-list li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--line);font-size:.85rem}
.hours-list strong{color:var(--gold);font-variant-numeric:tabular-nums}

.reviews-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}
.reviews-heading .sec-head{margin-bottom:0}
.reviews-google-link{display:grid;grid-template-columns:auto auto;align-items:center;gap:.15rem .65rem;min-width:max-content;padding:1rem 1.15rem;border:1px solid rgba(255,207,6,.4);background:rgba(255,207,6,.06);color:var(--ink)}
.reviews-google-link strong{grid-row:span 2;color:var(--gold);font:700 1.35rem/1 'Barlow Condensed',sans-serif}
.reviews-google-link span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.reviews-google-link i{grid-column:3;grid-row:1/3;color:var(--gold);font-size:.7rem}
.review-marquee{overflow:hidden;margin-inline:calc((100vw - 100%)/-2);padding-block:.6rem;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.review-track{display:flex;width:max-content;will-change:transform;animation:reviewsRight 62s linear infinite}
.review-group{display:flex;gap:1rem;padding-right:1rem}
.review-card{width:clamp(285px,30vw,410px);min-height:270px;padding:1.7rem;display:flex;flex-direction:column;justify-content:space-between;background:#f1eddf;color:#171813;border-top:4px solid var(--gold)}
.review-stars{color:#b98600;font-size:.9rem;letter-spacing:.18em}
.review-card blockquote{margin:1.4rem 0 1.8rem;font-family:'EB Garamond',serif;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.18}
.review-card footer{padding:0;background:transparent;border:0;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;color:#171813}
.review-card footer strong{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.review-card footer span{color:#64665d;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}
@keyframes reviewsRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(hover:hover) and (pointer:fine){.review-marquee:hover .review-track{animation-play-state:paused}}

.faq-layout{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.faq-intro{position:sticky;top:8rem}
.faq-list{min-width:0;border-top:1px solid var(--line)}
.faq-item{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.faq-item::before{content:'';position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .38s var(--ease-out)}
.faq-item.open::before{transform:scaleY(1)}
.faq-question{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;text-align:left;padding:1.5rem 0;font-family:'Barlow Condensed',sans-serif;font-size:1.28rem;font-weight:700;line-height:1.16;letter-spacing:.025em;transition:color .22s ease,transform .32s var(--ease-out)}
.faq-question span:last-child{color:var(--gold);transition:transform .25s}
.faq-item.open .faq-question span:last-child{transform:rotate(45deg)}
.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s}
.faq-answer>div{overflow:hidden}
.faq-answer p{padding:0 3rem 1.5rem 0;color:var(--ink-soft);max-width:66ch;font-size:.92rem;opacity:0;transform:translateY(-7px);transition:opacity .22s ease,transform .35s var(--ease-out)}
.faq-item.open .faq-answer{grid-template-rows:1fr}
.faq-item.open .faq-answer p{opacity:1;transform:translateY(0)}
@media(hover:hover) and (pointer:fine){.faq-item:hover .faq-question{color:var(--gold);transform:translateX(5px)}}

.event-time-cue{position:relative;display:grid;justify-items:center;width:max-content;min-width:104px;margin:1rem auto 0;padding-top:2.25rem;color:var(--gold)}
.event-time-cue .blood-drips{position:absolute;top:0;left:50%;width:78px;margin:0;transform:translateX(-50%)}
.event-hourglass{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,207,6,.5);border-radius:50%;background:#0d0f0c;box-shadow:0 0 24px rgba(255,207,6,.1)}
.event-hourglass::before{content:'';position:absolute;inset:-6px;border:1px dashed rgba(255,207,6,.25);border-radius:50%;animation:eventOrbit 9s linear infinite}
.event-hourglass i{font-size:1rem;transform-origin:center;animation:hourglassTurn 3.6s var(--ease-in-out) infinite}
.event-time-label{margin-top:.55rem;color:rgba(255,253,244,.78);font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
@keyframes hourglassTurn{0%,38%{transform:rotate(0)}50%,88%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}
@keyframes eventOrbit{to{transform:rotate(360deg)}}

.reveal-pending{opacity:0;transform:translateY(18px) scale(.985)}
.reveal-pending.reveal-visible{opacity:1;transform:translateY(0) scale(1);transition:opacity .42s var(--ease-out),transform .42s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.btn:active,.ds-day:active,.ds-nav:active,.rc-nav:active{transform:scale(.97);transition:transform .14s var(--ease-out)}

.coming-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;background:#0d0f0c;border:1px solid var(--line)}
.coming-copy{padding:clamp(2rem,5vw,4.2rem)}
.coming-copy h2{font-size:clamp(2.5rem,6vw,5rem);line-height:.88;margin:1rem 0}
.coming-copy p{max-width:50ch;color:var(--ink-soft)}
.notify-form{display:grid;grid-template-columns:1fr auto;gap:.65rem;margin-top:1.8rem}
.notify-form input{min-width:0;background:#171a15;border:1px solid var(--line);color:var(--ink);padding:.9rem 1rem;font:inherit}
.notify-consent{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;color:var(--ink-faint);font-size:.7rem}
.notify-consent input{margin-top:.2rem;accent-color:var(--gold)}
.coming-screen{min-height:390px;position:relative;overflow:hidden;background:radial-gradient(circle at center,rgba(255,207,6,.13),transparent 42%),repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px),#050605;display:grid;place-items:center}
.coming-screen::before{content:'DOSSIER RISERVATO';font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(3rem,7vw,6rem);color:rgba(255,255,255,.06);transform:rotate(-8deg)}
.coming-signal{position:absolute;width:130px;height:130px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);animation:signalPulse 2.8s ease-in-out infinite}
.coming-signal::before,.coming-signal::after{content:'';position:absolute;border:1px solid rgba(255,207,6,.35);border-radius:50%;inset:-22px}
.coming-signal::after{inset:-44px;opacity:.45}
@keyframes signalPulse{50%{transform:scale(1.06);box-shadow:0 0 40px rgba(255,207,6,.18)}}

.form-note{grid-column:1/-1;color:var(--ink-faint);font-size:.72rem;line-height:1.5}
.event-location-note{display:flex;gap:.75rem;padding:1rem;border-left:2px solid var(--gold);background:rgba(255,207,6,.05);color:var(--ink-soft);font-size:.84rem;margin-top:1rem}
.event-location-note i{color:var(--gold);margin-top:.2rem}
.hero-format{width:max-content;max-width:100%;margin:0 0 .8rem;padding:.45rem .68rem;border-left:3px solid var(--gold);background:rgba(5,6,5,.72);color:#fff8d5;font-size:.68rem;font-weight:800;line-height:1.3;letter-spacing:.075em;text-transform:uppercase}.field select{color-scheme:dark;background-color:#11130f!important;color:#fff!important}.field select option{background:#11130f!important;color:#fff!important}.floaters .float-call{width:auto;min-width:52px;padding:0 17px;border-radius:999px;gap:9px}.float-call span{font-size:.75rem;font-weight:800;letter-spacing:.03em;white-space:nowrap}

@media(max-width:1000px){
  .hero-inner{grid-template-columns:1fr;max-width:820px}.hero-copy{max-width:760px}
  .hero-curtain-guide{display:none}
  .hero-copy{position:relative;z-index:2}
  .priority-grid{grid-template-columns:1fr 1fr}.priority-card:first-child{grid-column:1/-1;grid-row:auto;min-height:420px}
}
@media(max-width:760px){
  #nav{padding:.8rem 5vw;background:rgba(10,12,9,.74);backdrop-filter:blur(10px)}
  .nav-logo img{height:45px}.nav-logo-text{font-size:.84rem}
  .mobile-menu{overflow-y:auto;padding:5.6rem 1.25rem 4.5rem}
  .mobile-menu::before{margin-bottom:.4rem;padding-bottom:.55rem;font-size:.68rem}
  .mobile-menu>a:not(.nav-cta){min-height:50px;padding:.66rem 0;font-size:1.15rem;line-height:1.18}
  .mobile-menu .nav-cta{min-height:52px;margin-top:.9rem;font-size:1rem}
  .hero{min-height:100svh;padding:7.5rem 6vw 7rem;align-items:flex-end}
  .hero-slides::after{background:linear-gradient(180deg,rgba(8,9,8,.12),rgba(8,9,8,.2) 38%,rgba(8,9,8,.58) 78%,rgba(9,10,9,.86))}
  .hero-slide img{object-fit:cover;transform:scale(1.04);filter:brightness(.72) saturate(1.05)}
  .hero-copy{max-width:100%}.hero h1{font-size:clamp(2.75rem,12vw,4.1rem);line-height:.84;-webkit-text-stroke:1px var(--gold)}
  .hero-copy.is-hidden{transform:none} /* su iOS lo stroke + translateY produceva un flash */
  .hero-tagline{font-size:.94rem;max-width:36ch}
  .hero-actions{margin-top:1.25rem}.hero-cta{padding:.9rem 1.25rem}
  .hero-stats{display:grid;grid-template-columns:repeat(3,auto);gap:.7rem;margin-top:1rem}
  .hero-stats .stat{display:grid;justify-items:start;gap:.15rem}.hero-stats i{font-size:.9rem}.hero-stats span{font-size:.72rem}
  .hero-arrow{top:39%;width:42px;height:42px}
  .hero-world-label{top:6.2rem;font-size:.5rem;letter-spacing:.11em}.hero-world-story{left:5vw}.hero-world-real{right:5vw}.hero-curtain-mark{top:34%;width:48px;height:48px}.hero-slide .hero-curtain-mark img{top:-2px;width:72px;height:72px;transform:translateX(-50%)}
  .hero[data-event="sei-sospetti"] h1{font-size:clamp(2.2rem,9.5vw,3.35rem);line-height:.88}
  .hero[data-event="halloween-castello"] h1{font-size:clamp(2.45rem,10.7vw,3.8rem);line-height:.86}
  .priority-grid,.hours-panel,.faq-layout,.coming-grid{grid-template-columns:1fr}
  .priority-card,.priority-card:first-child{min-height:360px}
  .hours-clock{width:220px}.hours-panel{padding:2rem 1.3rem}.hours-panel::after{display:none}
  .reviews-heading{display:block}.reviews-google-link{width:max-content;min-width:0;margin-top:1.25rem}.review-card{width:82vw;min-height:285px}.faq-intro{position:relative;top:auto}
  .coming-screen{min-height:300px;order:-1}.notify-form{grid-template-columns:1fr}.notify-consent{grid-column:1}.notify-form .btn{justify-content:center}
  .room-copy{padding:1rem 1rem 0}.room-inquiry{margin:1rem}
  .room-format{right:.65rem;bottom:.65rem;left:.65rem;font-size:.62rem}
  .field input,.field select,.field textarea,.notify-form input{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.timepiece::before,.timepiece::after,.hourglass-stream,.hours-clock::before,.coming-signal,.hero-slides::before,.event-hourglass::before,.event-hourglass i{animation:none!important}.hero-slide,.hero-copy{transition:opacity .2s ease!important;transform:none!important}.hero-copy.is-hidden{opacity:0!important}.reveal-pending,.reveal-pending.reveal-visible{opacity:1!important;transform:none!important;transition:none!important}.review-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none;scroll-snap-type:x mandatory}.review-track{animation:none;transform:none}.review-group[aria-hidden="true"]{display:none}.review-card{scroll-snap-align:start}}

/* ═══════ CENE CON DELITTO (blocco generico) ═══════ */
.cene-band{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-top:2.5rem;padding:clamp(1.6rem,3.5vw,2.6rem);border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,22,18,.96),rgba(10,11,10,.98));position:relative;overflow:hidden}
.cene-band::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(255,207,6,.12),transparent 42%);pointer-events:none}
.cene-band-media{position:relative;aspect-ratio:4/3;border-radius:6px;overflow:hidden;border:1px solid rgba(255,207,6,.22)}
.cene-band-media img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(1.05)}
.cene-band-copy{position:relative;z-index:1}
.cene-band-copy h2{font-size:clamp(2.2rem,4.6vw,3.8rem);line-height:.95;margin:.7rem 0 1rem}
.cene-band-copy h2 em{color:var(--gold);font-style:normal}
.cene-band-copy>p{color:var(--ink-soft);max-width:48ch;font-size:.95rem;line-height:1.6}
.cene-points{display:grid;gap:.85rem;margin:1.5rem 0 1.7rem}
.cene-points li{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;font-size:.88rem;color:var(--ink-soft);line-height:1.45}
.cene-points i{color:var(--gold);margin-top:.2rem}
.cene-points strong{display:block;color:var(--ink);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.15rem}
.cene-actions{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
@media(max-width:900px){
  .cene-band{grid-template-columns:1fr;padding:1.35rem}
  .cene-band-media{aspect-ratio:16/10;order:-1}
  .cene-actions .btn{width:100%;justify-content:center}
}

/* Ritmo editoriale: scene scure e pagine dossier chiare */
.scene{position:relative;isolation:isolate;overflow:hidden}
.scene-dark{background:#090a09}
.scene-dark:nth-of-type(even){background:#111310}
.scene-paper{
  --ink:#171813;
  --ink-soft:rgba(23,24,19,.72);
  --ink-faint:rgba(23,24,19,.5);
  --line:rgba(23,24,19,.2);
  --panel:rgba(255,253,244,.78);
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(255,207,6,.13),transparent 24rem),
    repeating-linear-gradient(0deg,transparent 0 39px,rgba(25,26,21,.035) 39px 40px),
    #f1eddf!important;
}
.scene-paper::before{
  content:'';position:absolute;z-index:-1;top:8%;right:-18vw;width:58vw;aspect-ratio:1;pointer-events:none;
  border-radius:50%;background:radial-gradient(circle,rgba(255,207,6,.11),transparent 68%);
  transform:translate3d(0,0,0) scale(.88);animation:paperGlowDrift 11s ease-in-out infinite alternate
}
@keyframes paperGlowDrift{to{transform:translate3d(-12vw,8vh,0) scale(1.08)}}
.scene-paper::after{
  content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.32;
  background:linear-gradient(115deg,transparent 0 48%,rgba(23,24,19,.04) 48% 48.2%,transparent 48.2% 100%);
  transform:translateX(-18%);transition:transform 1.5s var(--ease-out)
}
.scene-paper.section-in-view::after{transform:translateX(0)}
.scene-paper .eyebrow{color:#7b5b00}
.scene-paper .ghost-head .ghost-bg{color:#171813;opacity:.075!important}
.scene-paper .ghost-head h2,.scene-paper .sec-head h2,.scene-paper h3,.scene-paper h4,.scene-paper h5{color:var(--ink)}
.scene-paper .ghost-head h2 em,.scene-paper .sec-head h2 em{color:#8a6500}
.scene-paper .btn-outline{border-color:rgba(23,24,19,.45);color:#171813}

/* Titolo reale in primo piano, titolo-ombra sovradimensionato dietro */
.poster-head{position:relative;isolation:isolate}
.poster-head::before{
  content:attr(data-ghost);position:absolute;z-index:-1;left:-.06em;top:50%;width:max-content;max-width:100vw;
  color:rgba(23,24,19,.07);font:800 clamp(6rem,18vw,16rem)/.7 'Barlow Condensed','Arial Narrow',sans-serif;
  letter-spacing:-.035em;white-space:nowrap;transform:translate3d(-7%,calc(-50% + 20px),0);opacity:0;
  transition:opacity .65s ease,transform 1.05s var(--ease-out);pointer-events:none
}
.scene-dark .poster-head::before{color:rgba(255,253,244,.055)}
.section-in-view .poster-head::before{opacity:1;transform:translate3d(0,-50%,0)}
.ghost-head .ghost-bg{transform:translate3d(-5%,10px,0);transition:transform 1.05s var(--ease-out),opacity .65s ease}
.section-in-view .ghost-head .ghost-bg{transform:translate3d(0,0,0)}

/* Fasce cinetiche che segnano il cambio di capitolo */
.story-divider{position:relative;z-index:5;overflow:hidden;padding:1rem 0;background:#0b0c0a;color:#ffcf06;border-block:1px solid rgba(255,207,6,.48)}
.story-divider-paper{background:#f1eddf;color:#171813;border-color:rgba(23,24,19,.3)}
.story-divider-track{display:flex;align-items:center;gap:1.3rem;width:max-content;will-change:transform;animation:storyTicker 26s linear infinite}
.story-divider-track-reverse{animation-direction:reverse;animation-duration:31s}
.story-divider-track span{font:800 clamp(1.5rem,3.2vw,3rem)/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.055em;white-space:nowrap}
.story-divider-track i{width:.62rem;height:.62rem;flex:none;background:currentColor;transform:rotate(45deg)}
@keyframes storyTicker{to{transform:translateX(-50%)}}

/* Microinterazioni: l'interfaccia reagisce senza rallentare lo scroll */
.location-band{isolation:isolate;overflow:hidden}
.location-band::after{content:'';position:absolute;z-index:-1;inset:-40% auto -40% -35%;width:24%;background:linear-gradient(90deg,transparent,rgba(255,207,6,.12),transparent);transform:skewX(-18deg);animation:locationSweep 7s ease-in-out infinite}
@keyframes locationSweep{0%,18%{left:-35%}70%,100%{left:125%}}
.scene-paper .game-info-grid{counter-reset:game-step;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.scene-paper .game-info-item{counter-increment:game-step;position:relative;display:grid;grid-template-columns:3rem 1fr;gap:.25rem 1.1rem;text-align:left;padding:2.1rem 1.4rem;border-bottom:1px solid var(--line)}
.scene-paper .game-info-item:nth-child(odd){border-right:1px solid var(--line)}
.scene-paper .game-info-item::before{content:'0' counter(game-step);grid-row:1/4;color:#8a6500;font:800 .72rem/1 'Barlow Condensed',sans-serif;letter-spacing:.12em;padding-top:.35rem}
.scene-paper .game-info-item i{grid-column:2;margin:0 0 .65rem;justify-self:start;transition:transform .35s var(--ease-out)}
.scene-paper .game-info-item h5,.scene-paper .game-info-item p{grid-column:2}
.scene-paper .game-info-item h5{font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1}
.scene-paper .game-info-item:hover i{transform:rotate(-9deg) scale(1.16)}
.scene-paper .priority-card{--ink:#fffdf4;--ink-soft:rgba(255,253,244,.78);--line:rgba(255,224,96,.18)}
.scene-paper .reviews-google-link{background:rgba(255,255,255,.46);border-color:rgba(23,24,19,.23);color:#171813}
.scene-paper .reviews-google-link strong{color:#7b5b00}
.scene-paper .faq-list{background:rgba(255,255,255,.28);padding:0 clamp(1rem,3vw,2rem);box-shadow:0 24px 60px rgba(37,31,13,.08)}
.scene-paper .faq-question{color:#171813}
.scene-paper .faq-question span:last-child{color:#7b5b00}
.scene-paper .acc-head h4,.scene-paper .acc-panel-inner,.scene-paper .acc-panel-inner ul li{color:#171813}
.scene-paper .acc-panel-inner ul li{border-color:rgba(23,24,19,.24);background:rgba(255,255,255,.35)}
.scene-paper .about-quote{color:#171813}
.scene-paper .pillar p,.scene-paper .contact-info-item p,.scene-paper .contact-info-item a{color:rgba(23,24,19,.72)}
.scene-paper .pillar-ic,.scene-paper .contact-info-item .ic{background:rgba(138,101,0,.1);border-color:rgba(138,101,0,.3);color:#7b5b00}
.scene-paper .form-card{--ink:#fffdf4;--ink-soft:rgba(255,253,244,.78);--ink-faint:rgba(255,253,244,.78);--line:rgba(255,224,96,.32);background:#111310;border:1px solid rgba(23,24,19,.22);box-shadow:0 28px 70px rgba(28,24,12,.14)}
.scene-paper .form-card .contact-form-head{padding-bottom:1.4rem;border-bottom:1px solid var(--line)}
.scene-paper .form-card .contact-form-head h3{margin-top:.6rem;color:#fffdf4;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1}
.scene-paper .form-card .contact-form-head p{max-width:52ch;margin-top:.75rem;color:rgba(255,253,244,.76);font-size:.86rem;line-height:1.55}
.scene-paper .form-card .field label{color:#fffdf4;font-weight:700;letter-spacing:.1em}
.scene-paper .form-card .field input,.scene-paper .form-card .field textarea{background:#1a1d18;border-color:rgba(255,224,96,.34);color:#fffdf4}
.scene-paper .form-card .field input::placeholder,.scene-paper .form-card .field textarea::placeholder{color:rgba(255,253,244,.58);opacity:1}
.scene-paper .form-card .field input:hover,.scene-paper .form-card .field textarea:hover{border-color:rgba(255,224,96,.58)}
.scene-paper .gal-item{border-radius:0;box-shadow:0 18px 40px rgba(30,25,10,.12)}
.scene-paper .gal-item:nth-child(3n+2){transform:translateY(1.4rem)}
.scene-paper .gal-item img{filter:saturate(.82) contrast(1.04)}
.scene-paper .gal-item:hover img{filter:saturate(1.08) contrast(1.08);transform:scale(1.07) rotate(.4deg)}
.scene-paper .reveal-pending[data-reveal="2"]{transform:translateX(22px)}
.scene-paper .reveal-pending[data-reveal="3"]{transform:translateX(-22px)}
.scene-paper .reveal-pending.reveal-visible{transform:translateX(0)}

@media(max-width:700px){
  .scene{padding-block:clamp(4.8rem,18vw,6.4rem)}
  .story-divider{padding:.8rem 0}.story-divider-track{gap:.85rem;animation-duration:22s}.story-divider-track i{width:.45rem;height:.45rem}
  .poster-head::before{font-size:clamp(5rem,28vw,8rem);top:16%;max-width:none}
  .ghost-head .ghost-bg{font-size:clamp(5rem,25vw,8rem)!important;line-height:.72}
  .scene-paper .game-info-grid{grid-template-columns:1fr}
  .scene-paper .game-info-item:nth-child(odd){border-right:0}
  .scene-paper .game-info-item{grid-template-columns:2.2rem 1fr;padding:1.65rem .2rem}
  .scene-paper .gal-item:nth-child(3n+2){transform:none}
  .faq-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2.4rem}
  .faq-intro{top:auto;min-width:0;padding:0 0 .2rem}
  .faq-intro::before{top:34%;font-size:clamp(4.7rem,26vw,7rem)}
  .faq-intro h2{font-size:clamp(2.7rem,14vw,4.2rem)!important;line-height:.84!important}
  .faq-intro p{max-width:31ch!important;font-size:.98rem;line-height:1.55}
  .scene-paper .faq-list{width:100%;min-width:0;padding-inline:1rem}
  .faq-question{grid-template-columns:minmax(0,1fr) 1.35rem;gap:.85rem;padding:1.35rem 0;font-size:clamp(1.18rem,6vw,1.48rem);line-height:1.16}
  .faq-question span:first-child{overflow-wrap:anywhere}
  .faq-question span:last-child{text-align:center}
  .faq-item.open .faq-question{padding-left:.75rem}
  .faq-answer p{padding:0 .35rem 1.35rem .75rem;font-size:.94rem;line-height:1.62}
}

@media(prefers-reduced-motion:reduce){
  .story-divider-track,.location-band::after,.scene-paper::before{animation:none!important}
  .poster-head::before,.ghost-head .ghost-bg,.scene-paper::after{transition:none!important;transform:none!important;opacity:1}
}

.rooms-loading,.slots-unavailable{width:100%;padding:1.1rem;color:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.12);border-radius:12px;text-align:center}.inline-booking-form{display:grid;gap:.8rem;margin-top:1rem}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.inline-booking-form input,.inline-booking-form textarea{width:100%;padding:.8rem .9rem;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:8px;font:500 .82rem Inter,sans-serif}.inline-booking-form textarea{min-height:72px;resize:vertical}.inline-booking-form input:focus,.inline-booking-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.inline-privacy{display:grid;grid-template-columns:20px 1fr;gap:.55rem;align-items:start;color:rgba(255,255,255,.72);font:400 .72rem/1.5 Inter,sans-serif}.inline-privacy input{width:18px;height:18px;margin:1px 0 0;padding:0}.inline-privacy a{color:var(--gold);text-decoration:underline}.inline-booking-form .btn{justify-self:start}
@media(max-width:640px){.inline-fields{grid-template-columns:1fr}.inline-booking-form input,.inline-booking-form textarea{font-size:16px}}
