/* Fabio Costa Ph — tema "spazio profondo": blu notte stellato, azzurro ghiaccio luminoso,
   luce calda solo per città e astronauti. Tema unico scuro (scelta voluta). */
:root{
  --bg:#050b14; --bg-2:#08121f; --bg-3:#0d1b2c;
  --glass:rgba(10,22,38,.62); --glass-strong:rgba(9,19,33,.9);
  --head:#f2f6fb; --text:#e6ecf3; --soft:#b8c4d2; --muted:#8a99ab;
  --accent:#9cc8ff; --accent-strong:#d4e7ff; --warm:#ffbe7a;
  --line:rgba(150,190,255,.16); --line-strong:rgba(170,205,255,.36);
  --glow:0 0 18px rgba(120,180,255,.35);
  --danger:#f2b8ad;
  --display:'Cormorant Garamond', 'Cormorant', Georgia, 'Times New Roman', serif;
  --sans:'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gutter-l:max(16px, env(safe-area-inset-left, 0px), 4.2vw);
  --gutter-r:max(16px, env(safe-area-inset-right, 0px), 4.2vw);
  --radius:16px;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:transparent;color:var(--text);font:300 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
/* fascia sopra l'intestazione sui telefoni con notch */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:1100;background:var(--bg)}
/* sfondo: la Via Lattea (img/sfondo-stelle.jpg), fissa dietro a tutte le pagine, con un velo scuro per la leggibilità */
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,11,20,.35),rgba(5,11,20,.55)),url("img/sfondo-stelle.jpg") center/cover no-repeat,var(--bg)}
@media (max-width:900px){
  body::after{background:linear-gradient(180deg,rgba(5,11,20,.35),rgba(5,11,20,.55)),url("img/sfondo-stelle-mobile.jpg") 60% center/cover no-repeat,var(--bg)}
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
svg{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3{text-wrap:balance}
.muted{color:var(--muted)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Cornice "mirino" (HUD): quattro angoli luminosi */
.hud-frame{position:absolute;inset:10px;z-index:455;pointer-events:none;--c:rgba(190,220,255,.75);--s:26px;--w:1.5px;
  background:
    linear-gradient(var(--c),var(--c)) top left/var(--s) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) top left/var(--w) var(--s) no-repeat,
    linear-gradient(var(--c),var(--c)) top right/var(--s) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) top right/var(--w) var(--s) no-repeat,
    linear-gradient(var(--c),var(--c)) bottom left/var(--s) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) bottom left/var(--w) var(--s) no-repeat,
    linear-gradient(var(--c),var(--c)) bottom right/var(--s) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) bottom right/var(--w) var(--s) no-repeat;
  filter:drop-shadow(0 0 4px rgba(140,190,255,.6))}

/* ---------- Intestazione ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:1000;height:76px;display:flex;align-items:center;gap:24px;
  padding-left:var(--gutter-l);padding-right:var(--gutter-r);border-bottom:1px solid var(--line);background:rgba(5,11,20,.82);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:14px;min-width:0;margin-right:auto}
.brand-mark{width:auto;height:54px;flex:none;filter:grayscale(.85) brightness(1.3) drop-shadow(0 0 6px rgba(150,195,255,.35))}
.header-divider{display:none}
.brand-text{min-width:0}
.brand strong{display:block;font:500 15px/1.15 var(--sans);letter-spacing:2.6px;text-transform:uppercase;color:var(--head);white-space:nowrap}
.brand small{display:block;font-size:8.5px;letter-spacing:3px;margin-top:5px;color:var(--soft);white-space:nowrap}
.site-header nav{display:flex;gap:clamp(20px,3.4vw,52px);height:100%;align-items:center}
.site-header nav a{font-size:12px;font-weight:500;letter-spacing:1.8px;padding:8px 0;position:relative;color:#c4cfdc;transition:color .2s}
.site-header nav a::after{content:"";position:absolute;bottom:-3px;left:-6px;right:-6px;height:2px;border-radius:2px;background:var(--accent-strong);
  box-shadow:0 0 10px var(--accent),0 0 22px rgba(120,180,255,.6);transform:scaleX(0);transition:transform .25s}
.site-header nav a:hover{color:#fff}
.site-header nav a:hover::after,.site-header nav a.active::after{transform:scaleX(1)}
.site-header nav a.active{color:#fff}
.header-actions{display:flex;align-items:center;gap:4px}
.icon-button{border:0;background:none;color:var(--head);width:42px;height:42px;display:grid;place-items:center;border-radius:50%}
.icon-button:hover{background:rgba(156,200,255,.1)}
.icon-button svg{width:21px;height:21px}
.menu-toggle{display:none}

/* ---------- Pagine ---------- */
.content-page{padding-block:52px 84px;padding-left:var(--gutter-l);padding-right:var(--gutter-r);min-height:calc(100vh - 150px);position:relative}
.section-heading{margin-bottom:30px}
.section-heading .eyebrow{display:none}
.section-heading h1{font:500 clamp(34px,4.2vw,54px)/1.05 var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--head);margin:0;
  text-shadow:0 0 24px rgba(140,190,255,.18)}
.section-heading h1::after{content:"///";margin-left:.45em;font:300 .5em var(--sans);letter-spacing:-.06em;color:var(--accent);vertical-align:.35em;
  text-shadow:0 0 10px rgba(140,190,255,.7)}
.section-heading p{max-width:62ch;margin:10px 0 0;color:var(--soft);font-size:15px}
.eyebrow{font-size:10.5px;font-weight:500;letter-spacing:2.4px;color:var(--accent);text-transform:uppercase}

/* pulsanti a pillola luminosi */
.outline-link,.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 26px;border-radius:999px;
  border:1px solid rgba(180,215,255,.7);color:#fff;font:500 12px var(--sans);letter-spacing:2.2px;background:rgba(8,22,40,.45);
  box-shadow:0 0 16px rgba(120,180,255,.3),inset 0 0 14px rgba(120,180,255,.14);transition:box-shadow .25s,background .25s}
.outline-link:hover,.hero-button:hover{background:rgba(24,56,96,.6);box-shadow:0 0 26px rgba(140,195,255,.6),inset 0 0 16px rgba(140,195,255,.28)}
.outline-link span,.hero-button span[aria-hidden]{font-size:17px;line-height:1}
.text-link{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--accent-strong);border:0;background:none;padding:0;letter-spacing:.4px}
.text-link:hover{color:#fff;text-shadow:0 0 10px rgba(140,190,255,.6)}
.text-link svg{width:15px;height:15px}

/* riquadri in vetro */
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 20px 50px rgba(0,0,0,.35)}

/* ---------- Leaflet: regole essenziali (nessun CSS esterno) ---------- */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container{overflow:hidden;-webkit-tap-highlight-color:transparent;background:var(--bg-2);font-family:var(--sans);outline:none}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-tile,.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,
.leaflet-container img.leaflet-marker-icon,.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important;padding:0}
.leaflet-tile{display:block;visibility:hidden;width:256px;height:256px}
.leaflet-tile-loaded{visibility:inherit}
.leaflet-fade-anim .leaflet-tile{will-change:opacity}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}
.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}
.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}
.leaflet-zoom-animated{transform-origin:0 0}
.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}
.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}
.leaflet-interactive{cursor:pointer}
.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-marker-draggable{cursor:grabbing}
.leaflet-marker-icon,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}
.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive{pointer-events:auto}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}
.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}
.leaflet-right .leaflet-control{float:right;margin-right:14px}.leaflet-left .leaflet-control{margin-left:14px}
.leaflet-top .leaflet-control{margin-top:14px}.leaflet-bottom .leaflet-control{margin-bottom:8px}
.leaflet-control-zoom{border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;background:var(--glass-strong);box-shadow:var(--glow)}
.leaflet-control-zoom a{display:block;width:32px;height:32px;text-align:center;font:300 20px/31px var(--sans);color:var(--head);background:transparent}
.leaflet-control-zoom a+a{border-top:1px solid var(--line)}
.leaflet-control-zoom a:hover{background:rgba(156,200,255,.12)}
.leaflet-control-zoom a.leaflet-disabled{opacity:.35;cursor:default}
.leaflet-control-attribution{font-size:9px;color:var(--muted);background:rgba(5,11,20,.7);padding:1px 6px;margin:0!important}
.leaflet-control-attribution a{color:var(--soft)}
.leaflet-tooltip{position:absolute;padding:5px 11px;white-space:nowrap;pointer-events:none;background:var(--glass-strong);color:var(--head);
  border:1px solid var(--line-strong);border-radius:8px;font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;box-shadow:var(--glow)}
.leaflet-tooltip small{text-transform:none;letter-spacing:0;color:var(--soft)}
.leaflet-tooltip-top{margin-top:-8px}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:22px}
.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px;background:var(--glass-strong);color:var(--text);border:1px solid var(--line-strong)}
.leaflet-popup-content{margin:12px 16px;font-size:13px;line-height:1.5}
.leaflet-popup-content strong{font:500 19px var(--display);color:var(--head);display:block;margin-bottom:2px}
.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}
.leaflet-popup-tip{width:15px;height:15px;margin:-9px auto 0;transform:rotate(45deg);background:var(--glass-strong);border:1px solid var(--line-strong)}
.leaflet-popup-close-button{position:absolute;top:2px;right:6px;color:var(--muted);font-size:18px}
.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}

/* tessere: Terra di notte, mappa scura, rilievo, satellite */
.tiles-night{filter:saturate(1.1) brightness(1.12) contrast(1.05)}
.tiles-site{filter:sepia(.35) hue-rotate(178deg) saturate(1.6) brightness(1.05) contrast(1.08)}
.tiles-labels{filter:grayscale(1) brightness(1.15);opacity:.8}
.land{filter:drop-shadow(0 0 6px rgba(140,190,255,.25))}

/* ---------- Astronauti luminosi (home ed Explore) ---------- */
.home-astro{position:relative;width:40px;height:52px;cursor:pointer;animation:astroFloat 4.2s ease-in-out infinite;animation-delay:var(--d,0s)}
.home-astro svg{position:relative;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 5px rgba(255,214,160,.55)) drop-shadow(0 0 14px rgba(255,170,90,.35));transition:transform .2s}
.home-astro:hover svg,.home-astro.is-active svg{transform:scale(1.18)}
.home-astro::before{content:"";position:absolute;left:50%;bottom:-2px;width:58px;height:58px;border-radius:50%;transform:translate(-50%,45%);
  background:radial-gradient(circle,rgba(255,196,120,.85) 0%,rgba(255,160,80,.35) 32%,rgba(255,150,70,.08) 55%,transparent 70%);
  animation:astroHalo 2.8s ease-in-out infinite;animation-delay:var(--d,0s)}
.home-astro.is-active::before{width:78px;height:78px;background:radial-gradient(circle,rgba(170,215,255,.9) 0%,rgba(120,180,255,.4) 32%,rgba(120,180,255,.1) 55%,transparent 70%)}
.astro-glow{fill:#ffc27a;filter:blur(2.4px)}
.astro-count{position:absolute;top:-6px;right:-9px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent-strong);color:#071425;
  font:600 11px/20px var(--sans);text-align:center;box-shadow:0 0 12px rgba(150,200,255,.9)}
@keyframes astroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes astroHalo{0%,100%{opacity:.55;transform:translate(-50%,45%) scale(.8)}50%{opacity:1;transform:translate(-50%,45%) scale(1.2)}}
.search-pin{width:22px;height:22px;border-radius:50%;border:2px solid var(--accent-strong);background:rgba(156,200,255,.3);box-shadow:0 0 0 6px rgba(156,200,255,.15),var(--glow)}
.shot-dot{width:14px;height:14px;border-radius:50%;background:var(--warm);border:2px solid #0b1626;box-shadow:0 0 0 1.5px #fff,0 0 12px rgba(255,190,120,.9);cursor:pointer;transition:transform .15s}
.shot-dot:hover{transform:scale(1.3)}
.shot-pin{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #0b1626;box-shadow:0 0 0 2px var(--warm),0 0 14px rgba(255,190,120,.95)}

/* ---------- Home ---------- */
.map{position:absolute;inset:0}
.home-hero{position:relative;overflow:hidden;height:min(84vh,800px);min-height:540px;background:#02070c;border-bottom:1px solid var(--line)}
.map-home{position:absolute;inset:0;background:#02070c;cursor:default}
.map-home .leaflet-control-attribution{background:transparent;color:rgba(200,215,225,.45);font-size:8px}
.map-home .leaflet-control-attribution a{color:rgba(220,230,240,.55)}
.hero-shade{position:absolute;inset:0;z-index:450;pointer-events:none;
  background:radial-gradient(ellipse 55% 38% at 50% 46%,rgba(2,8,14,.55),transparent 70%),
    linear-gradient(180deg,rgba(2,8,14,.6) 0%,transparent 18%,transparent 58%,rgba(2,8,14,.7) 82%,#02070c 100%)}
.hero-planet{position:absolute;z-index:460;pointer-events:none;left:50%;top:86%;width:max(170%,1400px);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(ellipse 60% 8% at 50% 0%,rgba(120,175,255,.35),transparent 70%),radial-gradient(circle at 50% 0%,#0b2d52 0%,#051526 22%,#02070c 48%);
  box-shadow:0 -1px 0 rgba(190,220,255,.75),0 -6px 24px rgba(110,170,255,.55),0 -30px 90px rgba(70,130,230,.35)}
.hero-planet::before{content:"";position:absolute;left:50%;top:-2px;width:34%;height:6%;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(255,236,200,.95),rgba(255,190,120,.45) 35%,transparent 70%);filter:blur(6px)}
.hero-copy{position:absolute;z-index:600;left:50%;top:58%;transform:translate(-50%,-50%);width:min(92%,880px);text-align:center;pointer-events:none}
.hero-copy h1{font:500 clamp(40px,6.4vw,88px)/1.05 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#f6f8fb;margin:0 auto 16px;
  text-shadow:0 0 30px rgba(140,190,255,.35),0 2px 24px #02070c}
.hero-copy p{font:400 clamp(11px,1.15vw,15px)/1.6 var(--sans);letter-spacing:.42em;text-transform:uppercase;color:#e3e9ef;margin:0 0 32px;text-shadow:0 2px 16px #02070c}
.hero-button{pointer-events:auto;padding:13px 28px;font-size:13px;letter-spacing:2.4px;backdrop-filter:blur(4px)}
.hero-foot{position:absolute;z-index:600;left:0;right:0;bottom:26px;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px;
  padding-left:var(--gutter-l);padding-right:var(--gutter-r);color:#dfe6ec;font-size:11px;letter-spacing:2px;pointer-events:none}
.hero-coords{display:flex;align-items:center;gap:12px;margin:0;font-variant-numeric:tabular-nums}
.hero-coords svg{width:28px;height:28px;flex:none}
.hero-coords strong{display:block;font-weight:500;color:#fff}
.hero-tags{margin:0;text-align:right;line-height:1.9}
.hero-scroll{pointer-events:auto;justify-self:center;color:#dfe6ec;display:grid;place-items:center;width:40px;height:52px;opacity:.85}
.hero-scroll svg{width:22px;height:34px}
.hero-scroll:hover{opacity:1;color:#fff}
.home-intro{text-align:center;padding-block:76px 96px;padding-left:var(--gutter-l);padding-right:var(--gutter-r);max-width:780px;margin:auto}
.home-intro .eyebrow{letter-spacing:3px}
.home-intro h2{font:500 clamp(32px,4vw,50px)/1.15 var(--display);letter-spacing:.04em;color:var(--head);margin:14px 0}
.home-intro p{color:var(--soft);line-height:1.8;max-width:60ch;margin:0 auto 26px}

/* ---------- Explore ---------- */
.explore-stage{position:relative;height:min(74vh,680px);min-height:520px;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 40px rgba(60,120,220,.15),0 24px 60px rgba(0,0,0,.45)}
.map-explore{background:#03080f}
.compass{position:absolute;z-index:500;color:var(--accent-strong);opacity:.7;pointer-events:none}
.compass-small{width:72px;height:72px;bottom:84px;left:20px}
.map-search{position:absolute;z-index:900;top:14px;left:60px;display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:999px;
  background:var(--glass-strong);color:var(--head);padding:7px 16px;font-size:13px;box-shadow:var(--glow)}
.map-search svg{width:16px;height:16px}
.map-search:hover{border-color:var(--accent)}
.location-panel{position:absolute;z-index:950;top:16px;right:16px;max-height:calc(100% - 32px);width:min(360px,42%);overflow:auto;
  border:1px solid var(--line-strong);border-radius:var(--radius);padding:22px;background:rgba(7,16,29,.86);backdrop-filter:blur(12px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 30px rgba(80,140,230,.18),0 16px 44px rgba(0,0,0,.45)}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.location-panel h2{font:500 28px/1.1 var(--display);color:var(--head);margin:6px 0 6px;letter-spacing:.14em;text-transform:uppercase}
.location-panel h2.intro-title{letter-spacing:.08em}
.coords{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--soft);font-variant-numeric:tabular-nums;margin:0 0 14px}
.coords svg{width:15px;height:15px;color:var(--accent)}
.panel-close{flex:none;border:0;background:none;color:var(--head);width:32px;height:32px;display:grid;place-items:center;border-radius:50%}
.panel-close:hover{background:rgba(156,200,255,.12)}
.panel-close svg{width:18px;height:18px}
.carousel{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:16/10;background:var(--bg-3);max-width:100%;border:1px solid var(--line)}
.carousel img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid rgba(180,215,255,.35);background:rgba(4,12,22,.55);color:#fff;display:grid;place-items:center}
.nav-arrow svg{width:20px;height:20px}
.nav-arrow:hover{background:rgba(10,30,55,.85);box-shadow:var(--glow)}
.nav-arrow.prev{left:8px}.nav-arrow.next{right:8px}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 14px}
.thumbs button{padding:0;border:1px solid transparent;border-radius:8px;overflow:hidden;background:var(--bg-3);aspect-ratio:4/3;opacity:.65}
.thumbs button img{width:100%;height:100%;object-fit:cover}
.thumbs button.is-current{border-color:var(--accent);opacity:1;box-shadow:var(--glow)}
.trip-facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--soft);margin:0 0 10px;font-variant-numeric:tabular-nums}
.trip-facts span{display:inline-flex;align-items:center;gap:7px}
.trip-facts svg{width:16px;height:16px;color:var(--accent)}
.trip-desc{font-size:13.5px;color:var(--soft);line-height:1.65;margin:0 0 16px}
.panel-actions{display:grid;gap:12px}
.panel-actions .outline-link{width:100%}
.panel-links{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-top:2px}
.trip-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:2px}
.trip-list button{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0;border-bottom:1px solid var(--line);background:none;padding:11px 2px;text-align:left}
.trip-list button:hover strong{color:var(--accent-strong);text-shadow:0 0 10px rgba(140,190,255,.6)}
.trip-list strong{font:500 19px var(--display);color:var(--head);letter-spacing:.03em}
.trip-list small{font-size:11px;color:var(--muted);letter-spacing:.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.map-modes{display:flex;gap:2px;padding:3px;border:1px solid var(--line-strong);border-radius:999px;background:var(--glass-strong);
  margin-left:max(14px,env(safe-area-inset-left,0px))!important;margin-bottom:22px!important;box-shadow:var(--glow)}
.map-modes button{border:0;background:none;color:var(--soft);font:500 11.5px var(--sans);letter-spacing:1px;text-transform:uppercase;padding:7px 12px;border-radius:999px;cursor:pointer}
.map-modes button:hover{color:#fff;background:rgba(156,200,255,.1)}
.map-modes button[aria-pressed="true"]{background:rgba(156,200,255,.2);color:#fff;box-shadow:inset 0 0 0 1px rgba(180,215,255,.6),0 0 12px rgba(120,180,255,.45)}
.map-modes .fit-all{display:grid;place-items:center;padding:6px 10px;border-left:1px solid var(--line)!important;border-radius:0 999px 999px 0}
.map-modes .fit-all svg{width:16px;height:16px}
.map-explore[data-base="satellite"] .leaflet-control-attribution,.map-explore[data-base="rilievo"] .leaflet-control-attribution{background:rgba(5,11,20,.8)}

/* ---------- Gallery ---------- */
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 24px}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filter{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:999px;padding:8px 22px;background:rgba(10,22,38,.5);color:var(--text);font-size:13.5px;transition:all .2s}
.filter svg{width:17px;height:17px}
.filter:hover{border-color:var(--accent);color:#fff}
.filter.active{background:rgba(156,200,255,.16);color:#fff;border-color:rgba(190,220,255,.8);box-shadow:0 0 16px rgba(120,180,255,.4),inset 0 0 12px rgba(120,180,255,.18)}
.trip-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--accent);border-radius:999px;padding:4px 6px 4px 14px;font-size:13px;color:var(--accent-strong);box-shadow:var(--glow)}
.trip-chip button{border:0;background:none;color:#fff;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}
.trip-chip button:hover{background:rgba(156,200,255,.15)}
.trip-chip svg{width:14px;height:14px}
.photo-count{margin:0;color:var(--soft);font-variant-numeric:tabular-nums;letter-spacing:.5px}
.photo-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);grid-auto-rows:clamp(150px,17vw,250px);gap:12px}
.photo-grid .photo-cell:first-child{grid-row:span 2}
.photo-card{position:relative;height:100%;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);padding:0;text-align:left;max-width:100%;
  transition:border-color .25s,box-shadow .25s}
.photo-card:hover,.photo-card:focus-visible{border-color:var(--line-strong);box-shadow:0 0 24px rgba(100,160,240,.25)}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.photo-card:hover img,.photo-card:focus-visible img{transform:scale(1.04)}
.photo-info{position:absolute;inset:auto 0 0;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(3,8,16,.92));opacity:0;transition:opacity .25s}
.photo-card:hover .photo-info,.photo-card:focus-visible .photo-info{opacity:1}
.photo-info h3{font:500 21px var(--display);margin:0 0 3px;color:#fff}
.photo-info small{color:var(--accent-strong);font-size:11.5px;letter-spacing:1px;text-transform:uppercase}
.empty-state{text-align:center;color:var(--muted);padding:40px}

/* ---------- Journal: schede affiancate ---------- */
.journal-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;align-items:stretch}
.log-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);overflow:hidden;
  backdrop-filter:blur(8px);transition:border-color .25s,box-shadow .25s,transform .25s}
.log-card:hover,.log-card:focus-visible{border-color:var(--line-strong);box-shadow:0 0 28px rgba(100,160,240,.25);transform:translateY(-2px)}
.log-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.log-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:16px 16px 18px;flex:1;align-content:start}
.log-body .meta-row,.log-body h3,.log-body .log-excerpt{grid-column:1/-1}
.log-body h3{font:500 16px/1.35 var(--sans);color:#fff;margin:2px 0 0;letter-spacing:.1px}
.log-excerpt{font-size:13px;color:var(--soft);line-height:1.6;margin:2px 0 4px}
.log-coords{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--soft);font-variant-numeric:tabular-nums;align-self:end}
.log-coords svg{width:14px;height:14px;color:var(--accent)}
.log-arrow{width:30px;height:30px;border-radius:50%;border:1px solid rgba(180,215,255,.6);display:grid;place-items:center;color:#fff;align-self:end;grid-column:2;
  box-shadow:0 0 10px rgba(120,180,255,.35)}
.log-arrow svg{width:15px;height:15px}
.meta-row{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:11px;letter-spacing:1px;color:var(--soft);text-transform:uppercase;font-variant-numeric:tabular-nums}
.meta-row span{display:inline-flex;align-items:center;gap:6px}
.meta-row svg{width:14px;height:14px;color:var(--accent)}
.full-article{max-width:760px;margin:56px auto 0;border-top:1px solid var(--line);padding-top:34px;line-height:1.9;color:var(--soft);scroll-margin-top:100px}
.full-article h2{font:500 clamp(32px,3.8vw,44px)/1.1 var(--display);letter-spacing:.03em;color:var(--head);margin:10px 0 14px}
.full-article img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);margin:24px 0;border:1px solid var(--line)}
.full-article p{max-width:66ch}
.article-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:28px}

/* ---------- About ---------- */
#about{overflow:hidden}
#about::before{content:"";position:absolute;z-index:0;pointer-events:none;right:max(-34vw,-520px);top:110px;width:min(48vw,720px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 28% 40%,#123660 0%,#0a1d36 35%,#050b14 70%);
  box-shadow:-1px 0 0 rgba(190,220,255,.7),-8px 0 30px rgba(110,170,255,.5),-40px 0 120px rgba(70,130,230,.25)}
#about > *{position:relative;z-index:1}
.about-layout{display:grid;grid-template-columns:190px minmax(0,1fr) 40%;gap:36px;align-items:center;padding:16px 0 46px;border-bottom:1px solid var(--line)}
.about-portrait{margin:0;display:grid;justify-items:center;gap:12px;text-align:center}
.about-portrait figcaption{display:grid;gap:2px}
.about-portrait figcaption strong{font:500 21px var(--display);color:var(--head);letter-spacing:.03em}
.about-portrait figcaption span{font-size:10px;letter-spacing:2px;color:var(--accent);text-transform:uppercase}
.portrait-placeholder{width:170px;height:170px;border:1px solid rgba(190,220,255,.6);border-radius:50%;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle,#1a3556,#071425);font:500 44px var(--display);color:var(--head);box-shadow:0 0 24px rgba(120,180,255,.35)}
.portrait-placeholder img{width:100%;height:100%;object-fit:cover}
.about-copy h2{font:italic 500 30px/1.25 var(--display);color:var(--head);margin-top:0}
.about-copy p{line-height:1.85;color:var(--text);max-width:62ch}
.about-photo{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line-strong);box-shadow:0 0 30px rgba(80,140,230,.2)}
.about-landscape{width:100%;height:280px;object-fit:cover}
.interest-grid{display:flex;flex-wrap:wrap;gap:12px 18px;margin:24px 0 0;padding:0;list-style:none;color:var(--head)}
.interest-grid li{border-right:1px solid var(--line);padding-right:18px}
.interest-grid li:last-child{border-right:0}
.about-lower{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:36px;padding:36px 0;max-width:1100px}
.about-lower blockquote[hidden]{display:none!important}
.about-lower blockquote{font:italic 500 24px/1.5 var(--display);color:var(--head);margin:0;border-left:2px solid var(--accent);padding-left:22px;
  box-shadow:-6px 0 14px -10px rgba(140,190,255,.9)}
.about-lower h3{font:500 22px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--head);margin-top:0}
.about-lower p{color:var(--soft);line-height:1.7}

/* testi scritti dal pannello */
.rich p{margin:0 0 1em}
.rich p:last-child{margin-bottom:0}
.rich h2,.rich h3{font:500 26px/1.25 var(--display);color:var(--head);margin:1.6em 0 .5em}
.rich h3{font-size:21px}
.rich ul,.rich ol{padding-left:1.3em;margin:0 0 1em}
.rich li{margin:.25em 0}
.rich a{color:var(--accent-strong);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.rich strong{color:#fff;font-weight:500}
.rich blockquote{margin:1.4em 0;border-left:2px solid var(--accent);padding-left:18px;font:italic 500 21px/1.6 var(--display);color:var(--head)}
.rich img{width:100%;border-radius:12px;margin:1.2em 0}

/* ---------- Fondo pagina ---------- */
.site-footer{border-top:1px solid var(--line);padding-block:24px;padding-left:var(--gutter-l);padding-right:var(--gutter-r);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;
  color:var(--muted);font-size:10px;letter-spacing:1.8px;background:rgba(5,11,20,.7)}
.site-footer .owner-name{text-transform:uppercase}

/* ---------- Finestre: foto ingrandita e ricerca ---------- */
dialog{padding:0;background:var(--glass-strong);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 0 40px rgba(80,140,230,.25)}
dialog::backdrop{background:rgba(2,6,12,.84);backdrop-filter:blur(3px)}
.lightbox{width:min(980px,94vw);max-height:94vh;overflow:auto}
.lightbox-stage{position:relative;background:#02060b}
.lightbox-stage img{width:100%;max-height:68vh;object-fit:contain;margin:auto}
.lightbox-info{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding:18px 24px 22px}
.lightbox-info>div{min-width:0;flex:1 1 320px}
.lightbox h2{font:500 28px var(--display);color:var(--head);margin:6px 0;letter-spacing:.03em}
.lightbox-meta{color:var(--soft);font-size:13px;margin:0 0 6px;font-variant-numeric:tabular-nums}
.lightbox p{margin-top:0}
.dialog-close{position:absolute;right:10px;top:10px;z-index:2;background:rgba(5,12,22,.85);border:1px solid var(--line-strong);border-radius:50%;color:#fff;width:38px;height:38px;display:grid;place-items:center}
.dialog-close svg{width:18px;height:18px}
.no-scroll{overflow:hidden}
.lightbox-full[open]{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;
  background:#02060b;display:flex;flex-direction:column;overflow:hidden;box-shadow:none}
.lightbox-full::backdrop{background:#02060b}
.lightbox-full .lightbox-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;background:transparent}
.lightbox-full .lightbox-stage img{width:100%;height:100%;max-height:none;object-fit:contain;cursor:pointer}
.lightbox-full .nav-arrow{width:48px;height:48px}
.lightbox-full .nav-arrow svg{width:26px;height:26px}
.lightbox-full .nav-arrow.prev{left:max(14px,env(safe-area-inset-left,0px))}
.lightbox-full .nav-arrow.next{right:max(14px,env(safe-area-inset-right,0px))}
.lightbox-full .lightbox-info{flex:none;max-height:42vh;overflow:auto;background:rgba(6,14,26,.94);border-top:1px solid var(--line);
  padding:16px max(24px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px))}
.lightbox-full .lightbox-info h2{font-size:26px;margin:4px 0}
.lightbox-full.info-hidden .lightbox-info{display:none}
.lightbox-full.info-hidden .lightbox-tools{opacity:.55}
.lightbox-full.info-hidden .lightbox-tools:hover{opacity:1}
.lightbox-tools{position:absolute;z-index:3;top:calc(12px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));
  display:flex;align-items:center;gap:8px;transition:opacity .2s}
.lightbox-tools .dialog-close{position:static}
.lightbox-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-strong);background:rgba(5,12,22,.85);color:#fff}
.lightbox-btn:hover,.lightbox-tools .dialog-close:hover{border-color:var(--accent);box-shadow:var(--glow)}
.lightbox-btn svg{width:18px;height:18px}
.lightbox-count{font-size:12.5px;letter-spacing:1px;color:var(--soft);background:rgba(5,12,22,.85);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-variant-numeric:tabular-nums}
.lightbox-count:empty{display:none}
.lightbox-coords,.shot-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:13px;color:var(--soft);margin:0 0 8px}
.lightbox-coords:empty,.shot-row:empty{display:none}
.shot-coords{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;white-space:nowrap}
.shot-coords svg{width:15px;height:15px;color:var(--accent);flex:none}
.shot-note{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 9px}
.shot-row{font-size:12.5px;margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(5,12,22,.5)}
.shot-label{width:100%;font-size:10px;font-weight:500;letter-spacing:2px;color:var(--accent);text-transform:uppercase}
.search-dialog{width:min(640px,94vw);margin-top:12vh}
.search-form{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 18px;border-bottom:1px solid var(--line)}
.search-form>svg{width:20px;height:20px;color:var(--accent);flex:none}
.search-form input{flex:1;min-width:0;border:0;background:none;color:#fff;font-size:17px;padding:10px 0;outline:none}
.search-results{max-height:min(60vh,460px);overflow:auto;padding:8px}
.result-group{font-size:10px;letter-spacing:2px;color:var(--accent);padding:12px 12px 4px;text-transform:uppercase}
.result{width:100%;display:flex;align-items:center;gap:12px;border:0;background:none;text-align:left;padding:9px 12px;border-radius:10px}
.result:hover,.result:focus-visible{background:rgba(156,200,255,.1);outline:none}
.result img{width:44px;height:34px;object-fit:cover;border-radius:6px;flex:none}
.result .result-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:var(--accent)}
.result .result-icon svg{width:17px;height:17px}
.result span{min-width:0}
.result strong{display:block;font-weight:400;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.result small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-note{padding:14px 12px;color:var(--muted);font-size:13px;margin:0}
.toast{position:fixed;z-index:3000;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);max-width:min(520px,calc(100vw - 32px));
  background:var(--accent-strong);color:#071425;padding:12px 20px;border-radius:12px;font-size:14px;box-shadow:0 0 24px rgba(120,180,255,.5)}
.toast.error{background:#f6cfc6}

/* ---------- Schermi medi e telefono ---------- */
@media (max-width:900px){
  .site-header{height:66px;gap:10px}
  .brand-mark{height:44px}
  .brand strong{font-size:13.5px;letter-spacing:2px}
  .brand small{font-size:7.5px;letter-spacing:1.8px}
  .menu-toggle{display:grid}
  .site-header nav{display:none;position:absolute;top:65px;left:0;right:0;height:auto;background:rgba(5,11,20,.97);padding:8px var(--gutter-r) 16px var(--gutter-l);
    flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--line)}
  .site-header nav.open{display:flex}
  .site-header nav a{padding:12px 0;width:100%}
  .site-header nav a::after{bottom:6px;left:0;right:auto;width:40px}
  .content-page{padding-block:36px 58px}
  .explore-stage{height:auto;min-height:0;overflow:visible;border:0;box-shadow:none;border-radius:0}
  .explore-stage .map{border:1px solid var(--line-strong);border-radius:var(--radius);height:440px;position:relative;overflow:hidden}
  .explore-stage .hud-frame{inset:10px 10px auto;height:420px}
  .explore-stage .compass-small{display:none}
  .location-panel{position:static;width:auto;margin-top:14px;max-height:none}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(130px,30vw,220px)}
  .photo-grid .photo-cell:first-child{grid-column:span 2}
  .about-layout{grid-template-columns:150px minmax(0,1fr)}
  .portrait-placeholder{width:120px;height:120px}
  .about-photo{grid-column:1/-1}
  .about-landscape{height:230px}
  .about-lower{grid-template-columns:minmax(0,1fr)}
  #about::before{display:none}
  .home-hero{height:min(78vh,680px);min-height:500px}
  .hero-planet{top:88%}
}
@media (max-width:560px){
  .brand small{display:none}
  .photo-grid{gap:8px}
  .filter{padding:7px 14px;font-size:12.5px}
  .about-layout{grid-template-columns:minmax(0,1fr);text-align:center}
  .portrait-placeholder{margin:auto}
  .interest-grid{justify-content:center}
  .compass{display:none}
  .map-modes button{padding:6px 9px;font-size:10.5px}
  .lightbox-full .nav-arrow{width:40px;height:40px}
  .lightbox-full .lightbox-info{max-height:48vh}
  .shot-coords{white-space:normal}
  .hero-copy{top:60%}
  .hero-copy h1{letter-spacing:.1em}
  .hero-copy p{letter-spacing:.28em}
  .hero-foot{grid-template-columns:1fr auto;bottom:20px}
  .hero-tags{display:none}
  .hero-coords{font-size:10px;letter-spacing:1.5px}
  .hero-coords svg{width:22px;height:22px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* aprendo una pagina da link, il titolo non finisce sotto l intestazione */
main > .page{scroll-margin-top:80px}

/* ---------- SPOTS: mappa riservata ai membri ---------- */
.site-header nav a.nav-spots{display:inline-flex;align-items:center;gap:6px}
.site-header nav a.nav-spots svg{width:13px;height:13px;margin-top:-2px}
.spots-gate{max-width:560px;margin:10px auto 0;text-align:center;padding:38px 30px 32px;border:1px solid var(--line-strong);border-radius:var(--radius);
  background:rgba(7,16,29,.78);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 36px rgba(80,140,230,.2),0 20px 50px rgba(0,0,0,.4)}
.gate-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(180,215,255,.6);color:var(--accent-strong);box-shadow:var(--glow)}
.gate-icon svg{width:26px;height:26px}
.spots-gate h2{font:500 30px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--head);margin:0 0 8px}
.spots-gate > p{color:var(--soft);margin:0 auto 22px;max-width:44ch}
.gate-form{display:grid;gap:8px;text-align:left}
.gate-form label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}
.gate-form input{width:100%;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:12px 18px;font-size:15px;outline:none;margin-bottom:6px}
.gate-form input:focus{border-color:var(--accent);box-shadow:var(--glow)}
.gate-form .outline-link{justify-self:center;margin-top:8px}
.gate-form .outline-link:disabled{opacity:.6;cursor:progress}
.gate-help{font-size:12px;color:var(--muted);text-align:center;margin:4px 0 0}
.gate-note{font-size:13.5px;color:var(--soft);margin:6px 0 0;line-height:1.6}
.gate-note:empty{display:none}
.gate-note.warn{color:var(--danger)}
.gate-note strong{color:#fff;font-weight:500}

.spots-toolbar{display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap;margin:0 0 14px}
.spots-search{display:flex;align-items:center;gap:10px;flex:1 1 280px;max-width:420px;border:1px solid var(--line-strong);border-radius:999px;padding:0 16px;background:rgba(7,16,29,.7)}
.spots-search svg{width:17px;height:17px;color:var(--accent);flex:none}
.spots-search input{flex:1;min-width:0;border:0;background:none;color:#fff;padding:11px 0;font-size:14.5px;outline:none}
.spots-count{margin:0;color:var(--soft);font-variant-numeric:tabular-nums;letter-spacing:.5px}
.spots-user{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.spots-email{font-size:12px;color:var(--muted)}
.spots-lists{margin:0 0 18px}
.spots-lists .filter{padding:6px 14px;font-size:12.5px;gap:7px}
.spots-lists .filter small{color:var(--muted);font-size:11px}
.list-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);flex:none}
.spots-search{position:relative}
.spots-locate{display:inline-flex;align-items:center;gap:6px;flex:none;margin-right:-8px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(156,200,255,.08);color:var(--accent);font:600 11px/1 inherit;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s}
.spots-locate:hover{background:rgba(156,200,255,.18);border-color:var(--accent)}
.spots-locate svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.spots-locate.busy svg{animation:locSpin 1s linear infinite}
@keyframes locSpin{to{transform:rotate(360deg)}}
.spots-suggest{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:1200;max-height:min(60vh,420px);overflow:auto;padding:6px;border:1px solid var(--line-strong);border-radius:16px;background:rgba(6,13,24,.97);box-shadow:0 18px 50px rgba(0,0,0,.55);backdrop-filter:blur(10px)}
.sg-head{margin:8px 10px 4px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.sg-wait{opacity:.7}
.sg-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:inherit;text-align:left;cursor:pointer}
.sg-item:hover,.sg-item[aria-selected="true"]{background:rgba(156,200,255,.12)}
.sg-item > svg{width:16px;height:16px;flex:none;color:var(--accent)}
.sg-text{display:flex;flex-direction:column;min-width:0;flex:1}
.sg-text strong{font-weight:500;color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-text small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spots-near{position:absolute;top:14px;right:14px;z-index:800;width:min(330px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;padding:16px 16px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(6,13,24,.9);backdrop-filter:blur(8px);box-shadow:0 14px 40px rgba(0,0,0,.5)}
.near-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.near-head h3{margin:2px 0 0;font:500 22px/1.15 var(--display);color:var(--head);letter-spacing:.04em}
.near-close{flex:none;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:none;color:var(--soft);cursor:pointer}
.near-close svg{width:14px;height:14px}
.near-sum{margin:10px 0 8px;color:var(--soft);font-size:13px}
.near-sum strong{color:#fff}
.near-list{list-style:none;margin:0;padding:0}
.near-list button{display:flex;align-items:center;gap:11px;width:100%;padding:9px 6px;border:0;border-top:1px solid var(--line);background:none;color:inherit;text-align:left;cursor:pointer}
.near-list button:hover{background:rgba(156,200,255,.08)}
.near-d{flex:none;font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.origin-dot{width:22px;height:22px;border-radius:50%;position:relative}
.origin-dot.me{background:#3d9bff;border:3px solid #fff;box-shadow:0 0 0 0 rgba(61,155,255,.6);animation:originPulse 2s infinite}
.origin-dot.place{background:rgba(255,255,255,.15);border:2px solid #fff;box-shadow:0 0 14px rgba(255,255,255,.6)}
.origin-dot.place::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}
@keyframes originPulse{0%{box-shadow:0 0 0 0 rgba(61,155,255,.6)}70%{box-shadow:0 0 0 16px rgba(61,155,255,0)}100%{box-shadow:0 0 0 0 rgba(61,155,255,0)}}
@media (max-width:700px){
  .spots-locate span{display:none}
  .spots-near{position:static;width:auto;max-height:none;margin:0;border-width:1px 0 0;border-radius:0;background:rgba(6,13,24,.96)}
}
.spots-disclaimer{display:flex;gap:14px;align-items:flex-start;margin:16px 0 0;padding:16px 20px;border:1px solid rgba(255,196,110,.35);border-radius:var(--radius);background:rgba(40,28,10,.55);color:var(--soft);font-size:13.5px;line-height:1.6}
.spots-disclaimer svg{width:22px;height:22px;flex:none;color:#ffc46e;margin-top:2px}
.spots-disclaimer strong{display:block;color:#ffd79a;letter-spacing:.14em;text-transform:uppercase;font-size:12px;margin-bottom:4px}
.spots-disclaimer p{margin:0 0 6px}.spots-disclaimer p:last-child{margin:0}
.spots-disclaimer em{color:#fff;font-style:normal}
.spots-stage{position:relative;height:min(76vh,760px);min-height:460px;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 40px rgba(60,120,220,.15),0 24px 60px rgba(0,0,0,.45)}
.map-spots{background:#03080f}
.spot-dot{width:18px;height:18px;border-radius:50%;background:var(--c);border:2.5px solid #06101d;box-shadow:0 0 0 1.5px rgba(255,255,255,.85),0 0 12px var(--c);cursor:pointer;transition:transform .15s}
.spot-dot:hover{transform:scale(1.3)}
.spot-cluster{width:var(--s);height:var(--s);border-radius:50%;display:grid;place-items:center;font:600 13px var(--sans);color:#fff;cursor:pointer;
  background:radial-gradient(circle,rgba(40,80,140,.95) 0%,rgba(14,34,64,.92) 70%);border:1.5px solid rgba(190,220,255,.85);
  box-shadow:0 0 0 5px rgba(120,180,255,.18),0 0 18px rgba(120,180,255,.6);transition:transform .15s}
.spot-cluster:hover{transform:scale(1.1)}
.spot-pop{display:grid;gap:6px}
.spot-pop strong{margin:0!important}
.spot-pop p{margin:0;color:var(--soft);font-size:12.5px;white-space:pre-line}
.spot-list{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent)}
.spot-coords{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.spot-coords svg{width:14px;height:14px;color:var(--accent);flex:none}
.spot-copy{margin-left:auto;border:1px solid var(--line-strong);background:none;color:var(--accent-strong);border-radius:999px;padding:2px 10px;font-size:11px}
.spot-copy:hover{border-color:var(--accent)}
.spot-delete{justify-self:start;border:1px solid rgba(242,184,173,.5);background:none;color:var(--danger);border-radius:999px;padding:4px 12px;font-size:11.5px;margin-top:4px}

/* finestra di importazione (solo admin) */
.import-dialog{width:min(720px,94vw);max-height:90vh;overflow:auto}
.import-body{padding:28px 28px 26px}
.import-body h2{font:500 30px var(--display);letter-spacing:.06em;color:var(--head);margin:6px 0 12px}
.import-steps{margin:0 0 18px;padding-left:1.2em;color:var(--soft);font-size:13.5px;line-height:1.65;display:grid;gap:8px}
.import-steps strong{color:#fff;font-weight:500}
.import-steps em{color:var(--accent-strong);font-style:normal}
.import-drop{display:block;border:1.5px dashed rgba(170,205,255,.55);border-radius:14px;padding:26px 16px;text-align:center;color:var(--soft);cursor:pointer;transition:background .2s}
.import-drop.over,.import-drop:hover{background:rgba(156,200,255,.08)}
.import-drop input{position:absolute;width:1px;height:1px;opacity:0}
.import-table{width:100%;border-collapse:collapse;margin:18px 0 8px;font-size:13px;font-variant-numeric:tabular-nums}
.import-table th{text-align:left;font-weight:500;color:var(--accent);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line-strong)}
.import-table td{padding:7px 8px;border-bottom:1px solid var(--line);color:var(--text)}
.import-totals{margin:8px 0 14px;color:var(--soft)}
.import-totals strong{color:#fff}
.import-missing{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 16px;font-size:13px;color:var(--soft)}
.import-missing p{margin:0 0 10px}
.import-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.import-actions .outline-link:disabled,.import-missing .outline-link:disabled{opacity:.5;cursor:default}
@media (max-width:900px){
  .spots-stage{height:62vh;min-height:380px}
  .spots-user{margin-left:0}
}
.import-missing strong{color:#fff;font-weight:500}
.import-missing .outline-link{margin-bottom:4px}
.import-or{margin:14px 0 8px!important;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.import-report{list-style:none;margin:16px 0 0;padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-size:12.5px;color:var(--soft);display:grid;gap:4px}
.import-report strong{color:#fff;font-weight:500}
.import-report .warn{color:var(--danger)}
.gkey-row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 4px}
.gkey-row input{flex:1 1 240px;min-width:0;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:10px 16px;font-size:14px;outline:none}
.gkey-row input:focus{border-color:var(--accent);box-shadow:var(--glow)}
.gate-help.left{text-align:left;margin:0 0 4px}
.add-dialog{width:min(540px,94vw)}
.add-form .gkey-row{margin:0;align-items:center}
.add-form .gkey-row input{margin:0}
.add-form .outline-link{margin-top:14px}

/* =========================================================
   TOOLS — sole, luna, notti buie
   ========================================================= */
.tools-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:0 0 14px}
.tools-search{flex:1 1 320px;max-width:520px}
.tools-date{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tools-date input{border:1px solid var(--line-strong);border-radius:999px;background:rgba(7,16,29,.7);color:#fff;padding:9px 14px;font:inherit;font-size:14px;color-scheme:dark}
.tools-step{width:36px;height:36px;border:1px solid var(--line-strong);border-radius:50%;background:rgba(7,16,29,.7);color:var(--accent);font-size:20px;line-height:1;cursor:pointer}
.tools-step:hover{border-color:var(--accent)}
.tools-place{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 22px;color:var(--soft);font-size:14px}
.tools-place svg{width:16px;height:16px;color:var(--accent)}
.tools-place strong{color:#fff;font-weight:500;font-size:16px}
.tools-place .tp-meta{width:100%;padding-left:26px;font-size:12px;color:var(--muted);letter-spacing:.3px}
.tools-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;transition:opacity .2s}
.tools-grid.loading{opacity:.45;pointer-events:none}
.tool-card{grid-column:span 6;padding:22px 24px;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(7,16,29,.72);backdrop-filter:blur(6px);box-shadow:0 18px 50px rgba(0,0,0,.35)}
.tool-sun{grid-column:span 12}
.tool-cal{grid-column:span 12}
.tool-card header{margin-bottom:14px}
.tool-card h2{margin:4px 0 0;font:500 28px/1.1 var(--display);color:var(--head);letter-spacing:.03em}
.tool-card h3{margin:0 0 6px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500}
.tool-date{margin:6px 0 0;color:var(--soft)}
.tool-note{color:var(--soft);font-size:13.5px;margin:10px 0}
.tool-foot{margin:14px 0 0;color:var(--soft);font-size:13px}
.tool-foot strong{color:#fff;font-weight:500}
.tool-times{list-style:none;margin:0;padding:0}
.tool-times li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;color:var(--soft)}
.tool-times li strong{color:#fff;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.tool-times li.is-key strong{color:var(--accent);font-size:15.5px}
.tool-times li.is-gold span::before,.tool-times li.is-blue span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;background:#e2a14c}
.tool-times li.is-blue span::before{background:#4f86dd}
.tool-times li.is-cloud{color:var(--muted);font-size:13px}
.sun-bar{position:relative;height:26px;border-radius:8px;border:1px solid var(--line-strong);margin-top:6px}
.sun-now{position:absolute;top:-6px;bottom:-6px;width:2px;background:#fff;box-shadow:0 0 8px #fff;transform:translateX(-1px)}
.sun-now em{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-style:normal;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#fff}
.sun-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:5px 0 0;font-variant-numeric:tabular-nums}
.sun-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 4px;padding:0;font-size:12px;color:var(--soft)}
.sun-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c);margin-right:6px;vertical-align:-1px}
.sun-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px 34px;margin-top:16px}
.moon-ico .moon-dark{fill:#1a2333;stroke:rgba(255,255,255,.18);stroke-width:1}
.moon-ico .moon-lit{fill:#f1ead6}
.moon-ico.big{filter:drop-shadow(0 0 22px rgba(241,234,214,.25));flex:none}
.moon-hero{display:flex;align-items:center;gap:22px;margin:4px 0 16px}
.moon-pct{margin:0;color:var(--soft)}
.moon-pct strong{font:500 40px/1 var(--display);color:#fff;margin-right:6px}
.moon-age{margin:6px 0 0;color:var(--muted);font-size:13px}
.night-rating{display:inline-block;margin:0;padding:5px 12px;border-radius:999px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:1px solid}
.r-great{color:#9fe3c8;border-color:rgba(159,227,200,.5);background:rgba(159,227,200,.08)}
.r-ok{color:#ffe08a;border-color:rgba(255,224,138,.45);background:rgba(255,224,138,.07)}
.r-poor,.r-none{color:#ffb38a;border-color:rgba(255,179,138,.45);background:rgba(255,179,138,.07)}
.cal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.cal-nav{display:flex;gap:8px}
.cal-nav button{width:36px;height:36px;border:1px solid var(--line-strong);border-radius:50%;background:none;color:var(--accent);font-size:20px;cursor:pointer}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-w{text-align:center;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:4px 0}
.cal-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 7px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);color:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.cal-cell.empty{border:0;background:none;cursor:default}
.cal-cell:hover{border-color:var(--accent)}
.cal-cell.dark{background:rgba(12,24,52,.9);border-color:rgba(156,200,255,.28)}
.cal-cell.today .cal-d{color:var(--accent)}
.cal-cell.sel{border-color:#fff;box-shadow:0 0 0 1px #fff inset}
.cal-d{font-size:12.5px;color:#fff;font-variant-numeric:tabular-nums}
.cal-p{font-size:10.5px;color:var(--muted)}
.cal-mw{color:#ffe08a;text-shadow:0 0 8px rgba(255,224,138,.8);font-size:12px}
.cal-cell .cal-mw{position:absolute;top:5px;right:7px}
.cal-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:14px 0 0;padding:0;font-size:12px;color:var(--soft)}
.lg-dark{display:inline-block;width:12px;height:12px;border-radius:4px;background:rgba(12,24,52,.9);border:1px solid rgba(156,200,255,.35);margin-right:7px;vertical-align:-2px}
.cal-legend .cal-mw{margin-right:7px}
@media (max-width:900px){
  .tool-card{grid-column:span 12}
}
@media (max-width:600px){
  .tool-card{padding:18px 16px}
  .sun-cols{grid-template-columns:1fr}
  .cal-grid{gap:3px}
  .cal-cell{padding:6px 0 5px;border-radius:9px}
  .cal-cell .moon-ico{width:20px;height:20px}
  .cal-p{display:none}
  .cal-cell .cal-mw{top:2px;right:3px;font-size:10px}
  .tools-date{width:100%}
  .tools-date input{flex:1;min-width:0}
}

/* =========================================================
   SPOTS — categorie, schede con foto e recensioni
   ========================================================= */
.spots-add{padding:8px 16px;font-size:11.5px;gap:7px}
.spots-add svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.spots-cats{margin:0 0 10px}
.cat-filter{gap:7px}
.cat-filter svg,.sg-cat svg{width:15px;height:15px;fill:none;stroke:var(--c);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cat-filter.active{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset}
.sg-cat{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--c);background:#06101d;flex:none}
.sg-cat svg{width:14px;height:14px}
.spot-pin{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#06101d;border:2px solid var(--c);
  box-shadow:0 0 0 1.5px rgba(255,255,255,.75),0 0 14px var(--c);cursor:pointer;transition:transform .15s}
.spot-pin:hover{transform:scale(1.18)}
.spot-pin svg{width:15px;height:15px;fill:none;stroke:var(--c);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.spot-cat{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--c)}
.spot-cat svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.spot-cat em{font-style:normal;color:var(--muted);margin-left:4px}
.spot-cat em::before{content:"· ";}
.spot-popup .leaflet-popup-content{max-height:min(62vh,520px);overflow:auto}
.pop-rating{display:flex;align-items:center;gap:6px;color:var(--soft)!important}
.pop-rating strong{color:#fff}
.stars-static{position:relative;display:inline-block;color:rgba(255,255,255,.18);letter-spacing:1px}
.stars-static::before{content:"★★★★★";position:absolute;inset:0;width:var(--v);overflow:hidden;color:#ffd27a;letter-spacing:1px}
.pop-dates{display:flex;align-items:center;gap:6px;color:#9fe3c8!important}
.pop-dates svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
.pop-photos{display:flex;gap:6px;overflow-x:auto}
.pop-photos:empty{display:none}
.pop-thumb{flex:none;width:76px;height:76px;padding:0;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#0b1626;cursor:zoom-in}
.pop-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pop-uploading{font-size:11.5px;color:var(--muted);align-self:center}
.pop-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.pop-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:none;color:var(--accent);border-radius:999px;padding:5px 12px;font-size:11.5px;cursor:pointer}
.pop-btn:hover{border-color:var(--accent)}
.pop-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.pop-btn.primary{justify-self:start;background:rgba(156,200,255,.12)}
.pop-review{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03)}
.pop-review textarea,.add-form textarea{width:100%;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:12px;color:#fff;padding:10px 12px;font:inherit;font-size:13.5px;resize:vertical;outline:none}
.pop-review textarea:focus,.add-form textarea:focus{border-color:var(--accent)}
.stars{display:flex;gap:2px}
.stars button{border:0;background:none;color:rgba(255,255,255,.22);font-size:22px;line-height:1;padding:2px;cursor:pointer}
.stars button.on{color:#ffd27a}
.pop-reviews{display:grid;gap:8px}
.pop-reviews:empty{display:none}
.pop-rev{border-top:1px solid var(--line);padding-top:8px}
.rev-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rev-head b{color:#fff;font-weight:500;font-size:12.5px}
.rev-head time{color:var(--muted);font-size:11px}
.rev-stars{color:#ffd27a;font-size:12px;letter-spacing:1px}
.rev-stars i{font-style:normal;color:rgba(255,255,255,.18)}
.rev-del{margin-left:auto;width:22px;height:22px;display:grid;place-items:center;border:0;background:none;color:var(--muted);cursor:pointer}
.rev-del svg{width:12px;height:12px;stroke:currentColor;stroke-width:2}
.pop-author{font-size:11.5px!important;color:var(--muted)!important}
.cat-pick{border:0;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cat-pick legend{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;padding:0}
.cat-opt{position:relative;display:inline-flex!important;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;
  font-size:13px!important;letter-spacing:0!important;text-transform:none!important;color:var(--soft)!important}
.cat-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.cat-opt svg{width:16px;height:16px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cat-opt:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff!important}
.cat-opt:has(input:focus-visible){outline:2px solid var(--c);outline-offset:2px}
.add-form label small{letter-spacing:0;text-transform:none;color:var(--muted);font-size:11px}
.add-form input[type=file]{border-radius:12px;padding:10px 12px;font-size:13px}
.add-dates{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.add-dates .gate-help{grid-column:1/-1}
.add-dates input{color-scheme:dark}
.photo-dialog{width:min(1100px,96vw);max-height:94vh;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius);background:#040a14;color:#fff}
.photo-dialog::backdrop{background:rgba(2,6,12,.85)}
.photo-dialog img{display:block;max-width:100%;max-height:80vh;margin:0 auto;object-fit:contain}
.photo-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 18px;margin:0;color:var(--soft);font-size:13px}
.photo-nav{display:inline-flex;align-items:center;gap:8px}
.photo-nav button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:none;color:#fff;cursor:pointer}
.photo-nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.photo-dialog .spot-delete{margin:0 0 0 auto}
.photo-dialog .dialog-close{position:absolute;top:10px;right:10px;z-index:2}
.add-form{grid-template-columns:minmax(0,1fr)}
.add-form > *{min-width:0}
.add-form input{max-width:100%}
.add-dates{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.add-dates input{width:100%;padding-inline:12px}
.add-dialog{overflow-x:hidden}
.pop-fig{flex:none;margin:0;width:76px}
.pop-fig figcaption{font-size:10px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pop-rights{font-size:10.5px!important;color:var(--muted)!important;margin-top:-2px!important}
.pop-rights a,.add-form .gate-help a{color:var(--accent);text-decoration:underline}
.photo-meta strong{color:#fff;font-weight:500}
.photo-rights{border-color:rgba(156,200,255,.3);background:rgba(10,24,46,.6)}
.photo-rights svg{color:var(--accent)}
.photo-rights strong{color:var(--accent)}
.photo-dialog img{-webkit-user-drag:none;user-select:none}
.photo-rights svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}

/* ---------- TOOLS: schede ---------- */
.tools-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px;padding:5px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(7,16,29,.72);width:max-content;max-width:100%}
.tools-tabs button{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:none;color:var(--soft);padding:10px 18px;font-size:13.5px;letter-spacing:.3px;cursor:pointer;min-height:44px}
.tools-tabs button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tools-tabs button:hover{color:#fff}
.tools-tabs button[aria-selected="true"]{background:rgba(156,200,255,.16);color:#fff;box-shadow:0 0 0 1px rgba(156,200,255,.45) inset}
@media (max-width:600px){
  .tools-tabs{width:100%;border-radius:18px}
  .tools-tabs button{flex:1 1 0;justify-content:center;padding:8px 6px;font-size:12px;flex-direction:column;gap:3px;text-align:center}
}

/* ---------- Planner ---------- */
.pl-stage{position:relative;height:min(70vh,640px);min-height:420px;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:#03080f;
  box-shadow:0 0 40px rgba(60,120,220,.15),0 24px 60px rgba(0,0,0,.45)}
.pl-map{position:absolute;inset:0}
.pl-fail{position:absolute;inset:auto 20px 50% 20px;text-align:center}
.pl-modes{position:absolute;top:12px;left:12px;z-index:2;display:flex;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden;background:rgba(5,11,20,.85)}
.pl-modes button{border:0;background:none;color:var(--soft);padding:9px 16px;font:600 12px/1 inherit;letter-spacing:.14em;cursor:pointer;min-width:52px;min-height:40px}
.pl-modes button[aria-pressed="true"]{background:var(--accent);color:#04101f}
.pl-look{position:absolute;left:12px;bottom:12px;z-index:2;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 24px)}
.pl-look button{border:1px solid var(--line-strong);border-radius:999px;background:rgba(5,11,20,.85);color:#fff;padding:8px 13px;font-size:12px;cursor:pointer;min-height:36px}
.pl-look button:hover{border-color:var(--accent)}
.planner:not(.is-3d) .pl-look{opacity:.92}
.pl-legend{position:absolute;top:12px;left:140px;z-index:2;list-style:none;margin:0;padding:7px 12px;display:flex;flex-wrap:wrap;gap:4px 12px;max-width:calc(100% - 210px);
  border:1px solid var(--line);border-radius:12px;background:rgba(5,11,20,.78);font-size:11px;color:var(--soft)}
.pl-legend i{display:inline-block;width:16px;height:0;border-top:2px solid var(--c);margin-right:6px;vertical-align:middle}
.pl-legend i.thick{border-top-width:4px}
.pl-legend i.dash{border-top-style:dashed}
.pl-pin{width:26px;height:36px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 36'%3E%3Cpath d='M13 35s11-11.6 11-21A11 11 0 0 0 2 14c0 9.4 11 21 11 21z' fill='%239cc8ff' stroke='%23fff' stroke-width='2'/%3E%3Ccircle cx='13' cy='13.5' r='4.2' fill='%2304101f'/%3E%3C/svg%3E");
  filter:drop-shadow(0 0 8px rgba(156,200,255,.8));cursor:grab}
.pl-hint{margin:10px 2px 18px;font-size:12.5px;color:var(--muted)}
.pl-time{padding:18px 22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(7,16,29,.72);margin-bottom:18px}
.pl-time-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.pl-time-head strong{font:500 40px/1 var(--display);color:#fff;font-variant-numeric:tabular-nums}
.pl-phase{padding:5px 12px;border-radius:999px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--soft)}
.pl-phase[data-phase="golden"]{color:#ffd27a;border-color:rgba(255,210,122,.5)}
.pl-phase[data-phase="blue"]{color:#8fb6ff;border-color:rgba(79,134,221,.6)}
.pl-phase[data-phase="daylight"]{color:#cfe4ff}
.pl-phase[data-phase="night"]{color:#c79bff;border-color:rgba(199,155,255,.5)}
.pl-time-btns{margin-left:auto;display:flex;gap:8px}
.pl-time-btns .pop-btn{min-height:38px;min-width:44px;justify-content:center;font-size:13px}
#plSlider{width:100%;accent-color:var(--accent);height:28px}
.pl-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.pl-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pl-jump{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:999px;background:none;color:var(--soft);padding:7px 13px;font-size:12.5px;cursor:pointer;min-height:38px}
.pl-jump::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.pl-jump b{color:#fff;font-weight:500;font-variant-numeric:tabular-nums}
.pl-jump:hover{border-color:var(--c)}
.pl-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}
.pl-card dl{margin:10px 0 0}
.pl-card dl div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.pl-card dt{color:var(--soft)}
.pl-card dd{margin:0;color:#fff;font-variant-numeric:tabular-nums;text-align:right}
.pl-horizon .tool-times small{color:var(--muted);font-weight:400}
.pl-pano-wrap{margin-top:16px;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#040a14;scrollbar-color:var(--line-strong) transparent}
.pl-pano-wrap svg{display:block}
.pano-bg{fill:#06142a}
.pano-grid{stroke:rgba(255,255,255,.07);stroke-width:1}
.pano-deg{fill:rgba(255,255,255,.35);font-size:10px}
.pano-land{fill:#02060c;stroke:#6c8fbf;stroke-width:1.2}
.pano-tick{stroke:rgba(255,255,255,.35);stroke-width:1}
.pano-card{fill:#c4cfdc;font-size:11px;text-anchor:middle;letter-spacing:.1em}
.pano-sun{fill:none;stroke:#ffd27a;stroke-width:2}
.pano-moon{fill:none;stroke:#cfd8e6;stroke-width:1.6;stroke-dasharray:5 4}
.pano-core{fill:none;stroke:#c79bff;stroke-width:2;opacity:.85}
.pano-hr{fill:#ffd27a;font-size:10px;text-anchor:middle}
.pano-sunnow{fill:#ffe14d;stroke:#fff;stroke-width:2;filter:drop-shadow(0 0 8px #ffd27a)}
.pano-moonnow{fill:#f1ead6;stroke:#fff;stroke-width:1.5}
.pano-corestar{fill:#e6d2ff;font-size:20px;text-anchor:middle;filter:drop-shadow(0 0 6px #c79bff)}
.maplibregl-ctrl-attrib{font-size:10px}
@media (max-width:900px){
  .pl-cards{grid-template-columns:1fr}
  .pl-legend{display:none}
}
@media (max-width:600px){
  .pl-stage{height:62vh;min-height:360px}
  .pl-time{padding:14px}
  .pl-time-head strong{font-size:32px}
  .pl-look button{font-size:11px;padding:7px 10px}
}

/* ---------- Analyze your shot ---------- */
.shot{display:grid;gap:18px}
.shot-drop{display:flex;align-items:center;gap:16px;margin-top:16px;padding:22px;border:1.5px dashed var(--line-strong);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s}
.shot-drop:hover,.shot-drop.over{border-color:var(--accent);background:rgba(156,200,255,.06)}
.shot-drop input{position:absolute;width:1px;height:1px;opacity:0}
.shot-drop:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.shot-drop svg{width:34px;height:34px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.5}
.shot-drop span{display:flex;flex-direction:column;gap:3px}
.shot-drop strong{color:#fff;font-weight:500;font-size:16px}
.shot-drop small{color:var(--muted)}
.shot-work{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:18px}
.shot-img{border-radius:12px;overflow:hidden;background:#000;display:grid;place-items:center;max-height:360px}
.shot-img img{max-width:100%;max-height:360px;object-fit:contain;display:block}
#shotHist{width:100%;height:90px;margin-top:12px;border-radius:8px;background:#040a14}
.shot-meter{list-style:none;margin:10px 0 0;padding:0}
.shot-meter li{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--soft)}
.shot-meter strong{color:#fff;font-weight:500}
.shot-meter strong.bad{color:#ffb38a}
.shot-setup .eyebrow{display:block;margin:4px 0 10px}
.shot-scenes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.shot-scenes .filter{padding:7px 14px;font-size:12.5px}
.shot-scenes .filter.active{background:rgba(156,200,255,.16);border-color:var(--accent);color:#fff}
.shot-ai{margin-bottom:4px}
.shot-ai svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.shot-ai small{color:var(--muted);font-size:11px}
.shot-ai:disabled{opacity:.6;cursor:progress}
.shot-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:4px}
.shot-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent)}
.shot-form label > span{display:flex;align-items:center;gap:6px;color:var(--soft);font-size:13px;letter-spacing:0;text-transform:none}
.shot-form input,.shot-form select{flex:1;min-width:0;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:10px;color:#fff;padding:9px 11px;font:inherit;font-size:14px;color-scheme:dark}
.shot-form input:focus,.shot-form select:focus{border-color:var(--accent);outline:none}
.shot-form .shot-check{flex-direction:row;align-items:center;gap:10px;font-size:13px;letter-spacing:0;text-transform:none;color:var(--soft);grid-column:1/-1}
.shot-form .shot-check input{flex:none;width:18px;height:18px;accent-color:var(--accent)}
.shot-plan h3{margin:20px 0 8px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500}
.shot-steps{list-style:none;counter-reset:st;margin:14px 0 0;padding:0;display:grid;gap:12px}
.shot-steps li{counter-increment:st;position:relative;padding:12px 14px 12px 52px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.shot-steps li::before{content:counter(st);position:absolute;left:14px;top:12px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(156,200,255,.15);color:var(--accent);font-size:13px}
.shot-steps b{display:block;color:#fff;font-weight:500;margin-bottom:3px}
.shot-steps p{margin:0;color:var(--soft);font-size:14px;line-height:1.55}
.shot-steps strong{color:#fff;font-weight:500}
.shot-tips{margin:0;padding-left:18px;color:var(--soft);font-size:14px;line-height:1.6}
.shot-warn{list-style:none;margin:12px 0 0;padding:12px 14px;border:1px solid rgba(255,179,138,.45);border-radius:12px;background:rgba(255,179,138,.07);color:#ffd2bd;font-size:13.5px;display:grid;gap:6px}
.shot-disclaimer{color:var(--muted)}
@media (max-width:900px){ .shot-work{grid-template-columns:1fr} }
@media (max-width:600px){ .shot-form{grid-template-columns:1fr 1fr;gap:10px} .shot-drop{padding:16px} }
.pl-cards .tool-card{grid-column:auto}
#plMap{position:absolute;inset:0;width:100%;height:100%}
.shot .tool-card,.shot-work .tool-card{grid-column:auto;min-width:0}
.shot-ai{flex-wrap:wrap;text-align:left;border-radius:14px;padding:8px 12px}
.shot-form label{min-width:0}
.shot-form input,.shot-form select{width:100%}
/* planner: cielo 3D e astri sulla mappa */
.pl-sky{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.pl-body{pointer-events:none;opacity:var(--a,1);transition:opacity .2s}
.b-sun{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle,#fff6c8 0,#ffd75a 45%,#ff9a3c 100%);box-shadow:0 0 18px 6px rgba(255,200,80,.65),0 0 46px 14px rgba(255,170,60,.3)}
.b-moon{width:22px;height:22px;filter:drop-shadow(0 0 8px rgba(240,236,220,.7))}
.b-moon svg{display:block}
.b-core{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,rgba(255,240,220,.95) 0,rgba(214,190,255,.55) 35%,rgba(199,155,255,0) 70%)}
.b-con{padding:3px 8px;border:1px solid rgba(159,227,255,.6);border-radius:999px;background:rgba(5,11,20,.8);color:#bfeaff;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.pl-con{margin-bottom:18px}
.pl-con-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.pl-con-pick select{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:10px 16px;font:inherit;font-size:14px;color-scheme:dark;min-height:44px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* sky view */
.pl-skyview{margin-bottom:18px}
.pl-sv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.pl-follow{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--soft);cursor:pointer}
.pl-follow input{width:18px;height:18px;accent-color:var(--accent)}
.pl-skyview .pl-pano-wrap{cursor:grab;touch-action:pan-x pan-y}
.pano-band line{stroke:#d6c8ff;stroke-linecap:round}
.pano-conline{stroke:rgba(159,227,255,.75);stroke-width:1.3}
.pano-star{fill:#fff;filter:drop-shadow(0 0 4px #9fe3ff)}
.pano-starname{fill:rgba(220,240,255,.85);font-size:11px}
.pano-conname{fill:#9fe3ff;font-size:12px;font-weight:600;letter-spacing:.14em;text-anchor:middle}
.pano-hrdot{fill:#ffd27a}
.pano-clock{fill:#fff;font-size:18px;text-anchor:end;font-variant-numeric:tabular-nums;opacity:.85}
.pano-land{fill:#01040a;stroke:#7fa3d6;stroke-width:1.2}
.pano-sunnow{fill:#ffe9a0;stroke:#fff;stroke-width:1.5}
.pl-sv-box{position:relative}
.pl-sv-clock{position:absolute;top:10px;left:12px;margin:0;padding:5px 12px;border-radius:999px;background:rgba(2,6,15,.7);border:1px solid var(--line);color:#fff;font-size:13px;font-variant-numeric:tabular-nums;pointer-events:none}
.pano-foot{fill:#01040a}
/* planner: controlli */
.pl-daynav{display:flex;align-items:center;gap:4px;margin-left:8px}
.pl-daynav button{width:34px;height:34px;border:1px solid var(--line-strong);border-radius:50%;background:none;color:var(--accent);font-size:16px;cursor:pointer}
.pl-daynav button:hover{border-color:var(--accent)}
.pl-daynav span{min-width:128px;text-align:center;color:#fff;font-size:13.5px;font-variant-numeric:tabular-nums}
.pl-speed{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:var(--soft);padding:8px 12px;font:inherit;font-size:12.5px;color-scheme:dark;min-height:38px}
.pl-layers{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.pl-layer{border:1px solid var(--line-strong);border-radius:999px;background:none;color:var(--muted);padding:6px 12px;font-size:12px;cursor:pointer;min-height:34px}
.pl-layer[aria-pressed="true"]{color:#fff;border-color:var(--accent);background:rgba(156,200,255,.12)}
.pl-layer[aria-pressed="false"]{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.3)}
.pl-tools{position:absolute;right:12px;top:118px;z-index:2;display:flex;flex-direction:column;gap:4px}
.pl-tools button,.pl-sv-tools button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:10px;background:rgba(5,11,20,.85);color:#fff;font-size:17px;cursor:pointer}
.pl-tools button:hover,.pl-sv-tools button:hover{border-color:var(--accent);color:var(--accent)}
.pl-sv-tools{position:absolute;right:10px;top:10px;display:flex;gap:4px}
.pl-sv-tools button{width:34px;height:34px;font-size:14px}
.pano-year{fill:none;stroke:rgba(255,255,255,.45);stroke-width:1.2;stroke-dasharray:3 5}
.pano-yearlbl{fill:rgba(255,255,255,.7);font-size:11px;text-anchor:middle}
.pl-stage:fullscreen{height:100vh;border-radius:0}
.pl-sv-box:fullscreen{background:#02060f;display:flex;flex-direction:column;justify-content:center}
.pl-sv-box:fullscreen .pl-pano-wrap{border-radius:0}
@media (max-width:700px){
  .pl-daynav{order:3;width:100%;margin:6px 0 0;justify-content:center}
  .pl-tools{top:auto;bottom:58px}
  .pl-tools button{width:34px;height:34px}
}
@media (max-width:700px){
  .pl-sv-tools{top:auto;bottom:34px;right:6px}
  .pl-look{flex-wrap:nowrap;overflow-x:auto;right:56px;max-width:none}
  .pl-look button{flex:none}
}
/* SPOTS: intorno al punto, due colonne (community | OpenStreetMap) */
.spots-around{margin:18px 0 0;padding:20px 22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(7,16,29,.78);backdrop-filter:blur(6px)}
.around-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.around-head h2{margin:4px 0 0;font:500 28px/1.1 var(--display);color:var(--head)}
.around-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px}
.around-col .spots-near,.spots-around .spots-near{position:static}
.col-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 4px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);font-weight:500}
.col-dot{width:9px;height:9px;border-radius:50%}
.col-dot.community{background:var(--accent);box-shadow:0 0 8px var(--accent)}
.col-dot.osm{background:#e6edf7;box-shadow:0 0 8px #e6edf7}
.osm-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;letter-spacing:0;text-transform:none;font-size:12px;color:var(--muted);cursor:pointer}
.osm-toggle input{accent-color:var(--accent)}
.osm-col .near-list li:nth-child(n+1) button{opacity:.95}
.osm-ico svg,.osm-pin svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.osm-ico{color:#e6edf7;border-style:dashed}
.osm-ico.fresh{border-color:#ffe14d;color:#ffe14d;border-style:solid}
.osm-fresh-n{color:#ffe14d}
.osm-protected{margin:6px 0 10px;padding:8px 10px;border:1px solid rgba(159,227,200,.35);border-radius:10px;background:rgba(159,227,200,.06);font-size:12.5px;color:var(--soft)}
.osm-protected strong{color:#9fe3c8;font-weight:500}
.osm-credit{margin:10px 0 0;font-size:11px;color:var(--muted)}
.osm-pin{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;transform:rotate(45deg);background:rgba(10,18,32,.92);border:1.5px solid rgba(230,237,247,.85);color:#e6edf7;box-shadow:0 0 8px rgba(0,0,0,.6);cursor:pointer;position:relative}
.osm-pin svg{width:13px;height:13px;transform:rotate(-45deg)}
.osm-pin.fresh{border-color:#ffe14d;color:#ffe14d;box-shadow:0 0 10px rgba(255,225,77,.6)}
.osm-pin.fresh::after{content:"";position:absolute;inset:-4px;border-radius:8px;border:1.5px solid rgba(255,225,77,.7);animation:osmPulse 2.4s ease-out infinite}
.osm-pin.flash{animation:osmFlash 1.1s ease-out}
.osm-pin.flash::before{content:"";position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(255,240,170,.85),rgba(255,225,77,0) 70%);animation:osmBolt 1.1s ease-out forwards}
@keyframes osmPulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
@keyframes osmFlash{0%{transform:rotate(45deg) scale(1)}25%{transform:rotate(45deg) scale(1.5)}100%{transform:rotate(45deg) scale(1)}}
@keyframes osmBolt{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(2.2)}}
@media (prefers-reduced-motion:reduce){.osm-pin.fresh::after,.osm-pin.flash,.osm-pin.flash::before{animation:none}}
.osm-facts{color:#e6edf7!important;font-size:12px!important}
.osm-wiki:empty{display:none}
.osm-wiki{display:flex;gap:8px;align-items:flex-start}
.osm-wiki img{width:64px;height:64px;object-fit:cover;border-radius:8px;flex:none}
.osm-wiki p{margin:0;font-size:12px!important}
.osm-links{display:grid;gap:4px}
.osm-scan{position:absolute;top:12px;right:12px;z-index:800;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(5,11,20,.88);color:#fff;padding:8px 14px;font-size:12px;cursor:pointer;min-height:38px}
.osm-scan:hover{border-color:var(--accent);color:var(--accent)}
.osm-scan svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
@media (max-width:800px){
  .around-cols{grid-template-columns:1fr;gap:18px}
  .spots-around{padding:16px}
}
.pay{border:1px solid var(--line);border-radius:10px;padding:8px 10px 10px;margin:0;display:grid;gap:8px}
.pay legend{font-size:11px;color:var(--soft);padding:0 4px}
.pay legend small{color:var(--muted)}
.pay-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--soft)}
.pay input,.pay select{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:8px;color:#fff;padding:6px 8px;font:inherit;font-size:13px;color-scheme:dark}
.pay input[name=paid]{width:84px}
.pay input[name=people],.pay input[name=nights]{width:52px}
.pay label{display:inline-flex;align-items:center;gap:5px}
.pop-spend{color:#e6edf7!important;font-size:12.5px!important}
.pop-spend small{color:var(--muted)}
.rev-paid{color:var(--muted)!important;font-size:11.5px!important;margin-top:3px!important}
.pop-spend b{color:#fff;font-weight:600}
/* SPOTS sociale */
.spots-social{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px}
.soc-pick{display:inline-flex;align-items:center;gap:7px;padding:0 6px 0 12px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(10,22,38,.5);color:#ff8f8f}
.soc-pick svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.soc-pick select{border:0;background:none;color:#fff;font:inherit;font-size:13px;padding:8px 6px;color-scheme:dark;outline:none}
.soc-support.active{border-color:#7ed69b;box-shadow:0 0 0 1px #7ed69b inset;color:#fff}
.spot-pin{position:relative}
.alert-dot{position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;background:#ff4d4d;border:2px solid #06101d;box-shadow:0 0 8px #ff4d4d;animation:alertPulse 1.8s ease-in-out infinite}
@keyframes alertPulse{50%{box-shadow:0 0 14px 3px rgba(255,77,77,.7)}}
.spot-pin.local{box-shadow:0 0 0 1.5px rgba(255,255,255,.75),0 0 0 4px #7ed69b,0 0 14px var(--c)}
.spot-pin.fragile{border-style:dashed}
.pop-alerts:empty{display:none}
.pop-alerts{display:grid;gap:6px}
.alert-box{padding:8px 10px;border:1px solid rgba(255,77,77,.5);border-radius:10px;background:rgba(255,77,77,.08)}
.alert-box b{color:#ffb3b3;font-size:12.5px;font-weight:600}
.alert-box p{margin:3px 0 0!important;color:#ffd9d9!important;font-size:12px!important}
.alert-box small{display:block;margin-top:3px;color:var(--muted);font-size:10.5px}
.alert-box.req{border-color:rgba(159,227,200,.45);background:rgba(159,227,200,.06)}
.alert-box.req b{color:#9fe3c8}
.alert-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.alert-act .pop-btn{padding:3px 10px;font-size:11px}
.soc-box{padding:8px 10px;border-radius:10px;font-size:12px}
.soc-box b{font-size:12.5px;font-weight:600}
.soc-box p{margin:3px 0 0!important;font-size:12px!important}
.soc-box.local{border:1px solid rgba(126,214,155,.5);background:rgba(126,214,155,.08)}
.soc-box.local b{color:#9ff0b8}
.soc-box.fragile{border:1px solid rgba(159,227,200,.5);background:rgba(159,227,200,.06)}
.soc-box.fragile b{color:#9fe3c8}
.soc-sub{margin:8px 0 4px!important;font-size:10.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important}
.soc-near{display:flex;align-items:center;gap:8px;width:100%;padding:5px 0;border:0;border-top:1px solid var(--line);background:none;color:#fff;font-size:12.5px;text-align:left;cursor:pointer}
.soc-near svg{width:14px;height:14px;fill:none;stroke:#9ff0b8;stroke-width:1.8;flex:none}
.soc-near span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.soc-near small{color:var(--muted)}
.soc-note{font-size:11px!important;color:#9fe3c8!important}
.pop-reportform label{display:grid;gap:4px;font-size:11.5px;color:var(--soft)}
.pop-reportform select,.pop-reportform input[type=date],[data-socialform] input[type=text]{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:8px;color:#fff;padding:7px 9px;font:inherit;font-size:13px;color-scheme:dark}
.pop-reportform .pay-row{display:flex;align-items:center;gap:6px}
[data-socialform] .shot-check,.soc-add .shot-check{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--soft);letter-spacing:0;text-transform:none}
[data-socialform] .shot-check input,.soc-add .shot-check input{flex:none;width:17px;height:17px;margin-top:1px;accent-color:#7ed69b}
.soc-add{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:6px 0 4px;display:grid;gap:8px}
.soc-add legend{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);padding:0 4px}
.soc-add input[type=text]{border-radius:10px!important;padding:9px 12px!important;margin:0!important}
.near-radius{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--soft)}
.near-radius select{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:8px 12px;font:inherit;font-size:13px;color-scheme:dark;min-height:38px}
.around-head{align-items:center;flex-wrap:wrap}
.conduct{margin:10px 0 14px;padding-left:20px;display:grid;gap:8px;color:var(--soft);font-size:14px;line-height:1.55}
.conduct b{color:#fff;font-weight:500}
.conduct-dialog .outline-link{margin-top:6px}

/* home: titolo più piccolo, occhiello sopra e motto sotto */
.hero-copy .hero-kicker{font:500 clamp(9.5px,.85vw,11.5px)/1.4 var(--sans);letter-spacing:.5em;color:var(--accent);margin:0 0 14px;opacity:.95}
.hero-copy h1{font-size:clamp(30px,4.4vw,60px);margin-bottom:10px}
.hero-copy .hero-tagline{font:italic 400 clamp(17px,1.7vw,24px)/1.35 var(--display);letter-spacing:.02em;text-transform:none;color:#e9eef5;margin:0 0 28px}
@media (max-width:900px){
  .hero-copy .hero-kicker{letter-spacing:.32em}
  .hero-copy .hero-tagline{letter-spacing:.01em}
}
/* SPOTS per i visitatori */
.guest-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 12px;padding:14px 18px;border:1px solid rgba(156,200,255,.4);border-radius:var(--radius);background:linear-gradient(90deg,rgba(20,44,80,.75),rgba(7,16,29,.75))}
.guest-banner svg{width:24px;height:24px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.6}
.guest-banner p{flex:1 1 380px;margin:0;color:var(--soft);font-size:14px;line-height:1.55}
.guest-banner strong{color:#fff;font-weight:500}
.guest-banner em{font-style:normal;color:#9ff0b8}
.guest-banner a,.guest-cta a,.gate-help a{color:var(--accent);text-decoration:underline}
.guest-cta{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;padding:10px;border:1px dashed rgba(156,200,255,.45);border-radius:10px;background:rgba(156,200,255,.06)}
.guest-cta svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.6;margin-top:2px}
.guest-cta p{flex:1;margin:0!important;font-size:12px!important}
.guest-cta b{color:#fff}
.spots-add svg{fill:none}
.pub-pick{display:grid;gap:4px;font-size:11.5px;color:var(--soft)}
.pub-pick select{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:8px;color:#fff;padding:7px 9px;font:inherit;font-size:13px;color-scheme:dark}
.gate-back{margin-top:10px}
/* contatti: Instagram ed email */
.contact-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.contact-links[hidden]{display:none}
.contact-links a{display:inline-flex;align-items:center;gap:8px;color:var(--soft);text-decoration:none;transition:color .2s,border-color .2s}
.contact-links a:hover{color:#fff}
.contact-links svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.about-contact{flex-direction:column;align-items:stretch;margin-top:16px}
.about-contact a{padding:10px 16px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(7,16,29,.6);font-size:13.5px;justify-content:center;min-height:44px}
.about-contact a:hover{border-color:var(--accent);color:var(--accent)}
.footer-contact{gap:18px}
.footer-contact a{font-size:12px;letter-spacing:.06em}
@media (max-width:700px){ .footer-contact span{display:none} .footer-contact svg{width:22px;height:22px} }
/* lightbox: «Interested in this photo?» */
.photo-interest{position:absolute;left:max(16px,env(safe-area-inset-left,0px));bottom:16px;z-index:3;max-width:min(380px,calc(100% - 32px))}
.photo-interest[hidden]{display:none}
.pi-toggle{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid rgba(156,200,255,.55);border-radius:999px;background:rgba(5,11,20,.78);backdrop-filter:blur(8px);color:#fff;font-size:13px;letter-spacing:.04em;cursor:pointer;min-height:42px;box-shadow:0 6px 24px rgba(0,0,0,.45)}
.pi-toggle:hover{border-color:var(--accent);color:var(--accent)}
.pi-toggle svg{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.7;stroke-linejoin:round}
.pi-panel{display:none;margin-top:8px;padding:16px 18px;border:1px solid var(--line-strong);border-radius:16px;background:rgba(5,11,20,.92);backdrop-filter:blur(8px);box-shadow:0 14px 40px rgba(0,0,0,.55)}
.photo-interest.open .pi-panel{display:block}
.photo-interest.open .pi-toggle{border-color:var(--accent)}
.pi-panel p{margin:0 0 12px;color:var(--soft);font-size:13.5px;line-height:1.55}
.pi-panel strong{color:#fff;font-weight:500}
.pi-actions{display:flex;flex-wrap:wrap;gap:8px}
.pi-actions .outline-link{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;font-size:12px;letter-spacing:.06em}
.pi-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.lightbox:not(.lightbox-full) .photo-interest{bottom:12px}
@media (max-width:600px){ .photo-interest{bottom:calc(12px + env(safe-area-inset-bottom,0px))} .pi-toggle{font-size:12px;padding:9px 14px} }
.photo-interest .pi-actions .outline-link{font:500 12px/1 var(--sans)!important;letter-spacing:.08em!important;padding:10px 14px!important;box-shadow:none!important;min-height:38px}
.photo-interest .pi-actions .outline-link span{font-size:12px!important}
/* Gallery: foto disponibili per licenze e stampe */
.license-note{display:flex;gap:14px;align-items:flex-start;margin:0 0 22px;padding:16px 20px;border:1px solid rgba(255,210,122,.35);border-radius:var(--radius);background:linear-gradient(90deg,rgba(60,42,18,.55),rgba(7,16,29,.6));backdrop-filter:blur(6px)}
.license-note[hidden]{display:none}
.license-note svg{width:22px;height:22px;flex:none;margin-top:2px;fill:none;stroke:#ffd27a;stroke-width:1.6;stroke-linejoin:round}
.license-note p{margin:0;color:var(--soft);font-size:14.5px;line-height:1.6}
.license-note strong{color:#fff;font-weight:500}
.license-note a{color:#ffd27a;text-decoration:underline;text-underline-offset:3px}

/* selezione di foto (licenze e stampe) */
.photo-cell{position:relative;min-width:0;height:100%}
.photo-cell .photo-card{width:100%}
.photo-pick{position:absolute;top:10px;right:10px;z-index:2;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(5,11,20,.6);backdrop-filter:blur(6px);color:#fff;cursor:pointer;opacity:.85;transition:opacity .2s,transform .2s,background .2s}
.photo-pick:hover{opacity:1;transform:scale(1.08)}
.photo-pick svg,.pi-pick svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.photo-pick[aria-pressed="true"]{opacity:1;background:#ffd27a;border-color:#ffd27a;color:#3a2504}
.photo-pick[aria-pressed="true"] svg,.pi-pick[aria-pressed="true"] svg{fill:currentColor}
.pi-row{display:flex;flex-wrap:wrap;gap:8px}
.pi-pick{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid rgba(255,210,122,.55);border-radius:999px;background:rgba(5,11,20,.78);backdrop-filter:blur(8px);color:#fff;font-size:13px;cursor:pointer;min-height:42px}
.pi-pick[aria-pressed="true"]{background:#ffd27a;color:#3a2504;border-color:#ffd27a}
.pick-bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:2147483000;display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  width:max-content;max-width:calc(100vw - 24px);padding:10px 12px 10px 14px;border:1px solid rgba(255,210,122,.55);border-radius:999px;background:rgba(5,11,20,.92);backdrop-filter:blur(10px);box-shadow:0 14px 40px rgba(0,0,0,.6)}
.pick-bar[hidden]{display:none}
.pick-thumbs{display:flex}
.pick-thumbs img{width:34px;height:34px;object-fit:cover;border-radius:50%;border:2px solid #05101e;margin-left:-10px}
.pick-thumbs img:first-child{margin-left:0}
.pick-bar p{margin:0;color:var(--soft);font-size:13.5px}
.pick-bar strong{color:#fff;font-weight:500}
.pick-bar .pick-go{padding:10px 18px!important;font:500 11.5px/1 var(--sans)!important;letter-spacing:.12em!important}
.pick-dialog{width:min(560px,94vw);max-height:90vh;overflow:auto;padding:26px 26px 22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#071221;color:#fff}
.pick-dialog::backdrop{background:rgba(2,6,12,.75)}
.pick-dialog h2{margin:4px 0 14px;font:500 30px/1.1 var(--display);color:var(--head)}
.pick-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.pick-list li{display:flex;align-items:center;gap:12px;padding:6px;border:1px solid var(--line);border-radius:12px}
.pick-list img{width:56px;height:56px;object-fit:cover;border-radius:8px;flex:none}
.pick-list span{flex:1;min-width:0;display:flex;flex-direction:column}
.pick-list strong{font-weight:500}
.pick-list small{color:var(--muted);font-size:12px}
.pick-remove{width:34px;height:34px;display:grid;place-items:center;border:0;background:none;color:var(--muted);cursor:pointer}
.pick-remove svg{width:14px;height:14px;stroke:currentColor;stroke-width:2}
.pick-use{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px 18px}
.pick-use legend{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);padding:0 4px}
.pick-use label{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--soft);cursor:pointer}
.pick-use input{width:17px;height:17px;accent-color:#ffd27a}
.pick-msg{display:grid;gap:6px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.pick-msg small{letter-spacing:0;text-transform:none;color:var(--muted)}
.pick-msg textarea{background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:12px;color:#fff;padding:10px 12px;font:inherit;font-size:14px;letter-spacing:0;text-transform:none;resize:vertical}
.pick-actions{display:flex;flex-wrap:wrap;gap:10px}
.pick-actions .outline-link{display:inline-flex;align-items:center;gap:8px;padding:11px 18px!important;font:500 12px/1 var(--sans)!important;letter-spacing:.08em!important}
.pick-actions .outline-link span{font-size:12px!important}
.pick-actions svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pick-note{margin:10px 0 0;color:#9ff0b8;font-size:13px}
@media (max-width:600px){ .pick-bar{border-radius:18px} .pick-thumbs{display:none} .photo-pick{width:36px;height:36px;top:8px;right:8px} }
/* foto ruotata di 90° (quando il telefono non può girare lo schermo) */
.lightbox-full.rot-90 .lightbox-stage{overflow:hidden}
.lightbox-full.rot-90 .lightbox-stage img{position:absolute;left:50%;top:50%;width:100dvh;height:100vw;max-width:none;transform:translate(-50%,-50%) rotate(90deg)}
.lightbox-full.rot-90 .nav-arrow,.lightbox-full.rot-90 .photo-interest{display:none}

/* telefono in orizzontale: pagine compatte, mappe e foto a tutta altezza */
@media (orientation:landscape) and (max-height:540px){
  .site-header{height:52px}
  .home-hero{height:calc(100dvh - 52px);min-height:300px}
  .hero-copy{top:52%}
  .hero-copy h1{font-size:clamp(26px,5vh,40px);margin-bottom:6px}
  .hero-copy .hero-tagline{margin-bottom:14px}
  .hero-copy .hero-kicker{margin-bottom:8px}
  .hero-foot{bottom:8px}
  .content-page{padding-block:22px 40px}
  .section-heading h1{font-size:clamp(30px,7vh,44px)}
  .explore-stage,.spots-stage,.pl-stage{height:calc(100dvh - 72px);min-height:260px}
  .explore-stage .map{height:calc(100dvh - 72px)}
  .lightbox-full .lightbox-info{max-height:40vh;overflow:auto}
  .pick-bar{bottom:8px;padding:6px 10px}
}
/* selettore della lingua */
.lang-pick{position:relative;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:999px;color:#c4cfdc;cursor:pointer}
.lang-pick:hover,.lang-pick:focus-within{border-color:var(--accent);color:#fff}
.lang-pick svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.lang-pick select{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:16px}
.lang-code{font-size:11.5px;letter-spacing:.12em}
.header-actions{display:flex;align-items:center;gap:8px}
@media (max-width:420px){ .lang-pick{padding:0 8px} .lang-pick svg{display:none} }

/* invito a installare l'app (PWA) */
.install-tip{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:3000;display:flex;align-items:center;gap:12px;padding:12px 40px 12px 12px;border:1px solid var(--line-strong);border-radius:18px;background:rgba(7,18,32,.96);box-shadow:0 12px 40px rgba(0,0,0,.55);color:#dbe7f5;font-size:13.5px;line-height:1.4;transform:translateY(140%);transition:transform .35s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.install-tip.show{transform:none}
.install-tip img{flex:none;border-radius:10px}
.install-tip p{margin:0;flex:1}
.install-tip strong{display:block;color:#fff;font-size:14.5px;margin-bottom:2px}
.install-share svg{width:16px;height:16px;vertical-align:-3px;fill:none;stroke:#9cc8ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.install-go{flex:none;height:36px;padding:0 16px;border:1px solid #9cc8ff;border-radius:999px;background:rgba(156,200,255,.12);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.install-x{position:absolute;top:6px;right:8px;width:30px;height:30px;border:0;background:none;color:#9fb0c4;font-size:22px;line-height:1;cursor:pointer}

/* iscrizione a Spots */
.gate-tabs{display:flex;gap:4px;padding:4px;margin:4px auto 18px;border:1px solid var(--line-strong);border-radius:999px;width:max-content;max-width:100%}
.gate-tabs button{border:0;background:none;color:var(--soft);font:inherit;font-size:13.5px;padding:9px 16px;border-radius:999px;cursor:pointer}
.gate-tabs button.on{background:rgba(156,200,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(156,200,255,.45)}
.gate-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gate-row > div{display:grid;gap:8px}
@media (max-width:420px){.gate-row{grid-template-columns:1fr}}
.gate-form .gate-check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:13px;color:var(--soft);line-height:1.5;margin:4px 0}
.gate-form .gate-check input{width:18px;height:18px;flex:none;margin:1px 0 0;padding:0;accent-color:#9cc8ff}
.gate-check .text-link{font-size:inherit;padding:0}
.gate-note.ok{color:#9fe3c8}
.gate-back{display:block;margin:14px auto 0}
.pending-banner{border-color:rgba(159,227,200,.45)}
.req-btn b{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.12);font-size:11.5px}
.req-btn.has b{background:#ff4d4d;color:#fff}
.req-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}
.req-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(3,9,18,.5)}
.req-row > div{flex:1;min-width:180px;display:grid;gap:2px}
.req-row span{font-size:12.5px;color:var(--muted)}

/* workshop: posti, prezzo, link; segni speciali sulla mappa */
.spot-pin.shine{animation:pinShine 1.8s ease-in-out infinite}
.spot-pin.shine-local{border-color:#7ed69b;animation:pinShineLocal 2.2s ease-in-out infinite}
@keyframes pinShine{0%,100%{box-shadow:0 0 0 0 rgba(159,227,200,.0),0 0 8px var(--c)}50%{box-shadow:0 0 0 6px rgba(159,227,200,.18),0 0 22px 4px var(--c)}}
@keyframes pinShineLocal{0%,100%{box-shadow:0 0 0 1.5px rgba(255,255,255,.7),0 0 8px #7ed69b}50%{box-shadow:0 0 0 1.5px rgba(255,255,255,.7),0 0 0 7px rgba(126,214,155,.2),0 0 24px 5px #7ed69b}}
.spot-pin.plane{border-color:#ffc46e;box-shadow:0 0 14px rgba(255,196,110,.65);animation:planeIdle 1.6s ease-in-out infinite}
.spot-pin.plane svg{stroke:#ffc46e}
@keyframes planeIdle{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(1.5px,-1px) rotate(-4deg)}50%{transform:translate(0,-2px) rotate(0)}75%{transform:translate(-1.5px,-1px) rotate(3deg)}}
@media (prefers-reduced-motion:reduce){.spot-pin.shine,.spot-pin.shine-local,.spot-pin.plane{animation:none}}
.ws-box{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.ws-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:999px;font-size:12.5px;color:var(--soft);background:rgba(3,9,18,.55)}
.ws-chip b{color:#fff;font-weight:600}
.ws-chip.hot{border-color:rgba(255,196,110,.7);color:#ffd9a0}
.ws-chip.new{border-color:rgba(159,227,200,.7);color:#bff3dc}
.local-chip{margin:6px 0 2px;width:max-content}
.ws-link{width:100%;justify-content:center;margin-top:2px;text-decoration:none}
.ws-edit{margin:4px 0 6px}
.ws-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.ws-fields label{display:grid;gap:6px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)}
.ws-fields .ws-wide{grid-column:1/-1}
.ws-fields input,.ws-fields select{width:100%;min-width:0}
.ws-fields .pay-row{display:flex;gap:6px}
.ws-fields .pay-row select{width:auto}

/* guida: come funziona il sito */
.guide-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.guide-toc a{padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;color:var(--soft);text-decoration:none;font-size:13.5px;transition:border-color .2s,color .2s}
.guide-toc a:hover{border-color:var(--accent);color:#fff}
.guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.guide-card{position:relative;padding:26px 28px 24px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--glass);scroll-margin-top:96px}
.guide-card.wide{grid-column:1/-1}
.guide-num{position:absolute;top:22px;right:26px;font-family:var(--serif, "Cormorant Garamond", serif);font-size:30px;color:rgba(156,200,255,.35)}
.guide-card h2{margin:0 0 8px;font-family:var(--serif, "Cormorant Garamond", serif);font-weight:500;font-size:30px;letter-spacing:.04em}
.guide-card h3{margin:18px 0 8px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600}
.guide-card p{margin:0 0 10px;color:var(--soft);line-height:1.65}
.guide-card ul{margin:0;padding-left:18px;display:grid;gap:7px;color:var(--soft);line-height:1.6;font-size:14.5px}
.guide-card b{color:#fff;font-weight:500}
.guide-card a{color:var(--accent)}
.guide-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px}
.guide-legend{list-style:none;padding:0 !important;gap:10px !important}
.guide-legend li{display:flex;align-items:center;gap:12px}
.guide-legend .spot-pin{flex:none;cursor:default}
.guide-note{margin-top:14px !important;font-size:13px;color:var(--muted) !important}
.footer-guide{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.guest-guide{margin-left:4px}
@media (max-width:760px){.guide,.guide-cols{grid-template-columns:1fr}.guide-card{padding:22px 18px}}

/* offerte e lista dei workshop */
.spot-pin.offer{border-color:#ffc46e;animation:pinOffer 1.6s ease-in-out infinite}
@keyframes pinOffer{0%,100%{box-shadow:0 0 6px rgba(255,196,110,.5)}50%{box-shadow:0 0 0 6px rgba(255,196,110,.16),0 0 22px 5px rgba(255,196,110,.75)}}
.offer-tag{position:absolute;top:-7px;right:-8px;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:#ffc46e;color:#06101d;font-size:10px;font-weight:700;line-height:16px;text-align:center}
@media (prefers-reduced-motion:reduce){.spot-pin.offer{animation:none}}
.ws-chip.offer{border-color:rgba(255,196,110,.75);color:#ffe0ad;background:rgba(255,196,110,.08)}
.spots-ws{margin:22px 0 0}
.spots-ws .around-head h2 small{font-size:.55em;color:var(--muted);margin-left:6px}
.ws-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ws-card{display:grid;gap:8px;align-content:start;padding:16px 18px;border:1px solid var(--line-strong);border-radius:16px;background:var(--glass)}
.ws-card.hot{border-color:rgba(255,196,110,.6)}
.ws-card.has-offer{border-color:rgba(255,196,110,.75);box-shadow:0 0 24px rgba(255,196,110,.12)}
.ws-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ws-date{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#9fe3c8}
.ws-date svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.ws-name{font-size:16px;font-weight:500;color:#fff;line-height:1.35}
.ws-meta{font-size:13px;color:var(--soft)}
.ws-card-offer{width:max-content;max-width:100%}
.ws-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.ws-card-actions .pop-btn{text-decoration:none}
.ws-empty{margin:12px 0 0;padding:16px 18px;border:1px dashed var(--line-strong);border-radius:16px;color:var(--soft);font-size:14px}

/* trekking */
.tk-box{margin:6px 0 2px}
.tk-start,.tk-park{margin:6px 0;font-size:13px;color:var(--soft);line-height:1.5}
.tk-start b,.tk-park b{color:#fff;font-weight:500}
.tk-park .text-link{display:inline-flex;margin-left:4px}
.tk-diff.d-T{border-color:rgba(126,214,155,.7)}
.tk-diff.d-E{border-color:rgba(156,200,255,.7)}
.tk-diff.d-EE{border-color:rgba(255,196,110,.75)}
.tk-diff.d-EEA{border-color:rgba(255,110,110,.75)}
.tk-hint{margin:2px 0 4px;padding:10px 12px;border:1px solid rgba(247,166,196,.45);border-radius:12px;font-size:13px;color:var(--soft);line-height:1.5}
.tk-hint b{color:#fff}
.tk-grade{display:flex;align-items:center;min-height:42px;padding:0 4px;color:#fff;font-size:14px;letter-spacing:0;text-transform:none}
.ws-fields .pay-row{display:flex !important;gap:6px;align-items:center}
.ws-fields .pay-row input{flex:1 1 0;min-width:0;margin-bottom:0}
.ws-fields input{margin-bottom:0 !important}
.ws-fields select{appearance:none;-webkit-appearance:none;width:100%;background:rgba(3,9,18,.7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239cc8ff' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/14px;border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:11px 34px 11px 16px;font:inherit;font-size:14px;letter-spacing:0;text-transform:none}
.ws-fields .pay-row select{width:auto;flex:none}

/* ---------- Journal: rivista illustrata anni '50–'60 (carta, foto grandi, titoli compatti) ---------- */
.mag{--paper:#0c1016;--ink:#efe8da;--ink-soft:#a39b8d;--rule:#d9483b;--hair:rgba(239,232,218,.16);--mag-head:'Oswald','Arial Narrow',Impact,sans-serif;--mag-serif:'Libre Caslon Text',Georgia,'Times New Roman',serif;
  position:relative;background:var(--paper);color:var(--ink);padding:clamp(18px,4vw,48px);border-radius:4px;
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04);
  background-image:radial-gradient(rgba(255,240,215,.025) 1px,transparent 1px),linear-gradient(180deg,#0f141c,#0a0d12);background-size:3px 3px,100% 100%;border:1px solid rgba(239,232,218,.08)}
.mag a{color:inherit;text-decoration:none}
.mag-head{border-bottom:6px solid var(--ink);margin-bottom:clamp(18px,3vw,34px)}
.mag-top,.mag-strip{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0;font:500 11px/1.4 var(--mag-head);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.mag-top{padding-bottom:10px;border-bottom:1px solid var(--ink)}
.mag-title{margin:6px 0 2px;font:700 clamp(64px,13vw,168px)/.86 var(--mag-head);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink)}
.mag-title::after{content:none}
.mag-strip{padding:10px 0 12px;border-top:3px solid var(--rule)}
.mag-kicker{margin:0 0 6px;font:700 12px/1.3 var(--mag-head);letter-spacing:.2em;text-transform:uppercase;color:var(--rule)}
.mag-deck{margin:8px 0 0;font:italic 400 clamp(16px,1.6vw,19px)/1.5 var(--mag-serif);color:var(--ink-soft)}
.mag-byline{margin:12px 0 0;font:500 11px/1.4 var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.mag-byline b{color:var(--ink);font-weight:700}
.mag figure{margin:0;overflow:hidden;background:#05070a}
.mag img{display:block;width:100%;height:100%;object-fit:cover;filter:contrast(1.05) saturate(.95);transition:transform .8s ease}
.mag a:hover img{transform:scale(1.025)}
.journal-layout{display:block}
.mag-cover{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(16px,3vw,36px);align-items:end;padding-bottom:clamp(20px,3vw,34px);border-bottom:1px solid var(--ink)}
.mag-cover figure{aspect-ratio:4/3}
.mag-cover h2{margin:0;font:700 clamp(40px,5.4vw,78px)/.92 var(--mag-head);text-transform:uppercase;letter-spacing:-.005em}
.mag-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,36px);padding:clamp(20px,3vw,34px) 0;border-bottom:1px solid var(--ink)}
.mag-row .mag-story + .mag-story{border-left:1px solid var(--hair);padding-left:clamp(16px,3vw,36px)}
.mag-story figure{aspect-ratio:3/2;margin-bottom:14px}
.mag-story h3{margin:0;font:700 clamp(26px,2.8vw,38px)/.98 var(--mag-head);text-transform:uppercase}
.mag-section{margin:clamp(20px,3vw,30px) 0 12px;font:700 13px var(--mag-head);letter-spacing:.24em;text-transform:uppercase;border-top:3px solid var(--rule);padding-top:10px;width:max-content}
.mag-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px 28px}
.mag-brief{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--hair)}
.mag-brief img{aspect-ratio:1;height:auto}
.mag-brief h4{margin:0;font:700 19px/1.05 var(--mag-head);text-transform:uppercase}
.mag-brief .mag-byline{margin-top:6px}
.mag-empty{max-width:640px;padding:30px 0 10px}
.mag-empty h2{margin:0;font:700 clamp(34px,4.6vw,58px)/.95 var(--mag-head);text-transform:uppercase}
.mag-empty p:last-child{font:400 17px/1.7 var(--mag-serif);color:var(--ink-soft)}
/* articolo */
.mag-article{max-width:none;margin:0;border:0;padding:0;color:var(--ink);line-height:1.7}
.mag-back{color:var(--ink-soft) !important;margin-bottom:18px;display:inline-flex}
.mag-article h2{margin:0;max-width:16ch;font:700 clamp(46px,7.6vw,112px)/.88 var(--mag-head);text-transform:uppercase;letter-spacing:-.01em;color:var(--ink)}
.mag-article .mag-deck{max-width:46ch;font-size:clamp(18px,2vw,23px)}
.mag-hero{margin:clamp(20px,3vw,32px) calc(-1 * clamp(18px,4vw,48px)) 0 !important;aspect-ratio:16/9}
.mag-hero img{border:0;border-radius:0;margin:0;aspect-ratio:auto}
.mag-hero figcaption{position:absolute;margin-top:-34px;padding:0 clamp(18px,4vw,48px);font:500 11px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.mag-hero{position:relative}
.mag-body{margin-top:clamp(22px,3vw,36px);column-count:2;column-gap:42px;column-rule:1px solid var(--hair);font:400 16.5px/1.75 var(--mag-serif);color:var(--ink)}
.mag-body p {
    margin: 0 0 1em;
    max-width: none;
    text-align: justify;
    hyphens: auto;
}
.mag-body > p:first-of-type::first-letter{float:left;font:700 4.6em/.8 var(--mag-head);margin:.06em .1em 0 0;color:var(--rule)}
.mag-body h2,.mag-body h3{column-span:all;margin:1.2em 0 .5em;font:700 clamp(22px,2.4vw,30px)/1 var(--mag-head);text-transform:uppercase;letter-spacing:.01em;color:var(--ink);max-width:none}
.mag-body img{column-span:all;display:block;width:100%;height:auto;margin:1.2em 0;border:0;border-radius:0;aspect-ratio:auto}
.mag-body p:has(> img:only-child){column-span:all}
.mag-body blockquote{column-span:all;margin:1em 0;padding:18px 0;border-top:3px solid var(--rule);border-bottom:1px solid var(--ink);font:italic 400 clamp(22px,2.6vw,32px)/1.3 var(--mag-serif);color:var(--ink);text-align:center}
.mag-body a{color:var(--rule);text-decoration:underline}
.mag-body ul,.mag-body ol{margin:0 0 1em;padding-left:1.2em}
.mag-body strong{color:var(--ink);font-weight:700}
.mag-end{margin:4px 0 0;color:var(--rule);font-size:14px;text-align:right}
.mag-article .article-actions{border-top:1px solid var(--ink);padding-top:18px}
.mag-article .article-actions .text-link{color:var(--ink-soft)}
.mag-article .outline-link{color:var(--ink);border-color:var(--ink);background:transparent;box-shadow:none}
@media (max-width:820px){
  .mag-cover,.mag-row{grid-template-columns:1fr}
  .mag-row .mag-story + .mag-story{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:20px}
  .mag-body{column-count:1}
}
.mag-cover-text,.mag-story,.mag-article{min-width:0;overflow-wrap:break-word}
.mag-cover h2{font-size:clamp(36px,4.8vw,70px)}

/* Journal — reportage (stile grandi reportage d'autore) e guida pratica */
.mag-opening{position:relative;margin:0 calc(-1 * clamp(18px,4vw,48px)) !important;aspect-ratio:16/9;max-height:86vh}
.mag-opening img{height:100%}
.mag-opening::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,7,10,0) 35%,rgba(5,7,10,.88) 100%);pointer-events:none}
.mag-opening-text{position:absolute;left:clamp(18px,4vw,48px);right:clamp(18px,4vw,48px);bottom:clamp(16px,3.4vw,44px);z-index:1}
.mag-opening-text h2{margin:0;max-width:18ch;font:700 clamp(42px,7.4vw,118px)/.88 var(--mag-head);text-transform:uppercase;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.mag-opening-text .mag-kicker{color:#ff8a7d}
.mag-lede{max-width:760px;margin:clamp(22px,3vw,36px) auto 0;text-align:center}
.mag-lede .mag-deck{font-size:clamp(19px,2.2vw,26px);line-height:1.45;color:var(--ink)}
.mag-prose{column-count:1 !important;column-rule:none;max-width:68ch;margin:clamp(26px,3vw,40px) auto 0;font-size:18px;line-height:1.85}
.mag-prose > p:first-of-type::first-letter{font-size:5.4em}
.mag-prose .mag-fig,.mag-prose .mag-spread{width:min(100vw - 64px, 1180px);max-width:none;margin-left:50%;transform:translateX(-50%)}
.mag-fig{margin:1.6em 0 !important;background:transparent !important;overflow:visible !important}
.mag-fig img{width:100%;height:auto;margin:0;border:0;border-radius:0;aspect-ratio:auto}
.mag-fig figcaption{margin-top:8px;font:italic 400 14px/1.5 var(--mag-serif);color:var(--ink-soft)}
.mag-spread{display:grid;gap:10px;margin:1.6em 0;column-span:all}
.mag-spread.n2{grid-template-columns:1.25fr 1fr}
.mag-spread.n3{grid-template-columns:1.4fr 1fr 1fr}
.mag-spread .mag-fig{margin:0 !important;width:auto !important;transform:none !important}
.mag-spread .mag-fig img{height:100%;object-fit:cover;aspect-ratio:4/5}
.mag-spread.n2 .mag-fig:first-child img{aspect-ratio:auto;height:100%}
.mag-body .mag-fig{column-span:all}
.mag-prose blockquote{width:min(100vw - 64px, 900px);margin-left:50%;transform:translateX(-50%);font-size:clamp(26px,3.4vw,42px)}
.mag-guide.has-glance{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start;margin-top:clamp(22px,3vw,36px)}
.mag-guide.has-glance .mag-glance{order:2;position:sticky;top:96px}
.mag-guide.has-glance .mag-body{margin-top:0}
.mag-glance{padding:18px 20px;border-top:4px solid var(--rule);background:rgba(239,232,218,.04);border-bottom:1px solid var(--hair)}
.mag-glance-title{margin:0 0 10px;font:700 15px var(--mag-head);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.mag-glance dl{margin:0;display:grid;gap:12px}
.mag-glance dt{font:700 11px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:var(--rule)}
.mag-glance dd{margin:2px 0 0;font:400 15px/1.5 var(--mag-serif);color:var(--ink)}
.mag-after{max-width:68ch;margin:28px auto 0}
.mag-after .mag-glance dl{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.mag-article .outline-link{color:var(--ink);border-color:var(--ink)}
.mag-hero figcaption{color:#fff}
@media (max-width:980px){.mag-guide.has-glance{grid-template-columns:1fr}.mag-guide.has-glance .mag-glance{order:0;position:static}}
@media (max-width:620px){.mag-spread.n2,.mag-spread.n3{grid-template-columns:1fr}.mag-prose .mag-fig,.mag-prose .mag-spread,.mag-prose blockquote{width:calc(100vw - 32px)}}
.mag-body blockquote{border-left:0 !important;border-right:0;background:none;padding-left:0;padding-right:0}
.mag-prose .mag-fig,.mag-prose .mag-spread{margin:1.8em 0 1.8em 50% !important}
.mag-fig img{max-height:88vh;object-fit:cover}
.mag-spread .mag-fig img{max-height:70vh}
.mag-prose .mag-spread .mag-fig{margin:0 !important;width:auto !important;transform:none !important}
.mag-spread .mag-fig img,.mag-spread.n2 .mag-fig:first-child img{aspect-ratio:4/5;height:auto;max-height:none}
.mag-topics{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 clamp(18px,2.6vw,28px);padding-bottom:12px;border-bottom:1px solid var(--hair)}
.mag-topics button{border:0;background:none;padding:4px 0;font:500 12px var(--mag-head);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid transparent}
.mag-topics button:hover{color:var(--ink)}
.mag-topics button.on{color:var(--ink);border-bottom-color:var(--rule)}

/* Novità sulla mappa della home: astronavi in orbita con la scia */
.ship{--c:#9cc8ff;position:relative;width:64px;height:64px;color:var(--c);cursor:pointer}
.ship-article{--c:#ffc46e}.ship-photos{--c:#9cc8ff}.ship-workshop{--c:#9fe3c8}
.ship-dot{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--c);box-shadow:0 0 12px 3px var(--c);animation:shipPing 2.4s ease-out infinite}
@keyframes shipPing{0%{box-shadow:0 0 0 0 var(--c)}70%{box-shadow:0 0 0 16px transparent}100%{box-shadow:0 0 0 0 transparent}}
.ship-orbit{position:absolute;inset:0;animation:shipOrbit 7s linear infinite;animation-delay:var(--d)}
.ship-craft{position:absolute;left:50%;top:50%;width:26px;height:13px;margin:-6.5px 0 0 -13px;transform:translateX(var(--r)) rotate(90deg);filter:drop-shadow(0 0 5px var(--c))}
.ship-craft svg{position:relative;width:26px;height:13px;display:block}
.ship-trail{position:absolute;right:100%;top:50%;width:46px;height:3px;margin-top:-1.5px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--c));opacity:.85;transform-origin:right center;transform:rotate(-10deg)}
@keyframes shipOrbit{to{transform:rotate(360deg)}}
.ship:hover .ship-orbit{animation-duration:3.5s}
@media (prefers-reduced-motion:reduce){.ship-orbit,.ship-dot{animation:none}}
.news-tip{font-size:12.5px;line-height:1.4}
.news-tip .news-kind{color:#ffd9a0;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}
.hero-news{display:flex;align-items:center;gap:10px;max-width:min(420px,46vw);justify-self:end;text-align:right}
.news-badge{display:inline-flex;align-items:center;gap:6px;flex:none;padding:4px 10px;border:1px solid rgba(255,196,110,.6);border-radius:999px;font:600 10.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#ffd9a0}
.news-pulse{width:7px;height:7px;border-radius:50%;background:#ffc46e;box-shadow:0 0 8px #ffc46e;animation:alertPulse 1.6s ease-in-out infinite}
.news-item{display:grid;gap:2px;min-width:0;border:0;background:none;padding:0;color:#fff;text-align:right;cursor:pointer;font:inherit;animation:newsIn .5s ease}
.news-item small{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#c4cfdc}
.news-item b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-item:hover b{text-decoration:underline}
@keyframes newsIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:700px){.hero-news{max-width:60vw}.news-item b{font-size:12.5px}}

/* community: preferiti, ritrovi, fotografi, moderazione */
.spots-community{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.comm-btn small{margin-left:4px;color:var(--muted)}
.fav-dot{position:absolute;bottom:-6px;right:-7px;width:15px;height:15px;border-radius:50%;background:#ff6b8a;color:#fff;font-size:9px;line-height:15px;text-align:center;box-shadow:0 0 0 2px #06101d}
.fav-btn.on{border-color:#ff6b8a;color:#ffb3c3}
.meet-pin{position:relative;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#1a1405;border:2px solid #ffd166;box-shadow:0 0 14px rgba(255,209,102,.6);animation:pinShine 2.4s ease-in-out infinite;--c:#ffd166}
.meet-pin svg{width:18px;height:18px;fill:none;stroke:#ffd166;stroke-width:1.8;stroke-linecap:round}
.meet-date{position:absolute;top:100%;left:50%;transform:translate(-50%,3px);white-space:nowrap;padding:1px 6px;border-radius:999px;background:#ffd166;color:#1a1405;font:700 10px/1.5 var(--sans)}
.ph-pin{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#140f22;border:2px solid #c9a7ff;box-shadow:0 0 12px rgba(201,167,255,.55)}
.ph-pin svg{width:16px;height:16px;fill:none;stroke:#c9a7ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.meet-who{margin:6px 0;font-size:13px;color:var(--soft)}
.pop-flag{font-size:12px;color:var(--muted) !important;margin-left:auto}
.rev-flag{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 4px;margin-left:auto}
.rev-flag:hover{color:#ff8a7d}
.flag-select{width:100%;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:12px 16px;font:inherit}
.adm-tabs b{margin-left:4px;font-size:11px;color:#ff8a7d}
.adm-search{width:100%;margin:0 0 6px;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:10px 16px;font:inherit}
.adm-members{max-height:52vh;overflow:auto}
.gate-or{display:flex;align-items:center;gap:10px;margin:16px 0 10px;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.gate-or::before,.gate-or::after{content:"";flex:1;height:1px;background:var(--line)}
.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:46px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:#1f1f1f;font:500 15px var(--sans);cursor:pointer}
.google-btn svg{width:18px;height:18px}
.google-btn:hover{box-shadow:0 0 18px rgba(255,255,255,.25)}

/* privacy e termini */
.legal{max-width:760px;color:var(--soft);line-height:1.75;font-size:15px}
.legal h2{margin:30px 0 8px;font:500 24px/1.2 var(--display);color:var(--head)}
.legal ul{padding-left:20px;display:grid;gap:8px;margin:0}
.legal b{color:#fff;font-weight:500}
.legal a{color:var(--accent)}
.legal-note{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}

/* mappa a tutto schermo */
.map-full-ctrl a{display:grid !important;place-items:center;width:32px;height:32px;background:rgba(6,16,29,.85);color:#fff}
.map-full-ctrl svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.map-full{position:fixed !important;inset:0 !important;z-index:5000 !important;width:100vw !important;height:100vh !important;height:100dvh !important;
  margin:0 !important;max-width:none !important;min-height:0 !important;border-radius:0 !important;border:0 !important;background:#050b14}
.map-full > .map,.map-full .leaflet-container{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;border-radius:0 !important;min-height:0 !important}
.map-full .hud-frame{display:none}
.map-full .leaflet-top{top:env(safe-area-inset-top)}
.map-full .leaflet-bottom{bottom:env(safe-area-inset-bottom)}
.map-full:fullscreen{width:100%;height:100%}
body.map-full-open{overflow:hidden}
body.map-full-open .site-header,body.map-full-open .pick-bar,body.map-full-open .install-tip{display:none !important}
@media (max-width:900px){
  .map-full .location-panel{position:absolute;left:10px;right:10px;bottom:calc(74px + env(safe-area-inset-bottom));top:auto;width:auto;margin:0;max-height:34vh;overflow:auto;z-index:950}
}
.map-full-ctrl{border:1px solid var(--line-strong) !important;border-radius:12px !important;overflow:hidden;box-shadow:0 0 14px rgba(80,140,230,.25) !important}.map-full-ctrl a{border-radius:0 !important;border:0 !important}
.inapp-note{margin-top:10px;font-size:13px;line-height:1.5}.inapp-note b{color:#fff}
.google-domain{margin:8px 0 0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;font-size:12.5px;line-height:1.5;color:var(--soft);text-align:left;word-break:break-word}
.google-domain b{color:#fff;font-weight:500}

/* feedback */
.fb-tip{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:2900;display:flex;align-items:center;max-width:min(340px,calc(100vw - 32px));
  border:1px solid var(--line-strong);border-radius:16px;background:rgba(7,18,32,.95);box-shadow:0 10px 30px rgba(0,0,0,.5);overflow:hidden;
  transform:translateY(140%);transition:transform .35s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.fb-tip.show{transform:none}
.fb-open{display:flex;align-items:center;gap:12px;flex:1;min-width:0;border:0;background:none;padding:11px 6px 11px 14px;color:#dbe7f5;text-align:left;font:inherit;cursor:pointer}
.fb-open b{display:block;color:#fff;font-weight:500;font-size:14px}
.fb-open small{display:block;font-size:12px;color:var(--muted)}
.fb-ico{flex:none;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,196,110,.6);color:#ffc46e;font-size:14px}
.fb-x{flex:none;width:36px;align-self:stretch;border:0;border-left:1px solid var(--line);background:none;color:var(--muted);font-size:20px;cursor:pointer}
.fb-x:hover{color:#fff}
.fb-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffc46e;transform-origin:left;animation:fbBar 5s linear forwards}
.fb-tip.paused .fb-bar{animation-play-state:paused;opacity:.3}
@keyframes fbBar{to{transform:scaleX(0)}}
body.map-full-open .fb-tip{display:none}
.fb-dialog{width:min(640px,calc(100vw - 24px))}
.fb-form{max-height:min(82vh,860px);overflow:auto}
.fb-q{border:0;padding:0;margin:8px 0 4px}
.fb-q legend{padding:0;margin-bottom:8px;font-size:14.5px;color:#fff;font-weight:500}
.fb-q legend small{color:var(--muted);font-weight:400}
.fb-opts{display:flex;flex-wrap:wrap;gap:6px}
.fb-opt{position:relative;cursor:pointer;text-transform:none !important;letter-spacing:0 !important;font-size:13px !important}
.fb-opt input{position:absolute;opacity:0;pointer-events:none}
.fb-opt span{display:inline-block;padding:7px 12px;border:1px solid var(--line-strong);border-radius:999px;color:var(--soft);transition:all .15s}
.fb-opt input:checked + span{border-color:#9cc8ff;background:rgba(156,200,255,.16);color:#fff}
.fb-opt input:focus-visible + span{outline:2px solid #9cc8ff;outline-offset:2px}
.fb-stars{display:flex;gap:4px;flex-direction:row-reverse;justify-content:flex-end}
.fb-stars label{cursor:pointer;font-size:26px;color:rgba(220,228,240,.25)}
.fb-stars input{position:absolute;opacity:0}
.fb-stars label:hover,.fb-stars label:hover ~ label,.fb-stars input:checked ~ span,.fb-stars label:has(input:checked),.fb-stars label:has(input:checked) ~ label{color:#ffc46e}
.fb-sum{margin:12px 0}
.fb-sum-t{margin:14px 0 6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.fb-row{display:grid;grid-template-columns:minmax(140px,1.2fr) 2fr 34px;align-items:center;gap:10px;font-size:13px;color:var(--soft);margin:4px 0}
.fb-row i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#9cc8ff var(--w),rgba(255,255,255,.06) var(--w))}
.fb-row b{color:#fff;text-align:right;font-weight:500}

/* fascia «Join the crew» in fondo alle pagine */
.crew-band{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:center;
  width:min(1180px,calc(100% - 48px));margin:60px auto 0;padding:28px 32px;border:1px solid var(--line-strong);border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(255,196,110,.07),rgba(156,200,255,.05));box-shadow:0 0 40px rgba(80,140,230,.12)}
.crew-copy h2{margin:6px 0 8px;font:500 clamp(26px,3vw,34px)/1.1 var(--display);color:var(--head)}
.crew-copy p{margin:0;color:var(--soft);line-height:1.65;font-size:14.5px}
.crew-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.crew-role{display:grid;gap:4px;align-content:start;text-align:left;padding:14px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(3,9,18,.55);color:var(--soft);font:inherit;font-size:12.5px;line-height:1.45;cursor:pointer;transition:border-color .2s,transform .2s}
.crew-role b{color:#fff;font-weight:500;font-size:14px}
.crew-role:hover{border-color:#ffc46e;transform:translateY(-2px)}
.crew-cta{grid-column:1/-1;justify-self:start}
body[data-page="home"] .crew-band{margin-top:30px}
.ct-msg{display:block;margin-top:4px;font-style:italic;color:var(--soft) !important}
@media (max-width:860px){.crew-band{grid-template-columns:1fr;padding:22px 18px;width:calc(100% - 32px)}.crew-roles{grid-template-columns:1fr}.crew-cta{justify-self:stretch;text-align:center;justify-content:center}}

/* nodi (local experts), verifica, post Instagram */
.xp-badge{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 8px;border:1px solid rgba(255,196,110,.65);border-radius:999px;background:rgba(255,196,110,.1);color:#ffd9a0;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;vertical-align:1px}
.vf{margin:6px 0;padding:6px 10px;border:1px solid rgba(126,214,155,.55);border-radius:10px;background:rgba(126,214,155,.08);font-size:12.5px;color:#bff3dc}
.vf b{font-weight:600}
.vf-out{border-color:rgba(255,196,110,.6);background:rgba(255,196,110,.08);color:#ffd9a0}
.vf-dot{position:absolute;top:-6px;right:-7px;width:15px;height:15px;border-radius:50%;background:#7ed69b;color:#06101d;font-size:9px;font-weight:800;line-height:15px;text-align:center;box-shadow:0 0 0 2px #06101d}
.spot-pin.outdated{opacity:.55;filter:grayscale(.7)}
.curate{margin-top:8px;padding:8px 10px;border:1px dashed rgba(255,196,110,.5);border-radius:12px;background:rgba(255,196,110,.04)}
.curate-t{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#ffd9a0;margin-right:4px}
.pop-btn.on{border-color:#7ed69b;color:#bff3dc}
.pop-rev.by-expert{border-left:2px solid #ffc46e;padding-left:8px}
.ph-pin.expert{width:36px;height:36px;border-color:#ffc46e;box-shadow:0 0 14px rgba(255,196,110,.55)}
.ph-pin.expert svg{stroke:#ffc46e}
.ph-pin{position:relative}
.ph-pin.posted{animation:phGlow 1.6s ease-in-out infinite}
@keyframes phGlow{0%,100%{box-shadow:0 0 10px rgba(201,167,255,.6)}50%{box-shadow:0 0 0 8px rgba(201,167,255,.18),0 0 28px 8px rgba(201,167,255,.85)}}
.ph-new{position:absolute;top:100%;left:50%;transform:translate(-50%,4px);white-space:nowrap;padding:1px 6px;border-radius:999px;background:#c9a7ff;color:#140f22;font:700 9.5px/1.6 var(--sans);letter-spacing:.08em}
@media (prefers-reduced-motion:reduce){.ph-pin.posted{animation:none}}
.ig-new{display:flex;justify-content:center;margin:6px 0;text-decoration:none}
.xp-mine{border-color:rgba(255,196,110,.7) !important;color:#ffd9a0 !important}
.node-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%;margin-top:8px}
.node-form input{flex:1 1 140px;min-width:0;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:8px 12px;font:inherit;font-size:13px}
.node-form input[name=km]{flex:0 0 70px}

.crew-band{align-items:start}
.crew-all{margin-top:12px !important;padding:12px 14px;border-left:2px solid #ffc46e;background:rgba(255,196,110,.05);border-radius:0 10px 10px 0}
.crew-all b{color:#fff;font-weight:500}
.crew-copy .crew-cta{margin-top:16px}
.crew-what{color:var(--soft);font-size:13px}
.crew-role ul{margin:6px 0 0;padding-left:16px;display:grid;gap:4px;font-size:12.5px;color:var(--soft)}
.crew-role ul b{color:#fff;font-weight:500;font-size:inherit}
@media (max-width:860px){.crew-roles{grid-template-columns:1fr}}

/* contributor: icona a diaframma, badge, pagina autore */
.ap-ico{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;vertical-align:-2px}
.co-badge{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:1px 8px;border:1px solid transparent;border-radius:999px;
  background:linear-gradient(#0b1626,#0b1626) padding-box,linear-gradient(90deg,#ffc46e,#f7a6c4) border-box;color:#ffe0ad;font-size:11px;font-weight:600;white-space:nowrap;vertical-align:1px}
.ph-pin.contrib{width:36px;height:36px;border:2px solid transparent;background:linear-gradient(#1a1405,#1a1405) padding-box,conic-gradient(#ffc46e,#f7a6c4,#ffc46e) border-box;box-shadow:0 0 16px rgba(255,196,110,.6)}
.ph-pin.contrib .ap-ico{width:19px;height:19px;stroke:#ffc46e}
.co-line .ap-ico{color:#ffc46e;width:15px;height:15px}
.co-row{border-color:rgba(255,196,110,.5) !important}
.mag-author{color:inherit !important;text-decoration:none;border-bottom:1px solid var(--rule)}
.mag-authorbox{display:flex;gap:18px;align-items:flex-start;max-width:68ch;margin:28px auto 6px;padding:18px 20px;border-top:3px solid var(--rule);background:rgba(239,232,218,.04)}
.mag-authorbox img,.mag-ap{flex:none;width:72px;height:72px;border-radius:50%;object-fit:cover;display:grid;place-items:center;border:2px solid #ffc46e}
.mag-ap svg{width:36px;height:36px;fill:none;stroke:#ffc46e;stroke-width:1.6}
.mag-authorbox b{font:700 22px var(--mag-head);text-transform:uppercase;color:var(--ink)}
.mag-authorbox p{margin:6px 0 0;font:400 15px/1.6 var(--mag-serif);color:var(--ink-soft)}
.mag-author-links{display:flex;flex-wrap:wrap;gap:6px 16px;font:500 11px var(--mag-head) !important;letter-spacing:.14em;text-transform:uppercase}
.mag-author-links a{color:var(--rule) !important;text-decoration:none}
.is-author .mag-authorbox{margin-left:0}
.dev-badge{background:linear-gradient(#0b1626,#0b1626) padding-box,linear-gradient(90deg,#7fd8ff,#9fe3c8) border-box !important;color:#c4ecff !important}
.ph-pin.dev{width:36px;height:36px;border:2px solid #7fd8ff;background:#06151d;box-shadow:0 0 16px rgba(127,216,255,.55)}
.ph-pin.dev .ap-ico{width:19px;height:19px;stroke:#7fd8ff}
.dev-line .ap-ico{color:#7fd8ff;width:15px;height:15px}

/* Write for the Journal */
.mag-write{color:var(--rule) !important;text-decoration:none;font-weight:700}
.mag-write:hover{text-decoration:underline}
.is-write .mag-deck{max-width:60ch}
.j-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:760px}
.j-list li{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--hair);background:rgba(239,232,218,.03)}
.j-list li > div{flex:1;display:grid;gap:4px}
.j-list b{font:700 18px/1.15 var(--mag-head);text-transform:uppercase;color:var(--ink)}
.j-list small{font-size:12px;color:var(--ink-soft)}
.j-st{justify-self:start;padding:2px 9px;border:1px solid var(--hair);border-radius:999px;font:600 11px var(--sans);letter-spacing:.06em;color:var(--ink-soft)}
.j-st.rev{border-color:#ffc46e;color:#ffd9a0}.j-st.chg{border-color:#ff8a7d;color:#ffb3a8}.j-st.pub{border-color:#7ed69b;color:#bff3dc}.j-st.rej{opacity:.6}
.j-note{margin:6px 0 0;padding:8px 12px;border-left:3px solid var(--rule);background:rgba(217,72,59,.08);font:italic 15px/1.5 var(--mag-serif);color:var(--ink)}
.j-help{max-width:68ch;font-size:13px;color:var(--ink-soft);line-height:1.6}
.j-form{display:grid;gap:12px;max-width:820px;margin-top:16px}
.j-form label{display:grid;gap:6px;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.j-form label small{text-transform:none;letter-spacing:0;font-weight:400}
.j-form input:not([type=checkbox]):not([type=file]),.j-form select,.j-form textarea{width:100%;background:rgba(0,0,0,.25);border:1px solid var(--hair);border-radius:6px;color:var(--ink);padding:10px 12px;font:400 16px/1.5 var(--mag-serif);text-transform:none;letter-spacing:0}
.j-form textarea[name=body]{min-height:380px;font-size:17px;line-height:1.7}
.j-form input:focus,.j-form textarea:focus,.j-form select:focus{outline:none;border-color:var(--rule)}
.j-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.j-cover{display:flex;align-items:center;gap:14px;padding:10px;border:1px dashed var(--hair)}
.j-cover img{width:160px;aspect-ratio:3/2;object-fit:cover}
.j-cover > span{color:var(--ink-soft);font-size:13px}
.j-cover .pop-btn{display:inline-flex;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);cursor:pointer}
.j-tools{display:flex;flex-wrap:wrap;gap:6px}
.j-tools button,.j-tools .j-photo{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--hair);border-radius:999px;background:none;color:var(--ink);font:500 12.5px var(--sans);letter-spacing:0;text-transform:none;cursor:pointer}
.j-tools button:hover,.j-tools .j-photo:hover{border-color:var(--rule)}
.j-glance{border:1px solid var(--hair);padding:10px 14px}
.j-glance summary{cursor:pointer;font:700 13px var(--mag-head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.j-glance .j-row{margin-top:10px}
.j-form .shot-check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font:400 14px/1.5 var(--sans);color:var(--ink-soft)}
.j-form .shot-check a{color:var(--rule)}
.j-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.j-actions .outline-link{color:var(--ink);border-color:var(--ink);background:transparent;box-shadow:none}
.j-del{color:#ff8a7d !important;margin-left:auto}
.j-preview{margin-top:30px;padding-top:10px;border-top:3px solid var(--rule)}
.adm-preview{margin-top:16px;max-height:70vh;overflow:auto}
.adm-mag{padding:20px !important}
.adm-mag .mag-opening,.adm-mag .mag-hero{margin-left:-20px !important;margin-right:-20px !important}

/* The crew */
.crew-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.crew-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.crew-card{display:grid;gap:8px;align-content:start;padding:22px 20px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--glass);text-align:center;justify-items:center}
.crew-card.is-co{border-color:rgba(255,196,110,.5);box-shadow:0 0 30px rgba(255,196,110,.08)}
.crew-card.is-dev{border-color:rgba(127,216,255,.5)}
.crew-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line-strong);background:#081322}
.is-co .crew-avatar{border:2px solid transparent;background:linear-gradient(#1a1405,#1a1405) padding-box,conic-gradient(#ffc46e,#f7a6c4,#ffc46e) border-box;box-shadow:0 0 22px rgba(255,196,110,.35)}
.is-dev .crew-avatar{border-color:#7fd8ff;box-shadow:0 0 22px rgba(127,216,255,.3)}
.crew-avatar svg{width:38px;height:38px;fill:none;stroke:#ffc46e;stroke-width:1.6;stroke-linecap:round}
.is-dev .crew-avatar svg{stroke:#7fd8ff}
.crew-avatar span{font:500 26px var(--display);color:#fff}
.crew-card h3{margin:4px 0 0;font:500 24px/1.15 var(--display);color:var(--head)}
.crew-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0}
.crew-badges .co-badge,.crew-badges .xp-badge{margin:0}
.crew-badges svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;vertical-align:-2px}
.crew-base{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:13px;color:var(--soft)}
.crew-base svg{width:14px;height:14px;color:var(--accent)}
.crew-bio{margin:0;font-size:14px;line-height:1.6;color:var(--soft)}
.crew-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:4px 0 0;font-size:13px}
.crew-links a{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.crew-links a:hover{text-decoration:underline}
.crew-links svg{width:13px;height:13px}
.crew-join{margin:26px 0 0;text-align:center;color:var(--soft)}
.crew-meet{display:inline-block;margin:10px 0 0 14px}
.guide-downloads{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:12px 16px;border:1px solid rgba(255,196,110,.45);border-radius:14px;background:rgba(255,196,110,.05)}
.guide-downloads .eyebrow{flex-basis:100%;color:#ffd9a0}
.guide-downloads a{padding:7px 14px;border:1px solid var(--line-strong);border-radius:999px;color:#fff;text-decoration:none;font-size:13.5px}
.guide-downloads a:hover{border-color:#ffc46e}

/* ---------- Journal «Field Notes»: carta chiara, inchiostro, rosso (solo Journal) ---------- */
#journal.content-page{background:#f7f3ec;color:#111}
.mag.fn{--paper:#f7f3ec;--ink:#111;--ink-soft:#4b4843;--rule:#b20d0d;--hair:#d3cec5;--fn-line:#aaa49b;--mag-head:Arial,"Helvetica Neue",sans-serif;--mag-serif:Georgia,"Times New Roman",serif;
  background:none;border:0;border-radius:0;box-shadow:none;padding:0;max-width:1540px;margin:0 auto;color:var(--ink);font-family:var(--mag-serif)}
.fn a{color:inherit;text-decoration:none}
.fn-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:clamp(32px,5vw,76px);align-items:start}
.fn-main{min-width:0}
.fn-side{position:sticky;top:110px;margin-top:48px;padding-left:20px;border-left:1px solid var(--fn-line);font-family:var(--mag-head)}
.fn-side-label{font-size:10px;letter-spacing:.17em;color:var(--ink-soft);font-weight:700;margin:0 0 14px;text-transform:uppercase}
.fn-nav{display:flex;flex-direction:column;margin-bottom:30px}
.fn-nav a{font-size:12px;line-height:1.35;padding:11px 0;border-top:1px solid var(--hair);letter-spacing:.04em;color:var(--ink)}
.fn-nav a:hover,.fn-nav a.active{color:var(--rule)}
.fn-nav a.active::before{content:"/ ";font-weight:700}
.fn-nav .fn-write{color:var(--rule);font-weight:700}
.fn-heading{display:flex;align-items:center;gap:24px;padding:34px 0 24px;border-bottom:1px solid #6e6a64}
.fn-heading h1{font:700 clamp(48px,5.3vw,68px)/1 var(--mag-serif);letter-spacing:-.045em;margin:0;color:var(--ink);text-transform:none}
.fn-heading h1::after{content:none}
.fn-slash{height:58px;width:2px;flex:0 0 2px;background:var(--rule);transform:skew(-25deg);margin:0 4px}
.fn-tagline{margin:0;font:italic 700 clamp(16px,1.5vw,21px)/1.3 var(--mag-serif);letter-spacing:.015em}
.fn-main:has(> #journalLayout[hidden]) .fn-heading{display:none}
.fn-list{padding-top:20px}
.fn-entry{display:grid;grid-template-columns:62px minmax(0,1fr) minmax(210px,34%);gap:clamp(18px,2.2vw,32px);align-items:center;padding:22px 0;border-bottom:1px solid var(--fn-line);min-width:0}
.fn-num{align-self:stretch;min-height:120px;display:flex;flex-direction:column;justify-content:center;padding-left:10px;border-right:1px solid #77716b;font:400 27px var(--mag-serif)}
.fn-num::after{content:"";display:block;width:35px;height:2px;background:var(--rule);margin-top:14px}
.fn-copy{min-width:0;padding:4px 0}
.fn-cat{font:700 12px var(--mag-head);letter-spacing:.12em;color:var(--rule);text-transform:uppercase;margin:0 0 7px}
.fn-entry h2{font:700 clamp(25px,2.3vw,35px)/1.08 var(--mag-serif);letter-spacing:-.035em;margin:0 0 9px;color:var(--ink);overflow-wrap:break-word;text-transform:none}
.fn-desc{font:400 16px/1.38 var(--mag-serif);margin:0 0 12px;max-width:590px;color:var(--ink)}
.fn-meta{font:700 10px/1.5 var(--mag-head);letter-spacing:.13em;text-transform:uppercase;margin:0;color:var(--ink-soft)}
.fn-entry img,.fn-noimg{display:block;width:100%;height:clamp(145px,15vw,205px);object-fit:cover;filter:grayscale(100%);background:#e1ddd5;transition:filter .5s ease;border:0;border-radius:0;margin:0;aspect-ratio:auto}
.fn-noimg{display:grid;place-items:center;color:#777;font:10px var(--mag-head);letter-spacing:.12em;text-transform:uppercase}
.fn-entry:hover h2{color:var(--rule)}
.fn-entry:hover img{filter:grayscale(0)}
.fn-empty{max-width:640px;padding:30px 0}
.fn-empty h2{font:700 clamp(32px,4vw,48px)/1.05 var(--mag-serif);letter-spacing:-.03em;margin:0 0 12px;color:var(--ink)}
.fn-empty p:last-child{font:400 17px/1.6 var(--mag-serif);color:var(--ink-soft)}
.fn-section{margin:32px 0 0;font:700 11px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);border-top:1px solid var(--ink);padding-top:12px}

/* articolo */
.fn .mag-article{max-width:none;margin:0;border:0;padding:28px 0 0;color:var(--ink);line-height:1.6}
.fn-back,.fn .mag-back{display:inline-block;color:var(--rule) !important;font:700 11px var(--mag-head);letter-spacing:.12em;text-transform:uppercase;margin:0 0 22px}
.fn-kicker{text-align:center;color:var(--rule);font:700 11px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;margin:8px 0 18px}
.fn-title{font:400 clamp(42px,5.2vw,70px)/1.02 var(--mag-serif);letter-spacing:-.045em;text-align:center;max-width:900px;margin:0 auto 18px;color:var(--ink);text-transform:none}
.fn-title::after{content:none}
.fn-deck{font:italic 400 clamp(18px,1.8vw,23px)/1.4 var(--mag-serif);text-align:center;color:#46413b;max-width:780px;margin:0 auto 18px}
.fn-byline{font:400 10px var(--mag-head);letter-spacing:.12em;text-transform:uppercase;text-align:center;color:var(--ink-soft);margin:0 auto 28px;max-width:none}
.fn-byline .mag-author{color:var(--ink) !important;font-weight:700;border-bottom:1px solid var(--rule)}
.fn-hero{margin:0 0 32px;position:relative}
.fn-hero img{width:100%;height:clamp(260px,40vw,520px);object-fit:cover;display:block;filter:grayscale(100%);background:#e5e0d7;margin:0;border:0;border-radius:0;aspect-ratio:auto}
.fn-hero figcaption{margin-top:8px;text-align:center;font:italic 13px var(--mag-serif);color:var(--ink-soft)}
.fn .mag-body.fn-body{margin:0;column-count:2;column-gap:42px;column-rule:1px solid var(--hair);column-fill:balance;font:400 15px/1.62 var(--mag-serif);color:var(--ink)}
.fn-body p{margin:0 0 11px;text-align:left;hyphens:manual;max-width:none}
.fn-body > p:first-of-type::first-letter{float:none;font:inherit;margin:0;color:inherit}
.fn-drop{float:left;font:400 4.6em/.8 var(--mag-serif);margin:.04em .07em 0 0;color:var(--ink)}
.fn-first{break-inside:avoid}
.mag.fn{scroll-margin-top:96px}
.fn-body h2,.fn-body h3{column-span:none;break-after:avoid;break-inside:avoid;font:700 23px/1.12 var(--mag-serif);letter-spacing:-.025em;text-transform:none;margin:.9em 0 10px;color:var(--ink)}
.fn-body h3{font-size:19px}
.fn-body > :first-child{margin-top:0}
.fn-body strong{color:var(--ink)}
.fn-body a{color:var(--rule);text-decoration:underline}
.fn-body .mag-fig,.fn-body .mag-spread{column-span:all;width:auto !important;margin:1.4em 0 !important;transform:none !important}
.fn-body .mag-fig img{max-height:80vh}
.fn-body .mag-fig figcaption{font:italic 13px/1.5 var(--mag-serif);color:var(--ink-soft);text-align:center}
.fn-body blockquote{column-span:all;margin:1em 0;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font:italic 400 clamp(21px,2.4vw,28px)/1.35 var(--mag-serif);color:var(--ink);text-align:center;width:auto !important;transform:none !important}
.fn-end{text-align:center;font:italic 19px var(--mag-serif);border-top:1px solid var(--ink);padding:22px 0;margin:22px 0 0;max-width:none;color:var(--ink)}
.fn-foot{font:9px var(--mag-head);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);text-align:center;margin:38px 0 0 !important;max-width:none !important}
.fn .mag-glance{max-width:none;margin:0 0 28px;padding:16px 20px;border-top:3px solid var(--rule);border-bottom:1px solid var(--fn-line);background:#efe9df}
.fn .mag-glance dl{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.fn .mag-glance-title,.fn .mag-glance dt{font-family:var(--mag-head)}
.fn .mag-authorbox{max-width:none;margin:28px 0 6px;background:#efe9df;border-top:3px solid var(--rule)}
.fn .mag-authorbox b{font:700 22px var(--mag-serif);text-transform:none}
.fn .mag-authorbox img,.fn .mag-ap{border-color:var(--rule)}
.fn .mag-ap svg{stroke:var(--rule)}
.fn .article-actions{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;border-top:1px solid var(--fn-line);margin-top:28px;padding-top:18px}
.fn .article-actions .fn-back{margin:0}
.fn .outline-link{color:var(--ink);border-color:var(--ink);background:transparent;box-shadow:none}

/* Write for the Journal e anteprime sulla carta */
.fn .is-write > h2,.fn .is-author > h2{font:700 clamp(36px,4.6vw,58px)/1.02 var(--mag-serif);letter-spacing:-.04em;text-transform:none;color:var(--ink);max-width:none}
.fn .mag-kicker{color:var(--rule);font-family:var(--mag-head)}
.fn .mag-deck{color:var(--ink-soft);font-family:var(--mag-serif)}
.fn .mag-section{font-family:var(--mag-head);border-top-color:var(--rule)}
.fn .j-list li{background:#fffdf8;border-color:var(--fn-line)}
.fn .j-list b{font:700 19px/1.2 var(--mag-serif);text-transform:none}
.fn .j-form input:not([type=checkbox]):not([type=file]),.fn .j-form select,.fn .j-form textarea{background:#fffdf8;border-color:var(--fn-line);color:var(--ink)}
.fn .j-st.rev{border-color:#b7791f;color:#8a5a12}.fn .j-st.chg{border-color:var(--rule);color:var(--rule)}.fn .j-st.pub{border-color:#2f7d4f;color:#1f5e3a}
.fn .j-note{background:rgba(178,13,13,.06)}
.fn .j-tools button,.fn .j-tools .j-photo,.fn .j-cover .pop-btn,.fn .pop-btn{color:var(--ink);border-color:var(--fn-line);background:#fffdf8}
.fn .j-del{color:var(--rule) !important}
.fn .j-preview{border-top-color:var(--rule)}
.adm-mag.fn{background:#f7f3ec;padding:20px !important}

@media (max-width:900px){
  .fn-layout{grid-template-columns:minmax(0,1fr) 150px;gap:26px}
  .fn-entry{grid-template-columns:48px minmax(0,1fr) minmax(160px,32%);gap:15px}
  .fn-entry img,.fn-noimg{height:145px}
  .fn-desc{font-size:14px}
}
@media (max-width:680px){
  .fn-layout{display:flex;flex-direction:column;gap:0}
  .fn-side{position:static;order:-1;width:100%;margin:0;padding:0 0 12px;border-left:0;border-bottom:1px solid var(--fn-line)}
  .fn-side-label{margin:10px 0 6px}
  .fn-nav{flex-direction:row;overflow-x:auto;gap:18px;margin-bottom:4px;scrollbar-width:none}
  .fn-nav a{white-space:nowrap;border:0;padding:4px 0;font-size:11px}
  .fn-heading{gap:14px;flex-wrap:wrap;padding:24px 0 20px}
  .fn-heading h1{font-size:48px}
  .fn-slash{height:43px}
  .fn-tagline{width:100%;font-size:16px}
  .fn-list{padding-top:10px}
  .fn-entry{grid-template-columns:38px minmax(0,1fr);gap:12px;padding:18px 0;align-items:start}
  .fn-num{grid-column:1;grid-row:1/3;min-height:100%;padding:4px 0 0;font-size:21px}
  .fn-num::after{width:25px;margin-top:10px}
  .fn-copy{grid-column:2;grid-row:1;padding:0}
  .fn-entry img,.fn-noimg{grid-column:2;grid-row:2;height:clamp(130px,48vw,220px);margin-top:13px}
  .fn-entry h2{font-size:clamp(25px,7vw,34px)}
  .fn-desc{font-size:15px;line-height:1.4;margin-bottom:9px}
  .fn-meta{font-size:9px;letter-spacing:.1em}
  .fn-title{font-size:42px}
  .fn-deck{font-size:18px}
  .fn-hero img{height:250px}
  .fn .mag-body.fn-body{column-count:1;column-rule:0}
}
.fn .mag-article p.fn-end,.fn .mag-article p.fn-byline,.fn .mag-article p.fn-foot,.fn .mag-article .fn-body p{max-width:none}
.fn .mag-article p.fn-deck{max-width:780px}
.fn .mag-article p.fn-kicker{max-width:none}

/* HOME HERO — animazione terminale: solo presentazione, nessuna logica applicativa */
.hero-copy h1{
  display:block;width:fit-content;max-width:100%;margin:0 auto 10px;
  overflow:hidden;white-space:nowrap;
  font:500 clamp(22px,3.2vw,44px)/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.02em;text-transform:none;color:#78ff9b;
  text-shadow:0 0 8px rgba(74,255,132,.8),0 0 24px rgba(35,255,112,.42);
  border-right:2px solid #78ff9b;
  clip-path:inset(0 100% 0 0);
  animation:fc-title-type 1.55s steps(50,end) .35s forwards,fc-terminal-caret .8s step-end .35s infinite;
}
.hero-copy .hero-tagline{
  display:block;width:fit-content;max-width:100%;margin:0 auto 28px;
  overflow:hidden;white-space:nowrap;
  font:400 clamp(12px,1.25vw,16px)/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.025em;text-transform:none;color:#42f5a1;
  text-shadow:0 0 8px rgba(42,255,158,.65),0 0 20px rgba(42,255,158,.28);
  border-right:2px solid #42f5a1;
  clip-path:inset(0 100% 0 0);
  animation:fc-subtitle-type 2.1s steps(100,end) 2.05s forwards,fc-terminal-caret .8s step-end 2.05s infinite;
}
@keyframes fc-title-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fc-subtitle-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fc-terminal-caret{0%,49%{border-right-color:currentColor}50%,100%{border-right-color:transparent}}
@media (max-width:600px){
  .hero-copy h1{font-size:clamp(17px,4.5vw,25px)}
  .hero-copy .hero-tagline{font-size:clamp(9px,2.4vw,12px);letter-spacing:0}
}
@media (prefers-reduced-motion:reduce){
  .hero-copy h1,.hero-copy .hero-tagline{
    width:fit-content;max-width:100%;border-right:0;overflow:visible;white-space:normal;
    clip-path:none;animation:none;
  }
}


/* Viaggi: sottosezioni nel pannello, collezioni nell'elenco e nella Gallery */
.sub-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.sub-chips button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(3,9,18,.55);color:var(--soft);font:500 12.5px var(--sans);cursor:pointer}
.sub-chips button small{color:var(--muted);font-size:11px}
.sub-chips button:hover{color:#fff;border-color:var(--accent)}
.sub-chips button.on{color:#fff;border-color:var(--accent);background:rgba(156,200,255,.14)}
.trip-coll{margin:14px 0 6px;font:600 10.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#9cc8ff}
.trip-coll:first-of-type{margin-top:4px}
.gallery-collections{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 18px}
.gallery-collections .coll-label{font:600 10.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.gallery-collections button{padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;background:none;color:var(--soft);font:500 13px var(--sans);cursor:pointer}
.gallery-collections button:hover{color:#fff;border-color:var(--accent)}
.gallery-collections button.on{color:#fff;border-color:var(--accent);background:rgba(156,200,255,.14)}

/* lightbox: il banner «Interested in this photo?» sparisce dopo 10 secondi */
.photo-interest{transition:opacity .7s ease,transform .7s ease}
.photo-interest.pi-gone{opacity:0;transform:translateY(12px);pointer-events:none}
.lightbox-full.info-hidden .lightbox-tools{opacity:.45;transition:opacity .3s}
.lightbox-full.info-hidden .lightbox-tools:hover,.lightbox-full.info-hidden .lightbox-tools:focus-within{opacity:1}

/* ---------- Home: astronavi delle novità (icona per tipo, area di clic ampia) e legenda ---------- */
.ship{width:64px;height:64px}
.ship::before{content:"";position:absolute;inset:6px;border-radius:50%}
.ship-ico{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;display:grid;place-items:center;border-radius:50%;
  background:rgba(4,12,24,.92);border:2px solid var(--c);box-shadow:0 0 14px var(--c),0 0 0 4px rgba(4,12,24,.35);font-size:14px;line-height:1;animation:shipPing 2.4s ease-out infinite;transition:transform .2s}
.ship:hover .ship-ico,.leaflet-marker-icon:focus .ship-ico{transform:scale(1.18)}
.news-legend{position:absolute;z-index:3;top:calc(var(--header-h,72px) + 14px);right:var(--gutter-r,24px);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:min(560px,70vw);pointer-events:none}
.news-legend span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 5px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);border-radius:999px;background:rgba(4,12,24,.72);font:500 11px var(--sans);letter-spacing:.06em;color:#e7eef6;backdrop-filter:blur(4px)}
.news-legend i{font-style:normal;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--c);font-size:10px}
@media (max-width:700px){.news-legend{left:12px;right:12px;justify-content:center;max-width:none;top:calc(var(--header-h,64px) + 8px)}.news-legend span{font-size:10px;padding:3px 8px 3px 4px}}

/* pulsante in fondo al centro: «Scroll to explore fabiocostaph.com» */
.hero-scroll-label{width:auto;height:auto;display:inline-flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;cursor:pointer;font:500 10.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#dfe6ec}
.hero-scroll-label span{white-space:nowrap}
.hero-scroll-label svg{animation:scrollHint 2.2s ease-in-out infinite}
@keyframes scrollHint{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (max-width:700px){.hero-scroll-label{font-size:9px;letter-spacing:.14em}.hero-scroll-label span{white-space:normal;max-width:160px;text-align:center}}
@media (prefers-reduced-motion:reduce){.hero-scroll-label svg{animation:none}}

/* ---------- Home: il sistema solare ---------- */
.sys{position:relative;padding:clamp(40px,6vw,72px) 0 clamp(36px,5vw,60px);background:#02050a;overflow:hidden;scroll-margin-top:var(--header-h,64px)}
.sys-head{text-align:center;max-width:760px;margin:0 auto clamp(14px,2.4vw,26px);padding:0 20px}
.sys-head h2{margin:8px 0 10px;font:500 clamp(28px,3.6vw,44px)/1.1 var(--display);color:#fff}
.sys-hint{margin:0;color:var(--soft);font-size:15px;line-height:1.6}
.sys-hint b{color:#fff;font-weight:500}
.sys-viewport{position:relative;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sys-viewport::-webkit-scrollbar{display:none}
.sys-stage{position:relative;width:100%;aspect-ratio:3/1;background:#02050a var(--img) center/100% 100% no-repeat;overflow:hidden;user-select:none;-webkit-user-select:none}
.sys-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.0),rgba(255,255,255,0));transition:background .3s}
.sys-stage.flash::after{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.35),rgba(255,255,255,0) 60%)}
.sys-swipe{display:none;text-align:center;margin:10px 0 0;font:500 11px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* corpi celesti: zona cliccabile rotonda sopra il pianeta dell'immagine */
.sys-body{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:calc(var(--r) * 2%);aspect-ratio:1;transform:translate(-50%,-50%);
  padding:0;border:0;border-radius:50%;background:none;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent}
.sys-body::before{content:"";position:absolute;inset:-60%;border-radius:50%}  /* area di tocco più ampia per i pianeti piccoli */
.sys-mercury::before{inset:-110%}
.sys-zoom{position:absolute;inset:0;border-radius:50%;overflow:hidden;opacity:0;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .7s,opacity .4s}
.sys-zoom img{position:absolute;height:auto;max-width:none;pointer-events:none}
.sys-ring{position:absolute;inset:-14%;border-radius:50%;border:1.5px solid rgba(190,220,255,0);transition:border-color .3s,inset .4s;pointer-events:none}
.sys-body:hover .sys-ring,.sys-body:focus-visible .sys-ring{border-color:rgba(190,220,255,.55);inset:-20%}
.sys-body:focus-visible{outline:none}
.sys-body.on{z-index:4}
.sys-body.on .sys-zoom{opacity:1;transform:scale(1.22);filter:brightness(1.35) saturate(1.15);animation:sysGlow 2.6s ease-in-out infinite}
.sys-body.on .sys-ring{border-color:rgba(255,220,150,.75);inset:-34%;animation:sysPulse 2.6s ease-out infinite}
@keyframes sysGlow{0%,100%{box-shadow:0 0 30px 6px rgba(255,214,150,.35)}50%{box-shadow:0 0 60px 14px rgba(255,214,150,.6)}}
@keyframes sysPulse{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.35);opacity:0}}
.sys-sun .sys-zoom{transform-origin:100% 50%}
.sys-sun.on .sys-zoom{transform:scale(1.04);filter:brightness(1.25) saturate(1.2)}
.sys-sun .sys-ring{display:none}
.sys-stage.has-sel .sys-body:not(.on){filter:brightness(.7)}

.sys-label{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);transform:translateX(-50%);z-index:3;padding:3px 10px;border:1px solid rgba(220,230,245,.25);border-radius:999px;background:rgba(2,6,12,.6);
  font:600 clamp(9px,.85vw,11.5px) var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#dfe8f3;white-space:nowrap;cursor:pointer;transition:color .3s,border-color .3s,background .3s}
.sys-label.on{color:#1a1206;background:#ffd9a0;border-color:#ffd9a0}
.sys-label:hover{border-color:rgba(220,230,245,.7)}

/* lune (sottosezioni): orbitano lente, si fermano al passaggio del mouse */
.sys-moons{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:calc(var(--R) * 2%);aspect-ratio:1;transform:translate(-50%,-50%);z-index:5;pointer-events:none}
.sys-orbit{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(200,220,255,.28);animation:sysOrbit 60s linear infinite}
.sys-moons:hover .sys-orbit,.sys-moons:focus-within .sys-orbit,.sys-moons:hover .sys-moon,.sys-moons:focus-within .sys-moon{animation-play-state:paused}
@keyframes sysOrbit{to{transform:rotate(360deg)}}
.sys-moon{position:absolute;left:var(--mx);top:var(--my);transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 3px;border:1px solid rgba(200,220,255,.35);border-radius:999px;
  background:rgba(4,10,20,.86);color:#eef4fb;font:500 clamp(10px,.9vw,12px) var(--sans);white-space:nowrap;cursor:pointer;pointer-events:auto;animation:sysCounter 60s linear infinite;max-width:180px}
.sys-moon-name{overflow:hidden;text-overflow:ellipsis}
.sys-moon:hover,.sys-moon:focus-visible{border-color:#ffd9a0;color:#fff;outline:none}
.sys-moon-ball{flex:none;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f4f1ea,#9a958c 60%,#4a4742);box-shadow:0 0 8px rgba(255,255,255,.35)}
@keyframes sysCounter{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}

/* l'astronave */
.sys-ship{position:absolute;z-index:6;width:clamp(44px,4.4vw,64px);aspect-ratio:2;margin:0;transform:translate(-50%,-50%) rotate(var(--a,0deg)) scale(var(--s,1));opacity:0;pointer-events:none;
  transition:left 1.3s cubic-bezier(.45,.05,.25,1),top 1.3s cubic-bezier(.45,.05,.25,1),transform .6s ease,opacity .4s;filter:drop-shadow(0 0 8px rgba(156,200,255,.6))}
.sys-ship.show{opacity:1}
.sys-ship svg{position:relative;width:100%;height:100%;display:block}
.sys-flame{position:absolute;right:88%;top:50%;width:0;height:38%;transform:translateY(-50%);border-radius:50% 0 0 50%;background:linear-gradient(90deg,transparent,#ff7a2e 45%,#ffd36e 80%,#fff);opacity:0;transition:width .3s,opacity .3s}
.sys-ship.burn .sys-flame{width:85%;opacity:1;animation:sysFlame .12s linear infinite alternate}
.sys-ship.burn{animation:sysShake .09s linear 4}
.sys-ship.land{transition:left 1s cubic-bezier(.6,0,.9,.6),top 1s cubic-bezier(.6,0,.9,.6),transform 1s ease-in,opacity .5s .7s;opacity:0}
@keyframes sysFlame{from{width:70%;opacity:.85}to{width:100%;opacity:1}}
@keyframes sysShake{0%,100%{margin-left:0}50%{margin-left:2px}}

/* comete = novità */
.sys-comets{position:absolute;inset:0;z-index:3;pointer-events:none}
.sys-comet{position:absolute;left:0;top:var(--cy);display:flex;align-items:center;gap:0;padding:0;border:0;background:none;cursor:pointer;pointer-events:auto;color:#fff;
  animation:sysCometStage var(--dur) linear var(--delay) infinite}
.sys-comet:hover,.sys-comet:focus-visible{animation-play-state:paused;outline:none}
.sys-comet-tail{width:clamp(60px,7vw,120px);height:3px;border-radius:3px;background:linear-gradient(90deg,var(--c),transparent);opacity:.85;order:2}
.sys-comet-head{order:1;flex:none;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 10px 3px var(--c),0 0 24px 6px var(--c)}
.sys-comet-tag{order:0;margin-right:8px;display:grid;padding:4px 10px;border:1px solid var(--c);border-radius:10px;background:rgba(3,8,16,.82);font:600 10.5px var(--sans);letter-spacing:.06em;text-align:right;white-space:nowrap;max-width:220px}
.sys-comet-tag small{font-weight:400;letter-spacing:0;color:#cfd9e6;overflow:hidden;text-overflow:ellipsis}
.sys-comet:hover .sys-comet-tag,.sys-comet:focus-visible .sys-comet-tag{background:rgba(3,8,16,.96)}
@keyframes sysCometStage{from{left:100%}to{left:-25%}}
.sys-comet.still{animation:none;left:var(--still)}

/* scheda della sezione */
.sys-card{position:relative;z-index:7;max-width:760px;margin:clamp(-60px,-4vw,-20px) auto 0;padding:0 16px}
.sys-card-in{padding:18px 22px;border:1px solid var(--line-strong);border-radius:18px;background:rgba(6,14,26,.92);backdrop-filter:blur(8px);box-shadow:0 20px 60px rgba(0,0,0,.5);animation:sysCard .45s ease}
@keyframes sysCard{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sys-card-kick{margin:0 0 6px;font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#9cc8ff}
.sys-card-kick b{color:#ffd9a0;font-weight:600}
.sys-card-desc{margin:0 0 12px;color:var(--soft);font-size:15px;line-height:1.6}
.sys-card-moons,.sys-card-news{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px}
.sys-card-moons > span{font:600 10.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.sys-card-moons button,.sys-card-news button{padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;background:none;color:#eef4fb;font:500 13px var(--sans);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sys-card-moons button:hover{border-color:#ffd9a0}
.sys-card-news button{border-color:var(--c);display:inline-flex;gap:6px;align-items:baseline}
.sys-card-news button small{color:var(--soft);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.sys-card-act{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0}
.sys-card-in.is-default .sys-card-desc{margin:0}
.sys-card-in.is-default .sys-card-news{margin:0}

@media (max-width:760px){
  .sys-stage{width:auto;height:min(58vh,440px);aspect-ratio:3/1}
  .sys-swipe{display:block}
  .sys-card{margin-top:12px}
  .sys-label{font-size:10px;letter-spacing:.12em;padding:3px 8px}
  .sys-moon{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  .sys-orbit,.sys-moon,.sys-comet,.sys-body.on .sys-zoom,.sys-body.on .sys-ring{animation:none}
  .sys-ship{transition:none}
}
@media (max-width:700px){
  .hero-foot{grid-template-columns:1fr;justify-items:center;gap:10px}
  .hero-coords,.hero-tags{display:none}
  .hero-news{order:-1;justify-self:center;text-align:center;max-width:88vw}
  .hero-news .news-item{text-align:center}
}
#sysFly span:not([aria-hidden]){font:inherit !important;letter-spacing:inherit !important}

/* ---------- SPOTS «Explore the Earth» ---------- */
#spots:has(.sx){background:radial-gradient(1200px 800px at 68% 42%,rgba(40,90,190,.28),transparent 60%),radial-gradient(900px 600px at 15% 80%,rgba(30,60,140,.18),transparent 65%),#030a1c}
#spots:has(.sx) > .section-heading{display:none}
.sx{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:clamp(20px,3vw,44px);align-items:stretch;min-height:min(78vh,820px)}
.sx-side{display:flex;flex-direction:column;gap:14px;min-width:0;position:relative;z-index:2}
.sx-kick{margin:0;font:600 13px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#e9eef6}
.sx-kick span{color:#9cc8ff;letter-spacing:.1em;margin-left:6px}
.sx-title{margin:0;font:500 clamp(38px,4.2vw,58px)/1.02 var(--display);color:#fff;letter-spacing:.005em}
.sx-lead{margin:0 0 6px;color:#c9d6e6;font-size:16px;line-height:1.55;max-width:34ch}
.sx-panel{padding:16px;border:1px solid rgba(120,170,255,.28);border-radius:26px;background:linear-gradient(180deg,rgba(10,22,48,.82),rgba(6,14,32,.86));box-shadow:0 0 0 1px rgba(255,255,255,.03) inset,0 20px 60px rgba(0,0,0,.45);backdrop-filter:blur(10px)}
.sx-panel .spots-search{margin:0 0 12px;width:100%;max-width:none}
.sx-groups{display:grid;gap:8px}
.sx-group{border:1px solid rgba(140,180,255,.18);border-radius:18px;background:rgba(4,12,28,.55);transition:border-color .25s,box-shadow .25s}
.sx-group.open{border-color:rgba(140,190,255,.55);box-shadow:0 0 0 1px rgba(140,190,255,.25),0 0 24px rgba(90,150,255,.18)}
.sx-ghead{display:flex;align-items:center;gap:14px;width:100%;padding:12px 14px;border:0;background:none;color:#fff;text-align:left;cursor:pointer;font:inherit}
.sx-gico{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:rgba(255,196,110,.08);border:1px solid rgba(255,196,110,.25)}
.sx-gico svg{width:26px;height:26px;fill:none;stroke:#ffc46e;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sx-gtext{flex:1;min-width:0;display:grid;gap:2px}
.sx-gtext b{font:600 15px var(--sans);letter-spacing:.14em;text-transform:uppercase}
.sx-gtext small{color:#b9c6d8;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sx-gcount{flex:none;font:600 11px var(--sans);color:#9cc8ff;padding:2px 8px;border:1px solid rgba(156,200,255,.35);border-radius:999px}
.sx-chev{flex:none;width:10px;height:10px;border-right:2px solid #dfe8f3;border-bottom:2px solid #dfe8f3;transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s}
.sx-group.open .sx-chev{transform:rotate(-135deg) translate(-2px,-2px)}
.sx-group:not(.on) .sx-gico{opacity:.55}
.sx-gbody{display:none;padding:0 10px 12px;gap:6px}
.sx-group.open .sx-gbody{display:grid}
.sx-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid rgba(220,230,245,.12);border-radius:12px;background:rgba(255,255,255,.02);color:#dfe8f3;font:500 14px var(--sans);text-align:left;cursor:pointer}
.sx-item:hover{border-color:color-mix(in srgb,var(--c,#9cc8ff) 60%,transparent)}
.sx-ico{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--c,#9cc8ff);font-size:13px}
.sx-ico svg{width:15px;height:15px;fill:none;stroke:var(--c,#9cc8ff);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sx-name{flex:1;min-width:0}
.sx-item small{color:#9fb0c6;font-size:12px}
.sx-check{flex:none;width:18px;height:18px;border-radius:6px;border:1.5px solid rgba(220,230,245,.4)}
.sx-item.on .sx-check{background:var(--c,#9cc8ff);border-color:var(--c,#9cc8ff);box-shadow:inset 0 0 0 3px #071226}
.sx-item:not(.on) .sx-ico{opacity:.6}
.sx-go{color:#9fb0c6;font-size:18px}
.sx-item.is-locked{opacity:.75}
.sx-lock{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#ffd9a0;letter-spacing:.06em}
.sx-lock svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
.sx-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 4px 4px;font-size:13px}
.sx-select{display:flex;align-items:center;gap:8px;padding:4px 10px;font:500 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#9fb0c6}
.sx-select select{flex:1;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:6px 10px;font:inherit;text-transform:none;letter-spacing:0}
.sx-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 6px 0;border-top:1px solid rgba(220,230,245,.12);color:#dfe8f3;font-size:14px}
.sx-foot > span{display:inline-flex;align-items:center;gap:8px}
.sx-foot svg{width:18px;height:18px}
.sx-user .spots-user{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;justify-content:flex-start}
.sx-more{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:13px}
.sx-switch-row{margin:0 0 10px;text-align:right}

.sx-stage{position:relative;min-height:min(78vh,820px);border-radius:28px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(40,100,220,.2),transparent 62%),#020818}
.sx-stage::before{content:"";position:absolute;inset:-10%;pointer-events:none;z-index:0;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,transparent 37%,rgba(140,180,255,.10) 37.2%,transparent 37.6%,transparent 46%,rgba(140,180,255,.07) 46.2%,transparent 46.6%,transparent 56%,rgba(140,180,255,.05) 56.2%,transparent 56.6%)}
.sx-stage .map-spots{position:absolute;inset:0;height:auto;border-radius:0;z-index:1}
.sx-stage .leaflet-control-zoom{display:none}
.sx-globe-slot{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;transition:opacity .5s ease}
.sx-stage.on-globe .sx-globe-slot{opacity:1;pointer-events:auto}
.sx-stage.on-globe .map-spots{visibility:hidden}
.sx-stage.on-globe .osm-scan{display:none}
.sx-globe{position:absolute;inset:0;background:transparent}
.sx-globe .maplibregl-canvas{outline:none}
.sx-globe .maplibregl-ctrl-attrib{background:rgba(2,8,20,.6) !important;color:#9fb0c6}
.sx-globe .maplibregl-ctrl-attrib a{color:#c9d6e6}
.sx-gcl{width:var(--s);height:var(--s);display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;color:#fff;font:600 15px var(--sans);
  background:radial-gradient(circle at 40% 35%,rgba(40,80,160,.95),rgba(8,20,48,.95));border:2px solid rgba(170,205,255,.85);box-shadow:0 0 0 5px rgba(120,170,255,.18),0 0 22px rgba(120,170,255,.55);transition:transform .2s}
.sx-gcl:hover,.sx-gcl:focus-visible{transform:scale(1.1);outline:none;border-color:#ffd9a0}
.sx-gpin{width:32px;height:32px;display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;background:rgba(6,16,36,.9);border:2px solid var(--c);box-shadow:0 0 14px var(--c)}
.sx-gpin svg{width:16px;height:16px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sx-gpin:hover{transform:scale(1.12)}
.sx-ctrl{position:absolute;z-index:5;top:18px;right:18px;display:grid;gap:12px;justify-items:center}
.sx-btn{width:46px;height:46px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid rgba(150,190,255,.4);background:rgba(6,16,36,.82);color:#fff;font:400 24px/1 var(--sans);cursor:pointer;backdrop-filter:blur(6px)}
.sx-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sx-btn:hover{border-color:#cfe0ff}
.sx-btn.is-gold{width:52px;height:52px;border:1.5px solid #ffc46e;color:#ffd9a0;box-shadow:0 0 18px rgba(255,196,110,.35)}
.sx-zoom{display:grid;border:1px solid rgba(150,190,255,.4);border-radius:999px;background:rgba(6,16,36,.82);overflow:hidden}
.sx-zoom .sx-btn{border:0;border-radius:0;background:none}
.sx-zoom .sx-btn + .sx-btn{border-top:1px solid rgba(150,190,255,.25)}
.sx-modes{position:absolute;z-index:5;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border:1px solid rgba(150,190,255,.35);border-radius:999px;background:rgba(6,16,36,.85);backdrop-filter:blur(8px)}
.sx-modes button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:1px solid transparent;border-radius:999px;background:none;color:#dfe8f3;font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.sx-modes button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.sx-modes button.on{border-color:#ffc46e;color:#fff;background:rgba(255,196,110,.1);box-shadow:0 0 14px rgba(255,196,110,.25)}
.sx-stage .osm-scan{z-index:5;top:18px;left:18px;right:auto}
.sx-stage .map-fs-btn,.sx-stage .leaflet-control-fullscreen{z-index:6}
.sx-hint{position:absolute;z-index:5;left:50%;top:18px;transform:translateX(-50%);margin:0;padding:6px 14px;border-radius:999px;background:rgba(6,16,36,.85);border:1px solid rgba(150,190,255,.35);font-size:12.5px;color:#dfe8f3}
#spots:has(.sx) .guest-banner{margin-top:18px}
.sx-stage.spots-stage{height:auto;border:1px solid rgba(120,170,255,.22)}
@media (max-width:980px){
  .sx{grid-template-columns:1fr;min-height:0;gap:12px}
  .sx-side{display:contents}
  .sx-kick{order:1}.sx-title{order:2;font-size:34px}.sx-lead{order:3;font-size:14px;margin:0}
  .sx-stage{order:4;min-height:64vh;border-radius:22px}
  .sx-panel{order:5}.sx-user{order:6}.sx-more{order:7}
}
@media (max-width:600px){
  .sx-modes{bottom:12px}
  .sx-modes button{padding:8px 12px;font-size:11px;letter-spacing:.08em;gap:6px}
  .sx-ctrl{top:12px;right:12px;gap:8px}
  .sx-btn{width:40px;height:40px}
  .sx-btn.is-gold{width:44px;height:44px}
  .sx-gtext small{white-space:normal}
}
.sx-globe-slot > .sx-globe{position:absolute !important;inset:0;width:100%;height:100%}
.sx-stage.spots-stage{border-color:transparent;background:transparent;box-shadow:none}
.sx-stage.spots-stage:not(.on-globe){border:1px solid rgba(120,170,255,.25);background:#020818}
/* Explore the Earth sul telefono: ricerca sopra il globo, globo grande, comandi essenziali */
.sx-stage .map-full-ctrl{display:none}
.sx-stage.map-full{border-radius:0 !important}
.sx-stage.map-full .sx-ctrl{top:calc(14px + env(safe-area-inset-top))}
.sx-stage.map-full .sx-modes{bottom:calc(16px + env(safe-area-inset-bottom))}
.sx-globe .maplibregl-canvas-container{touch-action:none}
@media (max-width:980px){
  .sx-panel{display:contents}
  .sx-panel .spots-search{order:4;margin:0}
  .sx-stage{order:5;min-height:0}
  .sx-stage:not(.map-full){height:min(72svh,640px) !important}
  .sx-groups{order:6;padding:12px;border:1px solid rgba(120,170,255,.28);border-radius:22px;background:linear-gradient(180deg,rgba(10,22,48,.82),rgba(6,14,32,.86))}
  .sx-foot{order:7;margin:0;padding:4px 6px 0;border:0}
  .sx-user{order:8}.sx-more{order:9}
  .sx-lead{display:none}
  .sx-kick{font-size:11px}
  .sx-title{font-size:30px;margin-top:-6px}
}
@media (max-width:700px){
  .sx-zoom{display:none}
  .sx-ghead{padding:10px 12px;gap:12px}
  .sx-gico{width:38px;height:38px}
  .sx-gico svg{width:22px;height:22px}
  .sx-gtext b{font-size:14px}
  .sx-item{padding:10px;min-height:46px}
  .sx-gcl{font-size:13px}
  .sx-gpin{width:30px;height:30px}
  .sx-hint{top:auto;bottom:70px;max-width:86%;text-align:center}
}
/* punti sul globo: discreti, come luci viste dallo spazio; si accendono solo al passaggio o al tocco */
.sx-gcl{position:relative;width:var(--s);height:var(--s);padding:0;border-radius:50%;font:600 11px var(--sans);color:transparent;
  background:radial-gradient(circle,rgba(220,235,255,.95) 0,rgba(150,195,255,.55) 35%,rgba(110,160,255,.12) 70%,transparent 72%);
  border:0;box-shadow:none;transition:transform .2s,color .2s}
.sx-gcl::before,.sx-gpin::before{content:"";position:absolute;inset:-12px;border-radius:50%}   /* area di tocco comoda, invisibile */
.sx-gcl span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none}
.sx-gcl.has-n{color:rgba(255,255,255,.88);text-shadow:0 0 4px #04102a,0 0 8px #04102a}
.sx-gcl.has-n span{top:auto;bottom:calc(100% + 2px);transform:translateX(-50%);font-size:10.5px;letter-spacing:.02em}
.sx-gcl:hover,.sx-gcl:focus-visible{transform:scale(1.35);color:#fff;outline:none;opacity:1 !important;
  background:radial-gradient(circle,#fff 0,rgba(255,217,160,.75) 35%,rgba(255,196,110,.18) 70%,transparent 72%)}
.sx-gpin{position:relative;width:12px;height:12px;padding:0;border:0;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px rgba(4,12,28,.55),0 0 8px var(--c);transition:width .2s,height .2s,background .2s}
.sx-gpin span{display:none}
.sx-gpin:hover,.sx-gpin:focus-visible{width:30px;height:30px;background:rgba(6,16,36,.92);border:2px solid var(--c);outline:none;opacity:1 !important}
.sx-gpin:hover span,.sx-gpin:focus-visible span{display:grid;place-items:center;width:100%;height:100%}
.sx-gpin svg{width:15px;height:15px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sx-gpin:hover{transform:none}
@media (max-width:700px){.sx-gcl,.sx-gpin{font-size:10px}.sx-gpin{width:11px;height:11px}}
/* Telefono: globo quasi a tutto schermo, pannello in basso espandibile, comandi a portata di pollice */
.sx-sheet{display:none}
@media (max-width:700px){
  .sx-stage:not(.map-full){height:calc(100svh - var(--header-h,64px) - 150px) !important;min-height:440px}
  .sx-kick{display:none}
  .sx-title{font-size:26px;margin:0}
  .sx-groups{order:initial}
  .sx-stage.has-sheet .sx-sheet{display:block;position:absolute;z-index:7;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom))}
  .sx-sheet .sx-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px;border:1px solid rgba(120,170,255,.3);border-radius:20px;background:rgba(5,13,30,.9);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.45)}
  .sx-sheet .sx-group{position:static;border:1px solid transparent;border-radius:14px;background:none;box-shadow:none}
  .sx-sheet .sx-group.open{border-color:rgba(255,196,110,.6);background:rgba(255,196,110,.08);box-shadow:none}
  .sx-sheet .sx-ghead{flex-direction:column;gap:4px;padding:7px 2px;text-align:center}
  .sx-sheet .sx-gico{width:32px;height:32px;border-radius:10px}
  .sx-sheet .sx-gico svg{width:19px;height:19px}
  .sx-sheet .sx-gtext b{font-size:9.5px;letter-spacing:.1em}
  .sx-sheet .sx-gtext small,.sx-sheet .sx-gcount,.sx-sheet .sx-chev{display:none}
  .sx-sheet .sx-gbody{position:absolute;left:0;right:0;bottom:calc(100% + 8px);max-height:min(46svh,380px);overflow:auto;padding:12px;border:1px solid rgba(120,170,255,.35);border-radius:20px;
    background:rgba(5,13,30,.95);backdrop-filter:blur(10px);box-shadow:0 -10px 30px rgba(0,0,0,.45);animation:sxSheetUp .25s ease}
  .sx-sheet .sx-gbody::before{content:"";display:block;width:40px;height:4px;margin:-4px auto 6px;border-radius:4px;background:rgba(220,230,245,.35)}
  @keyframes sxSheetUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  /* comandi in basso a destra, sopra il pannello; viste al centro */
  .sx-stage.has-sheet .sx-ctrl{top:auto;bottom:calc(150px + env(safe-area-inset-bottom));right:12px}
  .sx-stage.has-sheet .sx-modes{bottom:calc(96px + env(safe-area-inset-bottom));left:12px;transform:none}
  .sx-stage.has-sheet .sx-modes button{padding:8px 10px}
  .sx-stage.has-sheet .sx-modes button span{display:none}
  .sx-stage.has-sheet .sx-modes button.on span{display:inline}
  .sx-stage.sheet-open .sx-ctrl,.sx-stage.sheet-open .sx-modes{opacity:0;pointer-events:none}
  .sx-stage .sx-ctrl,.sx-stage .sx-modes{transition:opacity .2s}
  .sx-stage.has-sheet .osm-scan{top:12px;left:12px}
  .sx-stage.has-sheet .sx-hint{bottom:calc(150px + env(safe-area-inset-bottom));top:auto}
  .sx-foot{padding-top:0}
}
.sx-globe.is-loading{opacity:0}
.sx-globe{transition:opacity .4s}
.sx-subs{display:grid;gap:4px;margin:-2px 0 4px 18px;padding-left:12px;border-left:1px dashed rgba(156,200,255,.3)}
.sx-sub{padding:6px 10px;min-height:0;font-size:13px}
.sx-sub .sx-check{width:16px;height:16px}
@media (max-width:700px){.sx-sub{min-height:40px}}
.sx-stage.is-flying .sx-gcl,.sx-stage.is-flying .sx-gpin{pointer-events:none}

/* ---------- Spots: aggiungi / modifica un luogo, procedura in tre passaggi ---------- */
.wz-dialog{width:min(760px,96vw);max-height:94vh;padding:0;border:1px solid rgba(120,170,255,.35);border-radius:24px;background:linear-gradient(180deg,#0a1630,#060e20);color:#e9eef6;box-shadow:0 30px 90px rgba(0,0,0,.6);display:none;flex-direction:column;overflow:hidden}
.wz-dialog[open]{display:flex}
.wz-dialog::backdrop{background:rgba(2,6,16,.75);backdrop-filter:blur(4px)}
.wz-head{display:flex;align-items:center;gap:16px;padding:16px 20px 12px;border-bottom:1px solid rgba(220,230,245,.1)}
.wz-head h2{margin:2px 0 0;font:500 26px/1.1 var(--display);color:#fff}
.wz-head .dialog-close{position:static;margin-left:auto}
.wz-steps{display:flex;gap:6px;margin:0 0 0 auto;padding:0;list-style:none;counter-reset:wz}
.wz-steps li{counter-increment:wz;display:flex;align-items:center;gap:6px;padding:5px 12px 5px 5px;border:1px solid rgba(220,230,245,.18);border-radius:999px;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#9fb0c6}
.wz-steps li::before{content:counter(wz);width:20px;height:20px;display:grid;place-items:center;border-radius:50%;border:1px solid currentColor;font-size:10px;letter-spacing:0}
.wz-steps li.on{color:#fff;border-color:#ffc46e;background:rgba(255,196,110,.1)}
.wz-steps li.on::before{background:#ffc46e;border-color:#ffc46e;color:#1a1206}
.wz-steps li.done{color:#cfe0ff}
.wz-steps li.done::before{content:"✓"}
.wz-draft{margin:0;padding:8px 20px;font-size:13px;color:#ffd9a0;background:rgba(255,196,110,.08);border-bottom:1px solid rgba(255,196,110,.2)}
.wz-body{flex:1;overflow:auto;padding:16px 20px 20px}
.wz-foot{display:flex;align-items:center;gap:12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid rgba(220,230,245,.1);background:rgba(4,10,24,.9)}
.wz-foot .gate-note{flex:1;margin:0;font-size:13px;min-height:0}
.wz-foot .outline-link{margin:0}
.wz-foot .outline-link[disabled]{opacity:.45;pointer-events:none}
.wz-find{display:grid;gap:12px}
.wz-search{position:relative;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(3,9,18,.7)}
.wz-search svg{width:18px;height:18px;flex:none;fill:none;stroke:#9cc8ff;stroke-width:1.8}
.wz-search input{flex:1;min-width:0;border:0;background:none;color:#fff;font:inherit;font-size:16px;padding:13px 0;outline:none}
.wz-sug{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:1200;max-height:46vh;overflow:auto;padding:6px;border:1px solid var(--line-strong);border-radius:16px;background:#071226;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.wz-quick{display:flex;flex-wrap:wrap;gap:8px}
.wz-quick .pop-btn{flex:1 1 160px;justify-content:center;min-height:44px;font-size:14px}
.wz-map{position:relative;height:min(46vh,420px);border-radius:18px;overflow:hidden;border:1px solid rgba(120,170,255,.3)}
.wz-map #wzMap{position:absolute;inset:0}
.wz-pin{position:absolute;left:50%;top:50%;z-index:800;width:34px;height:46px;margin:-46px 0 0 -17px;pointer-events:none;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 46'%3E%3Cpath d='M17 45S32 30 32 17A15 15 0 0 0 2 17c0 13 15 28 15 28z' fill='%23ffc46e' stroke='%23fff' stroke-width='2'/%3E%3Ccircle cx='17' cy='17' r='5.5' fill='%23071226'/%3E%3C/svg%3E");filter:drop-shadow(0 4px 8px rgba(0,0,0,.6))}
.wz-pin::after{content:"";position:absolute;left:50%;bottom:-4px;width:10px;height:4px;margin-left:-5px;border-radius:50%;background:rgba(0,0,0,.45)}
.wz-map.is-locked .wz-pin{filter:grayscale(1) drop-shadow(0 4px 8px rgba(0,0,0,.6))}
.wz-where{position:absolute;z-index:800;left:10px;right:10px;bottom:10px;margin:0;display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:12px;background:rgba(4,12,28,.88);font-size:13px;color:#dfe8f3}
.wz-where:empty{display:none}
.wz-where svg{width:15px;height:15px;flex:none;fill:none;stroke:#ffc46e;stroke-width:1.8}
.wz-adv summary{cursor:pointer;font-size:13px;color:#9fb0c6}
.wz-adv .gkey-row{margin-top:8px}
.wz-details{display:grid;gap:14px}
.wz-details > label,.wz-info label{display:grid;gap:6px;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9fb0c6}
.wz-details label small{text-transform:none;letter-spacing:0;font-weight:400}
.wz-details input:not([type=checkbox]):not([type=file]),.wz-details textarea,.wz-details select{width:100%;box-sizing:border-box;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:12px;color:#fff;padding:11px 12px;font:400 16px/1.4 var(--sans);text-transform:none;letter-spacing:0}
.wz-details .pay-row{display:flex;gap:6px}
.wz-details .pay-row select{width:auto}
.wz-name input{font-size:18px !important}
.wz-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;border:0}
.wz-groups legend{margin-bottom:8px;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9fb0c6}
.wz-group{display:grid;justify-items:center;gap:6px;padding:12px 6px;border:1px solid rgba(140,180,255,.25);border-radius:16px;background:rgba(4,12,28,.6);color:#dfe8f3;font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.wz-group svg{width:26px;height:26px;fill:none;stroke:#ffc46e;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wz-group.on{border-color:#ffc46e;background:rgba(255,196,110,.1);color:#fff}
.wz-cats,.wz-subs{display:flex;flex-wrap:wrap;gap:8px}
.wz-cat{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgba(220,230,245,.2);border-radius:999px;background:none;color:#dfe8f3;font:500 14px var(--sans);cursor:pointer}
.wz-cat svg{width:16px;height:16px;fill:none;stroke:var(--c);stroke-width:1.8}
.wz-cat.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff}
.wz-sub{padding:7px 13px;border:1px dashed rgba(220,230,245,.3);border-radius:999px;background:none;color:#c9d6e6;font:500 13px var(--sans);cursor:pointer}
.wz-sub.on{border-style:solid;border-color:#9cc8ff;background:rgba(156,200,255,.12);color:#fff}
.wz-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:12px;border:1px solid rgba(220,230,245,.14);border-radius:16px}
.wz-info legend{padding:0 6px;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9fb0c6}
.wz-community{display:grid;gap:10px;padding:16px;border:1px solid rgba(255,196,110,.3);border-radius:16px;background:rgba(255,196,110,.05)}
.wz-community p{margin:0;color:#c9d6e6}
.wz-label{margin:0 0 6px;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9fb0c6}
.wz-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.wz-th{position:relative;width:76px;height:76px;border-radius:12px;overflow:hidden;border:1px solid rgba(220,230,245,.2)}
.wz-th img{width:100%;height:100%;object-fit:cover}
.wz-th.is-new{border-color:#ffc46e}
.wz-th button{position:absolute;top:4px;right:4px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;cursor:pointer}
.wz-th button svg{width:12px;height:12px}
.wz-addph{display:inline-flex;cursor:pointer}
.wz-review{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px}
.wz-card{padding:16px;border:1px solid rgba(120,170,255,.3);border-radius:18px;background:rgba(4,12,28,.6)}
.wz-card h3{margin:6px 0;font:500 24px/1.15 var(--display);color:#fff}
.wz-kind{display:inline-flex;align-items:center;gap:6px;margin:0;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--c)}
.wz-kind svg{width:15px;height:15px;fill:none;stroke:var(--c);stroke-width:1.8}
.wz-place{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:#9fb0c6;font-size:13px}
.wz-place svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.wz-desc{margin:0 0 10px;color:#dfe8f3;line-height:1.55;white-space:pre-line}
.wz-dl,.pop-info{display:grid;gap:6px;margin:0 0 8px}
.wz-dl div,.pop-info div{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:13px}
.wz-dl dt,.pop-info dt{color:#9fb0c6}
.wz-dl dd,.pop-info dd{margin:0;color:#fff}
.pop-info div{grid-template-columns:96px 1fr;font-size:12.5px}
.wz-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.wz-tags span{padding:3px 9px;border:1px solid rgba(220,230,245,.2);border-radius:999px;font-size:12px}
.wz-ph-count{margin:8px 0 0;font-size:13px;color:#ffd9a0}
.wz-ph-count:empty{display:none}
.wz-mini{min-height:220px;border-radius:18px;overflow:hidden;border:1px solid rgba(120,170,255,.3)}
.wz-similar{grid-column:1/-1}
.wz-sim{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wz-sim li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid rgba(255,196,110,.35);border-radius:12px;background:rgba(255,196,110,.05)}
.wz-sim li span{display:grid;gap:2px}
.wz-sim small{color:#9fb0c6}
.pop-own{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0}
.pop-own .spot-delete{margin:0}
.st-chip{border-color:#ffc46e !important;color:#ffd9a0 !important}
@media (max-width:700px){
  .wz-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0;border:0}
  .wz-head{flex-wrap:wrap;padding:12px 14px 10px;gap:10px}
  .wz-head h2{font-size:22px}
  .wz-steps{order:3;width:100%;margin:0;justify-content:space-between}
  .wz-steps li{flex:1;justify-content:center;padding:4px 8px 4px 4px;font-size:10px}
  .wz-body{padding:12px 14px 16px}
  .wz-map{height:46svh}
  .wz-groups{gap:6px}
  .wz-group{padding:10px 2px;font-size:10px;letter-spacing:.04em}
  .wz-review{grid-template-columns:1fr}
  .wz-mini{min-height:180px}
  .wz-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .wz-foot .outline-link{padding:12px 18px}
}
.wz-foot #wzNext{margin-left:auto}

/* ---------- MY SPOTS: profilo e dashboard (sobria, pratica) ---------- */
#spots:has(.me) > .section-heading{display:none}
.me{max-width:980px;margin:0 auto;display:grid;gap:16px}
.me-back{justify-self:start}
.me-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.me-head.small{gap:14px}
.me-avatar{flex:none;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid #ffc46e;background:radial-gradient(circle at 35% 30%,#1b3566,#071226);box-shadow:0 0 18px rgba(255,196,110,.25)}
.me-avatar img{width:100%;height:100%;object-fit:cover}
.me-avatar span{font:600 calc(var(--s) * .36) var(--sans);color:#ffd9a0}
.me-id{flex:1;min-width:200px}
.me-id h2{margin:2px 0 4px;font:500 clamp(26px,3vw,36px)/1.1 var(--display);color:#fff}
.me-sub{margin:0;color:#9fb0c6;font-size:14px}
.me-sub b{color:#dfe8f3;font-weight:500}
.me-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.me-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.me-stats div{padding:12px 14px;border:1px solid rgba(120,170,255,.22);border-radius:14px;background:rgba(6,14,32,.7)}
.me-stats dt{font:600 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#9fb0c6}
.me-stats dd{margin:4px 0 0;font:500 24px var(--sans);color:#fff}
.me-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid rgba(220,230,245,.12)}
.me-tabs::-webkit-scrollbar{display:none}
.me-tabs button{flex:none;padding:10px 14px;border:0;border-bottom:2px solid transparent;background:none;color:#9fb0c6;font:600 12.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.me-tabs button.on{color:#fff;border-bottom-color:#ffc46e}
.me-body{display:grid;gap:10px}
.me-card{padding:16px;border:1px solid rgba(120,170,255,.22);border-radius:16px;background:rgba(6,14,32,.7);display:grid;gap:12px}
.me-bio{margin:0;color:#dfe8f3;line-height:1.6}
.me-dl{display:grid;gap:6px;margin:0}
.me-dl div{display:grid;grid-template-columns:170px 1fr;gap:10px;font-size:14px}
.me-dl dt{color:#9fb0c6}.me-dl dd{margin:0;color:#fff}
.me-h{margin:12px 0 2px;font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#cfe0ff}
.me-h small{color:#9fb0c6;margin-left:6px}
.me-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.me-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;border:1px solid rgba(220,230,245,.12);border-radius:12px;background:rgba(6,14,32,.6);cursor:pointer}
.me-row:hover{border-color:rgba(156,200,255,.45)}
.me-ico{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--c)}
.me-ico svg{width:16px;height:16px;fill:none;stroke:var(--c);stroke-width:1.8}
.me-txt{flex:1;min-width:160px;display:grid;gap:2px}
.me-txt b{font-weight:500;color:#fff}
.me-txt small{color:#9fb0c6;font-size:12.5px}
.me-meta{display:grid;gap:2px;color:#ffd9a0;font-size:13px;max-width:320px}
.me-meta em{color:#c9d6e6;font-style:normal}
.me-chips{display:flex;flex-wrap:wrap;gap:4px}
.me-st{padding:2px 9px;border:1px solid rgba(220,230,245,.25);border-radius:999px;font:600 11px var(--sans);color:#c9d6e6}
.me-st.pub{border-color:#7ed69b;color:#bff3dc}.me-st.rev{border-color:#ffc46e;color:#ffd9a0}.me-st.hid{opacity:.7}.me-st.warn{border-color:#ff8a7d;color:#ffb3a8}
.me-ops{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;width:100%;padding-left:44px}
.me-manage .me-row{cursor:default}
.me-manage .me-txt{cursor:pointer}
.me-del{color:#ff8a7d !important}
.me-hist{width:100%;padding-left:44px}
.me-histl{list-style:none;margin:6px 0 0;padding:8px 0 0;border-top:1px dashed rgba(220,230,245,.15);display:grid;gap:4px;font-size:13px}
.me-histl li{display:grid;grid-template-columns:110px 1fr;gap:8px}
.me-histl time{color:#9fb0c6}
.me-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.me-bar .muted{margin:0}
.muted{color:#9fb0c6}
.me-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.me-photos button{aspect-ratio:1;padding:0;border:1px solid rgba(220,230,245,.15);border-radius:10px;overflow:hidden;background:#0a1630;cursor:pointer}
.me-photos img{width:100%;height:100%;object-fit:cover}
.me-filter{display:flex;gap:6px}
.me-filter button{padding:6px 14px;border:1px solid rgba(220,230,245,.2);border-radius:999px;background:none;color:#c9d6e6;font:500 13px var(--sans);cursor:pointer}
.me-filter button.on{border-color:#ffc46e;color:#fff;background:rgba(255,196,110,.1)}
.me-tl{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.me-month{margin:10px 0 2px;font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#cfe0ff}
.me-ev{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px}
.me-ev[data-open]{cursor:pointer}
.me-ev[data-open]:hover{background:rgba(156,200,255,.06)}
.me-evi{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(220,230,245,.25);font-size:13px}
.me-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(3,9,18,.7)}
.me-search svg{width:16px;height:16px;fill:none;stroke:#9cc8ff;stroke-width:1.8}
.me-search input{flex:1;border:0;background:none;color:#fff;font:inherit;padding:10px 0;outline:none}
.me-listin{min-width:190px;background:rgba(3,9,18,.7);border:1px solid var(--line-strong);border-radius:999px;color:#fff;padding:6px 12px;font:400 13px var(--sans)}
.me-link{border-color:#ffc46e !important;color:#ffd9a0 !important}
.pf-avatar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.pf-avatar .pop-btn{cursor:pointer}
.pop-authorp{padding:0;font:inherit;color:#cfe0ff !important;text-decoration:underline;text-underline-offset:2px}
.me-pub{max-width:560px;display:grid;gap:12px}
.me-pub .me-stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}
@media (max-width:700px){
  .me-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .me-stats dd{font-size:20px}
  .me-dl div{grid-template-columns:1fr;gap:2px}
  .me-ops,.me-hist{padding-left:0}
  .me-histl li{grid-template-columns:90px 1fr}
  .me-acts{width:100%}
}
.crew-avatar.has-photo{padding:0;overflow:hidden}
.crew-avatar.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.crew-user{margin:-4px 0 0;color:#9fb0c6;font-size:13px}

/* =========================================================
   GALLERY — Venere: oro caldo sul blu notte
   ========================================================= */
#gallery{--gold:#e7b56a;--gold-soft:rgba(231,181,106,.42);--gold-line:rgba(231,181,106,.28)}
.gl-head{position:relative;display:flex;align-items:center;gap:clamp(14px,2.4vw,28px);min-height:clamp(150px,19vw,230px);margin:0 0 26px;padding-right:clamp(120px,24vw,320px)}
.gl-sym{flex:none;width:clamp(74px,8.5vw,112px);height:auto;fill:none}
.gl-sym .o1{stroke:var(--gold-line);stroke-width:1}
.gl-sym .o2{stroke:rgba(231,181,106,.18);stroke-width:1;stroke-dasharray:2 5}
.gl-sym .dot{fill:var(--gold);opacity:.75}
.gl-sym .v{stroke:var(--gold);stroke-width:3.2;stroke-linecap:round;filter:drop-shadow(0 0 8px rgba(231,181,106,.55))}
.gl-sym .o1{animation:glSpin 60s linear infinite;transform-origin:60px 60px}
@keyframes glSpin{to{transform:rotate(360deg)}}
.gl-title{margin:0;font:italic 500 clamp(46px,7vw,92px)/1 var(--display);letter-spacing:.01em;
  background:linear-gradient(180deg,#fbe2b2 0%,#e7b56a 55%,#b9803d 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.gl-sub{margin:8px 0 0;font:italic 400 clamp(16px,1.7vw,22px)/1.3 var(--display);color:#efe2cc;letter-spacing:.03em}
.gl-planet{position:absolute;right:clamp(-40px,-2vw,0px);top:50%;transform:translateY(-50%);width:clamp(150px,26vw,340px);height:auto;pointer-events:none;
  filter:drop-shadow(0 0 40px rgba(255,170,90,.18))}
.gl-filters{margin:0 0 26px;gap:10px}
.gl-pill{border-color:var(--gold-line);padding:9px 18px;min-height:42px}
.gl-pill svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;opacity:.85}
.gl-pill:hover{border-color:var(--gold);color:#fff}
.gl-pill.active{background:linear-gradient(180deg,rgba(231,181,106,.26),rgba(231,181,106,.1));border-color:var(--gold);color:#fff3dc;box-shadow:0 0 18px rgba(231,181,106,.3),inset 0 0 12px rgba(231,181,106,.15)}
.gl-pill.active svg{stroke:var(--gold);opacity:1}
/* viaggi */
.gl-journeys{margin:0 0 30px}
.gl-jhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.gl-jhead h2{margin:0;font:500 clamp(24px,2.4vw,30px) var(--display);color:var(--head);letter-spacing:.03em}
.gl-jall{color:var(--gold);font-size:13.5px;letter-spacing:.04em}
.gl-jrow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin}
.gl-journeys.all .gl-jrow{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));overflow:visible}
.gl-jcard{position:relative;display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--gold-line);border-radius:14px;background:rgba(14,18,26,.6);color:var(--text);text-align:left;scroll-snap-align:start;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.gl-jcard img{width:78px;height:62px;flex:none;object-fit:cover;border-radius:9px}
.gl-jtext{min-width:0;display:grid;gap:2px}
.gl-jtext strong{font:500 18px/1.2 var(--display);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-jtext small{color:var(--gold);font-size:12px;letter-spacing:.06em}
.gl-jcard:hover,.gl-jcard.on{border-color:var(--gold);box-shadow:0 0 18px rgba(231,181,106,.22)}
.gl-jcard.on{background:rgba(60,42,18,.45)}
/* conteggio e vista */
.gl-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.gl-bar .photo-count{margin:0 auto 0 0}
.gl-view{display:inline-flex;border:1px solid var(--gold-line);border-radius:999px;padding:3px;gap:2px}
.gl-vbtn{width:42px;height:36px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--soft);cursor:pointer}
.gl-vbtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.gl-vbtn.on{background:rgba(231,181,106,.2);color:#fff3dc}
.gl-vbtn.on svg{stroke:var(--gold)}
/* griglia dorata */
#gallery .photo-card{border-color:var(--gold-line)}
#gallery .photo-card:hover,#gallery .photo-card:focus-visible{border-color:var(--gold);box-shadow:0 0 24px rgba(231,181,106,.25)}
#gallery .photo-info small{color:#f3d6a4}
#gallery .photo-pick{border-color:rgba(231,181,106,.6)}
/* elenco */
.photo-grid.is-list{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;gap:10px}
.photo-grid.is-list .photo-cell:first-child{grid-row:auto;grid-column:auto}
.gl-row .photo-card{display:flex;align-items:center;gap:16px;height:auto;padding:8px;padding-right:62px}
.gl-row .photo-card img{width:clamp(96px,14vw,150px);height:clamp(70px,9.5vw,100px);flex:none;border-radius:8px}
.gl-row .photo-card:hover img{transform:none}
.gl-rowtext{min-width:0;display:grid;gap:3px}
.gl-rowtext strong{font:500 20px/1.2 var(--display);color:#fff}
.gl-rowtext small{color:var(--soft);font-size:13px}
.gl-rowtext .gl-rowcat{color:var(--gold);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.gl-row .photo-pick{top:50%;transform:translateY(-50%)}
.gl-row .photo-pick:hover{transform:translateY(-50%) scale(1.08)}
/* licenze: in fondo, chiudibile */
.gl-license{margin:34px 0 0;align-items:center;flex-wrap:wrap;border-color:var(--gold-soft)}
.gl-lic-ic{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;border:1px solid var(--gold-line)}
.gl-lic-ic svg{margin:0}
.gl-lic-body{flex:1 1 300px;min-width:0}
.gl-lic-more{margin-top:6px!important}
.gl-lic-go{border-color:var(--gold-soft)!important;color:#fff3dc!important;flex:none}
.gl-lic-x{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--soft);cursor:pointer}
.gl-lic-x:hover{color:#fff;border-color:var(--gold)}
.gl-lic-x svg{width:16px;height:16px;stroke:currentColor;margin:0}
@media (max-width:700px){
  .gl-head{padding-right:0;min-height:0;flex-wrap:wrap;padding-top:8px}
  .gl-planet{width:46vw;max-width:220px;right:-14vw;top:0;transform:none;opacity:.85}
  .gl-text{position:relative;z-index:1;flex:1 1 100%}
  .gl-sym{width:70px}
  .gl-filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1*var(--gutter-l)) calc(-1*var(--gutter-r));padding-inline:var(--gutter-l) var(--gutter-r);scrollbar-width:none}
  .gl-filters::-webkit-scrollbar{display:none}
  .gl-pill{flex:none}
  .gl-jrow{grid-auto-columns:78%}
  .gl-lic-go{flex:1 1 auto;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.gl-sym .o1{animation:none}}

/* =========================================================
   VISUALIZZATORE FOTO
   ========================================================= */
.pv[open]{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;
  background:#03070d;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;--gold:#e7b56a;--gold-line:rgba(231,181,106,.3)}
.pv::backdrop{background:#02060b}
.pv-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top,0px)) var(--gutter-r) 10px var(--gutter-l);border-bottom:1px solid var(--line)}
.pv-brand{display:flex;align-items:center;gap:10px;min-width:0}
.pv-brand img{width:46px;height:auto}
.pv-brand span{display:grid;line-height:1.15;min-width:0}
.pv-brand strong{font:500 19px var(--display);color:#fff;letter-spacing:.04em;white-space:nowrap}
.pv-brand small{font-size:9.5px;letter-spacing:.2em;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-topact{display:flex;gap:8px}
.pv-ic{width:46px;height:46px;display:grid;place-items:center;flex:none;border-radius:50%;border:1px solid var(--line-strong);background:rgba(8,16,28,.85);color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.pv-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pv-ic:hover,.pv-ic:focus-visible,.pv-ic[aria-pressed="true"],.pv-ic[aria-expanded="true"]{border-color:var(--gold);box-shadow:0 0 16px rgba(231,181,106,.3)}
.pv-menu{position:absolute;z-index:6;top:calc(100% + 6px);right:var(--gutter-r);display:grid;min-width:200px;padding:8px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(6,13,24,.97);box-shadow:0 18px 50px rgba(0,0,0,.6)}
.pv-menu a{padding:11px 14px;border-radius:9px;font-size:15px}
.pv-menu a:hover{background:rgba(231,181,106,.12);color:#fff3dc}
.pv-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px var(--gutter-r) 12px var(--gutter-l)}
.pv-back{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--text);font-size:14px;letter-spacing:.04em;cursor:pointer;padding:0}
.pv-circ{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gold-line)}
.pv-circ svg{width:20px;height:20px;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pv-back:hover .pv-circ{border-color:var(--gold);box-shadow:0 0 16px rgba(231,181,106,.3)}
.pv-tools{display:flex;align-items:center;gap:8px}
.pv-count{font-size:13px;letter-spacing:1px;color:var(--soft);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pv-count:empty{display:none}
.pv-stage{position:relative;flex:none;display:flex;align-items:center;justify-content:center;padding:0 clamp(8px,2vw,24px);min-height:40vh}
.pv-stage img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100dvh - 250px);min-height:0;object-fit:contain;border-radius:6px;cursor:zoom-in;transition:transform .35s}
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(4,10,18,.6);backdrop-filter:blur(6px);color:#fff;cursor:pointer}
.pv-nav svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pv-nav:hover{border-color:var(--gold);box-shadow:0 0 16px rgba(231,181,106,.35)}
.pv-nav.prev{left:max(14px,env(safe-area-inset-left,0px))}.pv-nav.next{right:max(14px,env(safe-area-inset-right,0px))}
.pv-fsbar{display:none}
/* azioni sotto la foto */
.pv .pv-actions{position:static;max-width:none;padding:14px var(--gutter-r) 0 var(--gutter-l);display:block}
.pv .pv-actions[hidden]{display:none}
.pv .pv-actions .pi-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.pv .pv-actions .pi-toggle,.pv .pv-actions .pi-pick{min-height:46px;padding:11px 20px;font-size:14px;box-shadow:none}
.pv .pv-actions .pi-toggle{border-color:var(--gold-line)}
.pv .pv-actions .pi-toggle svg{stroke:var(--gold)}
.pv .pv-actions .pi-panel{max-width:560px;margin:10px auto 0}
/* miniature */
.pv-thumbs{display:flex;gap:8px;overflow-x:auto;padding:16px var(--gutter-r) 6px var(--gutter-l);scroll-snap-type:x proximity;scrollbar-width:thin;justify-content:safe center}
.pv-thumb{flex:none;width:86px;height:60px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:var(--bg-2);opacity:.6;cursor:pointer;scroll-snap-align:center;transition:opacity .2s,border-color .2s}
.pv-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pv-thumb:hover{opacity:.9}
.pv-thumb.on{opacity:1;border-color:var(--gold)}
/* dettagli */
.pv-info{width:min(1100px,100%);margin:0 auto;padding:22px var(--gutter-r) calc(40px + env(safe-area-inset-bottom,0px)) var(--gutter-l);display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:6px 40px;align-items:start;border-radius:14px}
.pv-info>*{grid-column:1}
.pv-info .pv-facts,.pv-info .pv-map{grid-column:2}
.pv-info .pv-facts{grid-row:1/span 5}
.pv-cat{margin:0;color:var(--gold);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.pv-info h2{margin:2px 0 4px;font:500 clamp(28px,3.2vw,40px)/1.15 var(--display);color:#fff;letter-spacing:.02em}
.pv-place{margin:0;color:var(--soft);font-size:14px}
.pv-coords{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:13px;color:var(--soft);margin:4px 0 0}
.pv-coords:empty,.pv-desc:empty{display:none}
.pv-desc{margin:10px 0 0;color:var(--text);line-height:1.7}
.pv-shot{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
.pv-shot div{padding:9px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(10,20,34,.6);min-width:0}
.pv-shot dt{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pv-shot dd{margin:2px 0 0;color:#fff;font-size:14px}
.pv-facts{padding:16px 18px;border:1px solid var(--gold-line);border-radius:14px;background:rgba(30,22,10,.35)}
.pv-facts:empty{display:none}
.pv-jlabel{margin:0;color:var(--gold);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.pv-jlink{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:4px 0 8px;padding:0;border:0;background:none;color:#fff;cursor:pointer;text-align:left}
.pv-jlink strong{font:500 24px/1.2 var(--display)}
.pv-jlink span{color:var(--gold);font-size:20px}
.pv-jlink:hover strong{color:#fff3dc;text-decoration:underline;text-underline-offset:4px}
.pv-facts ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;color:var(--soft);font-size:13.5px}
.pv-map{justify-self:stretch;justify-content:center;margin-top:12px;min-height:46px;border-color:var(--gold-line)!important}
.pv-flash{animation:pvFlash 1.2s ease}
@keyframes pvFlash{0%{box-shadow:0 0 0 0 rgba(231,181,106,.6)}100%{box-shadow:0 0 0 18px rgba(231,181,106,0)}}
/* foto ruotata */
.pv.rot-90 .pv-stage img{transform:rotate(90deg);max-width:calc(100dvh - 250px);max-height:94vw}
/* schermo intero: solo la foto */
.pv.pv-full{overflow:hidden;background:#000}
.pv.pv-full>:not(.pv-stage){display:none!important}
.pv.pv-full .pv-stage{position:fixed;inset:0;padding:0;min-height:0;background:#000}
.pv.pv-full .pv-stage img{max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0;cursor:zoom-out}
.pv.pv-full.rot-90 .pv-stage img{max-width:100vh;max-width:100dvh;max-height:100vw}
.pv.pv-full .pv-fsbar{display:flex;align-items:center;gap:8px;position:absolute;z-index:3;top:calc(12px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px))}
.pv.pv-full .pv-fsbar .pv-count{background:rgba(0,0,0,.55)}
.pv.pv-full .pv-fsbar .pv-ic{background:rgba(0,0,0,.55)}
.pv.pv-full .pv-nav{opacity:.55}
.pv.pv-full .pv-nav:hover{opacity:1}
@media (max-width:760px){
  .pv-brand small{display:none}
  .pv-brand img{width:40px}
  .pv-ic,.pv-circ{width:44px;height:44px}
  .pv-back>span:last-child{display:none}
  .pv-tools{gap:6px}
  .pv-count{padding:6px 10px;font-size:12px}
  .pv-stage{padding:0}
  .pv-stage img{border-radius:0;max-height:calc(100dvh - 210px)}
  .pv-nav{width:44px;height:44px;background:rgba(4,10,18,.45)}
  .pv-nav.prev{left:8px}.pv-nav.next{right:8px}
  .pv-thumb{width:70px;height:50px}
  .pv-info{grid-template-columns:1fr}
  .pv-info .pv-facts,.pv-info .pv-map{grid-column:1}
  .pv-info .pv-facts{grid-row:auto;margin-top:14px}
}
@media (max-width:380px){ .pv-count{display:none} .pv-ic{width:42px;height:42px} }
@media (orientation:landscape) and (max-height:500px){
  .pv-stage img{max-height:calc(100dvh - 120px)}
}
.gl-planet *{stroke:none}
@media (min-width:761px){.pv-stage img{max-height:calc(100dvh - 300px)}}
.pv>*{flex-shrink:0}
@media (max-width:760px){
  .pv-stage{min-height:0}
  .pv .pv-actions .pi-row{flex-wrap:nowrap;gap:8px}
  .pv .pv-actions .pi-toggle,.pv .pv-actions .pi-pick{padding:10px 13px;font-size:13px;letter-spacing:.01em;flex:1 1 0;justify-content:center;min-width:0}
  .pv .pv-actions .pi-toggle span,.pv .pv-actions .pi-pick span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
#gallery{overflow-x:clip}
/* sfondo dell'intestazione: Venere (dalle immagini di progetto) */
.gl-head{isolation:isolate}
.gl-planet{position:absolute;z-index:-1;inset:-52px calc(-1*var(--gutter-r)) -10px 30%;width:auto;height:auto;top:-52px;transform:none;right:calc(-1*var(--gutter-r));
  background:url("img/venere-gallery.jpg") right center/cover no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%),linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent 0,#000 28%),linear-gradient(180deg,#000 70%,transparent);
  -webkit-mask-composite:source-in;mask-composite:intersect;filter:none}
@media (max-width:700px){
  .gl-planet{inset:-30px calc(-1*var(--gutter-r)) auto 30%;height:200px;width:auto;max-width:none;opacity:1;background-image:url("img/venere-gallery-mobile.jpg");background-position:right top;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 35%),linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(90deg,transparent 0,#000 35%),linear-gradient(180deg,#000 60%,transparent)}
}
/* visualizzatore: la stessa Venere dietro intestazione e barra comandi */
.pv-top,.pv-bar{position:relative;z-index:1}
.pv-top::before{content:"";position:absolute;z-index:-1;left:35%;right:0;top:0;height:calc(100% + 76px);pointer-events:none;
  background:url("img/venere-gallery.jpg") right 30%/cover no-repeat;opacity:.75;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 40%),linear-gradient(180deg,#000 50%,transparent);mask-image:linear-gradient(90deg,transparent,#000 40%),linear-gradient(180deg,#000 50%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
.pv-top{border-bottom-color:rgba(231,181,106,.28)}
.pv-menu{z-index:6}
.pv-info h2{font-style:italic;background:linear-gradient(180deg,#fbe2b2,#e7b56a 60%,#b9803d);-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:760px){.pv-top::before{left:20%;background-image:url("img/venere-gallery-mobile.jpg");background-position:right top}}
/* sfondo intero dei mockup: nero caldo, la fascia di Venere da bordo a bordo */
body[data-page="gallery"]::after{background:radial-gradient(120% 60% at 80% 0,rgba(70,38,12,.28),transparent 60%),linear-gradient(180deg,#07080c,#050609 60%,#060609)}
.gl-planet{inset:-52px calc(-1*var(--gutter-r)) -18px calc(-1*var(--gutter-l))!important;height:auto!important;opacity:1!important;
  background:url("img/venere-gallery.jpg") right bottom/cover no-repeat!important;
  -webkit-mask-image:linear-gradient(180deg,#000 75%,transparent)!important;mask-image:linear-gradient(180deg,#000 75%,transparent)!important}
@media (max-width:700px){
  .gl-planet{inset:-30px calc(-1*var(--gutter-r)) -10px calc(-1*var(--gutter-l))!important;background-image:url("img/venere-gallery-mobile.jpg")!important;background-position:right top!important}
}
.pv[open]{background:#05060a}
.pv-top::before{left:0!important;right:0;height:calc(100% + 72px)!important;opacity:1!important;
  background:url("img/venere-viewer.jpg") right top/cover no-repeat!important;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent)!important;mask-image:linear-gradient(180deg,#000 70%,transparent)!important}
@media (max-width:700px){
  .gl-planet{background-size:auto 180px!important;background-position:right top!important;
    -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 100%)!important;mask-image:linear-gradient(180deg,#000 55%,transparent 100%)!important;bottom:auto!important;height:200px!important}
  .gl-title{text-shadow:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.7))}
}
/* gesti sul telefono */
.pv-stage{touch-action:pinch-zoom}
.pv-stage img{will-change:transform;-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
.pv.pv-dragging{background:rgba(5,6,10,var(--pv-dim,1))}
.pv.pv-dragging::backdrop{background:rgba(2,6,11,calc(var(--pv-dim,1)*.9))}
.pv.pv-dragging>:not(.pv-stage){opacity:var(--pv-dim,1)}
.pv-stage img.pv-fade{animation:pvFade .28s ease}
@keyframes pvFade{from{opacity:.25}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.pv-stage img.pv-fade{animation:none}}
.pv.pv-dragging .pv-stage{z-index:5}

/* =========================================================
   EXPLORE — Marte, mappa «Satellite + Terrain»
   ========================================================= */
body[data-page="explore"]::after{background:radial-gradient(90% 55% at 85% 0,rgba(140,48,12,.35),transparent 65%),radial-gradient(70% 60% at 0 100%,rgba(110,40,10,.28),transparent 70%),linear-gradient(180deg,#0b0604,#080504 55%,#0a0605)}
#explore{--mars:#ff8a3d;--mars-soft:rgba(255,138,61,.45);--mars-line:rgba(255,138,61,.3);overflow-x:clip}
.ex-head{position:relative;isolation:isolate;display:flex;align-items:center;gap:clamp(16px,3vw,40px);min-height:clamp(120px,11vw,170px);margin:-6px 0 22px}
.ex-planet{position:absolute;z-index:-1;inset:-52px calc(-1*var(--gutter-r)) -26px calc(-1*var(--gutter-l));
  background:url("img/marte-explore.jpg") right top/cover no-repeat;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
.ex-titlebox{position:relative;display:flex;align-items:center;gap:14px;padding:6px 18px 10px 6px}
.ex-orbit{position:absolute;left:-28px;top:-18px;width:calc(100% + 40px);height:calc(100% + 34px);overflow:visible;pointer-events:none}
.ex-orbit path{fill:none;stroke:var(--mars);stroke-width:2;opacity:.75;filter:drop-shadow(0 0 6px rgba(255,138,61,.8))}
.ex-orbit circle{fill:#ff6a1a;stroke:none;filter:drop-shadow(0 0 8px rgba(255,120,40,.9))}
.ex-title{margin:0;font:italic 500 clamp(54px,7vw,96px)/1 var(--display);color:#fbf4ec;text-shadow:0 2px 24px rgba(0,0,0,.55)}
.ex-slash{font:italic 500 clamp(28px,3vw,42px) var(--display);color:var(--mars);letter-spacing:-.05em}
.ex-intro{border-left:2px solid var(--mars-soft);padding-left:clamp(16px,2vw,28px);max-width:480px}
.ex-eyebrow{display:block;font-size:13px;letter-spacing:.42em;color:#f6e6d6;margin-bottom:6px}
.ex-intro p{margin:0;color:#e8d9cc;font-size:16px;line-height:1.55}
/* cornice arancione come nel mockup */
#explore .explore-stage{border-color:var(--mars-soft);box-shadow:0 0 0 1px rgba(255,138,61,.12),0 0 40px rgba(255,110,40,.18)}
#explore .hud-frame{border-color:var(--mars-line)}
.map-explore[data-base="earth"],.map-explore[data-base="satellite"]{background:#04101f}
/* foto satellitari: colori più profondi; rilievo in moltiplica per dare volume alle montagne */
.tiles-earth{filter:saturate(1.18) contrast(1.1) brightness(.92)}
.tiles-hill{mix-blend-mode:multiply;opacity:.62}
.leaflet-pane.leaflet-relief-pane{mix-blend-mode:multiply}
.tiles-ref{filter:sepia(.5) saturate(1.4) brightness(1.08);opacity:.95}
.ex-border{filter:drop-shadow(0 0 2px rgba(0,0,0,.7))}
.ex-lab{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;
  font:600 11.5px/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:#fff7ea;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.7)}
.ex-lab.sea{font:italic 500 14px/1 var(--display);letter-spacing:.3em;color:#8fd3ff;text-shadow:0 1px 4px rgba(0,10,30,.95)}
/* lander e rover */
.ex-lander{width:46px;height:50px;cursor:pointer;animation:astroFloat 4.2s ease-in-out infinite}
.ex-lander svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 6px rgba(255,140,60,.85)) drop-shadow(0 0 16px rgba(255,110,30,.45));transition:transform .2s}
.ex-lander .lg{fill:rgba(255,120,40,.35);stroke:#ff8a3d;stroke-width:1.2}
.ex-lander .lb{fill:#fff3e4;stroke:#ff8a3d;stroke-width:1.6;stroke-linejoin:round}
.ex-lander .lw{fill:#ff8a3d;stroke:none}
.ex-lander .lt{fill:#ffd9b0;stroke:#ff8a3d;stroke-width:1.4;stroke-linejoin:round}
.ex-lander .ll,.ex-lander .ln{fill:none;stroke:#ff9a4c;stroke-width:1.8;stroke-linecap:round}
.ex-lander:hover svg,.ex-lander.is-active svg{transform:scale(1.18)}
.ex-lander.is-active .lg{fill:rgba(255,150,60,.6)}
.ex-rover{width:36px;height:31px;cursor:pointer}
.ex-rover svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 5px rgba(60,220,255,.85));transition:transform .2s}
.ex-rover .rg{fill:rgba(40,200,255,.22);stroke:#38d6ff;stroke-width:1.1}
.ex-rover .rb{fill:#062636;stroke:#5fe3ff;stroke-width:1.6}
.ex-rover .rw{fill:#062636;stroke:#5fe3ff;stroke-width:1.6}
.ex-rover .rm{fill:none;stroke:#5fe3ff;stroke-width:1.6;stroke-linecap:round}
.ex-rover:hover svg{transform:scale(1.2)}
.ex-link,.ex-route{filter:drop-shadow(0 0 3px rgba(255,130,40,.8))}
.leaflet-tooltip.ex-tip small{display:block;color:#ffb27a;font-size:11px}
#explore .shot-dot{background:#38d6ff;box-shadow:0 0 0 1.5px #fff,0 0 12px rgba(60,220,255,.9)}
#explore .leaflet-control-scale-line{background:rgba(6,8,12,.6);border-color:#f6e6d6;color:#f6e6d6}
#explore .map-modes button[aria-pressed="true"]{border-color:var(--mars);box-shadow:0 0 14px rgba(255,138,61,.35)}
@media (max-width:760px){
  .ex-head{flex-direction:column;align-items:flex-start;gap:8px;min-height:0;margin:0 0 16px}
  .ex-planet{inset:-40px calc(-1*var(--gutter-r)) -20px calc(-1*var(--gutter-l));background-image:url("img/marte-explore-mobile.jpg");background-position:right top;background-size:auto 170px}
  .ex-intro{border-left:0;padding-left:0}
  .ex-eyebrow{font-size:11px;letter-spacing:.3em}
  .ex-intro p{font-size:14.5px;text-shadow:0 1px 8px rgba(0,0,0,.8)}
  .ex-lab{font-size:10px;letter-spacing:.26em}
  .ex-lab.sea{font-size:12.5px}
}
/* testo dell'intestazione leggibile: la parte sinistra del cielo resta scura */
.ex-planet::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,5,3,.88) 0,rgba(9,5,3,.72) 38%,rgba(9,5,3,.25) 62%,transparent 78%)}
.ex-planet{background-position:right 35%}
@media (max-width:760px){.ex-planet::after{background:linear-gradient(180deg,rgba(9,5,3,.2),rgba(9,5,3,.75) 70%),linear-gradient(90deg,rgba(9,5,3,.7),transparent 70%)}}

/* =========================================================
   EXPLORE — elenco a scomparsa da destra (Journeys / Locations)
   ========================================================= */
#explore .explore-stage{--drawer:min(420px,calc(100% - 96px));overflow:hidden}
#explore .location-panel.ex-drawer{position:absolute;z-index:960;top:16px;right:16px;bottom:16px;left:auto;width:var(--drawer);max-height:none;margin:0;
  display:flex;flex-direction:column;padding:22px 24px 16px;border:1px solid var(--mars-soft);border-radius:18px;
  background:linear-gradient(180deg,rgba(22,11,6,.94),rgba(12,7,5,.95));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 0 0 1px rgba(255,138,61,.08),0 0 34px rgba(255,110,40,.2),0 18px 50px rgba(0,0,0,.55);
  transform:translateX(calc(100% + 28px));opacity:0;visibility:hidden;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .3s,visibility 0s linear .42s;overflow-y:auto;overscroll-behavior:contain}
#explore .ex-open .location-panel.ex-drawer{transform:none;opacity:1;visibility:visible;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .3s,visibility 0s}
.ex-dhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ex-eyebrow2{font:600 12.5px var(--sans);letter-spacing:.32em;color:var(--mars)}
.ex-eyebrow2 i{font-style:italic;letter-spacing:-.05em;margin-left:8px}
.ex-close{color:#f6e6d6}
.ex-close:hover{background:rgba(255,138,61,.14)}
.ex-dtitle{display:flex;align-items:center;gap:16px;margin:10px 0 14px;padding-bottom:16px;border-bottom:1px solid var(--mars-line)}
.ex-dicon{flex:none;width:62px;height:62px;display:grid;place-items:center}
.ex-dicon svg{width:58px;height:auto;overflow:visible}
.ex-dicon .lg{fill:none;stroke:none}
.ex-dicon .lb,.ex-dicon .lt{fill:rgba(255,138,61,.12);stroke:#ff9a4c;stroke-width:1.8;stroke-linejoin:round}
.ex-dicon .lw{fill:#ff8a3d}
.ex-dicon .ll,.ex-dicon .ln{fill:none;stroke:#ff9a4c;stroke-width:1.9;stroke-linecap:round}
.ex-dicon .rg{fill:none;stroke:none}
.ex-dicon .rb,.ex-dicon .rw{fill:rgba(60,220,255,.1);stroke:#5fe3ff;stroke-width:1.8}
.ex-dicon .rm{fill:none;stroke:#5fe3ff;stroke-width:1.8;stroke-linecap:round}
.ex-dicon svg{filter:drop-shadow(0 0 8px rgba(255,138,61,.55))}
.ex-dtitle h2{margin:0 0 4px!important;font:500 clamp(26px,2.4vw,34px)/1.05 var(--display)!important;letter-spacing:.08em!important;text-transform:uppercase;color:#fbf2e8!important}
.ex-dtitle p{margin:0;color:#e4d4c6;font-size:14px;line-height:1.45}
.ex-dtitle p.ex-count{margin-top:6px;color:var(--mars);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.ex-list{list-style:none;margin:0;padding:0;display:grid}
.ex-list li+li{border-top:1px solid rgba(255,138,61,.16)}
.ex-row{width:100%;display:flex;align-items:center;gap:16px;padding:11px 2px;border:0;background:none;color:inherit;text-align:left;cursor:pointer;border-radius:10px;transition:background .2s}
.ex-row:hover,.ex-row:focus-visible{background:rgba(255,138,61,.08)}
.ex-row img,.ex-row>span:first-child{flex:none;width:118px;height:66px;border-radius:8px;object-fit:cover;background:#1a0f09;border:1px solid rgba(255,255,255,.06)}
.ex-rowtext{flex:1;min-width:0;display:grid;gap:4px}
.ex-rowtext strong{font:500 24px/1.1 var(--display);color:#fbf2e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-rowtext small{color:#d9c8ba;font-size:13px;line-height:1.35}
.ex-chev{flex:none;width:22px;height:22px;fill:none;stroke:var(--mars);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.ex-row:hover .ex-chev,.ex-gallery:hover .ex-chev{transform:translateX(3px)}
#explore .trip-coll{color:var(--mars)}
.ex-gallery{margin-top:auto;display:flex;align-items:center;gap:14px;width:100%;padding:18px 2px 6px;border:0;border-top:1px solid var(--mars-line);background:none;color:inherit;text-align:left;cursor:pointer}
.ex-list+.ex-gallery,.trip-desc+.ex-gallery{margin-top:14px}
.ex-gallery>svg:first-child{flex:none;width:30px;height:30px;fill:none;stroke:#ffb27a;stroke-width:1.8;stroke-linecap:round}
.ex-gallery span{flex:1;display:grid;gap:3px}
.ex-gallery b{font:600 12px var(--sans);letter-spacing:.26em;color:var(--mars)}
.ex-gallery small{color:#e4d4c6;font-size:13.5px}
/* il dettaglio di un viaggio usa lo stesso pannello */
#explore .ex-drawer .panel-head h2{color:#fbf2e8}
#explore .ex-drawer .eyebrow{color:var(--mars)}
/* linguette a lato */
.ex-tabs{position:absolute;z-index:955;top:50%;right:16px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;transition:right .42s cubic-bezier(.2,.8,.2,1)}
.ex-open .ex-tabs{right:calc(var(--drawer) + 28px)}
.ex-tab{width:84px;display:grid;justify-items:center;gap:2px;padding:12px 6px 10px;border:1px solid var(--mars-line);border-radius:14px;background:rgba(14,8,5,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f6e6d6;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.ex-tab span{font-size:13px;line-height:1.2}
.ex-tab small{font-size:11.5px;color:#cdb8a6}
.ex-tab-ic{width:40px;height:40px;margin-bottom:4px;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.ex-tab-ic.lander{stroke:#ff9a4c;filter:drop-shadow(0 0 6px rgba(255,138,61,.6))}
.ex-tab-ic.rover{stroke:#5fe3ff;filter:drop-shadow(0 0 6px rgba(60,220,255,.6))}
.ex-tab:hover,.ex-tab.on{border-color:var(--mars);box-shadow:0 0 18px rgba(255,138,61,.35);background:linear-gradient(180deg,rgba(255,138,61,.2),rgba(14,8,5,.85))}
.ex-tab.rov.on,.ex-tab.rov:hover{border-color:#38d6ff;box-shadow:0 0 18px rgba(60,220,255,.3);background:linear-gradient(180deg,rgba(60,220,255,.14),rgba(14,8,5,.85))}
.ex-tab-toggle{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--mars-line);border-radius:12px;background:rgba(14,8,5,.82);color:var(--mars);cursor:pointer}
.ex-tab-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;transition:transform .3s}
.ex-open .ex-tab-toggle svg{transform:rotate(180deg)}
.ex-tab-toggle:hover{border-color:var(--mars)}
@media (prefers-reduced-motion:reduce){#explore .location-panel.ex-drawer,.ex-tabs{transition:none}}
/* telefono: il pannello copre la mappa, le linguette restano sul bordo e spariscono a pannello aperto */
@media (max-width:900px){
  #explore .explore-stage{--drawer:calc(100% - 20px);position:relative}
  #explore .location-panel.ex-drawer{top:10px;right:10px;bottom:10px;padding:18px 16px 12px;border-radius:16px}
  .ex-tabs{right:10px;gap:8px}
  .ex-open .ex-tabs{opacity:0;pointer-events:none}
  .ex-tab{width:64px;padding:9px 4px 8px;border-radius:12px}
  .ex-tab-ic{width:30px;height:30px}
  .ex-tab span{font-size:11px}.ex-tab small{font-size:10px}
  .ex-tab-toggle{display:none}
  .ex-row{gap:12px}
  .ex-row img,.ex-row>span:first-child{width:92px;height:56px}
  .ex-rowtext strong{font-size:21px}
  .ex-rowtext small{font-size:12.5px}
  .ex-dicon{width:50px;height:50px}.ex-dicon svg{width:46px}
  .map-full .location-panel.ex-drawer{top:calc(10px + env(safe-area-inset-top));bottom:calc(10px + env(safe-area-inset-bottom));left:auto;max-height:none}
}
.ex-tab-ic.dot{stroke:#5fe3ff;filter:drop-shadow(0 0 6px rgba(60,220,255,.6))}
.ex-tab-ic.dot .f{fill:#5fe3ff;stroke:none}
.ex-dicon .dg{fill:rgba(60,220,255,.1);stroke:#5fe3ff;stroke-width:1.8}
.ex-dicon .dd{fill:#5fe3ff;stroke:#fff;stroke-width:1.5}
.ex-dicon:has(.dd) svg{filter:drop-shadow(0 0 8px rgba(60,220,255,.6))}
/* livelli: il pannello sta sopra i comandi della mappa */
#explore .location-panel.ex-drawer{z-index:1100}
#explore .ex-tabs{z-index:1050}
@media (max-width:900px){
  .ex-tab{width:58px;padding:8px 3px 7px}
  .ex-tab small{display:none}
  .ex-tab-ic{width:26px;height:26px;margin-bottom:2px}
  .ex-tab span{font-size:10.5px}
  #explore .leaflet-control-scale{display:none}
}
/* telefoni e tablet: niente effetti costosi (filtri per tile, ombre SVG, sfocature, animazioni) */
@media (pointer:coarse),(max-width:900px){
  #explore .tiles-earth,#explore .tiles-ref{filter:none}
  #explore .ex-link,#explore .ex-route{filter:none}
  #explore .ex-lander{animation:none}
  #explore .ex-lander svg{filter:drop-shadow(0 0 5px rgba(255,140,60,.8))}
  #explore .ex-tab,#explore .location-panel.ex-drawer,#explore .map-search{backdrop-filter:none;-webkit-backdrop-filter:none}
  #explore .ex-tab{background:rgba(14,8,5,.94)}
  #explore .location-panel.ex-drawer{background:#110905}
  #explore .ex-tab-ic,#explore .ex-dicon svg{filter:none}
  #explore .explore-stage{box-shadow:none}
}
/* telefono: icone discrete sulla mappa */
@media (max-width:900px){
  #explore .ex-lander.sm{width:28px;height:31px}
  #explore .ex-lander.sm svg{filter:drop-shadow(0 0 3px rgba(255,140,60,.75))}
  #explore .ex-lander.sm .lg{opacity:.6}
  #explore .shot-dot{width:10px;height:10px;margin:2px;border-width:1.5px;box-shadow:0 0 0 1px #fff,0 0 6px rgba(60,220,255,.8)}
  .ex-tabs{top:auto;bottom:12px;transform:none;right:10px;flex-direction:column;gap:6px}
  .ex-tab{width:44px;height:44px;padding:0;border-radius:12px;place-content:center;opacity:.92}
  .ex-tab span,.ex-tab small{display:none}
  .ex-tab-ic{width:24px;height:24px;margin:0}
  .ex-lab{font-size:9.5px;letter-spacing:.22em;opacity:.9}
  .ex-lab.sea{font-size:11.5px}
}

/* =========================================================
   JOURNAL — foto a colori, ingrandibili; modalità rivista
   ========================================================= */
.fn-entry img,.fn-hero img,.fn-entry:hover img{filter:none}
#journalMag .mag-body img,#journalMag .fn-hero img,#journalMag .mz-cover-img{cursor:zoom-in}
.fn-modes{display:flex;gap:0;margin:16px 0 0;border:1px solid var(--ink);width:max-content;max-width:100%}
.fn-modes a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font:700 11px var(--mag-head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important}
.fn-modes a+a{border-left:1px solid var(--ink)}
.fn-modes a.on{background:var(--ink);color:var(--paper)!important}
.fn-modes a:not(.on):hover{color:var(--rule)!important}
.fn-modes-dot{width:7px;height:7px;border-radius:50%;background:var(--rule);animation:mzPulse 2s ease-in-out infinite}
@keyframes mzPulse{50%{opacity:.35}}
.fn-main:has(> #journalLayout[hidden]) .fn-modes{display:none}
/* copertina del numero */
.mz{padding-top:22px}
.mz-cover{position:relative;min-height:clamp(360px,52vw,640px);display:flex;align-items:flex-end;overflow:hidden;background:#1b1a18;color:#fff}
.mz-cover.no-img{min-height:0;background:var(--ink)}
.mz-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mz-cover:not(.no-img)::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45) 0,rgba(0,0,0,0) 32%,rgba(0,0,0,.05) 55%,rgba(0,0,0,.72));pointer-events:none}
.mz-cover-text{position:relative;z-index:1;width:100%;padding:clamp(20px,3.4vw,44px)}
.mz-issue{margin:0 0 10px;font:700 12px var(--mag-head);letter-spacing:.2em;text-transform:uppercase}
.mz-name{margin:0;font:700 clamp(46px,7.4vw,108px)/.92 var(--mag-serif);letter-spacing:-.045em;text-transform:none;color:#fff}
.mz-name span{display:block;font:italic 400 clamp(20px,2.6vw,36px)/1.2 var(--mag-serif);letter-spacing:.01em;margin-top:6px}
.mz-cover-title{margin:16px 0 0;font:italic 400 clamp(18px,1.9vw,24px)/1.3 var(--mag-serif);max-width:640px}
.mz-status{display:flex;align-items:center;gap:9px;margin:16px 0 0;font:700 11px var(--mag-head);letter-spacing:.14em;text-transform:uppercase}
.mz-live{width:8px;height:8px;border-radius:50%;background:#ff3b2f;box-shadow:0 0 0 4px rgba(255,59,47,.25);animation:mzPulse 2s ease-in-out infinite}
.mz-pdf{display:flex;align-items:center;gap:14px;margin:18px 0 0;padding:14px 18px;border:1px solid var(--ink);color:var(--ink)!important;background:#efe9df}
.mz-pdf:hover{border-color:var(--rule)}
.mz-pdf svg{width:26px;height:26px;flex:none;fill:none;stroke:var(--rule);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mz-pdf span{display:grid;gap:2px}
.mz-pdf b{font:700 12px var(--mag-head);letter-spacing:.14em;text-transform:uppercase}
.mz-pdf small{font:400 14px var(--mag-serif);color:var(--ink-soft)}
/* sommario */
.mz-toc{margin:30px 0 10px;padding-top:14px;border-top:3px solid var(--ink);scroll-margin-top:100px}
.mz-toc h3{margin:0 0 6px;font:700 clamp(30px,3.4vw,44px)/1 var(--mag-serif);letter-spacing:-.03em;text-transform:none;color:var(--ink)}
.mz-toc ol{list-style:none;margin:0;padding:0}
.mz-toc li{border-bottom:1px solid var(--fn-line)}
.mz-toc button{width:100%;display:grid;grid-template-columns:62px minmax(0,1fr);gap:18px;align-items:start;padding:16px 0;border:0;background:none;text-align:left;color:var(--ink);cursor:pointer}
.mz-n{font:400 30px/1 var(--mag-serif);color:var(--rule)}
.mz-t{display:grid;gap:4px;min-width:0}
.mz-t small{font:700 11px var(--mag-head);letter-spacing:.13em;text-transform:uppercase;color:var(--rule)}
.mz-t strong{font:700 clamp(21px,2vw,28px)/1.12 var(--mag-serif);letter-spacing:-.025em}
.mz-t em{font:normal 700 10px var(--mag-head);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.mz-toc button:hover strong{color:var(--rule)}
.mz-empty{font:italic 400 19px/1.5 var(--mag-serif);color:var(--ink-soft);margin:14px 0}
.mz-note{margin:14px 0 0;font:italic 400 14px/1.5 var(--mag-serif);color:var(--ink-soft)}
/* articoli uno dopo l'altro, nell'ordine del sommario */
.mz-article{margin-top:46px;padding-top:12px;border-top:3px solid var(--ink);scroll-margin-top:90px}
.mz-runhead{display:flex;align-items:center;gap:14px;margin:0;font:700 10px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.mz-runhead span{font:400 28px var(--mag-serif);letter-spacing:0;color:var(--rule)}
.mz-article .mag-article{padding-top:10px}
.mz-bar{position:fixed;z-index:900;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 8px 8px 8px;background:var(--ink);color:var(--paper);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.mz-bar button{flex:none;border:1px solid rgba(255,255,255,.5);background:none;color:#fff;font:700 11px var(--mag-head);letter-spacing:.12em;text-transform:uppercase;padding:9px 12px;cursor:pointer}
.mz-bar span{min-width:0;padding-right:10px;font:italic 400 15px var(--mag-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f7f3ec}
@media (max-width:760px){
  .fn-modes{width:100%}
  .fn-modes a{flex:1;justify-content:center;padding:11px 8px;font-size:10.5px;letter-spacing:.1em}
  .mz-toc button{grid-template-columns:44px minmax(0,1fr);gap:12px}
  .mz-n{font-size:24px}
  .mz-cover{min-height:min(118vw,520px)}
}
/* ingrandimento delle foto degli articoli */
.zm[open]{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#000;overflow:hidden}
.zm::backdrop{background:#000}
.zm-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;touch-action:pinch-zoom}
.zm-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.zm-cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:24px 70px calc(16px + env(safe-area-inset-bottom));text-align:center;color:#eee;font:italic 15px/1.4 Georgia,serif;background:linear-gradient(transparent,rgba(0,0,0,.75));pointer-events:none}
.zm-count{position:absolute;top:calc(18px + env(safe-area-inset-top));left:18px;color:#ddd;font:13px var(--sans);letter-spacing:.08em}
.zm-btn{position:absolute;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.45);color:#fff;cursor:pointer}
.zm-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.zm-close{top:calc(12px + env(safe-area-inset-top));right:12px}
.zm-prev{left:12px;top:50%;transform:translateY(-50%)}.zm-next{right:12px;top:50%;transform:translateY(-50%)}
@media (pointer:coarse){.zm-prev,.zm-next{opacity:.7}}
/* impaginazione a blocchi: formati delle foto nel testo */
.fn-body .mag-fig.fig-col{column-span:none;margin:.6em 0 1em !important}
.fn-body .mag-fig.fig-left,.fn-body .mag-fig.fig-right{column-span:none;width:48% !important;margin:.25em 0 .7em !important}
.fn-body .mag-fig.fig-left{float:left;margin-right:1em !important}
.fn-body .mag-fig.fig-right{float:right;margin-left:1em !important}
.fn-body .mag-fig.fig-left img,.fn-body .mag-fig.fig-right img,.fn-body .mag-fig.fig-col img{max-height:60vh}
.fn-body .fig-cap-shared{column-span:all;margin:-.8em 0 1.4em !important;text-align:center !important;font:italic 13px/1.5 var(--mag-serif);color:var(--ink-soft)}
.fn-body blockquote cite{display:block;margin-top:8px;font:normal 700 11px var(--mag-head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:760px){.fn-body .mag-fig.fig-left,.fn-body .mag-fig.fig-right{float:none;width:auto !important;margin:1em 0 !important}}
.fn-body .mag-fig.fig-col,.fn-body .mag-fig.fig-left,.fn-body .mag-fig.fig-right{column-span:none !important}
/* testo degli articoli giustificato, con la sillabazione della lingua dell'articolo */
.fn-body p,.fn-body li{text-align:justify !important;hyphens:auto !important;-webkit-hyphens:auto !important;text-wrap:pretty}
.fn-body blockquote p,.fn-body .fig-cap-shared{text-align:center !important;hyphens:manual !important}
/* archivio dei numeri passati */
.mz-archive{margin:56px 0 10px;padding-top:12px;border-top:3px solid var(--ink)}
.mz-archive h3{margin:0 0 14px;font:700 clamp(26px,3vw,38px)/1 var(--mag-serif);letter-spacing:-.03em;text-transform:none;color:var(--ink)}
.mz-archive ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.mz-archive li{position:relative;border:1px solid var(--fn-line);background:#efe9df}
.mz-arc{display:grid;color:var(--ink)!important}
.mz-arc img,.mz-arc-ph{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#1b1a18}
.mz-arc span{display:grid;gap:3px;padding:12px 14px 14px}
.mz-arc small{font:700 11px var(--mag-head);letter-spacing:.16em;text-transform:uppercase;color:var(--rule)}
.mz-arc strong{font:700 22px/1.1 var(--mag-serif);letter-spacing:-.02em}
.mz-arc em{font:normal 700 10px var(--mag-head);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.mz-arc:hover strong{color:var(--rule)}
.mz-arc-pdf{position:absolute;top:10px;right:10px;padding:7px 11px;background:var(--ink);color:var(--paper)!important;font:700 11px var(--mag-head);letter-spacing:.14em}
.mz-arc-pdf:hover{background:var(--rule)}
.mz-note a{color:var(--rule);font-style:normal;font-weight:700}

/* =========================================================
   JOURNAL — Guides (guide per zone)
   ========================================================= */
.gd-shelf{padding-top:22px}
.gd-shelf-lead{font:italic 400 19px/1.5 var(--mag-serif);color:var(--ink-soft);max-width:640px;margin:0 0 22px}
.gd-books{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}
.gd-books li{position:relative}
.gd-book{display:grid;gap:8px;color:var(--ink)!important}
.gd-cover{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:#1d2b38;box-shadow:0 10px 26px rgba(0,0,0,.18)}
.gd-cover img{width:100%;height:100%;object-fit:cover;display:block}
.gd-cover.no-img{background:linear-gradient(160deg,#173247,#0d1b26 60%,#3a1d10)}
.gd-cover-t{position:absolute;inset:auto 0 0;padding:16px;display:grid;gap:3px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7))}
.gd-cover-t small{font:700 10px var(--mag-head);letter-spacing:.18em;text-transform:uppercase;color:#ffd1c9}
.gd-cover-t b{font:700 40px/1 var(--mag-serif);letter-spacing:-.03em}
.gd-cover-t em{font:italic 15px/1.3 var(--mag-serif)}
.gd-book-meta{font:700 10.5px var(--mag-head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.gd-book:hover b{text-decoration:underline;text-decoration-thickness:2px}
.gd-book-pdf{position:absolute;top:10px;right:10px;padding:7px 11px;background:var(--ink);color:var(--paper)!important;font:700 11px var(--mag-head);letter-spacing:.14em}
.gd-book-pdf:hover{background:var(--rule)}
.gd{padding-top:22px}
.gd-hero{position:relative;min-height:clamp(300px,42vw,520px);display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(160deg,#173247,#0d1b26 60%,#3a1d10);color:#fff;margin-top:8px}
.gd-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gd-hero:not(.no-img)::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.7))}
.gd-hero-t{position:relative;z-index:1;padding:clamp(20px,3.4vw,44px)}
.gd-hero h2{margin:0;font:700 clamp(54px,8vw,110px)/.9 var(--mag-serif);letter-spacing:-.045em;color:#fff;text-transform:none}
.gd-sub{margin:10px 0 0;font:italic 400 clamp(18px,2vw,26px)/1.3 var(--mag-serif)}
.gd-bar{margin-top:16px}
.gd-intro{font:400 clamp(18px,1.7vw,21px)/1.6 var(--mag-serif);color:var(--ink);max-width:780px;margin:24px 0 8px}
.gd-glance,.gd-zone{margin-top:40px;padding-top:12px;border-top:3px solid var(--ink)}
.gd-glance h3,.gd-zone h3{margin:2px 0 10px;font:700 clamp(30px,3.4vw,44px)/1 var(--mag-serif);letter-spacing:-.03em;text-transform:none;color:var(--ink)}
.gd-zk{margin:0;font:700 11px var(--mag-head);letter-spacing:.18em;text-transform:uppercase;color:var(--zc,var(--rule))}
.gd-zone{scroll-margin-top:90px}
.gd-zone h3{color:var(--ink)}
.gd-zone h3::before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--zc,var(--rule));margin-right:12px;vertical-align:4px}
.gd-zintro{font:italic 400 18px/1.55 var(--mag-serif);color:#3f3a34;max-width:760px;margin:0 0 16px}
.gm{display:block;width:100%;height:auto;background:#e9eef0;border:1px solid var(--fn-line)}
.gm-bg{fill:#e7edf0}
.gm-canal{fill:none;stroke:#9cc3d6;stroke-width:14;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.gm-pt circle{stroke:#fff;stroke-width:2.5}
.gm-pt text{font:700 11px Arial,sans-serif;fill:#fff}
.gm-lbl{fill:#111 !important;font:400 11px Georgia,serif !important}
.gm-scale path{stroke:#333;stroke-width:2}
.gm-scale text,.gm-n,.gm-note{font:700 11px Arial,sans-serif;fill:#333}
.gm-note{fill:#5a7d8f;font-weight:400;font-style:italic}
.gd-map .gm{max-height:72vh}
.gd-zlist{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 18px}
.gd-zlist a{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--fn-line);color:var(--ink)!important}
.gd-zlist b{font:700 17px var(--mag-serif)}
.gd-zlist small{margin-left:auto;font:700 10px var(--mag-head);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.gd-dot{width:12px;height:12px;border-radius:50%;flex:none}
.gd-zmap{max-width:760px;margin:0 0 20px}
.gd-spots{list-style:none;margin:0;padding:0;columns:2 340px;column-gap:36px}
.gd-spot{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;break-inside:avoid;padding:12px 0;border-top:1px solid var(--fn-line)}
.gd-n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 13px Arial,sans-serif;margin-top:3px}
.gd-cup{background:#6b4a2b}
.gd-spot h4{margin:0 0 4px;font:700 20px/1.2 var(--mag-serif);letter-spacing:-.015em;text-transform:none;color:var(--ink)}
.gd-spot p{margin:0 0 6px;font:400 15.5px/1.55 var(--mag-serif);color:var(--ink);text-align:left}
.gd-spot p a{color:var(--rule);text-decoration:underline}
.gd-light{font:700 11px var(--mag-head) !important;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft) !important}
.gd-light span{color:var(--zc,var(--rule));font-size:13px}
.gd-note{font-style:italic !important;color:#5a2a1a !important;border-left:3px solid var(--zc,var(--rule));padding-left:10px}
.gd-coord{font:400 12.5px var(--mag-head) !important;color:var(--ink-soft) !important}
.gd-photo{margin:8px 0}
.gd-photo img{width:100%;height:auto;display:block;cursor:zoom-in}
.gd-rich{max-width:820px;font:400 16px/1.6 var(--mag-serif);color:var(--ink)}
.gd-rich h3{font:700 22px var(--mag-serif);margin:1.2em 0 .4em;text-transform:none;color:var(--ink)}
.gd-rich a{color:var(--rule)}
@media (max-width:760px){.gd-spots{columns:1}}
.gm text{stroke:none}
.gm .gm-pt text{fill:#fff}
/* Spots: aggiunta con pressione lunga sulla mappa */
.lp-pop .leaflet-popup-content{margin:10px 12px}
.lp-add{display:grid;gap:6px;justify-items:center}
.lp-add-btn{border:0;border-radius:999px;padding:11px 18px;background:#ffd27a;color:#2b1a02;font:600 14px var(--sans);cursor:pointer;min-height:44px}
.lp-add small{font-size:11px;color:#556}
.map-spots,.sx-globe{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
/* iPhone: niente selezione del testo né menu «Copia» tenendo premuto sulla mappa */
.sx-stage,.sx-stage *,.spots-stage,.spots-stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sx-stage input,.sx-stage textarea{-webkit-user-select:text;user-select:text}
/* Spots, vista Terra: «Cosa c'è intorno» in un pannello che scorre da destra */
.sx-stage .spots-around.as-drawer{position:absolute;z-index:1200;top:10px;right:10px;bottom:10px;margin:0;width:min(400px,calc(100% - 20px));overflow-y:auto;overscroll-behavior:contain;
  padding:16px 16px 20px;border-radius:20px;background:rgba(6,13,24,.96);transform:translateX(calc(100% + 24px));transition:transform .38s cubic-bezier(.2,.8,.2,1);visibility:hidden}
.sx-stage .spots-around.as-drawer.open{transform:none;visibility:visible}
.sx-stage .spots-around.as-drawer .around-cols{grid-template-columns:1fr;gap:16px}
.sx-stage .spots-around.as-drawer .around-head h2{font-size:22px}
.near-clear{font-size:12px;margin-left:auto}
.around-tab{position:absolute;z-index:1100;top:12px;right:12px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,210,122,.55);background:rgba(6,13,24,.72);color:#ffd27a;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.around-tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.around-tab b{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#ffd27a;color:#2b1a02;font:700 10px/18px var(--sans);text-align:center}
.around-tab.pulse{animation:aroundPulse 1.4s ease 2}
@keyframes aroundPulse{50%{box-shadow:0 0 0 8px rgba(255,210,122,.25)}}
@media (prefers-reduced-motion:reduce){.sx-stage .spots-around.as-drawer{transition:none}.around-tab.pulse{animation:none}}
/* mentre il globo si carica: una sfera che respira al posto dello schermo vuoto */
.sx-globe-slot:empty::before,.sx-globe-slot:has(.sx-globe.is-loading)::before{content:"";position:absolute;left:50%;top:46%;width:min(62vw,420px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#3d6fa8 0,#173a66 38%,#081a33 70%,#030b18 100%);box-shadow:0 0 60px rgba(90,150,255,.35),inset -20px -30px 60px rgba(0,0,0,.6);animation:globeWait 1.6s ease-in-out infinite;pointer-events:none}
@keyframes globeWait{50%{opacity:.6}}
@media (prefers-reduced-motion:reduce){.sx-globe-slot::before{animation:none}}
.sx-stage.globe-wait .sx-globe-slot{opacity:1}
/* a tutto schermo il globo ha il suo cielo: niente testi della pagina dietro */
.sx-stage.map-full,.sx-stage.spots-stage.map-full{background:radial-gradient(circle at 50% 45%,rgba(40,100,220,.22),transparent 60%),url("img/sfondo-stelle-mobile.jpg") center/cover no-repeat,#020818 !important}
@media (min-width:901px){.sx-stage.map-full,.sx-stage.spots-stage.map-full{background:radial-gradient(circle at 50% 45%,rgba(40,100,220,.22),transparent 60%),url("img/sfondo-stelle.jpg") center/cover no-repeat,#020818 !important}}
/* a tutto schermo in orizzontale: i comandi restano fuori dalla tacca e dagli angoli arrotondati */
@media (orientation:landscape){
  .sx-stage.map-full .sx-ctrl{right:max(14px,calc(env(safe-area-inset-right,0px) + 6px)) !important}
  .sx-stage.map-full .sx-modes,.sx-stage.map-full .sx-sheet{margin-left:env(safe-area-inset-left,0px)}
  .sx-stage.map-full .leaflet-left{left:env(safe-area-inset-left,0px)}
  .sx-stage.map-full .leaflet-right{right:env(safe-area-inset-right,0px)}
}
/* Pass it on: vendo / regalo tra viaggiatori */
.pass-pin{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#0d2a1c;border:2px solid #8fe0a8;color:#8fe0a8;box-shadow:0 0 0 3px rgba(143,224,168,.18),0 4px 12px rgba(0,0,0,.45)}
.pass-pin.sell{border-color:#ffd166;color:#ffd166;background:#2a2108;box-shadow:0 0 0 3px rgba(255,209,102,.18),0 4px 12px rgba(0,0,0,.45)}
.pass-pin svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pass-pin span{position:absolute;top:24px;left:50%;transform:translateX(-50%);white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis;padding:1px 5px;border-radius:6px;background:#8fe0a8;color:#0b1a12;font:700 9px/1.35 var(--sans);letter-spacing:.06em}
.pass-pin.sell span{background:#ffd166;color:#241a02}
.pass-price{margin:4px 0 6px;font-weight:700;font-size:1.05rem;color:#ffd166}.pass-price.free{color:#8fe0a8}
.pass-contact{margin:6px 0;padding:8px 10px;border-radius:10px;background:rgba(143,224,168,.08);border:1px solid rgba(143,224,168,.25);word-break:break-word}
.pass-contact b{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:2px}
.pass-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 4px}
.pass-kind label{position:relative;cursor:pointer}
.pass-kind input{position:absolute;opacity:0;pointer-events:none}
.pass-kind span{display:block;text-align:center;padding:12px 8px;border-radius:12px;border:1px solid rgba(255,255,255,.18);font-weight:600}
.pass-kind input:checked + span{border-color:#8fe0a8;background:rgba(143,224,168,.12);color:#c9f5d6}
.pass-kind input:focus-visible + span{outline:2px solid #8fe0a8;outline-offset:2px}
.pass-where{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:2px 0 8px;font-size:.88rem;opacity:.9}
.lp-add .lp-pass{display:block;width:100%;margin-top:6px;background:#8fe0a8;color:#0b1a12}
/* Trips: itinerari dei membri */
.trip-end{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 11px/1 var(--sans);color:#0b1020;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.5)}
.trip-end.start{background:#7ee081}.trip-end.finish{background:#ff6a5a;color:#fff}.trip-end.mid{width:22px;height:22px;background:#fff;font-size:10px}
.trip-pop .trip-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 6px;font-size:.88rem}
.trip-pop .trip-meta span{font-size:1.05rem}.trip-pop .trip-meta b{margin-left:4px}
.trip-pop .trip-ends{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;font-size:.9rem}
.trip-pop .trip-ends .trip-end{width:20px;height:20px;font-size:9px;border-width:1.5px;box-shadow:none}
.trip-arrow{opacity:.6}
.trip-stops{margin:6px 0;font-size:.88rem}
.trip-stops summary{cursor:pointer;font-weight:600;opacity:.85}
.trip-stops ol{margin:6px 0 0;padding-left:0;list-style:none;max-height:180px;overflow:auto;display:grid;gap:4px}
.trip-stops li{display:flex;align-items:center;gap:6px}
.trip-stops li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trip-stops select{background:#0b1426;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:2px 4px}
.trip-ed{position:absolute;z-index:1200;top:12px;left:12px;width:min(400px,calc(100% - 84px));max-height:calc(100% - 140px);overflow:auto;padding:12px 14px;border-radius:16px;background:rgba(6,12,26,.92);border:1px solid rgba(255,159,110,.45);box-shadow:0 12px 34px rgba(0,0,0,.5);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.trip-ed-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.trip-ed-head b{display:flex;align-items:center;gap:6px;font-size:.95rem;color:#ffb48a}
.trip-ed-head svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.trip-ed-head span{font-size:.85rem;opacity:.85}
.trip-ed-help{margin:6px 0;font-size:.88rem;opacity:.9}
@media (pointer:coarse){.trip-desk{display:none}}
.trip-ed-modes{margin:8px 0}
.trip-ed-modes small{display:block;margin-bottom:5px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trip-ed-modes{display:flex;flex-wrap:wrap;gap:5px}.trip-ed-modes small{flex-basis:100%}
.trip-chip{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);font-size:18px;cursor:pointer;line-height:1}
.trip-chip.on{border-color:#ff9f6e;background:rgba(255,159,110,.22);box-shadow:0 0 0 2px rgba(255,159,110,.25)}
.trip-ed-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}
.trip-ed-actions .pop-btn[disabled]{opacity:.4;pointer-events:none}
.sx-stage .trip-ed ~ .sx-sheet{opacity:.35}
/* Pass it on: categoria a sé, prima a sinistra */
.sx-group[data-g="pass"] .sx-gico{color:#8fe0a8;background:rgba(143,224,168,.12);border-color:rgba(143,224,168,.45)}
.sx-group[data-g="pass"] .sx-ghead{position:relative}
.sx-new{flex:none;margin-left:auto;padding:2px 7px;border-radius:999px;background:#8fe0a8;color:#08170e;font:700 9px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;animation:sxNew 2.4s ease-in-out infinite}
@keyframes sxNew{0%,100%{box-shadow:0 0 0 0 rgba(143,224,168,.55)}50%{box-shadow:0 0 0 5px rgba(143,224,168,0)}}
@media (prefers-reduced-motion:reduce){.sx-new{animation:none}}
.sx-pass-intro{margin:2px 2px 8px;font-size:.86rem;line-height:1.45;opacity:.85}
.sx-pass-cta{display:block;width:100%;margin:8px 0 2px;padding:11px 12px;border:0;border-radius:12px;background:#8fe0a8;color:#08170e;font:700 13px var(--sans);cursor:pointer}
.sx-pass-cta:hover{filter:brightness(1.06)}
@media (max-width:700px){
  .sx-sheet .sx-groups{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}
  .sx-sheet .sx-gtext b{font-size:8.6px;letter-spacing:.05em}
  .sx-sheet .sx-new{position:absolute;top:1px;right:3px;margin:0;padding:1px 5px;font-size:7.5px}
}
/* profilo: fotografo, viaggiatore o entrambi */
.pf-kind{border:0;margin:4px 0 8px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pf-kind legend{padding:0;margin-bottom:6px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.pf-kind label{position:relative;cursor:pointer}
.pf-kind input{position:absolute;opacity:0;pointer-events:none}
.pf-kind span{display:block;text-align:center;padding:10px 6px;border-radius:12px;border:1px solid rgba(255,255,255,.18);font-weight:600;font-size:.9rem}
.pf-kind input:checked + span{border-color:#c9a7ff;background:rgba(201,167,255,.14)}
.pf-kind input:focus-visible + span{outline:2px solid #c9a7ff;outline-offset:2px}
/* cluster: scelta all'iscrizione e nel profilo */
.cl-pick{border:0;margin:6px 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.cl-pick legend{padding:0;margin-bottom:6px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.cl-pick legend small{text-transform:none;letter-spacing:0;opacity:.75}
.cl-pick label{position:relative;cursor:pointer}
.cl-pick input{position:absolute;opacity:0;pointer-events:none}
.cl-pick span{display:block;padding:11px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.18);font-weight:600;font-size:.92rem}
.cl-pick input:checked + span{border-color:#ffd27a;background:rgba(255,210,122,.12)}
.cl-pick input:focus-visible + span{outline:2px solid #ffd27a;outline-offset:2px}
.me-styles{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0}
.me-styles span{padding:3px 9px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-size:.8rem;font-weight:600}
/* firme dei cluster sui luoghi */
.pop-signs{margin:6px 0 8px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.pop-signs:empty{display:none}
.sg-pick{display:inline-block;margin:0 0 6px;padding:3px 10px;border-radius:999px;background:linear-gradient(90deg,#ffd27a,#ffb347);color:#2b1a02;font-weight:700;font-size:.78rem;letter-spacing:.06em}
.sg-counts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.sg-counts span{padding:2px 8px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-weight:700;font-size:.8rem}
.sg-none{margin:0 0 6px;font-size:.82rem;opacity:.75}
.sg-acts{display:flex;flex-wrap:wrap;gap:6px}
.sg-acts .pop-btn{border-color:var(--c,rgba(255,255,255,.25))}
.sg-acts .sg-on{background:color-mix(in srgb,var(--c,#ffd27a) 18%,transparent)}
.sg-acts .gold{--c:#ffd27a}
.sg-form{display:grid;gap:6px;margin-top:8px}
.sg-form input{width:100%;box-sizing:border-box}
.sg-tips{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.sg-tips li{display:grid;grid-template-columns:22px 1fr;gap:6px;font-size:.86rem}
.sg-tips li>span{color:var(--c)}
.sg-tips p{margin:0}.sg-tips small{display:block;opacity:.7}
/* admin: tabelle cluster */
.adm-h{margin:16px 0 6px;font-size:1rem}
.adm-table{width:100%;border-collapse:collapse;font-size:.88rem}
.adm-table th,.adm-table td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}
.adm-table td+td,.adm-table th+th{text-align:right}
.cand-form{display:flex;gap:6px;flex-wrap:wrap}
.cand-form input{min-width:160px}
/* recensioni per folk */
.rev-byfolk{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;width:100%}
.rev-byfolk span{padding:2px 8px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-weight:700;font-size:.8rem}
.pop-rating:not([hidden]){display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.rev-folktag{padding:1px 7px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-size:.72rem;font-weight:700}
.rev-folk{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:.86rem}
.rev-folk select{flex:1;min-width:0}
/* SpotFolk: logo nel menu (piccolo) e nella sezione */
.site-header nav a.nav-spots .nav-wf{width:auto;height:14px;margin-top:-2px;display:block}
.sx-kick .sx-logo{display:block;width:auto;height:96px;margin:0 0 6px}
@media (max-width:700px){
  .sx-kick{display:block !important;order:0}
  .sx-kick .sx-logo{height:58px;margin:0 0 2px}
}
/* luoghi firmati dai folk: l'icona «evolve» con le firme */
.spot-pin .folk-badge,.spot-pin .pick-star{position:absolute;top:-8px;left:-8px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-size:10px;line-height:1;background:#06101d;border:1.5px solid var(--fc,#ffd27a);box-shadow:0 1px 4px rgba(0,0,0,.5)}
.spot-pin .pick-star{background:linear-gradient(135deg,#ffe08a,#ffb347);color:#3a2300;border-color:#fff;font-size:11px;font-weight:700}
.spot-pin.signed.t2{outline:2px solid var(--fc);outline-offset:2px}
.spot-pin.signed.t3{outline:2px solid var(--fc);outline-offset:2px;box-shadow:0 0 0 5px rgba(6,16,29,.85),0 0 0 7px var(--fc),0 0 18px var(--fc)}
.spot-pin.pick{outline:2px solid #ffd27a;outline-offset:2px}
.spot-pin.pick.t3{box-shadow:0 0 0 5px rgba(6,16,29,.85),0 0 0 7px #ffd27a,0 0 20px #ffd27a}
/* mappa della community: ogni folk ha la sua icona e il suo colore */
.ph-pin[class*="folk-"]:not(.contrib):not(.dev){border-color:var(--fc);color:var(--fc);box-shadow:0 0 12px color-mix(in srgb,var(--fc) 55%,transparent)}
.ph-pin[class*="folk-"]:not(.contrib):not(.dev) svg{stroke:var(--fc)}
.ph-pin.multi::after{content:"+";position:absolute;right:-5px;bottom:-5px;width:14px;height:14px;border-radius:50%;display:grid;place-items:center;background:var(--fc);color:#0b1020;font:700 11px/1 var(--sans)}
/* le prime 3 firme */
.onb-folk{margin:0 0 10px;padding:12px 14px;border-radius:14px;background:rgba(255,210,122,.08);border:1px solid rgba(255,210,122,.45)}
.onb-folk p{margin:0;font-size:.9rem}
.onb-dots{display:flex;align-items:center;gap:6px;margin:8px 0}
.onb-dots span{width:22px;height:8px;border-radius:4px;background:rgba(255,255,255,.15)}
.onb-dots span.on{background:#ffd27a}
.onb-dots small{margin-left:4px;opacity:.8}
.onb-help{opacity:.8;font-size:.82rem !important}
@media (max-width:700px){.sx-sheet .onb-folk{display:none}}
/* firme: primo firmatario, chi firma, sul posto, utile */
.sg-first{margin:0 0 6px;font-size:.82rem;opacity:.9}
.sg-who{border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:2px;cursor:pointer}
.sg-spot{font-size:.75rem;color:#7ee081;white-space:nowrap}
.sg-useful{margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:none;color:inherit;font-size:.75rem;cursor:pointer}
.sg-useful.on{background:rgba(255,210,122,.18);border-color:#ffd27a}
.sg-useful[disabled]{opacity:.5;cursor:default}
/* passaporto SpotFolk */
.pp{margin:14px 0;padding:16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,210,122,.3)}
.pp-kick{margin:0 0 10px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#ffd27a}
.pp-folks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pp-folk{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-weight:600;font-size:.85rem}
.pp-folk b{padding:1px 7px;border-radius:999px;background:var(--c);color:#0b1020;font-size:.72rem;letter-spacing:.04em}
.pp-stats{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.pp-map{display:block;width:100%;height:auto;margin:10px 0;border-radius:12px;background:radial-gradient(circle at 50% 50%,rgba(60,110,200,.18),rgba(6,12,26,.9));border:1px solid rgba(255,255,255,.08)}
.pp-h{margin:10px 0 6px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.pp-stamps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.pp-stamps button{width:100%;text-align:left;padding:8px 10px;border-radius:12px;border:1px dashed var(--c);background:rgba(0,0,0,.2);color:inherit;font:inherit;font-size:.85rem;cursor:pointer;display:grid;grid-template-columns:22px 1fr;column-gap:6px}
.pp-stamps button span{grid-row:span 2}
.pp-stamps small{opacity:.7;font-size:.72rem}
@media (max-width:520px){.pp-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
.pp-stats dt{font-size:.62rem;letter-spacing:.1em}
/* raccolte e folk della zona */
.coll-tabs button{font-size:1.1rem;min-width:44px}
.coll-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.coll-list button{width:100%;display:grid;grid-template-columns:30px 1fr;column-gap:8px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:inherit;font:inherit;cursor:pointer}
.coll-list button:hover{border-color:#ffd27a}
.coll-list .coll-n{grid-row:span 2;font-weight:700;color:#ffd27a}
.coll-list small{opacity:.75;font-size:.8rem}
.coll-list button:not(:has(.coll-n)){grid-template-columns:1fr}
/* sfide */
.ch-row{padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}
.ch-row:first-of-type{border-top:0}
.ch-row p{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.ch-row p small{margin-left:auto;opacity:.7;font-size:.75rem}
.ch-d{opacity:.85;font-size:.85rem;margin-top:3px !important}
.ch-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.1);margin:6px 0 3px;overflow:hidden}
.ch-bar span{display:block;height:100%;background:linear-gradient(90deg,#ffb347,#ffd27a)}
.ch-n{font-size:.78rem;opacity:.8}
.ch-row.done .ch-bar span{background:#7ee081}
.onb-folk .pp{margin:0;padding:0;border:0;background:none}
/* Folk of the month nella rivista */
.mz-folk{display:flex;gap:18px;align-items:center;margin:18px 0;padding:16px;border-radius:16px;border:1px solid rgba(255,210,122,.4);background:rgba(255,210,122,.05)}
.mz-folk img{width:110px;height:110px;object-fit:cover;border-radius:50%;flex:none}
.mz-folk h3{margin:2px 0}
.mz-folk p{margin:4px 0}
.mz-folk-k{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#ffd27a}
.mz-folk-t{font-weight:600}
.mag-folk{font-size:.85em;opacity:.85;white-space:nowrap}
/* benvenuto per chi non è ancora folk */
.wf-welcome{margin:0 0 14px;padding:18px 18px 14px;border-radius:18px;background:linear-gradient(180deg,rgba(245,160,74,.12),rgba(10,20,42,.6));border:1px solid rgba(245,160,74,.45);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.wf-welcome h3{margin:0 0 10px;font-family:var(--serif,'Cormorant Garamond',serif);font-weight:600;font-size:1.65rem;line-height:1.1;color:#fff}
.wf-welcome h3 em{color:#f5a04a}
.wf-ben{margin:0 0 12px;padding-left:18px;display:grid;gap:5px;font-size:.9rem;line-height:1.4}
.wf-pick{margin:0 0 8px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.wf-folks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
.wf-folks button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border-radius:12px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);color:#fff;font:600 .78rem var(--sans);cursor:pointer;min-height:56px}
.wf-folks button span{font-size:1.25rem;line-height:1}
.wf-folks button:hover,.wf-folks button:focus-visible{background:color-mix(in srgb,var(--c) 22%,transparent);border-color:var(--c)}
.wf-cta{display:block;width:100%;padding:13px 16px;border:0;border-radius:999px;background:#f5a04a;color:#1a1206;font:700 .95rem var(--sans);letter-spacing:.03em;cursor:pointer}
.wf-cta:hover{filter:brightness(1.07)}
.wf-found{margin:10px 0 0;font-size:.85rem;line-height:1.4;color:#ffd9a8}
.wf-peek{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.wf-peek span{padding:3px 9px;border-radius:999px;border:1px dashed rgba(255,255,255,.25);font-size:.74rem;opacity:.85}
.wf-login{margin:10px 0 0;font-size:.82rem;opacity:.85}
.pending-banner.in{border-color:rgba(126,224,129,.5)}
.pp-folk.founder{background:rgba(255,210,122,.1)}
@media (max-width:700px){.wf-welcome{order:1;margin:4px 0 12px}.wf-welcome h3{font-size:1.45rem}}

/* ===== SpotFolk: presentation under the map, for visitors (what SpotFolk is) ===== */
.wfa{margin-top:56px;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(255,190,122,.22)}
.wfa-blk{padding:72px 0 0}
.wfa-kick{margin:0 0 12px;font:500 .78rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--warm)}
.wfa-h2{margin:0;font:600 clamp(2rem,4.4vw,3.6rem)/1.03 var(--display);color:var(--head)}
.wfa-h2 em{font-style:italic;color:var(--warm)}
.wfa-lead{margin:16px 0 0;max-width:620px;color:var(--soft);font-size:1.05rem;line-height:1.55}
.wfa-folk{text-align:center;display:flex;flex-direction:column;align-items:center}
.wfa-folks{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:34px}
.wfa-f{width:140px;padding:0;border:0;background:none;color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font:inherit}
.wfa-ring{width:118px;height:118px;border-radius:50%;padding:4px;border:1px solid rgba(156,200,255,.25);transition:box-shadow .25s,border-color .25s;margin-bottom:6px}
.wfa-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.wfa-f b{font:600 1.45rem var(--display);color:var(--head)}
.wfa-f small{font-size:.82rem;color:var(--muted);line-height:1.3}
.wfa-f:hover .wfa-ring,.wfa-f:focus-visible .wfa-ring{border:3px solid #f28c1e;box-shadow:0 0 30px 6px rgba(242,140,30,.45)}
.wfa-split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.wfa-split>div{flex:1 1 380px}
.wfa-place{flex:1 1 420px;border-radius:24px;overflow:hidden;background:var(--bg-3);border:1px solid var(--line)}
.wfa-ph{position:relative;height:220px}
.wfa-ph img{width:100%;height:100%;object-fit:cover;display:block}
.wfa-ph span{position:absolute;left:14px;top:14px;padding:6px 11px;border-radius:999px;background:#ffd27a;color:#1a1206;font-size:.76rem;font-weight:700}
.wfa-in{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px}
.wfa-pn{font:600 1.75rem var(--display);color:var(--head)}
.wfa-tip{margin:0;padding:11px 13px;border-radius:14px;background:var(--bg-2);display:flex;flex-direction:column;gap:4px}
.wfa-tip small{color:var(--muted);font-size:.75rem}
.wfa-tip q{quotes:none;font:italic 500 1.15rem/1.35 var(--display);color:var(--head)}
.wfa-tip.lock q{filter:blur(5px);user-select:none}
.wfa-btn{align-self:flex-start;min-height:46px;padding:0 20px;border:0;border-radius:999px;background:#f28c1e;color:#1a1206;font:700 .95rem var(--sans);cursor:pointer}
.wfa-btn:hover{background:#ffa041}
.wfa-btn.big{min-height:54px;padding:0 30px;font-size:1.05rem;align-self:center}
.wfa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:30px}
.wfa-grid article{padding:22px;border-radius:20px;background:var(--bg-3);border:1px solid var(--line)}
.wfa-grid article.new{border-color:rgba(255,190,122,.45)}
.wfa-grid h3{margin:0 0 6px;font:600 1.5rem var(--display);color:var(--head);display:flex;gap:8px;align-items:center}
.wfa-grid h3 span{padding:3px 8px;border-radius:999px;background:#f28c1e;color:#1a1206;font:700 .62rem var(--sans);letter-spacing:.1em}
.wfa-grid p{margin:0;color:var(--soft);font-size:.95rem;line-height:1.5}
.wfa-steps ol{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.wfa-steps li{padding:24px;border-radius:20px;background:var(--bg-3);display:flex;flex-direction:column;gap:8px}
.wfa-steps li:last-child{border:1px solid rgba(255,190,122,.45)}
.wfa-steps li span{font:600 3rem/1 var(--display);color:var(--warm)}
.wfa-steps li b{font-size:1.15rem;color:var(--head)}
.wfa-steps li small{color:var(--soft);font-size:.93rem;line-height:1.5}
.wfa-close{margin-top:72px;padding:110px 24px;border-radius:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;
  background:linear-gradient(180deg,rgba(5,11,20,.92),rgba(5,11,20,.5) 50%,rgba(5,11,20,.92)),url("img/wf/night.jpg") center/cover}
.wfa-close .wfa-lead{margin:0 auto}
.wfa-log{margin:0;color:var(--soft)}
@media (max-width:700px){
  .wfa-blk{padding-top:52px}
  .wfa-folks{gap:12px}.wfa-f{width:100px}.wfa-ring{width:88px;height:88px}.wfa-f b{font-size:1.2rem}.wfa-f small{display:none}
  .wfa-close{padding:72px 18px;border-radius:20px}
}
.wfa{margin-top:28px}
.wfa-f.is-static{cursor:default}
.wfa-f.is-static:hover .wfa-ring{border:1px solid rgba(156,200,255,.25);box-shadow:none}
.wfa-note{margin:4px 0 0;color:var(--muted);font-size:.9rem}

/* link to the SpotFolk home domain, under the logo */
.sx-home{display:inline-block;width:fit-content;align-self:flex-start;justify-self:start;margin:-4px 0 10px;font-size:12px;letter-spacing:.06em;color:var(--soft);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
.sx-home:hover{color:var(--head)}

/* =========================================================
   SPOTFOLK ON ITS OWN (spotfolk.eu): same app, its own look — warm fire on night blue
   ========================================================= */
.sf-top,.sf-bar{display:none}
html.sf{--sf-fire:#f28c1e;--sf-warm:#ffbe7a;--sf-ink:#1a1206;--sf-wline:rgba(255,190,122,.3);--sf-serif:'Cormorant Garamond',Georgia,serif}
html.sf .site-header,html.sf .footer-guide[href="#crew"]{display:none}
html.sf .sf-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px clamp(16px,3vw,32px);background:#02060c;font-size:13px;color:#8a99ab}
.sf-top a{display:inline-flex;align-items:center;gap:8px;color:#b8c4d2}
.sf-top a::before{content:"‹";font-size:18px;line-height:1;margin-right:2px}
.sf-top a:hover{color:#fff}
.sf-top img{width:26px;height:auto}
html.sf .sf-bar{position:sticky;top:0;z-index:1000;display:flex;align-items:center;gap:20px;padding:10px clamp(16px,3vw,32px);background:rgba(5,11,20,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,190,122,.18)}
.sf-logo img{width:104px;height:auto;display:block}
.sf-nav{flex:1;display:flex;justify-content:center;gap:4px;flex-wrap:wrap}
.sf-nav a{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border-radius:999px;color:#e6ecf3;font:500 15px var(--sans)}
.sf-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.sf-nav a.sf-map{background:rgba(242,140,30,.14);color:var(--sf-warm)}
.sf-nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sf-acts{display:flex;align-items:center;gap:8px}
.sf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;font:700 14px/1 var(--sans);cursor:pointer;white-space:nowrap;border:0}
.sf-fire{background:var(--sf-fire);color:var(--sf-ink)}.sf-fire:hover{background:#ffa041;color:var(--sf-ink)}
.sf-line{background:transparent;color:#e6ecf3;border:1px solid rgba(230,236,243,.3)}.sf-line:hover{border-color:rgba(230,236,243,.6);color:#fff}
.sf-me{display:inline-flex;align-items:center;gap:9px;padding:4px 14px 4px 4px;border-radius:999px;border:1px solid var(--sf-wline);color:#f2f6fb;font:600 14px var(--sans)}
.sf-me i{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--sf-fire);color:var(--sf-ink);font:600 17px var(--sf-serif);font-style:normal}
html.sf .sf-acts .lang-pick{margin-right:4px}
html.sf:not(.sf-folk) .sf-folk-only,html.sf.sf-folk .sf-guest-only{display:none !important}
/* the page: the map fills the screen under the bar */
html.sf #spots.content-page{padding-top:18px}
html.sf #spots .sx-kick,html.sf #spots .sx-home{display:none !important}
html.sf #spots .sx-title{font:600 clamp(34px,3.6vw,50px)/1.02 var(--sf-serif);color:#f2f6fb}
html.sf #spots .sx-title em{font-style:italic;color:var(--sf-warm)}
html.sf #spots .sx-lead{color:#b8c4d2}
/* the menu on the left, renewed */
html.sf #spots .sx-panel{border-color:var(--sf-wline);background:linear-gradient(180deg,rgba(16,29,46,.92),rgba(8,18,31,.94));border-radius:24px}
html.sf #spots .sx-group{border-color:rgba(255,190,122,.14);background:rgba(2,6,12,.45)}
html.sf #spots .sx-group.open{border-color:rgba(255,190,122,.5);box-shadow:0 0 0 1px rgba(255,190,122,.18),0 0 24px rgba(242,140,30,.12)}
html.sf #spots .sx-gico{border-radius:50%;background:rgba(242,140,30,.1);border-color:rgba(255,190,122,.35)}
html.sf #spots .sx-gtext b{font:600 22px/1.1 var(--sf-serif);letter-spacing:0;text-transform:none;color:#f2f6fb}
html.sf #spots .sx-gcount{color:var(--sf-warm);border-color:var(--sf-wline)}
html.sf #spots .sx-item{border-radius:14px}
html.sf #spots .sx-item.on{border-color:color-mix(in srgb,var(--c,#ffbe7a) 55%,transparent);background:color-mix(in srgb,var(--c,#ffbe7a) 9%,transparent)}
html.sf #spots .sx-check{border-radius:50%}
html.sf #spots .sx-foot a,html.sf #spots .sx-more a,html.sf #spots .sx-more .text-link,html.sf #spots .sx-links .text-link{color:var(--sf-warm)}
html.sf #spots .spots-search input{border-radius:999px}
html.sf #spots .sx-stage.spots-stage:not(.on-globe){border-color:var(--sf-wline)}
html.sf #spots .sx-modes button.on,html.sf #spots .sx-modes button[aria-pressed="true"]{background:#f2f6fb;color:#071226}
.sf-near{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;margin:0 0 12px;border:0;border-radius:999px;background:var(--sf-fire);color:var(--sf-ink);font:700 16px var(--sans);cursor:pointer}
.sf-near:hover{background:#ffa041}
.sf-near svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:980px){
  html.sf .sf-bar{flex-wrap:wrap;gap:8px 10px;padding:8px 16px}
  .sf-nav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .sf-nav a{flex:0 0 auto;padding:8px 12px;font-size:14px}
  .sf-acts{margin-left:auto}
  .sf-btn{min-height:38px;padding:0 13px;font-size:13.5px}
  .sf-me span{display:none}.sf-me{padding:3px}
  .sf-logo img{width:86px}
  html.sf .sf-born{display:none}
  html.sf #spots .sf-near{order:4;margin:0}
  html.sf #spots .sx-groups{border-color:var(--sf-wline);background:linear-gradient(180deg,rgba(16,29,46,.92),rgba(8,18,31,.94))}
}
/* on spotfolk.eu the guide shows only SpotFolk */
html.sf #guide .guide-card:not(#guide-spots),html.sf #guide .guide-toc,html.sf #guide .guide-downloads a:not([href*="spots"]):not([href*="contributors"]){display:none}
html.sf #guide .section-heading p{display:none}
html.sf #spots .spots-search .spots-locate{display:none}
/* spotfolk.eu on the phone: the bar of groups under the globe stays compact (small labels, as on fabiocostaph.com) */
@media (max-width:980px){
  html.sf #spots .sx-sheet .sx-gtext b{font:600 8.6px/1.15 var(--sans);letter-spacing:.03em;text-transform:uppercase;color:#f2f6fb;white-space:normal;overflow-wrap:anywhere;hyphens:auto}
  html.sf #spots .sx-sheet .sx-gtext{width:100%}
  html.sf #spots .sx-sheet .sx-groups{border-color:var(--sf-wline);background:rgba(8,18,31,.92)}
  html.sf #spots .sx-sheet .sx-group{border-color:transparent;background:none}
  html.sf #spots .sx-sheet .sx-group.open{border-color:rgba(255,190,122,.6);background:rgba(242,140,30,.1)}
}
/* spotfolk.eu: log in / become folk with SpotFolk's own look */
html.sf .install-tip{display:none !important}
html.sf .spots-gate.sf-door{max-width:480px;margin:6px auto 0;padding:26px 26px 22px;text-align:left;border:1px solid var(--sf-wline);border-radius:22px;background:linear-gradient(180deg,#101d2e,#08121f 60%);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.sf-door-logo{display:block;width:96px;height:auto;margin:0 0 8px}
html.sf .sf-door h2{margin:0;font:600 34px/1.05 var(--sf-serif);letter-spacing:0;text-transform:none;color:#f2f6fb}
html.sf .sf-door h2 em{font-style:italic;color:var(--sf-warm)}
html.sf .sf-door > p{margin:8px 0 16px;max-width:none;color:#b8c4d2;font-size:14.5px;line-height:1.5}
html.sf .sf-door .gate-tabs{display:grid;grid-template-columns:1fr 1fr;width:auto;margin:0 0 18px;border-color:rgba(156,200,255,.14);background:rgba(255,255,255,.05)}
html.sf .sf-door .gate-tabs button{min-height:40px;font-weight:700;font-size:14px;color:#b8c4d2}
html.sf .sf-door .gate-tabs button.on{background:var(--sf-fire);color:var(--sf-ink);box-shadow:none}
html.sf .sf-door .gate-form{gap:6px}
html.sf .sf-door .gate-form label{margin-top:6px;font:500 12px/1 'Oswald','Arial Narrow',sans-serif;letter-spacing:.14em;color:#8a99ab}
html.sf .sf-door .gate-form input:not([type=checkbox]){min-height:46px;padding:0 14px;border-radius:12px;border-color:rgba(156,200,255,.22);background:rgba(2,6,12,.55);font-size:16px}
html.sf .sf-door .gate-form input:focus{border-color:var(--sf-warm);box-shadow:0 0 0 3px rgba(242,140,30,.2)}
html.sf .sf-door .gate-row > div{gap:6px}
html.sf .sf-door .gate-row{grid-template-columns:1fr 1fr}
html.sf .sf-door .cl-pick{grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 6px}
html.sf .sf-door .cl-pick legend{font:500 12px/1 'Oswald','Arial Narrow',sans-serif;letter-spacing:.14em;color:#8a99ab;margin-bottom:8px;opacity:1}
html.sf .sf-door .cl-pick legend small{display:block;margin-top:5px;font:400 12px var(--sans);letter-spacing:0;color:#8a99ab}
html.sf .sf-door .cl-pick span{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;border-radius:12px;border-color:rgba(156,200,255,.14);background:rgba(255,255,255,.03);font-size:12.5px;font-weight:700;text-align:center;color:#e6ecf3}
html.sf .sf-door .cl-pick span i{font-style:normal;font-size:20px;line-height:1}
html.sf .sf-door .cl-pick input:checked + span{border-color:var(--sf-warm);background:rgba(242,140,30,.14);color:#f2f6fb}
html.sf .sf-door .gate-form .gate-check{margin-top:6px;color:#b8c4d2;font-size:13.5px}
html.sf .sf-door .gate-form .gate-check input{accent-color:var(--sf-fire)}
html.sf .sf-door .gate-check a,html.sf .sf-door .gate-check .text-link,html.sf .sf-door .gate-help a{color:var(--sf-warm)}
html.sf .sf-door .wf-found{color:var(--sf-warm);font-size:13.5px}
.sf-submit{width:100%;min-height:52px;margin-top:10px;border:0;border-radius:999px;background:var(--sf-fire,#f28c1e);color:var(--sf-ink,#1a1206);font:700 16px var(--sans);cursor:pointer}
.sf-submit:hover{background:#ffa041}.sf-submit:disabled{opacity:.6;cursor:progress}
html.sf .sf-door .gate-back{color:#b8c4d2}
@media (max-width:520px){html.sf .spots-gate.sf-door{padding:22px 18px 18px;border-radius:18px}html.sf .sf-door h2{font-size:30px}}
html.sf .sf-door .cl-pick span,html.sf .sf-door .gate-form .gate-check,html.sf .sf-door .gate-form .gate-check *{text-transform:none;letter-spacing:0}
html.sf #spotsRoot,html.sf .sf-door{scroll-margin-top:150px}
/* spotfolk.eu: while the page starts (before the address is read) never show fabiocostaph.com's home */
html.sf body:not([data-page]) main > .page{display:none !important}
html.sf body:not([data-page]) main::before{content:"";display:block;width:34px;height:34px;margin:30vh auto;border-radius:50%;border:3px solid rgba(255,190,122,.25);border-top-color:#f28c1e;animation:sfspin .9s linear infinite}
@keyframes sfspin{to{transform:rotate(360deg)}}

/* =========================================================
   spotfolk.eu — the folk's own page (passport first, cover, live counters)
   ========================================================= */
html.sf.sf-on-me .crew-band{display:none}
.sfme{max-width:1040px;gap:18px}
.sfme-hero{position:relative;border:1px solid var(--sf-wline);border-radius:26px;overflow:hidden;background:linear-gradient(180deg,#0f1c2d,#08121f);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.sfme-cover{height:150px;background:linear-gradient(180deg,rgba(5,11,20,.1),rgba(8,18,31,1)),url(img/wf/night.jpg) center 40%/cover}
.sfme-main{display:grid;grid-template-columns:auto 1fr auto;gap:18px 22px;align-items:end;padding:0 26px;margin-top:-62px;position:relative}
.sfme-ring{display:grid;place-items:center;padding:4px;border-radius:50%;background:var(--ring);box-shadow:0 10px 30px rgba(0,0,0,.5);transition:transform .3s}
.sfme-ring:hover{transform:rotate(-6deg) scale(1.03)}
.sfme-ring .me-avatar{border:3px solid #0b1626;background:radial-gradient(circle at 35% 30%,#2a2015,#0b1626)}
.sfme-ring .me-avatar span{font-family:var(--sf-serif);font-size:calc(var(--s) * .4);color:var(--sf-warm)}
.sfme-id{min-width:0;padding-bottom:4px}
.sfme-kick{margin:0 0 4px;font:500 12px/1 'Oswald','Arial Narrow',sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--sf-warm)}
.sfme-id h2{margin:0;font:600 clamp(32px,4vw,48px)/1 var(--sf-serif);color:#f2f6fb}
.sfme-sub{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;color:#b8c4d2;font-size:14px}
.sfme-sub b{color:#f2f6fb;font-weight:600}
.sfme-folks{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sfme-folks span{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent);color:#f2f6fb;font:600 13px var(--sans)}
.sfme-folks .sfme-founder{--c:#ffd27a;background:linear-gradient(90deg,rgba(255,210,122,.22),rgba(242,140,30,.18));border-color:#ffd27a}
.sfme-add{padding:6px 12px;border-radius:999px;border:1px dashed var(--sf-wline);background:none;color:var(--sf-warm);font:600 13px var(--sans);cursor:pointer}
.sfme-add:hover{background:rgba(242,140,30,.1)}
.sfme-acts{display:flex;gap:8px;padding-bottom:6px}
.sfme-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:22px 26px 24px}
.sfme-stat{display:grid;justify-items:start;gap:2px;padding:14px 16px;border-radius:18px;border:1px solid rgba(255,190,122,.16);background:rgba(2,6,12,.45);color:#f2f6fb;text-align:left;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.sfme-stat:hover{transform:translateY(-3px);border-color:rgba(255,190,122,.55);background:rgba(242,140,30,.08)}
.sfme-stat i{font-style:normal;font-size:18px;line-height:1;color:var(--sf-warm)}
.sfme-stat b{font:600 34px/1.05 var(--sf-serif);font-variant-numeric:tabular-nums}
.sfme-stat small{font:500 11px/1 'Oswald','Arial Narrow',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#8a99ab}
.sfme-tabs{position:sticky;top:76px;z-index:20;display:flex;gap:6px;padding:6px;border-radius:999px;border:1px solid rgba(255,190,122,.18);background:rgba(8,18,31,.92);backdrop-filter:blur(10px);overflow-x:auto;scrollbar-width:none}
.sfme-tabs::-webkit-scrollbar{display:none}
.sfme-tabs button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border:0;border-radius:999px;background:none;color:#b8c4d2;font:600 14px var(--sans);cursor:pointer;transition:background .2s,color .2s}
.sfme-tabs button i{font-style:normal}
.sfme-tabs button:hover{color:#fff;background:rgba(255,255,255,.05)}
.sfme-tabs button.on{background:var(--sf-fire);color:var(--sf-ink)}
.sfme-body{animation:sfmeIn .35s ease}
@keyframes sfmeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sfme-body .me-row{border-radius:16px;border-color:rgba(255,190,122,.12);background:rgba(16,29,46,.7);transition:transform .2s,border-color .2s}
.sfme-body .me-row:hover{transform:translateY(-2px);border-color:rgba(255,190,122,.45)}
.sfme-body .me-card,.sfme-body .pp{border-radius:20px;border-color:var(--sf-wline);background:rgba(16,29,46,.7)}
.sfme-body .pp-kick,.sfme-body .me-h{font-family:var(--sf-serif);font-size:24px;letter-spacing:0;text-transform:none;color:#f2f6fb}
.sfme-body .outline-link,.sfme-body .pop-btn{border-color:var(--sf-wline);color:var(--sf-warm)}
.sfme-body .text-link{color:var(--sf-warm)}
.sfme .me-back{color:#b8c4d2}
@media (prefers-reduced-motion:reduce){.sfme-body{animation:none}.sfme-stat,.sfme-ring,.sfme-body .me-row{transition:none}}
@media (max-width:760px){
  .sfme-cover{height:110px}
  .sfme-main{grid-template-columns:1fr;justify-items:center;text-align:center;margin-top:-58px;padding:0 18px}
  .sfme-sub,.sfme-folks{justify-content:center}
  .sfme-acts{justify-content:center;flex-wrap:wrap}
  .sfme-stats{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}
  .sfme-stat b{font-size:28px}
  .sfme-tabs{top:112px;border-radius:18px}
  .sfme-tabs button{padding:9px 13px;font-size:13px}
}
.sfme-body .me-stats > div{border-radius:16px;border-color:rgba(255,190,122,.16);background:rgba(2,6,12,.45)}
.sfme-body .me-stats dd{font-family:var(--sf-serif);font-size:30px;color:#f2f6fb}
/* spotfolk.eu: quick actions on top of the menu, log out in the bar, nothing repeated at the bottom */
.sf-quick{display:grid;gap:8px;margin:0 0 12px}
.sf-quick.two{grid-template-columns:1fr 1fr}
.sf-quick .sf-near{margin:0;font-size:15px}
.sf-quick .sf-addplace{background:transparent;color:var(--sf-warm,#ffbe7a);border:1.5px solid var(--sf-wline,rgba(255,190,122,.3))}
.sf-quick .sf-addplace:hover{background:rgba(242,140,30,.1)}
.sf-quick svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
html.sf #spots .sx-user .me-link,html.sf #spots .sx-user #spotsAdd,html.sf #spots .sx-user .spots-email,html.sf #spots .sx-user #spotsLogout{display:none}
.sf-out{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border-radius:999px;border:1px solid rgba(230,236,243,.25);background:none;color:#b8c4d2;font:600 14px var(--sans);cursor:pointer}
.sf-out:hover{color:#fff;border-color:rgba(230,236,243,.55)}
.sf-out svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:980px){html.sf .sf-quick{order:4}.sf-out span{display:none}.sf-out{min-height:38px;width:38px;padding:0;justify-content:center}}
/* delete my account */
.me-danger{border-color:rgba(255,120,110,.35) !important}
.me-danger summary{cursor:pointer;color:#ffb3a7;font-weight:600}
.me-danger p{margin:10px 0 0;color:var(--soft,#b8c4d2);font-size:14px;line-height:1.55}
.me-confirm{display:grid;gap:6px;margin-top:12px;font-size:13px;color:var(--soft,#b8c4d2)}
.me-confirm input{max-width:220px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,120,110,.4);background:rgba(2,6,12,.5);color:#fff;font:600 15px var(--sans);letter-spacing:.08em}
.me-delbtn{margin-top:10px;border-color:rgba(255,120,110,.6) !important;color:#ffb3a7 !important}
.me-delbtn:disabled{opacity:.45;cursor:not-allowed}
/* welcome after signing up */
.welcome-dialog .import-body{text-align:center;max-width:440px}
.wd-fire{margin:0;font-size:44px;line-height:1}
.welcome-dialog h2{margin:6px 0 10px;font:600 36px/1.05 'Cormorant Garamond',Georgia,serif}
.wd-folks{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.wd-folks span{padding:6px 12px;border-radius:999px;border:1px solid var(--c);color:#f2f6fb;font:600 13px var(--sans)}
.welcome-dialog .gate-help{text-align:center}
/* privacy and cookie tables */
.legal-table{margin:14px 0 6px;overflow-x:auto;border:1px solid var(--line-strong,rgba(156,200,255,.25));border-radius:14px}
.legal-table table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px;line-height:1.5}
.legal-table th{text-align:left;padding:10px 12px;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--head,#fff);background:rgba(255,255,255,.04)}
.legal-table td{padding:10px 12px;border-top:1px solid rgba(220,230,245,.1);vertical-align:top}
.legal-table td:first-child{color:var(--head,#fff);font-weight:500}
.legal p{margin:8px 0}
.legal-page .section-heading .eyebrow{display:block;margin-bottom:8px;color:var(--accent,#9cc8ff)}

/* =========================================================
   Place card: the folk first (who signed it, who told it), then the consensus and the stories
   ========================================================= */
.pc-folk,.pc-cons,.pc-pulse{margin:8px 0;padding:10px 10px 12px;border-radius:16px;border:1px solid rgba(255,190,122,.22);background:linear-gradient(180deg,rgba(255,190,122,.06),rgba(255,255,255,.02))}
.pc-folk[hidden],.pc-cons[hidden],.pc-pulse[hidden]{display:none}
.pc-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0 0 8px !important;font:600 17px/1.15 'Cormorant Garamond',Georgia,serif !important;color:#f2f6fb !important}
.pc-h > span{font:400 14px var(--sans);color:#ffbe7a}
.pc-h small{flex-basis:100%;font:400 11.5px var(--sans);color:#9fb0c6}
.pc-n{font:600 11px var(--sans);font-style:normal;padding:1px 8px;border-radius:999px;background:rgba(255,190,122,.16);color:#ffbe7a}
.pc-people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 2px;align-items:start}
.pc-p{position:relative;display:grid;justify-items:center;gap:1px;padding:0;border:0;background:none;color:#e6ecf3;text-align:center;cursor:pointer;font:inherit}
.pc-av{display:grid;place-items:center;padding:2.5px;border-radius:50%;background:conic-gradient(var(--c),color-mix(in srgb,var(--c) 40%,#0b1626),var(--c));transition:transform .2s}
.pc-p:hover .pc-av{transform:translateY(-2px) scale(1.04)}
.pc-av .me-avatar{border:2px solid #0b1626}
.pc-av .me-avatar span{font-family:'Cormorant Garamond',Georgia,serif;color:#ffd9a0}
.pc-p.first .pc-av{background:conic-gradient(#ffd27a,#f28c1e,#ffd27a);box-shadow:0 0 16px rgba(255,190,122,.45)}
.pc-crown{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-style:normal;font-size:14px;z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.pc-first{margin-top:-9px;padding:1px 7px;border-radius:999px;background:#f28c1e;color:#1a1206;font:700 9px var(--sans);font-style:normal;letter-spacing:.02em;position:relative;z-index:2;white-space:nowrap}
.pc-p b{margin-top:3px;font:600 13px/1.1 'Cormorant Garamond',Georgia,serif;color:#f2f6fb;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-p small{font-size:10px;color:color-mix(in srgb,var(--c) 75%,#fff);white-space:nowrap}
.pc-p time{font-size:9.5px;color:#8a99ab;white-space:nowrap}
.pc-more{display:grid;justify-items:center;align-content:start;gap:2px;padding-top:6px;color:#b8c4d2}
.pc-more b{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1.5px solid rgba(255,190,122,.4);font:600 16px 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-more small{font-size:10px}
.pc-bar{display:flex;gap:2px;height:6px;margin:12px 0 6px;border-radius:999px;overflow:hidden}
.pc-bar i{background:var(--c)}
.pc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 !important;font-size:11px}
.pc-legend span{color:var(--c);font-weight:700}
.pc-legend em{margin-left:auto;font-style:normal;color:#9fb0c6}
.pc-cbox{display:grid;grid-template-columns:82px 1fr;gap:10px;align-items:center}
.pc-cbox.solo{grid-template-columns:82px auto;justify-content:start}
.pc-ring{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle,#0d1b2c 58%,transparent 59%),conic-gradient(#ffbe7a var(--p),rgba(255,255,255,.08) 0)}
.pc-ring b{font:600 24px/1 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-ring small{font-size:10px;color:#9fb0c6;margin-top:-2px}
.pc-ring span{font-size:9.5px;color:#b8c4d2}
.pc-subs{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pc-subs li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 6px;font-size:11.5px;color:#e6ecf3}
.pc-subs li span{line-height:1.15}
.pc-subs small{display:block;font-size:9.5px;color:#8a99ab}
.pc-subs b{font:600 14px 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-subs i{grid-column:1/-1;height:4px;margin-top:3px;border-radius:999px;background:linear-gradient(90deg,#ffbe7a var(--v),rgba(255,255,255,.08) 0)}
.pc-solo{display:grid;gap:3px;margin:0 !important;font-size:12px;color:#b8c4d2}
.pc-cons .rev-byfolk{margin:8px 0 0 !important}
.pc-pulse ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pc-pulse li{display:flex;align-items:center;gap:8px;font-size:12px;color:#e6ecf3}
.pc-pulse li b{margin-left:auto;font:600 15px 'Cormorant Garamond',Georgia,serif;color:#ffbe7a}
/* folk stories: the person first, then the words */
.pc-story{padding:10px 0 4px}
.pc-story .rev-head{flex-wrap:nowrap;align-items:center;gap:8px}
.pc-face{padding:2px;border:0;border-radius:50%;background:conic-gradient(var(--c),color-mix(in srgb,var(--c) 40%,#0b1626),var(--c));cursor:pointer}
.pc-face .me-avatar{border:2px solid #0b1626}
.pc-who{flex:1;min-width:0;display:grid;line-height:1.2}
.pc-who b{font:600 15px 'Cormorant Garamond',Georgia,serif !important;color:#f2f6fb}
.pc-who small{font-size:10.5px;color:#9fb0c6}
.pc-stars{margin:4px 0 0 !important;font-size:12px;color:#ffbe7a}
.pc-stars i{font-style:normal;color:rgba(255,255,255,.18)}
/* the four ratings in the review form */
.rev-subs{display:grid;gap:6px;margin:6px 0}
.rev-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#e6ecf3}
.rev-sub small{display:block;font-size:10px;color:#8a99ab}
.rev-dots{display:flex;gap:4px}
.rev-dots button{width:15px;height:15px;padding:0;border-radius:50%;border:1.5px solid rgba(255,190,122,.5);background:none;cursor:pointer}
.rev-dots button.on{background:#ffbe7a;border-color:#ffbe7a}

/* =========================================================
   PLACE CARD (spot popup), SpotFolk style — sections that open like drawers:
   the folk · consensus · stories · pulse · travel better · details
   ========================================================= */
.spot-popup:has(.pc) .leaflet-popup-content-wrapper{background:linear-gradient(180deg,#101d2e 0%,#0a1524 55%,#08121f 100%);border:1px solid rgba(255,190,122,.32);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.spot-popup:has(.pc) .leaflet-popup-tip{background:#08121f;border:1px solid rgba(255,190,122,.32)}
.spot-popup:has(.pc) .leaflet-popup-content{max-height:min(68vh,580px);margin:14px 12px 12px 14px;scrollbar-width:thin;scrollbar-color:rgba(255,190,122,.35) transparent}
.pc{gap:8px;color:#e6ecf3}
.pc-top strong{display:block;margin:2px 0 4px!important;font:600 24px/1.05 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-top .spot-cat{font-weight:600}
.pc-photos{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:4px 0 2px}
.pc-photos:empty{display:none}
.pc-photos .pop-fig{flex:0 0 auto;width:118px;margin:0}
.pc-photos .pop-thumb img{width:118px;height:80px;object-fit:cover;border-radius:10px}
.pc-photos figcaption{font-size:9.5px;color:#8a99ab}
/* a section */
.pc-sec{border:1px solid rgba(255,190,122,.18);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));overflow:hidden;transition:border-color .2s}
.pc-sec[open]{border-color:rgba(255,190,122,.45);background:linear-gradient(180deg,rgba(242,140,30,.07),rgba(255,255,255,.015))}
.pc-sec > summary{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 10px;cursor:pointer;list-style:none;user-select:none}
.pc-sec > summary::-webkit-details-marker{display:none}
.pc-sec > summary:hover{background:rgba(255,255,255,.03)}
.pc-ico{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,190,122,.4);background:rgba(242,140,30,.08)}
.pc-ico svg{width:19px;height:19px;fill:none;stroke:#ffbe7a;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pc-st{flex:1;min-width:0;display:grid;line-height:1.15}
.pc-st b{font:600 17px/1.1 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-st small{font-size:10.5px;color:#9fb0c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-cnt{flex:none;font:600 12px var(--sans);font-style:normal;padding:2px 9px;border-radius:999px;background:rgba(255,190,122,.14);color:#ffbe7a}
.pc-cnt[hidden],.pc-cnt:empty{display:none}
.pc-chev{flex:none;width:8px;height:8px;margin:0 4px 3px 2px;border-right:1.8px solid #ffbe7a;border-bottom:1.8px solid #ffbe7a;transform:rotate(45deg);transition:transform .25s}
.pc-sec[open] > summary .pc-chev{transform:rotate(-135deg);margin-bottom:-3px}
.pc-body{padding:2px 10px 12px;display:grid;gap:8px}
.pc-sec[open] .pc-body{animation:pcOpen .25s ease}
@keyframes pcOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.pc-empty{margin:0!important;font-size:12px;color:#9fb0c6}
/* the folk */
.pc-folk .pop-signs{margin:0;border-color:rgba(255,190,122,.16);background:rgba(2,6,12,.35)}
.pc-folk .sg-btn,.pc-folk .sg-on{border-radius:999px}
/* consensus: ring + four levels drawn as dots, no stars */
.pc-cbox{grid-template-columns:96px 1fr;gap:12px}
.pc-cbox.solo{grid-template-columns:96px}
.pc-ring{width:96px;height:96px;gap:0;background:radial-gradient(circle,#0b1626 60%,transparent 61%),conic-gradient(#ffbe7a 0,#f28c1e var(--p),rgba(255,255,255,.08) 0);box-shadow:0 0 22px rgba(242,140,30,.18)}
.pc-ring-ico{font-size:13px;line-height:1;color:#ffbe7a}
.pc-ring b{font:600 26px/1 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-ring b small{font:400 11px var(--sans);color:#9fb0c6;margin-left:2px}
.pc-ring em{font:500 8px 'Oswald','Arial Narrow',sans-serif;letter-spacing:.2em;text-transform:uppercase;font-style:normal;color:#b8c4d2}
.pc-ring > span:last-child{font-size:9px;color:#9fb0c6}
.pc-subs li{grid-template-columns:1fr auto;gap:2px 6px}
.pc-subs b{font-size:15px}
.pc-dots{grid-column:1/-1;display:flex;gap:3px}
.pc-dots i{flex:1;height:5px;border-radius:999px;background:linear-gradient(90deg,#ffbe7a var(--f),rgba(255,255,255,.1) 0)}
.pc-subs i{background:none}
/* stories */
.pc-share{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:0;border-radius:999px;background:#f28c1e;color:#1a1206;font:700 13px var(--sans);cursor:pointer}
.pc-share:hover{background:#ffa041}
.pc-form{display:grid;gap:8px;padding:10px;border-radius:14px;border:1px solid rgba(255,190,122,.25);background:rgba(2,6,12,.45)}
.pc-form input[name=title]{font:600 15px 'Cormorant Garamond',Georgia,serif}
.pc-story{padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(2,6,12,.35);border-top:1px solid rgba(255,255,255,.08)!important}
.pc-story + .pc-story{margin-top:8px}
.pc-story .rev-head{display:flex;align-items:center;gap:8px}
.pc-onspot{margin-left:auto;flex:none;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,190,122,.6);color:#ffbe7a;font-size:10px;font-weight:600;white-space:nowrap}
.pc-title{margin:8px 0 2px;font:600 17px/1.15 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-text{margin:4px 0 0!important;font-size:12.5px;line-height:1.5;color:#c9d6e6}
.pc-sphotos{display:flex;gap:6px;margin-top:8px}
.pc-sphotos button{padding:0;border:0;background:none;cursor:pointer}
.pc-sphotos img{width:74px;height:54px;object-fit:cover;border-radius:8px}
.pc-sfoot{display:flex;align-items:center;gap:8px;margin-top:8px}
.pc-score{font:600 15px 'Cormorant Garamond',Georgia,serif;color:#ffbe7a}
.pc-score small{font:400 10px var(--sans);color:#9fb0c6}
.pc-useful{margin-left:auto;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:none;color:#e6ecf3;font:600 11px var(--sans);cursor:pointer}
.pc-useful.on{border-color:#ffbe7a;color:#ffbe7a;background:rgba(242,140,30,.1)}
span.pc-useful{cursor:default}
.pc-sfoot .rev-del,.pc-sfoot .rev-flag{margin-left:0}
.pc-sfoot .pc-useful + .rev-del,.pc-sfoot .pc-useful + .rev-flag{margin-left:2px}
.pc-sfoot > :first-child:not(.pc-score){margin-left:auto}
/* pulse */
.pc-alive{margin:0!important;font-size:11.5px;color:#9fb0c6}
.pc-pl{list-style:none;margin:0;padding:0;display:grid}
.pc-pl li{display:flex;align-items:center;gap:10px;padding:7px 2px;border-top:1px solid rgba(255,255,255,.06);font-size:12.5px;color:#e6ecf3}
.pc-pl li:first-child{border-top:0}
.pc-pl li b{margin-left:auto;font:600 16px 'Cormorant Garamond',Georgia,serif;color:#ffbe7a}
/* travel better */
.pc-travel[open]{background:linear-gradient(180deg,rgba(242,140,30,.16),rgba(242,140,30,.04))}
.pc-tips{list-style:none;margin:0;padding:0;display:grid}
.pc-tips li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid rgba(255,190,122,.14)}
.pc-tips li:first-child{border-top:0}
.pc-tips li > span{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;border:1px solid rgba(255,190,122,.35);font-size:13px}
.pc-tips p{margin:0!important;font-size:12.5px;line-height:1.45;color:#e6ecf3}
/* details */
.pc-dl{display:grid;margin:0}
.pc-dl > div{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.06)}
.pc-dl > div:first-child{border-top:0}
.pc-dl dt{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#9fb0c6}
.pc-dl dt svg{width:14px;height:14px;fill:none;stroke:#ffbe7a;stroke-width:1.8}
.pc-dl dd{margin:0;text-align:right;font-size:12px;color:#f2f6fb}
.pc-dl dd .spot-copy{margin-left:6px}
.pc-all{justify-self:stretch;display:flex;justify-content:center;gap:6px;padding:9px;border-radius:999px;border:1.5px solid rgba(255,190,122,.6);color:#f2f6fb!important;font:600 13px var(--sans);text-decoration:none}
.pc-all:hover{background:rgba(242,140,30,.12)}
/* actions under the drawers */
.pc-acts{margin-top:2px}
.pc-acts .pop-btn,.pc .pop-actions .pop-btn{border-radius:999px;border-color:rgba(255,190,122,.35)}
.pc .fav-btn.on{color:#ff8fb1;border-color:#ff8fb1}
.pc .pop-author{margin:0!important;font-size:11px;color:#8a99ab}
.pc-st b{font-size:16px}
.pc-people{gap:8px 0}
.pc-av .me-avatar{--s:44px!important;width:44px;height:44px}
.pc-p b{font-size:12px;max-width:100%;padding:0 2px}
.pc-p small,.pc-p time{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:9.5px}
.pc-more b{width:42px;height:42px;font-size:15px}
.pc-cbox{grid-template-columns:88px 1fr;gap:10px}
.pc-ring{width:88px;height:88px}
/* the folk who know this place: bigger faces, name, folk and date of signature under each */
.pc-av .me-avatar{--s:56px!important;width:56px;height:56px}
.pc-av{padding:3px}
.pc-p{gap:2px}
.pc-p b{font-size:13px}
.pc-p small{font-size:10px}
.pc-p time{font-size:9.5px;color:#b8c4d2}
.pc-more b{width:52px;height:52px;margin-top:2px;font-size:17px}
.pc-crown{top:-12px;font-size:16px}
.pc-people{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 6px;margin:0 -2px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(255,190,122,.3) transparent}
.pc-p,.pc-more{flex:0 0 78px;scroll-snap-align:start}
.pc-p b,.pc-p small,.pc-p time{max-width:78px}
.pc-first{position:absolute;top:52px;left:50%;transform:translateX(-50%);margin:0}
/* folk stories, as in the SpotFolk layout: photo, then who (face, name, folk, date, on the spot), title, words, useful */
.pc-story{container-type:inline-size;display:grid;gap:0;padding:0;overflow:hidden}
.pc-story .pc-sbody{padding:10px 10px 8px;display:grid;gap:4px}
.pc-cover{display:block;padding:0;border:0;background:none;cursor:pointer}
.pc-cover img{display:block;width:100%;height:150px;object-fit:cover}
@container (min-width:440px){
  .pc-story.has-photo{grid-template-columns:42% 1fr}
  .pc-story.has-photo .pc-cover img{height:100%;min-height:180px;border-radius:12px 0 0 12px}
}
.pc-shead{display:flex;align-items:center;flex-wrap:wrap;gap:4px 7px}
.pc-shead .pc-face{padding:1.5px}
.pc-sname{font:600 15px/1.1 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-sfolk{font-size:11px;font-weight:600;color:color-mix(in srgb,var(--c) 80%,#fff)}
.pc-shead time{margin-left:auto;font-size:10.5px;color:#9fb0c6}
.pc-shead .pc-onspot{margin-left:0}
.pc-shead .pc-onspot:last-child{margin-left:auto}
.pc-title{margin:4px 0 0}
.pc-sphotos img{width:84px;height:58px}
.pc-sfoot{justify-content:flex-start}
.pc-sfoot .pc-useful{margin-left:auto}
.pc-mark{width:30px;height:30px;padding:0;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:none;color:#e6ecf3;font-size:14px;cursor:pointer}
.pc-mark.on{color:#ff8fb1;border-color:#ff8fb1}
.pc-more-menu{position:relative}
.pc-dots3{width:30px;height:30px;padding:0;border:0;background:none;color:#b8c4d2;font-size:12px;letter-spacing:1px;cursor:pointer}
.pc-menu{position:absolute;right:0;bottom:34px;z-index:5;display:grid;min-width:150px;padding:4px;border-radius:12px;border:1px solid rgba(255,190,122,.3);background:#0d1b2c;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.pc-menu[hidden]{display:none}
.pc-menu button{padding:8px 10px;border:0;border-radius:8px;background:none;color:#e6ecf3;text-align:left;font:500 12.5px var(--sans);cursor:pointer}
.pc-menu button:hover{background:rgba(255,255,255,.06)}
.pc-shead{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
.pc-swho{min-width:0;display:grid;line-height:1.2}
.pc-swho small{font-size:10.5px;color:#9fb0c6}
.pc-shead .pc-onspot{margin:0!important;font-size:9.5px}
.pc > *,.pc-body > *,.pc-top > *{min-width:0}.pc-photos,.pc-people{max-width:100%}
/* Support local and Fragile: badges on top, and their own cards in Travel better */
.pc-flags{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px!important}
.pc-flag{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font:700 11.5px var(--sans);cursor:pointer;border:1px solid}
.pc-flag.local{color:#9fe3c8;border-color:rgba(159,227,200,.55);background:rgba(159,227,200,.1)}
.pc-flag.fragile{color:#8fd3ff;border-color:rgba(143,211,255,.55);background:rgba(143,211,255,.1)}
.pc-flag:hover{filter:brightness(1.15)}
.pc-badge{padding:10px 12px;border-radius:14px;border:1px solid;font-size:12.5px;line-height:1.5}
.pc-badge.local{border-color:rgba(159,227,200,.45);background:linear-gradient(180deg,rgba(159,227,200,.12),rgba(159,227,200,.03))}
.pc-badge.fragile{border-color:rgba(143,211,255,.45);background:linear-gradient(180deg,rgba(143,211,255,.12),rgba(143,211,255,.03))}
.pc-bh{display:flex;align-items:center;gap:8px;margin:0 0 4px!important}
.pc-bh b{font:600 16px 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.pc-badge.local .pc-bh span,.pc-badge.fragile .pc-bh span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.06)}
.pc-badge p{margin:0!important;color:#dfe8f3}
.pc-badge ul{margin:0;padding-left:18px;color:#dfe8f3;display:grid;gap:2px}
.pc-badge [data-nearby]{margin-top:8px}
.pc-badge .soc-near{width:100%}
.rev-subs-h{margin:0 0 2px!important;font:600 15px 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.rev-subs-h small{font:400 10.5px var(--sans);color:#9fb0c6;margin-left:4px}
.rev-subs.need{padding:6px;border-radius:10px;outline:1.5px solid rgba(255,140,120,.7)}
.pc-photos .pop-fig{flex:0 0 118px;max-width:118px;min-width:0}.pc-photos figcaption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-photos .pop-thumb{display:block;padding:0;width:118px}.pc-photos .pop-thumb img{width:118px!important;height:80px!important;object-fit:cover;border-radius:10px}.pc-badge .soc-sub{margin:6px 0 2px!important;font:600 11px var(--sans)!important;letter-spacing:.02em!important;text-transform:none!important;color:#b8c4d2!important}
/* in every story the folk comes before the name */
.pc-sline{display:flex;align-items:center;flex-wrap:wrap;gap:3px 7px}
.pc-sline .pc-sfolk{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 14%,transparent);color:#f2f6fb;font:700 10.5px var(--sans);white-space:nowrap}
/* near me, grouped: places to eat, to sleep, to see… */
.near-group{margin:8px 0;border:1px solid color-mix(in srgb,var(--c) 30%,transparent);border-radius:14px;background:rgba(255,255,255,.02)}
.near-group > summary{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;list-style:none}
.near-group > summary::-webkit-details-marker{display:none}
.near-group > summary b{flex:1;font:600 16px 'Cormorant Garamond',Georgia,serif;color:#f2f6fb}
.near-group > summary em{font:600 11px var(--sans);font-style:normal;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.near-group > summary .sg-cat{--c:inherit}
.near-group .near-list{padding:0 6px 6px}
.near-more > summary{padding:4px 14px 10px;cursor:pointer;font-size:12px;color:#ffbe7a;list-style:none}
.near-more > summary::-webkit-details-marker{display:none}
