*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080604}body{font-family:Georgia,serif}.stage{position:relative;width:min(100vw,calc(100vh * 1672 / 941));aspect-ratio:1672/941;margin:auto;top:50%;transform:translateY(-50%);overflow:hidden}.book-stage{position:relative;width:min(100vw,150vh);aspect-ratio:3/2;margin:auto;top:50%;transform:translateY(-50%);overflow:hidden}.scene,.book-master{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}#dustCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.hotspot,.book-hotspot{position:absolute;display:block;border:0;background:transparent;cursor:pointer}.open-book{left:35.3%;top:83.2%;width:27.0%;height:9.5%;z-index:20;border-radius:14px;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.book-hotspot.index{left:23%;top:78%;width:18%;height:10%}.book-hotspot.close{left:59%;top:78%;width:20%;height:10%}.hotspot:focus-visible,.book-hotspot:focus-visible{outline:2px solid #d5ad68;outline-offset:2px;border-radius:20px}@media(max-aspect-ratio:1672/941){.stage{width:100vw;height:auto}}@media(min-aspect-ratio:1672/941){.stage{height:100vh;width:auto}}@media(max-aspect-ratio:3/2){.book-stage{width:100vw;height:auto}}@media(min-aspect-ratio:3/2){.book-stage{height:100vh;width:auto}}

/* Selettore lingua: hotspot allineati ESATTAMENTE alla barra incisa nell'immagine 1672×941 */
.language-hotspots{position:absolute;left:1.25%;top:85.55%;width:19.25%;height:7.45%;z-index:12;pointer-events:auto}
.lang-hot{position:absolute;top:0;height:100%;border:0;background:transparent;padding:0;margin:0;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.lang-hot.it{left:0%;width:18.5%}.lang-hot.fr{left:18.5%;width:20.5%}.lang-hot.en{left:39%;width:20.5%}.lang-hot.de{left:59.5%;width:20.5%}.lang-hot.es{left:80%;width:20%}
.lang-hot:focus-visible{outline:none}


/* Comando discreto per la musica mistica della sola homepage */
.music-toggle{
  position:absolute;
  right:2.2%;
  bottom:3.2%;
  z-index:7;
  width:46px;
  height:46px;
  border:1px solid rgba(218,185,116,.72);
  border-radius:50%;
  background:rgba(18,12,8,.68);
  color:#e6c98e;
  font:700 25px/1 Georgia,serif;
  cursor:pointer;
  box-shadow:0 0 14px rgba(202,165,99,.28), inset 0 0 10px rgba(255,224,155,.08);
  backdrop-filter:blur(2px);
  transition:transform .2s ease, box-shadow .25s ease, background .25s ease;
}
.music-toggle:hover{transform:scale(1.06);background:rgba(37,25,14,.82)}
.music-toggle.is-playing{box-shadow:0 0 20px rgba(218,185,116,.55), inset 0 0 12px rgba(255,229,171,.14)}
.music-toggle:focus-visible{outline:2px solid #f0d59c;outline-offset:3px}
@media(max-width:700px){.music-toggle{width:40px;height:40px;font-size:22px;right:3%;bottom:3%}}

/* Bagliore magico ben visibile sul logo inciso nella copertina */
.book-logo-aura,.book-logo-magic{
  position:absolute;inset:0;z-index:2;pointer-events:none;
}
.book-logo-aura img,.book-logo-magic img{
  display:block;width:100%;height:100%;object-fit:contain;
}
.book-logo-aura{
  mix-blend-mode:screen;
  animation:logoAuraStrong 2.6s ease-in-out infinite;
}
.book-logo-magic{
  z-index:3;
  mix-blend-mode:screen;
  animation:logoMagicStrong 2.6s ease-in-out infinite;
}
.book-logo-magic img{
  filter:brightness(1.45) saturate(1.45)
         drop-shadow(0 0 4px rgba(255,235,160,1))
         drop-shadow(0 0 11px rgba(255,186,54,.98))
         drop-shadow(0 0 25px rgba(255,137,20,.85));
}
@keyframes logoMagicStrong{
  0%,100%{opacity:.58;transform:scale(1)}
  45%{opacity:1;transform:scale(1.006)}
  60%{opacity:.82;transform:scale(1.002)}
}
@keyframes logoAuraStrong{
  0%,100%{opacity:.28;filter:blur(1px) brightness(1.1)}
  45%{opacity:1;filter:blur(2px) brightness(1.8)}
  60%{opacity:.55;filter:blur(1.5px) brightness(1.4)}
}
@media (prefers-reduced-motion:reduce){
  .book-logo-aura,.book-logo-magic{animation:none;opacity:.9}
}

/* Mobile: hotspot lingue totalmente invisibili, nessun indicatore/focus/tap Samsung */
.language-hotspots,
.lang-hot,
.lang-hot.selected,
.lang-hot:focus,
.lang-hot:active,
.lang-hot:hover {
  -webkit-tap-highlight-color: transparent !important;
}
.lang-hot {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-shadow: none !important;
  border-radius: 0 !important;
}
.lang-hot::before,
.lang-hot::after,
.lang-hot.selected::before,
.lang-hot.selected::after {
  content: none !important;
  display: none !important;
}
.lang-hot:focus,
.lang-hot:focus-visible,
.lang-hot:active,
.lang-hot.selected {
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
}

/* Telefono/tablet: niente cursori/focus grafici; i tocchi restano sull'intera barra lingue. */
@media (hover:none), (pointer:coarse), (max-device-width:1200px){
  html,body,body *,a,button,[role="button"],.hot,.hotspot,.book-hotspot,.language-hotspots,.lang-hot{cursor:auto!important;-webkit-tap-highlight-color:transparent!important}
  .lang-hot,.lang-hot:focus,.lang-hot:active,.lang-hot:focus-visible{outline:0!important;box-shadow:none!important;background:transparent!important;border:0!important}
}

/* Correzione richiesta: abbassa FISICAMENTE di 1 cm l'area cliccabile delle lingue. */
.language-hotspots{transform:translateY(1cm) !important;}


/* FIX MOBILE 23/08/2026 — la barra lingue segue l'immagine, non i centimetri fisici */
@media (hover:none), (pointer:coarse), (max-width:900px){
  .language-hotspots{
    left:1.25% !important;
    top:87.45% !important;
    width:19.25% !important;
    height:6.80% !important;
    transform:none !important;
    -webkit-transform:none !important;
    pointer-events:auto !important;
  }
  .lang-hot{
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:transparent !important;
  }
}
