*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#020814 url('../assets/backgrounds/gaia-grid-bg.png') center/cover fixed;color:#eef7ff;font:16px Arial,Helvetica,sans-serif}body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at center 41%,rgba(2,8,20,.36) 0%,rgba(2,8,20,.16) 27%,rgba(2,8,20,.03) 49%,transparent 69%);z-index:0;pointer-events:none}#app{position:relative;isolation:isolate;max-width:1250px;margin:auto;padding:12px 24px}#app>header,#app>section,#app>form,#app>div:not(.earth-lights),#app>article,#app>p,#app>footer{position:relative;z-index:1}header{text-align:center;padding-top:0}.logo{width:136px;max-width:35vw;margin:0 auto;display:block}h1{font-size:22px;letter-spacing:4px;margin:8px}h1 small{display:block;font:11px Georgia,serif;letter-spacing:6px;margin:8px}header p{color:#cde8fa;margin:4px 0 8px;font-size:14px;text-shadow:0 2px 8px #000}h2{font:16px Georgia,serif;letter-spacing:2px;margin:0 0 12px}h3{font:18px Georgia,serif}button,a,select{touch-action:manipulation}button,nav a,.bubble a,.elevator a,select{border:1px solid #8295a8;border-radius:6px;background:linear-gradient(#343b43,#131719 48%,#292d32);box-shadow:inset 0 1px #ffffff45,0 3px 8px #0008;color:#e7f4ff;padding:10px 14px;font:14px Georgia,serif;cursor:pointer;text-decoration:none;display:inline-block}button:hover,a:hover{border-color:#80d8ff}button:disabled,select:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8fe5ff;outline-offset:3px}a{color:#a7e2ff}.languages{position:absolute;right:0;top:0;display:flex;gap:4px;z-index:5}.languages button{font:21px Arial,sans-serif;width:36px;height:36px;padding:5px}.languages img{width:24px;height:24px;object-fit:contain;vertical-align:middle}.languages [aria-pressed=true]{border-color:#96eaff;box-shadow:0 0 10px #61beff55}nav{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:6px 0 10px}.panel{position:relative;border:1px solid #7db9e566;border-radius:14px;background:rgba(7,22,50,.19);backdrop-filter:blur(2px);padding:16px;box-shadow:inset 0 0 24px #66a9ff0b,0 12px 26px #0005}.search{max-width:820px;margin:16px auto 14px}.search label{font:16px Georgia,serif;letter-spacing:2px}.search>div{display:flex;gap:10px;margin:10px 0}.search input{min-width:0;flex:1;border:1px solid #7c8996;background:#0c1016;border-radius:5px;color:white;font:16px Arial,sans-serif;padding:12px}.search small{color:#bfd2e0}.deck{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2.9fr) minmax(150px,1fr);gap:18px;align-items:stretch}.screen{aspect-ratio:16/9;position:relative;background:radial-gradient(ellipse,#16385399,#02081455);display:grid;place-items:center;border:1px solid #506573;border-radius:5px;overflow:hidden}.screen video{width:100%;height:100%;position:absolute;inset:0;object-fit:contain}.screen p{position:relative;text-align:center;max-width:85%;font:18px Georgia,serif;line-height:1.6;pointer-events:none}.console{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:linear-gradient(110deg,#292d32bd,#090c10bd,#353a40bd);padding:7px 9px;margin-top:8px;border:1px solid #697581;border-radius:6px}.console label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.console select{flex:1 1 140px;min-width:0;width:auto;max-width:100%;font-size:12px;padding:7px}.video-controls{display:flex;gap:3px;margin:0}.video-controls button{font:18px Arial,sans-serif;width:34px;height:34px;padding:4px}.hint{display:inline-flex;position:relative;border-radius:6px}.tooltip{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);width:max-content;max-width:240px;padding:7px 10px;border:1px solid #7bbfe0;border-radius:5px;background:#081523f5;color:#eef7ff;font:12px/1.4 Arial,sans-serif;box-shadow:0 4px 12px #0008;opacity:0;visibility:hidden;pointer-events:none;z-index:30}.hint:hover>.tooltip,.hint:focus-within>.tooltip{opacity:1;visibility:visible}.hint:focus-visible{outline:3px solid #8fe5ff;outline-offset:3px}.languages .tooltip{left:auto;right:0;transform:none}.languages button[aria-disabled=true]{opacity:.55;cursor:help}.lane{min-height:0;overflow:hidden}.lane>button{position:absolute;top:8px;right:8px;padding:5px 8px;font:14px Arial}.lane h2{padding-right:38px}.lane-window{overflow:hidden;position:relative}.bars .lane-window,.pubs .lane-window{position:absolute;top:50px;bottom:14px;left:12px;right:12px}.track{will-change:transform}.cycle{display:flex;flex-direction:column}.destination{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(#142b3b33,#09203533);border:1px solid #76c6ff66;box-shadow:inset 0 0 18px #76c6ff11,0 0 10px #45cfff11;border-radius:12px;flex-shrink:0;min-width:0;height:112px;width:100%;margin:0 0 12px;padding:8px}.destination strong{font:12px Arial,sans-serif;line-height:1.5}.model-preview{display:block;width:100%;height:78px;object-fit:contain;pointer-events:none}.destination strong{text-shadow:0 2px 5px #000}.satellites{margin-top:18px}.satellites .lane-window{height:124px}.satellites .track,.satellites .cycle{display:flex;flex-direction:row;width:max-content}.satellites .destination{width:186px;margin:0 12px 0 0}.selected{outline:3px solid #91e4ff;outline-offset:-3px}.bubble{position:fixed;z-index:100;width:min(350px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;background:#101c2bf5;border:2px solid #80d8ff;box-shadow:0 0 24px #4cbbff55;border-radius:12px;padding:20px;font-size:14px;line-height:1.5}.bubble::before{content:'◆';color:#80d8ff;position:absolute;top:0;left:12px}.bubble strong{display:block;padding-right:35px}.bubble [data-close]{position:absolute;top:7px;right:7px;padding:4px 9px}.bubble a,.bubble [data-configure]{margin:4px 0;display:block}.saved,.demo,footer{color:#bacddd;font-size:12px;line-height:1.6}.demo{text-align:center}.preview{border:1px solid #c6a065;background:#291f0de0;color:#f9dfb3;padding:12px;text-align:center;font-size:13px}.elevator{margin:18px 0}.elevator button{margin:4px}#commercial .destination{display:inline-flex;width:180px;margin:12px}footer{text-align:center;margin:25px 0 10px}.information{max-width:800px;margin:30px auto;line-height:1.8}#results{max-width:820px;margin:0 auto 14px}#results button{margin:4px}.ignition-border{pointer-events:none;position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ignition-border rect{fill:none;stroke:#8de6ff;stroke-width:3;stroke-dasharray:8 92;stroke-dashoffset:0;opacity:0;filter:drop-shadow(0 0 5px #72dfff);animation:trace .75s linear var(--delay) 1}.ignition{animation:once-pulse .6s ease calc(var(--delay) + .75s) 1}.ready{border-color:#92dcff88;box-shadow:0 0 12px #68cfff22}@keyframes trace{0%{opacity:1;stroke-dashoffset:0}95%{opacity:1}100%{opacity:0;stroke-dashoffset:-100}}@keyframes once-pulse{50%{box-shadow:0 0 20px #8bdfff88}}
@media(max-width:700px){#app{padding:12px}header{padding-top:40px}.languages button{font-size:21px}.logo{width:116px}.deck{grid-template-columns:1fr 1fr;gap:12px}.player{grid-column:1/-1;grid-row:1}.bars,.pubs{height:270px}.screen p{font-size:16px}.console{padding:6px;gap:6px}.console select{flex-basis:100%}.video-controls{justify-content:center;width:100%}.search input{font-size:14px}.search>div{gap:5px}.search button{padding:8px}.satellites .destination{width:156px}.bubble{font-size:13px}#commercial .destination{width:calc(50% - 24px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}.ignition-border{display:none}}

/* Luci originali Gaia recuperate da skyline.css; nessun nuovo moto della Terra. */
.earth-lights {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.earth-light {
  position: absolute;
  border-radius: 50%;
  background: #8bdcff;

  box-shadow:
    0 0 8px rgba(139, 220, 255, 1),
    0 0 22px rgba(76, 158, 255, .78),
    0 0 38px rgba(111, 90, 255, .34);

  animation:
    pulseLight
    3s
    ease-in-out
    infinite;
}


/* =========================================================
   SINISTRA ALTA / MEDIA
========================================================= */

.earth-light.l1 {
  left: 5%;
  top: 56%;
  width: 8px;
  height: 8px;
  animation-delay: .2s;
  animation-duration: 2.8s;
}

.earth-light.l2 {
  left: 12%;
  top: 67%;
  width: 11px;
  height: 11px;
  animation-delay: .9s;
  animation-duration: 3.6s;
}

.earth-light.l3 {
  left: 22%;
  top: 57%;
  width: 7px;
  height: 7px;
  animation-delay: 1.4s;
  animation-duration: 2.6s;
}

.earth-light.l4 {
  left: 28%;
  top: 77%;
  width: 12px;
  height: 12px;
  animation-delay: .5s;
  animation-duration: 4s;

  box-shadow:
    0 0 10px rgba(139, 220, 255, 1),
    0 0 28px rgba(76, 158, 255, .88),
    0 0 48px rgba(111, 90, 255, .38);
}


/* =========================================================
   CENTRO SINISTRA
========================================================= */

.earth-light.l5 {
  left: 35%;
  top: 61%;
  width: 8px;
  height: 8px;
  animation-delay: 1.8s;
  animation-duration: 3s;
}

.earth-light.l6 {
  left: 39%;
  top: 81%;
  width: 10px;
  height: 10px;
  animation-delay: .7s;
  animation-duration: 3.5s;
}

.earth-light.l7 {
  left: 44%;
  top: 66%;
  width: 7px;
  height: 7px;
  animation-delay: 2.2s;
  animation-duration: 2.7s;
}

.earth-light.l8 {
  left: 47%;
  top: 78%;
  width: 13px;
  height: 13px;
  animation-delay: 1.1s;
  animation-duration: 4.3s;

  box-shadow:
    0 0 11px rgba(139, 220, 255, 1),
    0 0 30px rgba(76, 158, 255, .90),
    0 0 52px rgba(111, 90, 255, .40);
}


/* =========================================================
   CENTRO DESTRA
========================================================= */

.earth-light.l9 {
  left: 56%;
  top: 65%;
  width: 8px;
  height: 8px;
  animation-delay: .4s;
  animation-duration: 2.9s;
}

.earth-light.l10 {
  left: 61%;
  top: 80%;
  width: 11px;
  height: 11px;
  animation-delay: 1.6s;
  animation-duration: 3.8s;
}

.earth-light.l11 {
  left: 66%;
  top: 59%;
  width: 7px;
  height: 7px;
  animation-delay: 2.5s;
  animation-duration: 2.6s;
}

.earth-light.l12 {
  left: 72%;
  top: 77%;
  width: 13px;
  height: 13px;
  animation-delay: .8s;
  animation-duration: 4.5s;

  box-shadow:
    0 0 10px rgba(139, 220, 255, 1),
    0 0 30px rgba(76, 158, 255, .88),
    0 0 50px rgba(111, 90, 255, .38);
}


/* =========================================================
   DESTRA
========================================================= */

.earth-light.l13 {
  left: 79%;
  top: 58%;
  width: 9px;
  height: 9px;
  animation-delay: 1.2s;
  animation-duration: 3.2s;
}

.earth-light.l14 {
  left: 84%;
  top: 73%;
  width: 7px;
  height: 7px;
  animation-delay: 2s;
  animation-duration: 2.8s;
}

.earth-light.l15 {
  left: 91%;
  top: 60%;
  width: 11px;
  height: 11px;
  animation-delay: .6s;
  animation-duration: 3.7s;
}

.earth-light.l16 {
  left: 95%;
  top: 75%;
  width: 8px;
  height: 8px;
  animation-delay: 1.7s;
  animation-duration: 3s;
}


/* =========================================================
   PULSAZIONE
========================================================= */

@keyframes pulseLight {

  0%,
  100% {
    opacity: .12;

    transform:
      scale(.58);
  }

  50% {
    opacity: 1;

    transform:
      scale(1.55);
  }

}



@media(prefers-reduced-motion:reduce){.earth-light{animation:none;opacity:.55;transform:none}}

/* Il suggerimento resta raggiungibile anche quando il player non ha episodi. */
.hint>button:disabled{pointer-events:none}

/* Fascia web e ascensore selezionabile; la luce non indica un ingresso senza client. */
.languages .flag{width:24px;height:16px;display:block;object-fit:contain}
.languages button{display:inline-flex;align-items:center;justify-content:center}
nav.public-links{justify-content:space-between;flex-wrap:nowrap;width:100%;gap:12px}
/* Home .com: rendere leggibile lo sfondo originale senza cambiarne il movimento.
   Gaia e pulseLight provengono da skyline.css e corrispondono al video 49.mp4.
   Le superfici restano trasparenti, senza sfocare griglia, stelle e luci. */
body:is([data-page="public"],[data-page="internal"]) .panel{
  background:rgba(7,22,50,.10);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body:is([data-page="public"],[data-page="internal"]) .screen{
  background:rgba(2,8,20,.12);
}
body:is([data-page="public"],[data-page="internal"]) .screen p{
  text-shadow:0 2px 4px #020814,0 0 12px #020814;
}
body:is([data-page="public"],[data-page="internal"]) .search input{
  background:rgba(12,16,22,.55);
  text-shadow:0 1px 3px #020814;
}
body:is([data-page="public"],[data-page="internal"]) .search label,
body:is([data-page="public"],[data-page="internal"]) .search small,
body:is([data-page="public"],[data-page="internal"]) .lane h2{
  text-shadow:0 2px 4px #020814,0 0 9px #020814;
}

/* Foto frontend/143.png: soli tasti, cornice in acciaio e lente bombata CLX.
   Testo HTML traducibile ed eventi originali conservati. */
.home-elevator button{
  min-width:108px;
  min-height:44px;
  padding:6px 14px;
  border:6px solid transparent;
  border-radius:11px;
  background:
    linear-gradient(180deg,#657581 0%,#394651 22%,#202c36 65%,#3d4d59 100%) padding-box,
    linear-gradient(155deg,#edf2f5 0%,#a2aeb7 15%,#39434c 36%,#11171d 53%,#87949f 80%,#ced7de 100%) border-box;
  box-shadow:inset 0 2px 2px #eaf9ff70,inset 0 -3px 4px #02070be6,0 2px 0 #070c12,0 4px 6px #0008;
  color:#e1e8ed;
  font:600 13px/1.2 Georgia,'Times New Roman',serif;
  letter-spacing:.04em;
  text-shadow:0 1px 1px #02070b;
  transition:box-shadow .22s ease,color .22s ease;
}
.home-elevator button::before{display:none}
.home-elevator button::after{
  content:'';
  position:absolute;
  top:1px;left:5px;right:5px;height:3px;
  border-radius:6px;
  background:linear-gradient(90deg,transparent,#effbffb3,transparent);
  pointer-events:none;
}
.home-elevator button:hover,
.home-elevator button:focus-visible,
.home-elevator button.selected{
  border-color:transparent;
  background:
    radial-gradient(ellipse at 50% 55%,#c6f2ffb3,transparent 85%) padding-box,
    linear-gradient(180deg,#b8dbe8,#79bdd5 35%,#488eab 75%,#84c4db) padding-box,
    linear-gradient(155deg,#edf2f5 0%,#a2aeb7 15%,#39434c 36%,#11171d 53%,#87949f 80%,#ced7de 100%) border-box;
  color:#0b2635;
  text-shadow:0 1px 1px #effaffb3;
  box-shadow:inset 0 2px 2px #fff9,inset 0 -2px 4px #20435599,inset 0 0 12px #9be7ff80,0 2px 0 #070c12,0 0 9px #60cfff40;
}
.home-elevator button.selected{outline:2px solid #b4eaff;outline-offset:2px}

/* Un solo livello luminoso trasparente: sopra Gaia, sotto i contenuti (z-index:1).
   Riusa earth-lights con punti aggiuntivi sulla Terra, senza animare lo sfondo. */
body:is([data-page="public"],[data-page="internal"]) .earth-lights{
  position:fixed;
  inset:0;
  z-index:0;
  background:transparent;
  pointer-events:none;
  overflow:visible;
}
body:is([data-page="public"],[data-page="internal"]) .earth-light{
  display:none;
  animation:none;
  pointer-events:none;
  transform:none;
}
body:is([data-page="public"],[data-page="internal"]) .earth-light:is(.l1,.l2,.l3,.l4,.l5,.l6,.l7,.l8,.l9,.l10,.l11,.l12,.l13,.l14,.l15,.l16,.l17,.l18,.l19,.l20,.l21,.l22,.l23,.l24,.l25,.l26,.l27,.l28,.l29,.l30,.l31){
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:rgb(var(--light-rgb));
  opacity:.4;
  box-shadow:0 0 5px 1px rgba(var(--light-rgb),.65),0 0 13px 3px rgba(var(--light-rgb),.25);
  animation:clxAmbientPulse var(--pulse-time) ease-in-out var(--pulse-delay) infinite;
}
/* Punti anche ai margini liberi: le superfici dei comandi non li coprono tutti. */
body:is([data-page="public"],[data-page="internal"]) .earth-light.l1{left:3%;top:23%;--light-rgb:110,190,255;--pulse-time:3.4s;--pulse-delay:-.8s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l2{left:97%;top:32%;--light-rgb:90,245,255;--pulse-time:4.1s;--pulse-delay:-2.3s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l3{left:6%;top:55%;--light-rgb:180,130,255;--pulse-time:5.6s;--pulse-delay:-4.2s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l4{left:94%;top:63%;--light-rgb:110,190,255;--pulse-time:4.7s;--pulse-delay:-1.7s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l5{left:3%;top:81%;--light-rgb:90,245,255;--pulse-time:3.8s;--pulse-delay:-2.9s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l6{left:97%;top:89%;--light-rgb:180,130,255;--pulse-time:5.2s;--pulse-delay:-.6s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l7{left:36%;top:94%;--light-rgb:110,190,255;--pulse-time:4.4s;--pulse-delay:-3.1s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l8{left:68%;top:19%;--light-rgb:90,245,255;--pulse-time:6s;--pulse-delay:-4.8s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l9{left:2%;top:12%;--light-rgb:180,130,255;--pulse-time:3.6s;--pulse-delay:-1.4s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l10{left:98%;top:16%;--light-rgb:110,190,255;--pulse-time:4.9s;--pulse-delay:-3.8s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l11{left:2%;top:40%;--light-rgb:90,245,255;--pulse-time:5.4s;--pulse-delay:-2.1s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l12{left:98%;top:48%;--light-rgb:180,130,255;--pulse-time:3.2s;--pulse-delay:-.4s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l13{left:2%;top:68%;--light-rgb:110,190,255;--pulse-time:4.6s;--pulse-delay:-3.5s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l14{left:98%;top:76%;--light-rgb:90,245,255;--pulse-time:5.8s;--pulse-delay:-5.1s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l15{left:20%;top:92%;--light-rgb:180,130,255;--pulse-time:4.3s;--pulse-delay:-1.9s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l16{left:82%;top:95%;--light-rgb:110,190,255;--pulse-time:5.1s;--pulse-delay:-4.5s}
/* Quindici punti aggiuntivi sulla Terra, nella parte bassa dello sfondo. */
body:is([data-page="public"],[data-page="internal"]) .earth-light.l17{left:12%;top:76%;--light-rgb:90,245,255;--pulse-time:3.1s;--pulse-delay:-0.25s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l18{left:31%;top:74%;--light-rgb:110,190,255;--pulse-time:3.4s;--pulse-delay:-0.56s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l19{left:50%;top:77%;--light-rgb:180,130,255;--pulse-time:3.7s;--pulse-delay:-0.87s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l20{left:69%;top:75%;--light-rgb:90,245,255;--pulse-time:4.0s;--pulse-delay:-1.18s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l21{left:88%;top:78%;--light-rgb:110,190,255;--pulse-time:4.3s;--pulse-delay:-1.49s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l22{left:8%;top:85%;--light-rgb:180,130,255;--pulse-time:4.6s;--pulse-delay:-1.80s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l23{left:27%;top:87%;--light-rgb:90,245,255;--pulse-time:4.9s;--pulse-delay:-2.11s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l24{left:47%;top:84%;--light-rgb:110,190,255;--pulse-time:5.2s;--pulse-delay:-2.42s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l25{left:66%;top:86%;--light-rgb:180,130,255;--pulse-time:5.5s;--pulse-delay:-2.73s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l26{left:86%;top:83%;--light-rgb:90,245,255;--pulse-time:5.8s;--pulse-delay:-3.04s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l27{left:16%;top:94%;--light-rgb:110,190,255;--pulse-time:3.1s;--pulse-delay:-3.35s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l28{left:35%;top:96%;--light-rgb:180,130,255;--pulse-time:3.4s;--pulse-delay:-3.66s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l29{left:54%;top:93%;--light-rgb:90,245,255;--pulse-time:3.7s;--pulse-delay:-3.97s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l30{left:73%;top:95%;--light-rgb:110,190,255;--pulse-time:4.0s;--pulse-delay:-4.28s}
body:is([data-page="public"],[data-page="internal"]) .earth-light.l31{left:92%;top:92%;--light-rgb:180,130,255;--pulse-time:4.3s;--pulse-delay:-4.59s}
@keyframes clxAmbientPulse{
  0%,100%{
    opacity:.4;
    box-shadow:0 0 5px 1px rgba(var(--light-rgb),.65),0 0 13px 3px rgba(var(--light-rgb),.25);
  }
  50%{
    opacity:1;
    box-shadow:0 0 9px 2px rgba(var(--light-rgb),1),0 0 28px 7px rgba(var(--light-rgb),.75),0 0 46px 12px rgba(var(--light-rgb),.35);
  }
}
@media(prefers-reduced-motion:reduce){
  /* Eccezione richiesta per le sole luci ferme: prevale sul reset globale
     animation:none!important senza riattivare scorrimenti o altri effetti. */
  body:is([data-page="public"],[data-page="internal"]) .earth-light:is(.l1,.l2,.l3,.l4,.l5,.l6,.l7,.l8,.l9,.l10,.l11,.l12,.l13,.l14,.l15,.l16,.l17,.l18,.l19,.l20,.l21,.l22,.l23,.l24,.l25,.l26,.l27,.l28,.l29,.l30,.l31){
    animation:clxAmbientPulse var(--pulse-time) ease-in-out var(--pulse-delay) infinite!important;
  }
  .home-elevator button{transition:none}
}

/* Bottoniera unica Art Deco: cornice lavorata, incisioni e viti vere in CSS/SVG. */
.home-elevator{
  position:relative;
  isolation:isolate;
  display:block;
  width:260px;
  max-width:100%;
  min-height:164px;
  margin:0;
  padding:31px 20px;
  border:4px solid #727e88;
  border-radius:5px;
  background:
    repeating-linear-gradient(107deg,#ffffff06 0 1px,transparent 1px 4px),
    linear-gradient(115deg,#6b7782,#333e48 36%,#53606b 63%,#28323c);
  box-shadow:inset 0 2px 1px #e7f0f5b3,inset 2px 0 2px #bdcbd466,inset -2px -3px 3px #060b11,0 3px 0 #070c13,0 6px 14px #0008;
}
.home-elevator::before{
  content:'';position:absolute;inset:5px;border:2px solid #10171f;border-radius:2px;
  box-shadow:0 1px 0 #c5d4df80,inset 0 1px 0 #bacad580;pointer-events:none;
}
.elevator-relief{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
.elevator-relief path{fill:none;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.relief-shadow{stroke:#10171c;stroke-width:3}
.relief-highlight{stroke:#bdcbd7;stroke-width:1}
.relief-engraving{stroke:#17212b;stroke-width:2;filter:drop-shadow(0 1px 0 #b7c7d780)}
.plate-screw{position:absolute;left:calc(50% - 6px);width:12px;height:12px;border:1px solid #111923;border-radius:50%;background:radial-gradient(circle at 30% 20%,#cfdae2,#74818b 45%,#25303a 80%);box-shadow:0 1px 2px #0009,inset 0 1px #f3f8fa70}
.plate-screw::after{content:'';position:absolute;left:1px;right:1px;top:5px;height:2px;background:#18232b;box-shadow:0 1px #d1dee766;transform:rotate(-42deg)}
.screw-top{top:9px}.screw-bottom{bottom:9px}
.elevator-keys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px;position:relative}
.home-elevator button{min-width:0;width:100%;min-height:44px;padding:5px 3px;font-size:12px;letter-spacing:.015em;box-shadow:inset 0 2px 2px #eaf9ff70,inset 0 -3px 4px #02070be6,0 0 0 2px #111820,0 1px 0 3px #a2b1bd66,0 3px 5px #0009}
/* La bottoniera e la ricerca condividono la fascia superiore, senza coprire i bar. */
@media(min-width:1000px){
  body:is([data-page="public"],[data-page="internal"]) #app{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;grid-template-rows:125px minmax(164px,auto);gap:16px 18px}
  body:is([data-page="public"],[data-page="internal"]) #app>header{grid-column:1/-1;grid-row:1/3;display:grid;grid-template-columns:subgrid;grid-template-rows:125px 1fr;row-gap:16px;padding:0;min-width:0}
  body:is([data-page="public"],[data-page="internal"]) header .logo{grid-column:2;grid-row:1;align-self:start}
  body:is([data-page="public"],[data-page="internal"]) header>p{position:absolute;top:125px;left:278px;right:278px;margin:0;line-height:20px}
  body:is([data-page="public"],[data-page="internal"]) nav.public-links{display:contents}
  body:is([data-page="public"],[data-page="internal"]) nav.public-links a{grid-row:1;align-self:end;margin-bottom:6px;width:max-content}
  body:is([data-page="public"],[data-page="internal"]) nav.public-links a:first-child{grid-column:1;justify-self:start}
  body:is([data-page="public"],[data-page="internal"]) nav.public-links a:last-child{grid-column:3;justify-self:end}
  body:is([data-page="public"],[data-page="internal"]) .home-elevator{grid-column:1;grid-row:2;align-self:start}
  body:is([data-page="public"],[data-page="internal"]) #search{grid-column:2/-1;grid-row:2;align-self:start;width:100%;max-width:none;margin:26px 0 0;z-index:2}
  body:is([data-page="public"],[data-page="internal"]) #results{grid-column:2;grid-row:3;margin:0}
  body:is([data-page="public"],[data-page="internal"]) #results:empty{display:none}
  body:is([data-page="public"],[data-page="internal"]) .deck{grid-column:1/-1;grid-row:4;grid-template-columns:subgrid}
  body:is([data-page="public"],[data-page="internal"]) #satellites{grid-column:1/-1;grid-row:5;margin-top:0}
  body:is([data-page="public"],[data-page="internal"]) .demo{grid-column:1/-1;grid-row:6;margin:0}
  body:is([data-page="public"],[data-page="internal"]) footer{grid-column:1/-1;grid-row:7}
}
@media(max-width:999px){
  body:is([data-page="public"],[data-page="internal"]) header{padding-top:44px}
  body:is([data-page="public"],[data-page="internal"]) .home-elevator{margin:12px 0 0}
}





/* Hall interna: stessi componenti; luce di ingresso sopra il solo bordo. */
body[data-page="internal"] .internal-navigate{
 display:block;width:max-content;max-width:100%;margin-top:12px;text-align:center;text-decoration:none;cursor:pointer;padding:5px 12px;font:12px Georgia,serif;
 border:6px solid #657581;border-radius:11px;
 background:linear-gradient(#27333d,#111922 55%,#26313b);
 box-shadow:inset 0 2px 2px #eaf9ff70,inset 0 -3px 4px #02070be6,0 0 0 2px #111820;
}
body[data-page="internal"] [data-availability="pending"]{--entry-color:#c79b60}
body[data-page="internal"] [data-availability="partial"]{--entry-color:#97bfd0}
body[data-page="internal"] .home-elevator [data-availability="pending"]{border-color:#766752;color:#d0b993}
body[data-page="internal"] .hall-entry{--entry-color:#8de6ff}
body[data-page="internal"] .hall-entry[data-availability="pending"]{--entry-color:#c79b60}
body[data-page="internal"] .hall-entry[data-availability="partial"]{--entry-color:#97bfd0}
.hall-entry-border{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:4}
.hall-entry-border rect{fill:none;stroke:var(--entry-color);stroke-width:2;pointer-events:none}
body[data-page="internal"] .hall-entry-border .head,
body[data-page="internal"] .hall-entry-border .trail{opacity:0;animation:hallEntryTrace 3s linear var(--entry-delay) 1!important}
.hall-entry-border .head{stroke-dasharray:5 95;filter:drop-shadow(0 0 4px var(--entry-color))}
.hall-entry-border .trail{stroke-width:3;stroke-dasharray:22 78;stroke-dashoffset:17;stroke-opacity:.65;filter:drop-shadow(0 0 5px var(--entry-color))}
body[data-page="internal"] .hall-entry-border .trail{animation-name:hallEntryTrail!important}
body[data-page="internal"] .hall-entry-border .steady{
 opacity:1;stroke-dasharray:none;stroke-width:2.5;
 filter:drop-shadow(0 0 4px var(--entry-color));
 animation:hallEntryPulse .55s ease calc(var(--entry-delay) + 3s) 1 backwards!important;
}
@keyframes hallEntryTrace{0%{opacity:1;stroke-dashoffset:0}99%{opacity:1}100%{opacity:0;stroke-dashoffset:-100}}
@keyframes hallEntryTrail{0%{opacity:1;stroke-dashoffset:17}99%{opacity:1}100%{opacity:0;stroke-dashoffset:-83}}
@keyframes hallEntryPulse{0%{opacity:0}20%,100%{opacity:1;stroke-width:2.5;filter:drop-shadow(0 0 4px var(--entry-color))}55%{opacity:1;stroke-width:4;filter:drop-shadow(0 0 10px var(--entry-color))}}
body[data-page="internal"] #pubs button.destination,
body[data-page="internal"] #pubs button.destination strong{cursor:pointer}

/* Naviga resta sotto la placca, nel flusso della sola hall interna. */
body[data-page="internal"] .internal-controls{width:260px;max-width:100%;text-align:left}
@media(min-width:1000px){
 body[data-page="internal"] .internal-controls{grid-column:1;grid-row:2;align-self:start}
}
@media(max-width:999px){
 body[data-page="internal"] .internal-controls{margin-top:12px}
 body[data-page="internal"] .internal-controls .home-elevator{margin:0}
}
/* La geometria delle corsie non dipende dal contenuto traslato. */
.bars,.pubs{min-height:var(--lane-panel-height,270px)}
.lane-window .track{position:absolute;top:0;left:0;width:100%}
.lane-window .cycle{flex:none}
.satellites .lane-window .track{width:max-content}
/* Il video conserva la propria altezza naturale anche durante un resize. */
.deck>.player{align-self:start}
