/* =========================================================
   RELOADZ · GENERE OPEN WORLD  🗺️
   Namespace #rzo / .rzo-*  — non interferisce con il tema GameVerse
   ========================================================= */

#rzo {
  --rzo-bg: #07090d;
  --rzo-surface: #0d1219;
  --rzo-surface-2: #121924;
  --rzo-line: rgba(255, 255, 255, .08);
  --rzo-line-2: rgba(255, 255, 255, .16);
  --rzo-text: #e9edf2;
  --rzo-muted: #8d98a8;
  --rzo-silver: #c9d2dc;
  --rzo-red: #e63946;
  --rzo-blue: #2f8cff;
  --rzo-gold: #d9a441;
  --rzo-sky-top: 26, 30, 64;
  --rzo-sky-hor: 214, 96, 64;
  --rzo-font-head: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --rzo-font-body: "Inter", "Segoe UI", system-ui, sans-serif;
  --rzo-hud-h: 60px;
  --rzo-top: 0px; /* offset se il tema ha un header fisso (es. 72px) */
  --rzo-radius: 14px;

  position: relative;
  isolation: isolate;
  overflow-x: clip;
  background: var(--rzo-bg);
  color: var(--rzo-text);
  font-family: var(--rzo-font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

#rzo *, #rzo *::before, #rzo *::after { box-sizing: border-box; }
#rzo h1, #rzo h2, #rzo h3, #rzo p, #rzo ol, #rzo ul, #rzo dl, #rzo dd { margin: 0; padding: 0; }
#rzo ol, #rzo ul { list-style: none; }
#rzo a { color: inherit; }
#rzo button { font: inherit; color: inherit; }
#rzo svg { display: block; }

#rzo .rzo-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

#rzo .rzo-wrap { width: min(1200px, 100% - 32px); margin-inline: auto; }

#rzo :focus-visible { outline: 2px solid var(--rzo-blue); outline-offset: 3px; border-radius: 6px; }

/* ---------- Livello effetti ---------- */
#rzo .rzo-fx {
  position: fixed; inset: 0; width: 100vw; height: 100vh;
  pointer-events: none; z-index: 40;
}

/* ---------- Testi comuni ---------- */
#rzo .rzo-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--rzo-font-head); font-size: .78rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase; color: var(--rzo-blue);
}
#rzo .rzo-eyebrow::before { content: ""; width: 22px; height: 1px; background: currentColor; }

#rzo .rzo-sec { position: relative; padding: clamp(72px, 10vw, 128px) 0; border-top: 1px solid var(--rzo-line); }
#rzo .rzo-sec--tight { padding: clamp(48px, 7vw, 88px) 0; }
#rzo .rzo-sec__head { position: relative; display: grid; gap: 14px; max-width: 720px; margin-bottom: clamp(32px, 5vw, 48px); }
#rzo .rzo-sec__title {
  font-family: var(--rzo-font-head); font-weight: 700; letter-spacing: -.02em;
  font-size: clamp(2rem, 4.6vw, 3.25rem); line-height: 1.05;
}
#rzo .rzo-sec__lead { color: var(--rzo-muted); font-size: clamp(1rem, 1.4vw, 1.08rem); max-width: 62ch; }

#rzo .rzo-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 22px; border-radius: 999px;
  background: var(--rzo-text); color: #07090d; border: 1px solid var(--rzo-text);
  font-family: var(--rzo-font-head); font-weight: 600; font-size: .95rem; letter-spacing: .02em;
  text-decoration: none; cursor: pointer;
  transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
#rzo .rzo-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px -10px rgba(47, 140, 255, .6); }
#rzo .rzo-btn--ghost { background: transparent; color: var(--rzo-text); border-color: var(--rzo-line-2); }
#rzo .rzo-btn--ghost:hover { border-color: var(--rzo-text); }

#rzo .rzo-link {
  color: var(--rzo-silver); font-weight: 500; font-size: .92rem;
  text-decoration: none; border-bottom: 1px solid var(--rzo-line-2);
  transition: color .2s, border-color .2s;
}
#rzo .rzo-link:hover { color: #fff; border-color: var(--rzo-blue); }

/* ---------- HUD ---------- */
#rzo .rzo-hud {
  position: sticky; top: var(--rzo-top); z-index: 50;
  height: var(--rzo-hud-h);
  display: grid; align-items: center; gap: 16px;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  grid-template-areas: "clock compass weather explore";
  padding: 0 clamp(12px, 3vw, 28px);
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}
#rzo .rzo-hud.is-solid {
  background: rgba(7, 9, 13, .82);
  border-color: var(--rzo-line);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}

#rzo .rzo-hud__clock {
  grid-area: clock;
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(7, 9, 13, .45); border: 1px solid var(--rzo-line-2); border-radius: 999px;
  padding: 6px 12px 6px 9px; cursor: pointer;
  font-family: var(--rzo-font-head); font-size: .85rem; font-variant-numeric: tabular-nums;
}
#rzo .rzo-hud__clock svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
#rzo .rzo-hud__phase { color: var(--rzo-muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }

#rzo .rzo-compass {
  grid-area: compass; justify-self: center;
  position: relative; width: 100%; max-width: 520px; height: 36px; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 16%, #000 84%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 16%, #000 84%, transparent);
}
#rzo .rzo-compass__track { position: absolute; left: 0; top: 0; height: 100%; will-change: transform; }
#rzo .rzo-compass__tick { position: absolute; bottom: 6px; width: 1px; height: 6px; background: rgba(255, 255, 255, .35); }
#rzo .rzo-compass__tick--major { height: 10px; background: rgba(255, 255, 255, .7); }
#rzo .rzo-compass__lbl {
  position: absolute; top: 2px; transform: translateX(-50%);
  font-family: var(--rzo-font-head); font-size: .72rem; font-weight: 600; letter-spacing: .08em; color: var(--rzo-silver);
}
#rzo .rzo-compass__lbl--n { color: var(--rzo-red); }
#rzo .rzo-compass__wp {
  position: absolute; top: 3px; transform: translateX(-50%);
  display: flex; align-items: center; gap: 4px; white-space: nowrap;
  font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rzo-gold);
}
#rzo .rzo-compass__wp::before { content: ""; width: 7px; height: 7px; background: var(--rzo-gold); transform: rotate(45deg); }
#rzo .rzo-compass__caret {
  position: absolute; left: 50%; bottom: 0; width: 2px; height: 16px; margin-left: -1px;
  background: var(--rzo-blue); box-shadow: 0 0 10px var(--rzo-blue);
}

#rzo .rzo-weather { grid-area: weather; display: flex; gap: 4px; }
#rzo .rzo-weather__btn {
  width: 34px; height: 34px; display: grid; place-items: center;
  border-radius: 10px; border: 1px solid var(--rzo-line-2); background: rgba(7, 9, 13, .45);
  cursor: pointer; transition: background .2s, border-color .2s, color .2s;
  color: var(--rzo-muted);
}
#rzo .rzo-weather__btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#rzo .rzo-weather__btn:hover { color: var(--rzo-text); border-color: var(--rzo-text); }
#rzo .rzo-weather__btn[aria-pressed="true"] { background: var(--rzo-blue); border-color: var(--rzo-blue); color: #fff; }

#rzo .rzo-explore { grid-area: explore; display: flex; align-items: center; gap: 10px; }
#rzo .rzo-explore__ring {
  --p: 0;
  position: relative; width: 38px; height: 38px; border-radius: 50%;
  background: conic-gradient(var(--rzo-blue) calc(var(--p) * 1%), rgba(255, 255, 255, .1) 0);
  display: grid; place-items: center; transition: --p .6s;
}
#rzo .rzo-explore__ring::before { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: #0a0e14; }
#rzo .rzo-explore__pct { position: relative; font-family: var(--rzo-font-head); font-size: .66rem; font-weight: 700; font-variant-numeric: tabular-nums; }
#rzo .rzo-explore__txt { display: grid; line-height: 1.2; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rzo-muted); }
#rzo .rzo-explore__relics { color: var(--rzo-gold); }
#rzo .rzo-explore__relics b { color: var(--rzo-text); }

/* ---------- Toast ---------- */
#rzo .rzo-toast {
  position: fixed; left: 50%; top: calc(var(--rzo-top) + var(--rzo-hud-h) + 14px); z-index: 60;
  transform: translate(-50%, -12px); opacity: 0; pointer-events: none;
  display: grid; gap: 2px; text-align: center; min-width: 240px; max-width: calc(100vw - 32px);
  padding: 12px 22px; border-radius: 12px;
  background: rgba(10, 14, 20, .92); border: 1px solid var(--rzo-line-2);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .8);
  transition: opacity .35s ease, transform .35s ease;
}
#rzo .rzo-toast::before {
  content: ""; position: absolute; left: 22px; right: 22px; top: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--rzo-gold), transparent);
}
#rzo .rzo-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
#rzo .rzo-toast strong { font-family: var(--rzo-font-head); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rzo-gold); }
#rzo .rzo-toast span { font-size: .9rem; color: var(--rzo-silver); }

/* ---------- Hero ---------- */
#rzo .rzo-hero {
  position: relative;
  margin-top: calc(-1 * var(--rzo-hud-h));
  min-height: min(100svh, 940px);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: calc(var(--rzo-hud-h) + 40px) 0 72px;
  background: rgb(var(--rzo-sky-hor));
  overflow: hidden;
}
#rzo .rzo-terrain { position: absolute; inset: 0; width: 100%; height: 100%; }
#rzo .rzo-hero__shade {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(7, 9, 13, .55) 0%, rgba(7, 9, 13, 0) 22%),
    linear-gradient(90deg, rgba(7, 9, 13, .78) 0%, rgba(7, 9, 13, .2) 55%, rgba(7, 9, 13, 0) 75%),
    linear-gradient(0deg, var(--rzo-bg) 0%, rgba(7, 9, 13, 0) 30%);
}
#rzo .rzo-hero__grid {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px;
}
#rzo .rzo-hero__content { display: grid; gap: 22px; max-width: 640px; }
#rzo .rzo-hero__title {
  font-family: var(--rzo-font-head); font-weight: 700; text-transform: uppercase;
  font-size: clamp(3.4rem, 10vw, 8rem); line-height: .88; letter-spacing: -.035em;
  text-shadow: 0 10px 40px rgba(0, 0, 0, .45);
}
#rzo .rzo-hero__lead { color: #d3dae3; font-size: clamp(1.02rem, 1.6vw, 1.15rem); max-width: 54ch; }
#rzo .rzo-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
#rzo .rzo-hero__chips { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .82rem; color: var(--rzo-muted); }
#rzo .rzo-hero__chips b { color: var(--rzo-text); font-family: var(--rzo-font-head); }

#rzo .rzo-hero__side { display: grid; gap: 12px; justify-items: end; }
#rzo .rzo-world, #rzo .rzo-minimap {
  background: rgba(7, 9, 13, .62); border: 1px solid var(--rzo-line-2); border-radius: var(--rzo-radius);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
#rzo .rzo-world { width: 260px; padding: 14px 16px 12px; display: grid; gap: 10px; }
#rzo .rzo-world__head { display: flex; justify-content: space-between; align-items: center; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rzo-muted); }
#rzo .rzo-world__auto {
  border: 1px solid var(--rzo-line-2); background: transparent; border-radius: 999px;
  padding: 3px 10px; font-size: .7rem; letter-spacing: .1em; cursor: pointer;
}
#rzo .rzo-world__auto[aria-pressed="true"] { background: var(--rzo-blue); border-color: var(--rzo-blue); color: #fff; }
#rzo .rzo-world__range {
  -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 6px; margin: 4px 0 0;
  background: linear-gradient(90deg, #0b1020 0%, #1b2140 18%, #d6603f 25%, #6fa3e6 38%, #9fc4f0 55%, #6fa3e6 68%, #e2482f 78%, #1b1838 86%, #0b1020 100%);
}
#rzo .rzo-world__range::-webkit-slider-thumb {
  -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; border: 3px solid var(--rzo-bg); box-shadow: 0 0 0 1px #fff; cursor: grab;
}
#rzo .rzo-world__range::-moz-range-thumb {
  width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--rzo-bg); cursor: grab;
}
#rzo .rzo-world__scale { display: flex; justify-content: space-between; font-size: .64rem; color: var(--rzo-muted); font-variant-numeric: tabular-nums; }

#rzo .rzo-minimap { display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 10px; }
#rzo .rzo-minimap__cv { width: 92px; height: 92px; border-radius: 50%; border: 1px solid var(--rzo-line-2); }
#rzo .rzo-minimap__coords { font-family: var(--rzo-font-head); font-size: .74rem; line-height: 1.6; color: var(--rzo-silver); font-variant-numeric: tabular-nums; letter-spacing: .06em; }

#rzo .rzo-hero__scroll {
  position: absolute; left: 50%; bottom: 18px; z-index: 2; transform: translateX(-50%);
  display: grid; justify-items: center; gap: 8px; text-decoration: none;
  font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rzo-muted);
}
#rzo .rzo-hero__scroll::after {
  content: ""; width: 1px; height: 26px;
  background: linear-gradient(var(--rzo-text), transparent);
  animation: rzo-drop 1.8s ease-in-out infinite;
}
@keyframes rzo-drop { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* ---------- Collezionabili ---------- */
#rzo .rzo-relic {
  position: absolute; z-index: 3; width: 30px; height: 30px; padding: 4px;
  border: 0; background: none; cursor: pointer; color: var(--rzo-gold); opacity: .38;
  transition: opacity .25s, transform .25s;
  animation: rzo-glint 4s ease-in-out infinite;
}
#rzo .rzo-relic svg { width: 100%; height: 100%; fill: rgba(217, 164, 65, .18); stroke: currentColor; stroke-width: 1.4; stroke-linejoin: round; }
#rzo .rzo-relic:hover { opacity: 1; transform: scale(1.15) rotate(8deg); }
#rzo .rzo-relic--inline { position: absolute; top: 0; right: 0; }
#rzo .rzo-relic.is-taken { opacity: 0; transform: scale(2.2); pointer-events: none; animation: none; transition: opacity .5s, transform .5s; }
@keyframes rzo-glint { 0%, 85%, 100% { filter: none; } 90% { filter: drop-shadow(0 0 8px var(--rzo-gold)) brightness(1.6); } }

/* ---------- Mappa ---------- */
#rzo .rzo-map { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: stretch; }
#rzo .rzo-map__stage {
  position: relative; aspect-ratio: 16 / 10; overflow: hidden;
  border-radius: var(--rzo-radius); border: 1px solid var(--rzo-line-2);
  background: #070c14; cursor: crosshair;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9), inset 0 0 0 1px rgba(47, 140, 255, .06);
}
#rzo .rzo-map__terrain, #rzo .rzo-map__fog { position: absolute; inset: 0; width: 100%; height: 100%; }
#rzo .rzo-map__terrain { z-index: 1; }
#rzo .rzo-map__pois { position: absolute; inset: 0; z-index: 2; }
#rzo .rzo-map__fog { z-index: 3; pointer-events: none; transition: opacity 1.2s ease; }
#rzo .rzo-map__stage.is-clear .rzo-map__fog { opacity: 0; }
#rzo .rzo-map__hint {
  position: absolute; left: 50%; bottom: 16px; z-index: 5; transform: translateX(-50%);
  padding: 8px 16px; border-radius: 999px; white-space: nowrap;
  background: rgba(7, 9, 13, .78); border: 1px solid var(--rzo-line-2);
  font-size: .78rem; letter-spacing: .08em; color: var(--rzo-silver);
  pointer-events: none; transition: opacity .6s;
  animation: rzo-pulse-hint 2.4s ease-in-out infinite;
}
#rzo .rzo-map__stage.is-touched .rzo-map__hint { opacity: 0; }
@keyframes rzo-pulse-hint { 50% { border-color: var(--rzo-blue); } }
#rzo .rzo-map__all {
  position: absolute; right: 12px; top: 12px; z-index: 5;
  padding: 7px 14px; border-radius: 999px; cursor: pointer;
  background: rgba(7, 9, 13, .78); border: 1px solid var(--rzo-line-2);
  font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
}
#rzo .rzo-map__all:hover { border-color: var(--rzo-text); }

#rzo .rzo-poi {
  position: absolute; width: 46px; height: 46px; padding: 0;
  transform: translate(-50%, -50%);
  border: 0; background: none; cursor: pointer;
  display: grid; place-items: center;
}
#rzo .rzo-poi.is-found { z-index: 4; }
#rzo .rzo-poi__ring {
  position: absolute; inset: 6px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .35);
  animation: rzo-ring 2.2s ease-out infinite;
}
#rzo .rzo-poi__core {
  position: relative; width: 22px; height: 22px; transform: rotate(45deg);
  display: grid; place-items: center;
  background: #0a0e14; border: 1.5px solid var(--rzo-silver);
  transition: background .3s, border-color .3s, box-shadow .3s, transform .3s;
}
#rzo .rzo-poi__core span { transform: rotate(-45deg); font-family: var(--rzo-font-head); font-size: .62rem; font-weight: 700; }
#rzo .rzo-poi__label {
  position: absolute; top: calc(100% - 2px); left: 50%; transform: translate(-50%, 4px);
  white-space: nowrap; padding: 3px 9px; border-radius: 999px;
  background: rgba(7, 9, 13, .86); border: 1px solid var(--rzo-line-2);
  font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
  opacity: 0; transition: opacity .3s, transform .3s; pointer-events: none;
}
#rzo .rzo-poi.is-found .rzo-poi__core { background: var(--rzo-blue); border-color: #fff; box-shadow: 0 0 18px rgba(47, 140, 255, .8); }
#rzo .rzo-poi.is-found .rzo-poi__label { opacity: 1; transform: translate(-50%, 0); }
#rzo .rzo-poi.is-found .rzo-poi__ring { border-color: rgba(47, 140, 255, .8); }
#rzo .rzo-poi:hover .rzo-poi__core, #rzo .rzo-poi.is-active .rzo-poi__core { transform: rotate(45deg) scale(1.25); }
#rzo .rzo-poi.is-active .rzo-poi__core { background: #fff; color: #07090d; }
#rzo[data-phase="notte"] .rzo-poi.is-found[data-night="1"] .rzo-poi__core { background: var(--rzo-red); box-shadow: 0 0 22px rgba(230, 57, 70, .9); }
#rzo[data-phase="notte"] .rzo-poi.is-found[data-night="1"] .rzo-poi__ring { border-color: rgba(230, 57, 70, .8); }
@keyframes rzo-ring { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }

/* Pannello scheda */
#rzo .rzo-panel {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  border-radius: var(--rzo-radius); border: 1px solid var(--rzo-line-2); background: var(--rzo-surface);
  min-height: 100%;
}
#rzo .rzo-panel__empty { margin: auto; padding: 32px 28px; display: grid; gap: 10px; justify-items: center; text-align: center; color: var(--rzo-muted); font-size: .92rem; }
#rzo .rzo-panel__empty svg { width: 34px; height: 34px; fill: none; stroke: var(--rzo-silver); stroke-width: 1.4; stroke-linejoin: round; margin-bottom: 6px; }
#rzo .rzo-panel__empty-t { font-family: var(--rzo-font-head); color: var(--rzo-text); font-size: 1.05rem; }

#rzo .rzo-panel__media { position: relative; aspect-ratio: 16 / 9; background: #111 center / cover no-repeat; flex-shrink: 0; }
#rzo .rzo-panel__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--rzo-surface), transparent 55%); }
#rzo .rzo-panel__body { display: flex; flex-direction: column; gap: 12px; padding: 18px 22px 22px; flex: 1; }
#rzo .rzo-panel__meta { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rzo-blue); font-weight: 600; }
#rzo .rzo-panel__title { font-family: var(--rzo-font-head); font-size: 1.32rem; line-height: 1.2; font-weight: 600; }
#rzo .rzo-panel__excerpt { color: var(--rzo-muted); font-size: .93rem; }
#rzo .rzo-panel__facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; font-size: .84rem; }
#rzo .rzo-panel__facts dt { color: var(--rzo-muted); }
#rzo .rzo-panel__facts dd { color: var(--rzo-text); }
#rzo .rzo-panel__score { font-family: var(--rzo-font-head); font-weight: 700; color: var(--rzo-gold); }
#rzo .rzo-panel__night {
  font-size: .82rem; padding: 8px 12px; border-radius: 10px;
  border: 1px solid rgba(230, 57, 70, .35); background: rgba(230, 57, 70, .08); color: #f2b3b8;
}
#rzo .rzo-panel .rzo-btn { margin-top: auto; align-self: flex-start; }

/* Illustrazioni segnaposto (sostituite da data-img) */
#rzo [data-art="coast"] { background-image: radial-gradient(circle at 70% 62%, #ffd7a8 0 5%, rgba(255, 140, 90, .7) 6%, transparent 22%), linear-gradient(180deg, #2b1b4d 0%, #d4486b 48%, #f2955e 62%, #102a4a 63%, #0b1a30 100%); }
#rzo [data-art="island"] { background-image: radial-gradient(circle at 30% 40%, #f6e7c8 0 6%, transparent 7%), linear-gradient(180deg, #c9a46a 0%, #e6c58a 45%, #7e1f23 46%, #b3322f 70%, #5a1517 100%); }
#rzo [data-art="dawn"] { background-image: radial-gradient(circle at 78% 30%, #f3e9d6 0 7%, rgba(243, 233, 214, .2) 8%, transparent 20%), linear-gradient(180deg, #4b5a72 0%, #9aa6b8 50%, #202733 51%, #0e1219 100%); }
#rzo [data-art="gothic"] { background-image: radial-gradient(circle at 75% 28%, #ffd9d9 0 6%, rgba(230, 57, 70, .45) 8%, transparent 24%), linear-gradient(180deg, #12030a 0%, #4a0b16 55%, #0b0306 56%, #050204 100%); }

/* Registro luoghi */
#rzo .rzo-log { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin-top: 28px; }
#rzo .rzo-log__item {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  padding: 20px; border-radius: var(--rzo-radius);
  background: var(--rzo-surface); border: 1px solid var(--rzo-line);
  transition: border-color .3s, transform .3s;
}
#rzo .rzo-log__item:hover { border-color: var(--rzo-line-2); transform: translateY(-3px); }
#rzo .rzo-log__item.is-found { border-color: rgba(47, 140, 255, .35); }
#rzo .rzo-log__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rzo-muted); }
#rzo .rzo-log__num { font-family: var(--rzo-font-head); font-weight: 700; color: var(--rzo-text); }
#rzo .rzo-log__status { margin-left: auto; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--rzo-line-2); font-size: .64rem; }
#rzo .rzo-log__item.is-found .rzo-log__status { color: var(--rzo-blue); border-color: rgba(47, 140, 255, .5); }
#rzo .rzo-log__title { font-family: var(--rzo-font-head); font-size: 1.08rem; line-height: 1.3; font-weight: 600; }
#rzo .rzo-log__title a { text-decoration: none; }
#rzo .rzo-log__title a:hover { color: var(--rzo-blue); }
#rzo .rzo-log__excerpt { color: var(--rzo-muted); font-size: .88rem; }
#rzo .rzo-log__locate {
  margin-top: auto; align-self: flex-start; padding: 0; border: 0; background: none; cursor: pointer;
  font-size: .8rem; color: var(--rzo-silver); border-bottom: 1px dashed var(--rzo-line-2);
}
#rzo .rzo-log__locate:hover { color: #fff; border-color: var(--rzo-blue); }

/* ---------- Countdown ---------- */
#rzo .rzo-countdown {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px;
  padding: clamp(28px, 4vw, 48px); border-radius: calc(var(--rzo-radius) + 6px);
  background:
    radial-gradient(ellipse at 90% 0%, rgba(230, 57, 70, .18), transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(47, 140, 255, .14), transparent 55%),
    var(--rzo-surface);
  border: 1px solid var(--rzo-line-2);
}
#rzo .rzo-countdown__route { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .5; }
#rzo .rzo-countdown__route path { fill: none; stroke: var(--rzo-gold); stroke-width: 1.5; stroke-dasharray: 4 8; animation: rzo-route 3s linear infinite; vector-effect: non-scaling-stroke; }
@keyframes rzo-route { to { stroke-dashoffset: -48; } }
#rzo .rzo-countdown__info { position: relative; display: grid; gap: 14px; justify-items: start; }
#rzo .rzo-countdown__clock { position: relative; display: grid; grid-template-columns: repeat(4, auto); gap: 10px; }
#rzo .rzo-cd {
  display: grid; justify-items: center; gap: 4px; min-width: 86px; padding: 14px 10px 10px;
  border-radius: 12px; background: rgba(7, 9, 13, .6); border: 1px solid var(--rzo-line-2);
}
#rzo .rzo-cd__n { font-family: var(--rzo-font-head); font-weight: 700; font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1; font-variant-numeric: tabular-nums; }
#rzo .rzo-cd__l { font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rzo-muted); }
#rzo .rzo-countdown__done { display: none; position: relative; font-family: var(--rzo-font-head); font-size: 1.4rem; }
#rzo .rzo-countdown.is-done .rzo-countdown__clock { display: none; }
#rzo .rzo-countdown.is-done .rzo-countdown__done { display: block; }

/* ---------- Codex ---------- */
#rzo .rzo-codex { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; perspective: 1000px; }
#rzo .rzo-codex__card {
  --rx: 0deg; --ry: 0deg;
  position: relative; display: flex; flex-direction: column; gap: 12px;
  padding: 24px 22px; border-radius: var(--rzo-radius);
  background: linear-gradient(160deg, var(--rzo-surface-2), var(--rzo-surface));
  border: 1px solid var(--rzo-line);
  transform: rotateX(var(--rx)) rotateY(var(--ry));
  transform-style: preserve-3d;
  transition: transform .15s ease-out, border-color .3s;
}
#rzo .rzo-codex__card:hover { border-color: var(--rzo-line-2); }
#rzo .rzo-codex__card h3 { font-family: var(--rzo-font-head); font-size: 1.15rem; font-weight: 600; transform: translateZ(24px); }
#rzo .rzo-codex__card p { color: var(--rzo-muted); font-size: .9rem; }
#rzo .rzo-codex__id {
  position: relative; display: grid; place-items: center; width: 34px; height: 34px; transform: translateZ(30px);
  font-family: var(--rzo-font-head); font-weight: 700; font-size: .8rem;
}
#rzo .rzo-codex__id::before { content: ""; position: absolute; inset: 5px; border: 1px solid var(--rzo-silver); transform: rotate(45deg); }
#rzo .rzo-codex__ex { font-size: .78rem !important; letter-spacing: .04em; color: var(--rzo-silver) !important; }
#rzo .rzo-codex__card .rzo-link { margin-top: auto; align-self: flex-start; }
#rzo .rzo-codex__card .rzo-relic--inline { top: 10px; right: 10px; }

/* ---------- Metodo ---------- */
#rzo .rzo-method { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
#rzo .rzo-method__item {
  position: relative; display: grid; gap: 10px; padding: 26px 24px;
  border-radius: var(--rzo-radius); background: var(--rzo-surface); border: 1px solid var(--rzo-line);
  overflow: hidden;
}
#rzo .rzo-method__item::after {
  content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 0;
  background: linear-gradient(90deg, var(--rzo-blue), var(--rzo-red));
  transition: width 1.2s cubic-bezier(.2, .8, .2, 1) .2s;
}
#rzo .rzo-method__item.is-in::after { width: 100%; }
#rzo .rzo-method__n { font-family: var(--rzo-font-head); font-weight: 700; font-size: 2.2rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--rzo-silver); }
#rzo .rzo-method__item h3 { font-family: var(--rzo-font-head); font-size: 1.15rem; font-weight: 600; }
#rzo .rzo-method__item p { color: var(--rzo-muted); font-size: .93rem; }
#rzo .rzo-method__item .rzo-relic--inline { top: 14px; right: 14px; }

/* ---------- Newsletter ---------- */
#rzo .rzo-news {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 32px; align-items: center;
  padding: clamp(28px, 4vw, 48px); border-radius: calc(var(--rzo-radius) + 6px);
  background: linear-gradient(135deg, rgba(47, 140, 255, .1), rgba(230, 57, 70, .06)), var(--rzo-surface);
  border: 1px solid var(--rzo-line-2);
}
#rzo .rzo-news > div { display: grid; gap: 14px; }
#rzo .rzo-news__form { display: grid; gap: 10px; }
#rzo .rzo-input {
  width: 100%; min-height: 48px; padding: 0 16px; border-radius: 12px;
  background: rgba(7, 9, 13, .7); border: 1px solid var(--rzo-line-2); color: var(--rzo-text);
  font: inherit; font-size: .95rem;
}
#rzo .rzo-input:focus { outline: none; border-color: var(--rzo-blue); }
#rzo select.rzo-input { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--rzo-muted) 50%), linear-gradient(135deg, var(--rzo-muted) 50%, transparent 50%); background-position: calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size: 5px 5px; background-repeat: no-repeat; }
#rzo .rzo-news__msg { min-height: 1.4em; font-size: .86rem; color: var(--rzo-silver); }
#rzo .rzo-news__msg.is-ok { color: #7fc7ff; }
#rzo .rzo-news__msg.is-err { color: #ff8b94; }

/* ---------- Comparsa allo scroll ---------- */
#rzo.rzo-motion-ready .rzo-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .8, .2, 1); }
#rzo.rzo-motion-ready .rzo-reveal.is-in { opacity: 1; transform: none; }
#rzo .rzo-codex__card.rzo-reveal.is-in { transform: rotateX(var(--rx)) rotateY(var(--ry)); }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  #rzo .rzo-map { grid-template-columns: 1fr; }
  #rzo .rzo-panel { min-height: 0; }
  #rzo .rzo-countdown { grid-template-columns: 1fr; }
  #rzo .rzo-news { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  #rzo { --rzo-hud-h: 96px; }
  #rzo .rzo-hud {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "clock weather explore" "compass compass compass";
    row-gap: 4px; column-gap: 10px; padding-top: 8px; padding-bottom: 6px;
  }
  #rzo .rzo-weather { justify-self: center; }
  #rzo .rzo-weather__btn { width: 30px; height: 30px; }
  #rzo .rzo-explore__txt > span:first-child { display: none; }
  #rzo .rzo-hud__phase { display: none; }
  #rzo .rzo-compass { height: 30px; max-width: none; }

  #rzo .rzo-hero { min-height: auto; padding-bottom: 64px; }
  #rzo .rzo-hero__grid { grid-template-columns: 1fr; padding-top: 36vh; }
  #rzo .rzo-hero__side { grid-template-columns: minmax(0, 1fr) auto; justify-items: stretch; align-items: stretch; }
  #rzo .rzo-world { width: auto; }
  #rzo .rzo-minimap { flex-direction: column; justify-content: center; padding: 10px; gap: 6px; }
  #rzo .rzo-minimap__cv { width: 64px; height: 64px; }
  #rzo .rzo-minimap__coords { font-size: .6rem; text-align: center; }

  #rzo .rzo-map__stage { aspect-ratio: 4 / 5; }
  #rzo .rzo-poi.is-found .rzo-poi__label { opacity: 0; }
  #rzo .rzo-poi.is-found.is-active .rzo-poi__label { opacity: 1; }
  #rzo .rzo-countdown__clock { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  #rzo .rzo-cd { min-width: 0; padding: 12px 4px 8px; }
  #rzo .rzo-method { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  #rzo *, #rzo *::before, #rzo *::after { animation: none !important; transition-duration: .01ms !important; }
  #rzo .rzo-reveal { opacity: 1; transform: none; }
}

/* Aggiornamento: schede 3D e illuminazione ambientale */
#rzo .rzo-log { perspective: 1200px; }
#rzo .rzo-log__item.rzo-reveal.is-in { transform: perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transform-style: preserve-3d; transition: transform .18s ease-out,border-color .3s; }
#rzo .rzo-log__title { transform: translateZ(12px); }
#rzo[data-phase="notte"] .rzo-log__item { box-shadow: 0 10px 40px rgba(47,140,255,.07); }
#rzo[data-phase="tramonto"] .rzo-log__item { border-color: rgba(217,164,65,.23); }
#rzo .rzo-news__actions { display:grid; gap:14px; align-content:center; }
@media(prefers-reduced-motion:reduce){#rzo .rzo-log__item.rzo-reveal.is-in{transform:none}}

/* WordPress: leggibilità prima dell’avvio JS, canvas protetti dai reset del tema. */
#rzo { width:100%; max-width:100%; text-align:left; }
#rzo .rzo-reveal { opacity:1; }
#rzo canvas.rzo-terrain { display:block; max-width:none; z-index:0; }
#rzo .rzo-hero { min-height:720px; min-height:clamp(620px,90svh,940px); background:radial-gradient(ellipse at 75% 20%,rgba(47,140,255,.24),transparent 60%),linear-gradient(165deg,#162c39,#0b121b 50%,#07090d); }
#rzo[data-rzo-init="ready"] .rzo-hero { background:rgb(var(--rzo-sky-hor)); }
#rzo .rzo-runtime { margin:0; padding:12px 20px; color:#c9d2dc; background:#121924; font-size:13px; border-bottom:1px solid rgba(255,255,255,.12); }
#rzo button { text-transform:none; }
#rzo .rzo-log__title a { text-decoration:none; }
#rzo .rzo-map__stage { min-height:330px; }
#rzo .rzo-fx { display:block; max-width:none; }
@media(max-width:600px){#rzo .rzo-hero{min-height:680px}#rzo .rzo-hud{gap:8px}#rzo .rzo-explore__txt{display:none}}
@media(prefers-reduced-motion:reduce){#rzo.rzo-motion-ready .rzo-reveal{opacity:1;transform:none;transition:none}}
