/* GiOlly Comics, concept v2 "Notte e Giorno".
   Token dal DNA _ricerca/dna/giolly-dna-v2.json. Un solo font (Archivo variabile), due temi con gli stessi nomi di token.
   Si anima solo transform e opacity. Spazi solo dalla scala --s-*. */

/* ---------- Font ---------- */
@font-face {
  font-family: "Archivo";
  src: url("assets/fonts/archivo-var-latin-w100-125-400-900.woff2") format("woff2");
  font-weight: 400 900;
  font-stretch: 100% 125%;
  font-display: swap;
}
/* Fallback metrici: stessa larghezza di riga di Archivo, per contenere lo spostamento al caricamento */
@font-face {
  font-family: "Archivo Fallback";
  src: local("Arial"), local("ArialMT");
  size-adjust: 102%;
}
@font-face {
  font-family: "Archivo Wide Fallback";
  src: local("Arial Black"), local("Arial-Black");
  size-adjust: 104%;
}

/* ---------- Token ---------- */
:root {
  --f-body: "Archivo", "Archivo Fallback", system-ui, sans-serif;
  --f-wide: "Archivo", "Archivo Wide Fallback", "Arial Black", sans-serif;

  /* Scala spazi unica */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px;
  --section-y: clamp(72px, 9vw, 128px);
  --head-gap: clamp(36px, 4.6vw, 64px);

  /* Raggi: card normali lg, contenitori grandi xl; dentro una card con padding P: raggio esterno − P */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;

  --wrap: 1280px;
  --gutter: clamp(16px, 4vw, 32px);
  --header-h: 72px;

  /* Motion system: una sola fonte, letta anche da app.js */
  --motion-micro: 140ms;
  --motion-ui: 280ms;
  --motion-scene: 700ms;
  --motion-exit: 160ms;
  --ease-enter: cubic-bezier(.22, 1, .36, 1);
  --ease-snap: cubic-bezier(.2, .9, .25, 1.12);
  --ease-exit: cubic-bezier(.55, 0, 1, .45);

  /* Colori dei giochi: solo bagliori e pallini, mai testo */
  --g-magic: #ed9b28;
  --g-pokemon: #ffcb05;
  --g-onepiece: #e0303f;
  --g-yugioh: #8b5cf6;
  --g-lorcana: #d9a74a;
  --g-vtes: #a43a67;
  --g-gundam: #2588c9;
  --g-starwars: #397be5;
  --g-fusionworld: #7863e6;
  --g-riftbound: #e7a525;

  --night-ink: #0b1020;
  /* Scrim dietro il testo dell'eroe: sempre scuro, in entrambi i temi */
  --scrim: 7 10 22;
}

/* Tema Notte: default */
:root,
.is-night {
  color-scheme: dark;
  --bg: #0b1020;
  --bg-2: #0f1528;
  --surface: #141b30;
  --surface-2: #1c2542;
  --surface-3: #25304f;
  --line: rgb(170 190 255 / .14);
  --line-strong: rgb(170 190 255 / .28);
  --text: #f2f5ff;
  --muted: #a9b4d0;

  --green: #4fdc4a;
  --orange: #ffae1a;
  --sky: #2bb8ff;
  --green-ink: #6be866;
  --orange-ink: #ffbb3d;
  --sky-ink: #62cbff;
  --danger: #ff6b7a;
  --on-accent: #0b1020;

  --glow: .5;
  --card-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, #fff) 0%, var(--surface) 42%);
  --card-border: 1px solid var(--line);
  --card-shadow: inset 0 1px 0 rgb(255 255 255 / .06), 0 1px 2px rgb(0 0 0 / .3), 0 24px 48px -28px rgb(0 0 0 / .8);
  --card-shadow-hover: 0 36px 64px -30px rgb(0 0 0 / .9);
  --shadow-deep: 0 34px 70px -28px rgb(0 0 0 / .85);
  --header-bg: rgb(11 16 32 / .78);

  --badge-ok-bg: #16311e; --badge-ok-fg: #8ff08b;
  --badge-pre-bg: #3a2208; --badge-pre-fg: #ffc46b;
  --badge-order-bg: #0c2a40; --badge-order-fg: #8fd8ff;
  --badge-ended-bg: #401b27; --badge-ended-fg: #ff9ba7;
  --footer-bg: #070b17;
}

:root[data-theme="giorno"] {
  color-scheme: light;
  --bg: #f5f8fc;
  --bg-2: #eef3f9;
  --surface: #ffffff;
  --surface-2: #eaf0f8;
  --surface-3: #dde6f2;
  --line: rgb(16 32 64 / .12);
  --line-strong: rgb(16 32 64 / .24);
  --text: #0e1628;
  --muted: #4a5670;

  --green: #36c93a;
  --orange: #ffa40f;
  --sky: #1aa3f0;
  --green-ink: #1b7f26;
  --orange-ink: #a85600;
  --sky-ink: #0868b8;
  --danger: #c8283a;
  --on-accent: #0e1628;

  --glow: .32;
  --card-bg: var(--surface);
  --card-shadow: 0 1px 2px rgb(14 22 40 / .06), 0 12px 32px -18px rgb(14 22 40 / .22);
  --card-shadow-hover: 0 24px 48px -22px rgb(14 22 40 / .32);
  --shadow-deep: 0 30px 60px -28px rgb(14 22 40 / .35);
  --header-bg: rgb(245 248 252 / .82);

  --badge-ok-bg: #e3f6e2; --badge-ok-fg: #1b7f26;
  --badge-pre-bg: #fff0d6; --badge-pre-fg: #a85600;
  --badge-order-bg: #e0f1fd; --badge-order-fg: #0868b8;
  --badge-ended-bg: #fee6e9; --badge-ended-fg: #b42336;
  --footer-bg: #ffffff;
}
/* La Notte dentro il Giorno (dettaglio torneo) */
:root[data-theme="giorno"] .is-night {
  color-scheme: dark;
  --bg: #0b1020; --bg-2: #0f1528; --surface: #141b30; --surface-2: #1c2542; --surface-3: #25304f;
  --line: rgb(170 190 255 / .14); --line-strong: rgb(170 190 255 / .28);
  --text: #f2f5ff; --muted: #a9b4d0;
  --green: #4fdc4a; --orange: #ffae1a; --sky: #2bb8ff;
  --green-ink: #6be866; --orange-ink: #ffbb3d; --sky-ink: #62cbff;
  --danger: #ff6b7a; --on-accent: #0b1020; --glow: .5;
}

/* Gradiente del logo: verde → arancio, interpolato in oklch per passare dal giallo e non dal fango */
:root {
  --grad-brand: linear-gradient(100deg, var(--green), var(--orange));
}
@supports (background: linear-gradient(in oklch, red, blue)) {
  :root { --grad-brand: linear-gradient(in oklch 100deg, var(--green), var(--orange)); }
}

[data-game="magic"] { --gc: var(--g-magic); }
[data-game="pokemon"] { --gc: var(--g-pokemon); }
[data-game="onepiece"] { --gc: var(--g-onepiece); }
[data-game="yugioh"] { --gc: var(--g-yugioh); }
[data-game="lorcana"] { --gc: var(--g-lorcana); }
[data-game="vtes"] { --gc: var(--g-vtes); }
[data-game="gundam"] { --gc: var(--g-gundam); }
[data-game="starwars"] { --gc: var(--g-starwars); }
[data-game="fusionworld"] { --gc: var(--g-fusionworld); }
[data-game="riftbound"] { --gc: var(--g-riftbound); }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 16px);
  background: var(--bg);
  overflow-x: clip;
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
body {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--f-body);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: transparent;
  overflow-x: clip;
  max-width: 100%;
  /* viewport-fit=cover: il contenuto resta fuori dal notch */
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
a, button, label, summary { touch-action: manipulation; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
ul, ol { padding: 0; list-style: none; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
address { font-style: normal; }
.num { font-variant-numeric: tabular-nums; }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 6px; }
::selection { background: color-mix(in srgb, var(--green) 40%, transparent); }

.wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
[hidden] { display: none !important; }
:root[data-storefront="showcase"] [data-add] { display: none !important; }
.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;
}
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip {
  position: absolute; left: 12px; top: -80px; z-index: 100;
  padding: 10px 16px; border-radius: var(--r-pill);
  background: var(--green); color: var(--on-accent); font-weight: 700; text-decoration: none;
}
.skip:focus { top: 12px; }

.ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* ---------- Tipografia ---------- */
.h2, .hero__title, .preorder__title, .score__n, .tdrawer__title {
  font-family: var(--f-wide);
  font-stretch: 125%;
  font-weight: 800;
  letter-spacing: -.02em;
}
.h2 { font-size: clamp(2.25rem, 5.2vw, 4.5rem); line-height: 1.02; font-stretch: 118%; letter-spacing: -.03em; text-transform: uppercase; }
.h2::before { content: "— "; color: var(--sky-ink); font-stretch: 100%; font-weight: 600; letter-spacing: -.08em; }
/* Una parola accentata per titolo: gradiente verde → arancio sulle tinte "ink" del tema (contrasto AA anche di giorno) */
.h2 em { font-style: normal; color: var(--green-ink); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .h2 em {
    background-image: linear-gradient(100deg, var(--green-ink), var(--orange-ink));
    -webkit-background-clip: text; background-clip: text;
    -webkit-box-decoration-break: clone; box-decoration-break: clone;
    color: transparent;
  }
}
@supports (background: linear-gradient(in oklch, red, blue)) {
  .h2 em { background-image: linear-gradient(in oklch 100deg, var(--green-ink), var(--orange-ink)); }
}
@media (forced-colors: active) { .h2 em { background: none; color: CanvasText; } }
.caption { font-size: .8125rem; font-weight: 600; color: var(--muted); }
/* Kicker: l'etichetta con il pallino sopra ogni titolo di sezione. Il colore del pallino cambia per sezione */
.kicker {
  display: flex; align-items: center; gap: var(--s-2);
  margin-bottom: var(--s-3);
  font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted);
}
.kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--kc, var(--green)); flex: none; }
.night .kicker, .bloghead .kicker { --kc: var(--sky); }
.store .kicker, .novita .kicker, .carta .kicker { --kc: var(--orange); }

.pill {
  display: inline-flex; align-items: center; gap: var(--s-2);
  padding: 6px var(--s-3);
  border-radius: var(--r-pill);
  border: 1px solid var(--line);
  background: var(--surface);
  font-size: .875rem; font-weight: 600;
}
.pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--dot, var(--green)); }
.pill--orange { --dot: var(--orange); }

/* ---------- Bottoni ---------- */
.btn {
  --h: 48px;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  min-height: var(--h);
  padding: 0 var(--s-5);
  border: 1px solid transparent;
  border-radius: var(--r-pill);
  font-weight: 700; font-size: 1rem; line-height: 1.1;
  text-decoration: none; text-align: center;
  touch-action: manipulation;
  transition: transform var(--motion-micro) var(--ease-enter), background-color var(--motion-micro) linear, border-color var(--motion-micro) linear;
}
.btn--sm { --h: 40px; padding: 0 var(--s-4); font-size: .9375rem; }
.btn--primary {
  background: var(--green);
  color: var(--on-accent);
}
.btn--ghost {
  background: color-mix(in srgb, var(--surface) 70%, transparent);
  border-color: var(--line-strong);
  color: var(--text);
}
.btn:active { transform: translateY(1px) scale(.98); }
@media (hover: hover) {
  .btn--primary:hover { transform: translateY(-2px); background: color-mix(in srgb, var(--green) 82%, #fff); }
  .btn--ghost:hover { border-color: var(--sky); }
}
.btn.is-done, .btn[aria-disabled="true"] { background: var(--surface-2); color: var(--green-ink); border-color: var(--line); cursor: default; }
.btn--cancel { background: color-mix(in srgb, var(--danger) 9%, var(--surface)); color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); }
.btn--wait { background: var(--surface-2); color: var(--orange-ink); border-color: color-mix(in srgb, var(--orange) 50%, transparent); }

.iconbtn {
  position: relative;
  display: inline-grid; place-items: center;
  width: 44px; height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--text);
  transition: border-color var(--motion-micro) linear, background-color var(--motion-micro) linear, transform var(--motion-micro) var(--ease-enter);
}
@media (hover: hover) { .iconbtn:hover { border-color: var(--sky); } }
.iconbtn:active { transform: scale(.95); }
.cart-count {
  position: absolute; top: -4px; right: -4px;
  min-width: 20px; height: 20px; padding: 0 5px;
  display: grid; place-items: center;
  border-radius: var(--r-pill);
  background: var(--orange); color: var(--on-accent);
  font-size: .75rem; font-weight: 800; line-height: 1;
}
.cart-count[data-zero] { opacity: 0; transform: scale(.6); }

/* ---------- Header: barra tornei sottile + una riga ---------- */
/* Sticky. Allo scroll l'intero header sale dell'altezza della barra tornei (solo transform). */
.site-header {
  --promo-h: 40px;
  position: sticky; top: 0; z-index: 40;
  transition: transform var(--motion-ui) var(--ease-enter);
}
.site-header.is-compact { transform: translateY(calc(-1 * var(--promo-h))); }

.tourbar {
  height: var(--promo-h);
  background: linear-gradient(105deg, color-mix(in srgb, var(--surface) 90%, var(--green) 4%), var(--bg-2));
  border-bottom: 1px solid var(--line);
  font-size: .8125rem;
  transition: opacity var(--motion-ui) linear;
}
.is-compact .tourbar { opacity: 0; }
.tourbar__inner { display: flex; align-items: center; gap: var(--s-3); height: 100%; }
.tourbar__badge {
  flex: none; padding: 4px 10px; border-radius: var(--r-pill);
  background: var(--grad-brand); color: var(--on-accent);
  font-size: .6875rem; font-weight: 800; letter-spacing: .08em; white-space: nowrap;
}
.tourbar__items {
  display: flex; align-items: center; gap: var(--s-2);
  flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none;
}
.tourbar__items::-webkit-scrollbar { display: none; }
.tourbar__empty { color: var(--muted); font-size: .75rem; font-weight: 700; }
.tourbar__slot {
  display: inline-flex; align-items: center; gap: 8px;
  height: 32px; padding: 2px 10px; border-radius: var(--r-pill);
  background: var(--surface); border: 1px solid var(--line-strong);
  color: var(--text); text-decoration: none; white-space: nowrap;
  font-size: .75rem; font-weight: 700; letter-spacing: .035em;
  transition: background-color var(--motion-micro) linear, border-color var(--motion-micro) linear, transform var(--motion-micro) var(--ease-enter);
  flex: none;
}
.tourbar__slot:focus-visible { outline-offset: -2px; }
@media (hover: hover) {
  .tourbar__slot:hover { background: var(--surface-2); border-color: var(--gc); transform: translateY(-1px); }
}
.tourbar__day { color: var(--orange-ink); font-weight: 800; text-transform: uppercase; }
.tourbar__logo { height: 18px; width: auto; max-width: 48px; padding: 2px 4px; border-radius: 4px; background: rgb(255 255 255 / .9); object-fit: contain; }
.tourbar__title { color: var(--text); text-transform: uppercase; }
.tourbar__time { color: var(--muted); }
.tourbar__seats {
  padding: 1px 7px; border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--green) 18%, transparent); color: var(--green-ink);
  font-size: .6875rem; font-weight: 800; text-transform: uppercase;
}
.tourbar__seats.is-full {
  background: color-mix(in srgb, var(--orange) 20%, transparent); color: var(--orange-ink);
}
.tourbar__all {
  flex: none; display: inline-flex; align-items: center; min-height: 32px;
  margin-left: auto; font-size: .75rem; font-weight: 800; letter-spacing: .05em;
  color: var(--sky-ink); text-decoration: none; white-space: nowrap;
}
@media (hover: hover) { .tourbar__all:hover { text-decoration: underline; text-underline-offset: 3px; } }

.hbar { position: relative; }
.hbar::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--bg); /* pieno: niente backdrop-filter sopra i video */
  border-bottom: 1px solid var(--line);
}
/* Ombra solo quando la pagina scorre sotto: si accende in opacità */
.hbar::after {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 18px; z-index: -1;
  background: linear-gradient(to bottom, rgb(0 0 0 / .22), transparent);
  opacity: 0; pointer-events: none;
  transition: opacity var(--motion-ui) linear;
}
.is-compact .hbar::after { opacity: 1; }
.hbar__inner { display: flex; align-items: center; gap: clamp(16px, 3vw, 40px); height: 72px; }
.brand { display: block; flex: none; border-radius: 12px; }
.brand__logo {
  width: 68px; height: auto;
  transform-origin: left center;
  transition: transform var(--motion-ui) var(--ease-enter);
}
.is-compact .brand__logo { transform: scale(.82); }

.mainnav { display: flex; align-items: center; }
.mainnav__list { display: flex; align-items: center; gap: var(--s-1); }
.mainnav__list > li { flex:0 0 auto; }
.mainnav__list > li > a { white-space:nowrap; }
/* Separatore fra i due gruppi del menu: negozio | contenuti */
.mainnav__sep { flex: none; width: 1px; height: 24px; margin: 0 var(--s-3); background: var(--line-strong); }
.mainnav__list > li > a {
  position: relative;
  display: inline-flex; align-items: center; gap: var(--s-1);
  min-height: 44px; padding: 0 var(--s-3);
  border: 0; background: none;
  border-radius: var(--r-pill); font-size: .875rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; text-decoration: none; color: var(--text);
}
.mainnav__list > li > a::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 2px;
  background: var(--green); border-radius: 2px;
  transform: scaleX(0); transform-origin: left center;
  transition: transform var(--motion-ui) var(--ease-enter);
}
@media (hover: hover) {
  .mainnav__list > li > a:hover { background: var(--surface-2); }
  .mainnav__list > li > a:hover::after { transform: scaleX(1); }
}
.mainnav__list a[aria-current]::after { transform: scaleX(1); }

.hbar__actions { display: flex; align-items: center; gap: var(--s-1); margin-left: auto; }
.hbar__actions .iconbtn { border-color: transparent; background: transparent; }
@media (hover: hover) { .hbar__actions .iconbtn:hover { background: var(--surface-2); border-color: transparent; } }
.hbar__actions .iconbtn[aria-expanded="true"] { background: var(--surface-2); }
.iconbtn--theme .ico--sun { display: none; }
:root[data-theme="giorno"] .iconbtn--theme .ico--sun { display: block; }
:root[data-theme="giorno"] .iconbtn--theme .ico--moon { display: none; }

/* Menu account */
.acct { position: relative; }
.acct__item {
  display: flex; align-items: center; min-height: 44px; padding: 0 var(--s-3);
  border: 0; border-radius: var(--r-sm); background: none;
  font-size: .9375rem; font-weight: 600; text-align: left; text-decoration: none; color: var(--text);
}
@media (hover: hover) { .acct__item:hover { background: var(--surface-2); } }

/* Ricerca a comparsa */
.searchbar { border-bottom: 1px solid var(--line); background: var(--bg); }
.searchbar:not([hidden]) { animation: drop-in var(--motion-ui) var(--ease-enter); }
.searchbar.is-closing { animation: fade-out var(--motion-exit) var(--ease-exit) forwards; }
.searchbar__form { position: relative; display: flex; align-items: center; gap: var(--s-3); padding-block: var(--s-3); }
.searchbar__ico { position: absolute; left: 18px; width: 20px; height: 20px; color: var(--muted); pointer-events: none; }
.searchbar__form input {
  flex: 1; min-width: 0; height: 48px;
  padding: 0 18px 0 46px;
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: var(--surface); font-size: 1rem;
}
.searchbar__form input::placeholder { color: var(--muted); opacity: 1; }
.searchbar__form input:focus-visible { outline: none; border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }

/* Mega-menu */
.mega { position: absolute; left: 0; right: 0; top: 100%; border-bottom: 1px solid var(--line); background: var(--bg); box-shadow: var(--shadow-deep); }
.mega.is-in { animation: drop-in var(--motion-ui) var(--ease-enter); }
.mega.is-closing { animation: fade-out var(--motion-exit) var(--ease-exit) forwards; }
.mega__inner { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--s-6); padding-block: var(--s-5) var(--s-6); }
.mega__games { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-4); }
.mega__game { min-width: 0; }
.mega__logo {
  display: grid; place-items: center; height: 104px; padding: var(--s-4);
  border-radius: var(--r-lg);
  transition: transform var(--motion-ui) var(--ease-enter);
}
.mega__logo img { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; }
@media (hover: hover) { .mega__logo:hover { transform: translateY(-3px); } }
.mega__links { display: grid; margin-top: var(--s-3); }
.mega__links a { display: flex; align-items: center; min-height: 32px; color: var(--muted); font-size: .9375rem; text-decoration: none; }
.mega__links li:last-child a { color: var(--sky-ink); }
@media (hover: hover) { .mega__links a:hover, .mega__more a:hover { color: var(--text); } }
.mega__feature { display: grid; align-content: start; gap: var(--s-4); padding-left: var(--s-5); border-left: 1px solid var(--line); min-width: 0; }
.mega__featlink { display: grid; gap: var(--s-1); text-decoration: none; }
.mega__featimg { display: grid; place-items: center; aspect-ratio: 1.35; border-radius: var(--r-lg); overflow: hidden; margin-bottom: var(--s-2); }
.mega__featimg img { width: 82%; }
.mega__feattitle { font-weight: 800; }
.mega__featmeta { font-size: .875rem; color: var(--muted); }
.mega__more { display: grid; }
.mega__more a { display: flex; align-items: center; min-height: 32px; color: var(--muted); font-size: .9375rem; }

/* Drawer mobile */
.drawer {
  position: fixed; inset: 0; z-index: 60;
  background: rgb(5 8 18 / .6);
  opacity: 0; visibility: hidden;
  transition: opacity var(--motion-ui) var(--ease-enter), visibility 0s linear var(--motion-ui);
}
.drawer.is-open { opacity: 1; visibility: visible; transition: opacity var(--motion-ui) var(--ease-enter); }
.drawer__panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(420px, 100%);
  display: flex; flex-direction: column; gap: var(--s-4);
  padding: var(--s-4) calc(var(--gutter) + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) var(--gutter);
  overflow-y: auto; overscroll-behavior: contain;
  background: var(--bg);
  border-left: 1px solid var(--line);
  transform: translateX(100%);
  transition: transform var(--motion-ui) var(--ease-enter);
}
.drawer.is-open .drawer__panel { transform: none; }
.drawer.is-closing .drawer__panel { transition-timing-function: var(--ease-exit); transition-duration: var(--motion-exit); }
.drawer__head { display: flex; justify-content: space-between; align-items: center; }
.drawer__head-actions { display: flex; align-items: center; gap: var(--s-2); }
.drawer__logo { width: 64px; }
.drawer__section-title { display: flex; align-items: center; gap: var(--s-3); margin: var(--s-2) 0 calc(-1 * var(--s-2)); color: var(--green-ink); font-size: .75rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.drawer__section-title::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--green) 60%, transparent), transparent); }
.drawer__section-title--nav::after { background: linear-gradient(90deg, color-mix(in srgb, var(--sky) 60%, transparent), transparent); }
.drawer__section-title--nav { margin-top: var(--s-4); color: var(--sky-ink); }
.drawer__section-title--social { margin-top: var(--s-4); }
.drawer__social { justify-content: flex-start; padding: var(--s-1) 0; }
.drawer__games { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.drawer__games li:last-child { grid-column: 1 / -1; }
.drawer__games a { display: grid; place-items: center; height: 72px; padding: var(--s-3); border-radius: var(--r-md); }
.drawer__games img { max-height: 44px; width: auto; max-width: 100%; }
.drawer__links { display: grid; }
.drawer__links a { display: flex; align-items: center; min-height: 50px; font-size: 1.125rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--line); }

/* Menu mobile: pannello editoriale, più vicino alle card e ai colori del sito. */
@media (max-width: 767px) {
  .drawer { background: rgb(4 8 16 / .72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
  .drawer__panel {
    width: min(390px, calc(100% - 18px)); max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; gap: var(--s-3);
    padding: var(--s-3) var(--s-3) calc(22px + env(safe-area-inset-bottom));
    border: 1px solid var(--line-strong); border-right: 0; border-radius: 20px 0 0 20px;
    background:
      radial-gradient(90% 32% at 100% 0%, color-mix(in srgb, var(--sky) 14%, transparent), transparent 72%),
      radial-gradient(72% 28% at 0% 38%, color-mix(in srgb, var(--green) 10%, transparent), transparent 74%),
      var(--bg);
    box-shadow: -24px 0 60px rgb(0 0 0 / .3);
  }
  .drawer__head { min-height: 54px; padding: 0 var(--s-2); border-bottom: 1px solid var(--line); }
  .drawer__logo { width: 48px; filter: drop-shadow(0 6px 12px rgb(0 0 0 / .25)); }
  .drawer__head .iconbtn { width: 38px; height: 38px; border-color: var(--line-strong); background: color-mix(in srgb, var(--surface) 82%, transparent); }
  .search--drawer { margin-inline: var(--s-1); }
  .search--drawer input { height: 44px; border-radius: var(--r-md); background: color-mix(in srgb, var(--surface-2) 86%, transparent); }
  .drawer__section-title { margin: var(--s-1) 2px calc(-1 * var(--s-1)); font-size: .6875rem; }
  .drawer__section-title--nav { margin-top: var(--s-2); }
  .drawer__section-title--social { margin-top: var(--s-2); }
  .drawer__social { gap: 6px; }
  .drawer__social .social__link { width: 34px; height: 34px; }
  .drawer__games { gap: var(--s-2); }
  .drawer__games li:last-child { grid-column: auto; }
  .drawer__games a {
    height: 58px; padding: var(--s-2); border: 1px solid var(--line-strong); border-radius: var(--r-sm);
    background: color-mix(in srgb, var(--surface) 82%, transparent);
    transition: transform var(--motion-micro) var(--ease-enter), border-color var(--motion-micro) linear;
  }
  .drawer__games img { max-height: 32px; }
  .drawer__links { gap: 6px; }
  .drawer__links a {
    justify-content: space-between; min-height: 44px; padding: 0 var(--s-3); border: 1px solid var(--line);
    border-radius: var(--r-sm); background: color-mix(in srgb, var(--surface) 72%, transparent); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  }
  .drawer__links a::after { content: "→"; color: var(--sky-ink); font-family: var(--f-wide); }
  .drawer__links--alt { margin-top: 0; padding-top: var(--s-2); border-top: 1px solid var(--line); }
  .drawer__links--alt a { min-height: 40px; color: var(--muted); }
}
.search { position: relative; }
.search__ico { position: absolute; left: 16px; top: 50%; translate: 0 -50%; width: 20px; height: 20px; color: var(--muted); pointer-events: none; }
.search input {
  width: 100%; height: 48px; padding: 0 18px 0 46px;
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: var(--surface-2); font-size: 1rem;
}
.search input::placeholder { color: var(--muted); opacity: 1; }
.search input:focus-visible { outline: none; border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }

/* ---------- Vetrina perla: stessa nei due temi ---------- */
.showcase {
  position: relative;
  background:
    radial-gradient(120% 80% at 50% 118%, color-mix(in srgb, var(--gc, var(--green)) 55%, transparent), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #eef2f8 100%);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / .6);
}

/* ---------- Eroe ---------- */
/* Contrasto deterministico: sul desktop il testo è sempre chiaro su uno scrim scuro localizzato dietro il copy
   (stesso nei due temi); il resto della scena resta libero. In basso la scena chiude nel fondo del tema. */
.hero {
  --veil: 11 16 32;
  --fade: 64px;
  position: relative; isolation: isolate; overflow: clip;
  min-height: min(86svh, 780px);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-top: var(--s-9);
}
:root[data-theme="giorno"] .hero { --veil: 245 248 252; }
.hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.hero__scene {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.2s linear; /* crossfade fra le scene */
}
.hero__scene.is-active { opacity: 1; }
.hero__poster, .hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; }
/* Il video copre il poster solo quando sta davvero girando: niente fotogrammi neri all'avvio */
.hero__video { opacity: 0; transition: opacity 400ms linear; }
.hero__scene.is-playing .hero__video { opacity: 1; }
/* Grading: di notte la scena scende appena di luce; di giorno resta al naturale */
.hero__scene { filter: brightness(.85) saturate(.96) contrast(1.05); }
:root[data-theme="giorno"] .hero__scene { filter: none; }
.hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    /* chiusura sul fondo pagina, sotto il testo */
    linear-gradient(0deg, var(--bg) 0, rgb(var(--veil) / 0) var(--fade)),
    /* scrim dietro il testo: ellisse ancorata in basso a sinistra */
    radial-gradient(72% 95% at 8% 72%, rgb(var(--scrim) / .84) 0%, rgb(var(--scrim) / .62) 40%, rgb(var(--scrim) / 0) 76%),
    /* lato titolo compatto */
    linear-gradient(90deg, rgb(var(--scrim) / .5) 0%, rgb(var(--scrim) / .2) 36%, rgb(var(--scrim) / 0) 56%);
}
.hero__inner {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  align-items: end; gap: var(--s-6);
  padding-bottom: calc(var(--fade) + var(--s-4));
}
/* Sul desktop il contenuto dell'eroe usa sempre l'inchiostro chiaro */
@media (min-width: 768px) {
  :root[data-theme="giorno"] .hero__inner {
    color-scheme: dark;
    --text: #f2f5ff; --muted: #c3cbe0;
    --green: #4fdc4a; --green-ink: #6be866; --orange: #ffae1a; --orange-ink: #ffbb3d;
    --on-accent: #0b1020; --sky: #2bb8ff;
  }
  .hero__copy { color: var(--text); }
}
.hero__copy { min-width: 0; align-self: center; }
.hero__brand { display: flex; align-items: center; gap: clamp(12px, 2vw, 24px); }
.hero__logo { flex: none; width: clamp(68px, 8vw, 112px); height: auto; filter: drop-shadow(0 8px 18px rgb(5 8 18 / .5)); }
.hero__titles { min-width: 0; }
.hero__title {
  font-size: clamp(3rem, 6.4vw, 5.6rem);
  font-stretch: 125%;
  line-height: .9; letter-spacing: -.035em;
  /* Colori del marchio, fissi: sotto c'è sempre lo scrim scuro, di notte e di giorno */
  color: #6be866;
  filter: drop-shadow(0 2px 18px rgb(5 8 18 / .55));
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero__title {
    background-image: linear-gradient(100deg, #6be866 5%, #ffd23d 55%, #ffae1a 100%);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
  }
}
@media (forced-colors: active) { .hero__title { background: none; color: CanvasText; filter: none; } }
.hero__descriptor { margin-top: var(--s-2); color: #62cbff; text-shadow: 0 1px 14px rgb(5 8 18 / .6); font-size: clamp(1.125rem, 2vw, 1.5rem); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* Carosello dei box: le slide stanno tutte nella stessa cella, cambia solo opacity/transform */
.pcar { justify-self: end; width: min(100%, 480px); min-width: 0; display: grid; gap: var(--s-3); }
.pcar__track { display: grid; }
.pcar__slide {
  grid-area: 1 / 1;
  min-width: 0;
  opacity: 0;
  transform: translateY(18px) scale(.96);
  transition: opacity var(--motion-scene) var(--ease-enter), transform var(--motion-scene) var(--ease-enter);
  pointer-events: none;
}
.pcar__slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.pcar__slide.is-leaving { opacity: 0; transform: translateY(-10px) scale(1.02); transition-duration: 500ms; transition-timing-function: var(--ease-exit); }
.pcar__link { display: grid; gap: var(--s-3); text-decoration: none; color: var(--text); }
.pcar__stage { position: relative; display: block; height: clamp(300px, 32vw, 420px); }
.pcar__img {
  position: absolute; left: 0; right: 0; bottom: 0; margin-inline: auto;
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  filter: drop-shadow(0 30px 30px rgb(5 8 18 / .5));
}
.pcar__slide[data-game="lorcana"] .pcar__img { transform: scale(1.05); }
.pcar__slide[data-game="magic"] .pcar__img { transform: scale(1.16); }
/* Didascalia del box: targhetta scura sulla scena, leggibile su qualsiasi fotogramma */
.pcar__meta {
  display: flex; align-items: center; gap: var(--s-3); justify-self: end; min-width: 0;
  padding: var(--s-2) var(--s-4) var(--s-2) var(--s-2);
  border-radius: var(--r-md);
  background: rgb(var(--scrim) / .78);
  color: #f2f5ff;
  /* Il testo uscente sparisce in fretta, l'entrante arriva dopo: mai due righe sovrapposte */
  transition: opacity 240ms var(--ease-enter) 220ms;
}
.pcar__slide:not(.is-active) .pcar__meta { opacity: 0; transition-delay: 0s; transition-duration: 120ms; }
.pcar__logo { display: grid; place-items: center; width: 72px; height: 36px; padding: 5px var(--s-2); border-radius: calc(var(--r-md) - 8px); flex: none; }
.pcar__logo img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.pcar__text { display: grid; min-width: 0; line-height: 1.3; }
.pcar__name { font-weight: 800; }
.pcar__state { font-size: .875rem; color: #6be866; font-weight: 600; }
.pcar__state--pre { color: #ffbb3d; }
.pcar__state { font-size: .75rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
@media (hover: hover) { .pcar__link:hover .pcar__name { text-decoration: underline; text-underline-offset: 3px; } }
.pcar__dots {
  display: flex; align-items: center; justify-content: flex-end; gap: var(--s-1); justify-self: end;
  padding: 0 var(--s-1) 0 var(--s-2);
  border-radius: var(--r-pill);
  background: rgb(var(--scrim) / .55);
  color: #f2f5ff;
}
.pcar__dot { display: grid; align-items: center; width: 32px; height: 32px; padding: 0 2px; border: 0; background: none; }
.pcar__dot span { position: relative; display: block; height: 3px; border-radius: 3px; background: rgb(242 245 255 / .32); overflow: hidden; }
/* Avanzamento del box attivo: scaleX guidato dal ticker */
.pcar__dot span::after {
  content: ""; position: absolute; inset: 0; background: #f2f5ff;
  transform: scaleX(var(--p, 0)); transform-origin: left center;
}
.pcar__dot[aria-current] span::after { transform: scaleX(var(--p, 1)); }
.pcar__dot:not([aria-current]) span::after { transform: scaleX(0); }
.pcar__pause { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: none; color: inherit; opacity: .8; }
.pcar__pause .ico { width: 16px; height: 16px; }
.pcar__pause .ico--play, .pcar__pause[aria-pressed="true"] .ico--pause { display: none; }
.pcar__pause[aria-pressed="true"] .ico--play { display: block; }
@media (hover: hover) {
  .pcar__pause:hover { opacity: 1; }
  .pcar__dot:hover span { background: rgb(242 245 255 / .6); }
}

/* Fiducia sotto l'eroe: due link di testo */
/* Barra dei riconoscimenti sotto la hero: due liste uguali in fila, scorrono di una lista intera e ripartono */
.marks { border-block: 1px solid var(--line); background: color-mix(in srgb, var(--text) 4%, transparent); }
.marks__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 52px; gap: var(--s-4); }
.marks__viewport { min-width: 0; }
.marks__track { display: block; }
.marks__list { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2) var(--s-6); }
.marks__list li { display: inline-flex; align-items: center; gap: var(--s-3); min-height: 48px; white-space: nowrap; font-size: .875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text); }
.marks__list li:first-child { padding-right: 0; border-right: 0; }
.marks__list li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.marks__list li:nth-child(3n + 2)::before { background: var(--orange); }
.marks__list li:nth-child(3n)::before { background: var(--sky, #2bb8ff); }
.marks__list a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; color: inherit; text-decoration: none; }
@media (hover: hover) { .marks__list a:hover { text-decoration: underline; text-underline-offset: 3px; } }
.trust__star { width: 16px; height: 16px; fill: var(--orange); }
.marks__rating { display: inline-flex; align-items: center; gap: 6px; align-self: stretch; padding-left: var(--s-4); border-left: 1px solid var(--line); color: var(--text); font-size: .8125rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.marks__rating strong { color: var(--orange-ink); font-size: 1.125rem; }
@media (hover: hover) { .marks__rating:hover { color: var(--sky-ink); } }

/* ---------- Riflesso del box in preordine ---------- */
.holo__glare {
  position: absolute; inset: 0; z-index: 3;
  overflow: hidden; pointer-events: none;
  mix-blend-mode: soft-light;
  opacity: 0;
  transition: opacity var(--motion-ui) var(--ease-enter);
}
.holo__glare i {
  position: absolute; width: 140%; aspect-ratio: 1; left: -20%; top: -20%;
  background: radial-gradient(circle, rgb(255 255 255 / .95) 0%, rgb(255 255 255 / 0) 55%);
  transform: translate3d(calc(var(--mx, 0) * 36%), calc(var(--my, 0) * 30%), 0);
}
.is-tilting .holo__glare { opacity: 1; }

/* ---------- Sezioni ---------- */
.section { position: relative; padding: var(--section-y) 0; }
.section + .section { border-top: 1px solid var(--line); }

/* Intestazione unica di sezione: kicker, titolo con una parola accentata, sottotitolo; a destra indice e azione */
.shead { position: relative; isolation: isolate; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-4) var(--s-7); margin-bottom: var(--head-gap); padding: var(--s-3) 0; border-block: 1px solid color-mix(in srgb, var(--sky) 35%, var(--line)); }
.shead::before { content: ""; position: absolute; z-index: -1; inset-block: -1px; left: 50%; width: 100vw; transform: translateX(-50%); background: linear-gradient(90deg, color-mix(in srgb, var(--sky) 7%, transparent), color-mix(in srgb, var(--surface) 66%, transparent) 45%, color-mix(in srgb, var(--green) 5%, transparent)); }
.shead__titles { flex: 1 1 560px; min-width: 0; max-width: 820px; }
.shead__side { display: flex; flex-direction: column; align-items: flex-end; gap: var(--s-3); min-width: 0; }
.shead--products .shead__titles { flex: 1 1 auto; }
.shead--products .shead__side { width: auto; }
.shead__idx { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1rem; line-height: 1; color: var(--text); letter-spacing: .02em; }
.shead .h2 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.4rem); }
.shead__idx span { margin-left: 4px; color: var(--muted); font-weight: 600; }
.shead__link {
  display: inline-flex; align-items: center; min-height: 44px;
  font-weight: 700; color: var(--text); white-space: nowrap;
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; text-decoration-color: var(--green);
}
@media (hover: hover) { .shead__link:hover { text-decoration-color: var(--text); } }

/* ---------- I cinque giochi ---------- */
/* Barra del gioco che si disegna in basso */
@media (hover: hover) {
}

/* ---------- Filtri (blog): chip con conteggio ---------- */
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); margin-bottom: var(--s-6); }
.filters > * { min-width: 0; }
.filterbar { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.filter {
  display: inline-flex; align-items: center; gap: var(--s-2);
  min-height: 40px; padding: 0 var(--s-4);
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  background: var(--surface);
  font-size: .9375rem; font-weight: 600; text-decoration: none;
  transition: border-color var(--motion-micro) linear, background-color var(--motion-micro) linear;
}
.filter[data-game]::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gc); flex: none; }
@media (hover: hover) { .filter:hover { border-color: var(--sky); } }
.filter.is-active { background: var(--text); color: var(--bg); border-color: var(--text); }
.filters__status { flex-basis: 100%; min-height: 1.5em; font-size: .9375rem; color: var(--muted); }
.filters__status:empty { display: none; }

/* ---------- Box in preordine ---------- */
.preorder {
  position: relative; overflow: hidden; isolation: isolate;
  /* Una colonna: le due metà (testo e box) stanno dentro ogni slide, la lista sotto a tutta larghezza */
  display: block;
  padding: var(--s-7);
  margin-bottom: var(--s-7);
  border-radius: var(--r-xl);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
}
.preorder__slides { display: grid; }
.preorder__slide { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: stretch; gap: var(--s-7); opacity: 0; pointer-events: none; transform: translateX(12px); transition: opacity 240ms var(--ease-enter), transform 240ms var(--ease-enter); }
.preorder__slide.is-active { opacity: 1; pointer-events: auto; transform: none; }
.preorder__controls { position: relative; z-index: 1; display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--line); }
.preorder__controls button { min-height: 36px; cursor: pointer; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--text); padding: 4px 10px; font: inherit; font-size: .8125rem; font-weight: 700; }
.preorder__controls button[aria-current] { background: var(--text); border-color: var(--text); color: var(--bg); }
.preorder__controls .preorder__pause { margin-left: auto; }
.preorder__status { --preorder-state: var(--green); display: inline-flex; align-items: center; gap: 9px; min-height: 38px; width: max-content; max-width: 100%; padding: 6px 13px; border: 1px solid color-mix(in srgb, var(--preorder-state) 52%, transparent); border-radius: var(--r-pill); background: color-mix(in srgb, var(--preorder-state) 12%, var(--surface)); color: color-mix(in srgb, var(--preorder-state) 70%, var(--text)); font-size: .8125rem; font-weight: 900; letter-spacing: .08em; line-height: 1.15; text-transform: uppercase; }
.preorder__status[data-state="closing"] { --preorder-state: var(--orange); }
.preorder__status[data-state="open"] { --preorder-state: var(--orange); }
.preorder__status[data-state="closed"] { --preorder-state: var(--danger); }
.preorder__status span { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--preorder-state); box-shadow: 0 0 0 3px color-mix(in srgb, var(--preorder-state) 18%, transparent), 0 0 12px color-mix(in srgb, var(--preorder-state) 68%, transparent); }
.preorder__status strong { font-weight: inherit; }
.preorder__status[data-state="available"] { --preorder-state: var(--green); }
.preorder__glow {
  position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(55% 80% at 82% 50%, color-mix(in srgb, var(--orange) calc(var(--glow) * 55%), transparent), transparent 70%);
}
.preorder__copy { display: grid; grid-template-rows: auto minmax(5rem, auto) auto minmax(74px, auto) auto; align-content: center; gap: var(--s-4); min-width: 0; }
.preorder__title { align-self: center; margin: 0; font-size: clamp(1.625rem, 2.6vw, 2.25rem); font-weight: 800; line-height: 1.14; }
.preorder__date { display: flex; align-items: center; margin: 0; padding-top: var(--s-1); font-family: var(--f-wide); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 800; letter-spacing: .035em; line-height: 1.3; color: var(--text); }
.countdown { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); min-height: 74px; margin: 0; }
.countdown.is-available { padding: var(--s-3) var(--s-4); border: 1px solid var(--line); border-radius: var(--r-md); background: color-mix(in srgb, var(--bg) 60%, transparent); font-weight: 800; line-height: 1.3; }
.countdown__cell {
  display: grid; justify-items: center;
  min-width: 72px; padding: var(--s-3) var(--s-2);
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 60%, transparent);
}
.countdown__n { font-family: var(--f-wide); font-stretch: 125%; font-weight: 800; font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.countdown__u { margin-top: var(--s-1); font-size: .75rem; font-weight: 600; color: var(--muted); }
.preorder__buy { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-5); margin-top: 0; }
.price { display: grid; }
.price__n { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1.75rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.preorder__stage { display: grid; place-items: center; min-width: 0; }
.preorder__box { width: min(100%, 440px); --rx: 0deg; --ry: 0deg; }
.preorder__boxbody {
  position: relative; overflow: hidden;
  display: grid; place-items: center;
  aspect-ratio: 1.15;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-deep), 0 40px 80px -30px color-mix(in srgb, var(--orange) 70%, transparent);
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform 400ms var(--ease-enter);
}
.preorder__box.is-tilting .preorder__boxbody { transition: none; }
.preorder__boxbody img { width: 84%; filter: drop-shadow(0 20px 22px rgb(10 16 32 / .35)); }
.booking__label { display: block; margin-top: var(--s-5); font-weight: 700; }
.booking__input { width: 100%; min-height: 44px; margin-top: var(--s-2); padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--bg); color: var(--text); font: inherit; font-size: 16px; }

/* ---------- Catalogo ---------- */
.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5) var(--s-4); }
.products[hidden] { display: none !important; }
.products__item { min-width: 0; }
.products__item[hidden] { display: none; }
.pcard {
  position: relative;
  height: 100%;
  display: flex; flex-direction: column;
  border-radius: var(--r-lg);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
  transition: transform var(--motion-ui) var(--ease-enter), border-color var(--motion-micro) linear;
}
/* Ombra del passaggio: sta in ::after e si accende in opacità (niente transizioni su box-shadow) */
.pcard::after {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  box-shadow: var(--card-shadow-hover), 0 30px 50px -34px color-mix(in srgb, var(--gc, var(--green)) 80%, transparent);
  opacity: 0; pointer-events: none;
  transition: opacity var(--motion-ui) var(--ease-enter);
}
.products__item { position: relative; isolation: isolate; }
.pcard__media {
  position: relative; overflow: hidden;
  display: grid; place-items: center;
  aspect-ratio: 1 / 1;
  margin: var(--s-2) var(--s-2) 0;
  border-radius: calc(var(--r-lg) - 8px);
}
.pcard__media > img { width: 84%; height: auto; filter: drop-shadow(0 14px 16px rgb(10 16 32 / .3)); transition: transform 400ms var(--ease-enter); }
/* Le foto degli editori su fondo bianco si fondono con la vetrina perla invece di lasciare un riquadro */
.pcard__media > img.on-white { mix-blend-mode: multiply; filter: none; }
.pcard__badge {
  position: absolute; left: 12px; top: 12px; z-index: 2;
  display: inline-block; height: 24px; line-height: 24px; padding: 0 10px;
  border-radius: var(--r-pill);
  background: var(--night-ink); color: #fff;
  font-size: .75rem; font-weight: 700;
}
/* Un colore per stato, le classi sono le chiavi di product-states.js */
.pcard__badge--available { background: var(--badge-ok-bg); color: var(--badge-ok-fg); }
.pcard__badge--on_order { background: var(--badge-order-bg); color: var(--badge-order-fg); }
.pcard__badge--preorder { background: var(--badge-pre-bg); color: var(--badge-pre-fg); }
.pcard__badge--terminated { background: var(--badge-ended-bg); color: var(--badge-ended-fg); }
.pcard__info { display: flex; flex-direction: column; gap: var(--s-1); flex: 1; min-width: 0; padding: var(--s-4); }
.pcard__game { display: flex; align-items: center; min-height: 28px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pcard__game img { width: auto; height: 24px; max-width: 96px; padding: 2px 4px; border-radius: 4px; background: #fff; object-fit: contain; }
/* Il marchio Magic è scuro: una targhetta chiara stabile evita che sparisca sul tema notte. */
.pcard__game img[src*="magic"] { min-width: 96px; padding: 4px 8px; background: linear-gradient(180deg, #fff, #edf1f7); box-shadow: inset 0 0 0 1px rgb(10 16 32 / .12); }
.pcard__title {
  font-size: 1.125rem; line-height: 1.25; font-weight: 700;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 2.5em;
}
.pcard__meta { font-size: .875rem; color: var(--muted); }
.pcard__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2); margin-top: auto; padding-top: var(--s-4); border-top: 1px solid var(--line); }
.pcard__price { font-family: var(--f-wide); font-stretch: 112%; font-weight: 800; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.pcard__row .btn { position: relative; z-index: 2; }
@media (hover: hover) and (pointer: fine) {
  .pcard:hover { transform: translateY(-4px); border-color: var(--line-strong); }
  .pcard:hover::after { opacity: 1; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .pcard:hover .pcard__media > img { transform: scale(1.04); }
}

.empty {
  display: flex; align-items: center; gap: var(--s-5);
  padding: var(--s-5);
  border-radius: var(--r-xl);
  border: 1px dashed var(--line-strong);
  background: var(--surface);
}
.empty > div { min-width: 0; }
.empty img { width: 72px; flex: none; }
.empty p { color: var(--muted); }
.empty p a { color: var(--text); font-weight: 700; }
.empty .btn { margin-top: var(--s-3); }

/* ---------- Tornei: un tabellone unico ---------- */
.night { background: var(--bg-2); color: var(--text); isolation: isolate; overflow: clip; border-block: 1px solid var(--line); }
.night__glow {
  position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(40% 50% at 0% 0%, color-mix(in srgb, var(--sky) 12%, transparent), transparent 70%);
}
.nextnight { text-align: right; padding: var(--s-3) var(--s-5); border-radius: var(--r-lg); border: var(--card-border); background: var(--card-bg); box-shadow: var(--card-shadow); }
.nextnight__label { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.nextnight__time { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1.5rem; line-height: 1.2; color: var(--sky-ink); }
.board {
  display: grid;
  border: var(--card-border); border-radius: var(--r-lg);
  background: var(--card-bg); box-shadow: var(--card-shadow);
  overflow: hidden;
}
.board__row {
  display: grid;
  grid-template-columns: 64px 96px minmax(0, 1fr) 176px auto;
  align-items: center; gap: var(--s-5);
  padding: var(--s-4) var(--s-5);
}
.board__row + .board__row { border-top: 1px solid var(--line); }
.board__row.is-today { background: color-mix(in srgb, var(--sky) 7%, transparent); }
.board__day { display: grid; justify-items: center; line-height: 1; }
.board__dow { font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.board__date { font-family: var(--f-wide); font-stretch: 125%; font-weight: 800; font-size: 1.75rem; margin-top: var(--s-1); font-variant-numeric: tabular-nums; }
.board__logo { display: grid; place-items: center; height: 48px; padding: 6px var(--s-2); border-radius: var(--r-sm); }
.board__logo img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.board__what { min-width: 0; }
.board__title { font-size: 1.0625rem; font-weight: 700; line-height: 1.25; }
.board__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-2); margin-top: var(--s-1); font-size: .875rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.level {
  display: inline-block;
  padding: 1px var(--s-2); border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--green) 18%, transparent); color: var(--green-ink);
  font-size: .75rem; font-weight: 700;
}
.level--pro { background: color-mix(in srgb, var(--orange) 20%, transparent); color: var(--orange-ink); }
.board__seats { min-width: 0; }
.board__count { font-size: .875rem; color: var(--muted); }
.board__count .num { color: var(--text); font-weight: 800; }
.bar { display: block; height: 6px; margin-top: var(--s-2); border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.bar__fill {
  display: block; height: 100%;
  background: var(--grad-brand);
  border-radius: inherit;
  transform-origin: left center;
  transform: scaleX(var(--fill, 0));
  transition: transform var(--motion-scene) var(--ease-enter);
}
.board__actions { display: grid; grid-template-columns: max-content max-content; gap: var(--s-2); }
.board__inline-form { grid-column: 1 / -1; width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) max-content max-content; align-items: end; gap: var(--s-2); padding:12px; border:1px solid color-mix(in srgb,var(--sky) 35%,var(--line-strong)); border-radius:var(--r-md); background:color-mix(in srgb,var(--surface) 92%,var(--sky)); box-shadow:0 8px 20px -18px var(--sky); }
.board__inline-form[hidden] { display: none; }
.board__inline-form label { display: grid; gap: 5px; min-width:0; color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing:.06em; }
.board__inline-form input { width: 100%; min-width: 0; min-height: 40px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); color: var(--text); font:inherit; font-size:.9rem; letter-spacing:normal; }
.board__inline-form .btn { min-height:40px; white-space:nowrap; }
.board__inline-message { grid-column:1/-1; color:var(--sky-ink); font-size:.8rem; font-weight:700; }
.board__actions .board__inline-form .btn { min-height:40px; padding-inline:11px; font-size:.75rem; }
.board__quick-modes { display:flex; flex-wrap:wrap; gap:var(--s-2); grid-column:1/-1; }
.board__quick-form { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:end; gap:var(--s-2); width:100%; grid-column:1/-1; }
.board__quick-form label { grid-column:1/-1; }
.board__quick-form[hidden] { display:none; }
.board__quick-close { justify-self:end; grid-column:1/-1; }

/* ---------- Negozio ---------- */
.store { background: var(--bg); }
.bento {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-areas:
    "a a c info"
    "a a e info";
  gap: var(--s-3);
}
.bento > * { min-width: 0; }
.bento__a { grid-area: a; }
.bento__c { grid-area: c; }
.bento__e { grid-area: e; }
.bento__info { grid-area: info; }
.shot { position: relative; overflow: hidden; border-radius: var(--r-lg); min-height: 200px; background: var(--surface-2); }
.shot img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease-enter); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .shot:hover img { transform: scale(1.03); }
}
.info {
  display: flex; flex-direction: column; gap: var(--s-4);
  padding: var(--s-5);
  border-radius: var(--r-lg);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
}
.info__status { display: flex; align-items: center; gap: var(--s-3); font-weight: 700; }
.dot { width: 10px; height: 10px; border-radius: 50%; background: var(--muted); flex: none; }
.is-open .dot { background: var(--green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 25%, transparent); }
.is-closed .dot { background: var(--danger); }
.hours { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.hours th, .hours td { height: 36px; padding: 0 var(--s-2); }
.hours th { text-align: left; font-weight: 500; color: var(--muted); }
.hours td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.hours .is-late td { color: var(--sky-ink); }
.hours .is-today th, .hours .is-today td { background: var(--surface-2); color: var(--text); font-weight: 800; }
.hours .is-today th { border-radius: var(--r-sm) 0 0 var(--r-sm); }
.hours .is-today td { border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.info__addr { color: var(--muted); }
.info__addr a { display: inline-flex; align-items: center; min-height: 32px; color: var(--text); font-weight: 700; }
.info__ctas { display: grid; gap: var(--s-2); }

/* ---------- Pannello: card generica per classifica e form ---------- */
.panel {
  min-width: 0;
  padding: var(--s-5);
  border-radius: var(--r-lg);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
}
.panel__link { display: inline-flex; align-items: center; min-height: 32px; font-size: .9375rem; font-weight: 700; color: var(--sky-ink); text-decoration: none; }
@media (hover: hover) { .panel__link:hover { text-decoration: underline; text-underline-offset: 3px; } }
.carta__h { font-family: var(--f-wide); font-stretch: 112%; font-weight: 800; font-size: 1.3125rem; line-height: 1.2; }
.carta__h--label { display: flex; align-items: center; gap: var(--s-2); color: var(--sky-ink); font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; }
.carta__h--label::before { content: "—"; color: var(--sky-ink); }

/* ---------- Carta Fedeltà ---------- */
.carta { background: var(--bg-2); }
/* Colore di ogni livello: solo pallini e bordi, il testo resta var(--text) */
[data-rank="bronze"] { --rk: #c98a55; }
[data-rank="silver"] { --rk: #aab6cc; }
[data-rank="gold"] { --rk: #ffc93d; }
[data-rank="diamond"] { --rk: #62cbff; }
[data-rank="ace"] { --rk: #ff7a59; }
[data-rank="platinum"] { --rk: #4fdc4a; }
[data-rank="partner"] { --rk: #c7a2ff; }

.earn { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-3); margin-bottom: var(--s-7); }
.carta__intro { display: grid; grid-template-columns: minmax(0, 720px) minmax(200px, 1fr); gap: var(--s-6); align-items: stretch; margin-bottom: var(--s-7); }
.earn--rules { grid-template-columns: 1fr; gap: 0; max-width: 720px; margin-bottom: 0; overflow: hidden; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--surface); }
.earn--rules .earn__item { display: flex; align-items: center; min-height: 58px; padding: var(--s-3) var(--s-5); border: 0; border-radius: 0; background: transparent; }
.earn--rules .earn__item + .earn__item { border-top: 1px solid var(--line); }
.earn--rules .earn__big { font-size: clamp(1rem, 2vw, 1.25rem); letter-spacing: .03em; }
.earn--rules .earn__item:nth-child(2) .earn__big { color: var(--sky-ink); }
.earn__item {
  min-width: 0; padding: var(--s-5);
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 70%, transparent);
}
.earn__big { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1.5rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.earn__item:first-child .earn__big { color: var(--green-ink); }
.earn__text { margin-top: var(--s-2); color: var(--muted); font-size: .9375rem; line-height: 1.45; }
.carta__signature { display: flex; align-items: center; gap: var(--s-4); min-width: 0; padding: var(--s-4) var(--s-5); border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: linear-gradient(110deg, color-mix(in srgb, var(--green) 9%, var(--surface)), color-mix(in srgb, var(--sky) 8%, var(--surface))); }
.carta__signature img { flex: none; width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 8px 14px color-mix(in srgb, var(--green) 22%, transparent)); }
.carta__signature-kicker { color: var(--green-ink); font-size: .6875rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.carta__signature-title { margin-top: 2px; font-family: var(--f-wide); font-stretch: 112%; font-size: 1.0625rem; font-weight: 800; line-height: 1.15; }

.carta__grid { display: grid; gap: var(--s-6); }
.carta__leader-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); }
.carta__col { display: grid; align-content: start; gap: var(--s-3); min-width: 0; }
.carta__col--leader { gap: var(--s-3); border-left: 1px solid var(--line); }
.carta__leader-panel { padding: 0; border: 0; background: transparent; box-shadow: none; }
.signup { grid-column: 1 / -1; }
.carta__leader-grid .carta__col { padding: clamp(16px, 2.4vw, 32px); }
.ranks { display: grid; gap: var(--s-2); margin-top: var(--s-2); counter-reset: none; }
.rank {
  --rank-edge: var(--line);
  --rank-accent: #8791a4;
  --rank-glow: transparent;
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: 40px minmax(0, 1fr) max-content; align-items: center; gap: var(--s-2) var(--s-4);
  padding: var(--s-3) var(--s-4);
  border-radius: var(--r-md);
  border: 1px solid var(--rank-edge);
  background: linear-gradient(110deg, color-mix(in srgb, var(--rank-accent) 9%, var(--surface)) 0%, var(--surface) 58%);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--rank-accent) 75%, transparent), 0 5px 16px -14px var(--rank-glow);
}
.rank::before, .rank::after { content: ""; position: absolute; pointer-events: none; z-index: -1; }
.rank::before { inset: 0; opacity: .22; background: radial-gradient(ellipse at 12% 50%, var(--rank-glow), transparent 54%); }
.rank::after { inset: auto 0 0; height: 2px; background: linear-gradient(90deg, transparent, var(--rank-accent), transparent); transform-origin: left center; animation: rank-underline 4s ease-in-out infinite; }
.rank__badge {
  display: grid; place-items: center; width: 40px; height: 40px;
  background: transparent; color: var(--rk);
  font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1.625rem;
}
.shead__share { border: 0; background: transparent; padding: 0; font: inherit; }
.shead__share.is-done { color: var(--green-ink); text-decoration-color: var(--green); }
.rank__main { min-width: 0; }
.rank[data-rank="bronze"] { --rank-accent: #b96c39; --rank-edge: #b96c3970; --rank-glow: #b96c3938; }
.rank[data-rank="silver"] { --rank-accent: #a8b5c9; --rank-edge: #a8b5c980; --rank-glow: #a8b5c944; }
.rank[data-rank="gold"] { --rank-accent: #e2af28; --rank-edge: #e2af2880; --rank-glow: #e2af2844; }
.rank[data-rank="diamond"] { --rank-accent: #29bfd3; --rank-edge: #29bfd399; --rank-glow: #29bfd34a; }
.rank[data-rank="ace"] { --rank-accent: #a855f7; --rank-edge: #a855f780; --rank-glow: #a855f744; }
.rank[data-rank="platinum"] { --rank-accent: #edc84c; --rank-edge: #edc84cbb; --rank-glow: #edc84c70; background: linear-gradient(110deg, color-mix(in srgb, #edc84c 15%, var(--surface)) 0%, var(--surface) 64%); box-shadow: inset 3px 0 0 #edc84c, 0 0 20px -12px #edc84c; }
.rank[data-rank="silver"]::after { animation-duration: 3.6s; }
.rank[data-rank="gold"]::after { height: 2px; animation-duration: 3s; }
.rank[data-rank="diamond"]::before { opacity: .32; background: radial-gradient(circle at 18% 28%, #c8fbff 0 1px, transparent 2px), radial-gradient(circle at 79% 70%, #c8fbff 0 1px, transparent 2px), radial-gradient(ellipse at 12% 50%, var(--rank-glow), transparent 54%); animation: rank-sparkle 3.2s ease-in-out infinite; }
.rank[data-rank="ace"]::before { opacity: .25; background: radial-gradient(circle at 23% 22%, #ead1ff 0 1px, transparent 2px), radial-gradient(circle at 85% 74%, #ead1ff 0 1px, transparent 2px), radial-gradient(ellipse at 12% 50%, var(--rank-glow), transparent 54%); animation: rank-sparkle 4.8s ease-in-out infinite; }
.rank[data-rank="platinum"]::before { opacity: .38; background: radial-gradient(circle at 15% 28%, #fff5c8 0 1.2px, transparent 2.2px), radial-gradient(circle at 32% 74%, #fff5c8 0 1px, transparent 2px), radial-gradient(circle at 73% 23%, #fff5c8 0 1.2px, transparent 2.2px), radial-gradient(circle at 88% 67%, #fff5c8 0 1px, transparent 2px), radial-gradient(ellipse at 12% 50%, var(--rank-glow), transparent 54%); animation: rank-sparkle 2.4s ease-in-out infinite; }
.rank[data-rank="diamond"]::after, .rank[data-rank="ace"]::after, .rank[data-rank="platinum"]::after { height: 3px; animation-duration: 2.5s; }
.rank[data-rank="platinum"]::after { background: linear-gradient(90deg, transparent, #fff2ad 18%, #f0bd32 48%, #fff2ad 72%, transparent); animation-duration: 1.8s; }
.rank__name { font-weight: 800; line-height: 1.25; }
.rank__badge { filter: drop-shadow(0 2px 5px var(--rank-glow)); }
@keyframes rank-underline { 0%, 100% { opacity: .5; transform: scaleX(.3); } 50% { opacity: 1; transform: scaleX(1); } }
@keyframes rank-sparkle { 0%, 100% { opacity: .18; } 50% { opacity: .58; } }
.rank__pts { font-size: .875rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.rank__perks { display: grid; align-content: center; justify-items: end; gap: 6px; min-width: 0; }
.rank__perks li {
  display: inline-flex; align-items: center; justify-self: end; max-width: 100%; min-height: 26px; padding: 0 10px;
  border-radius: var(--r-pill); border: 1px solid var(--line);
  font-size: .8125rem; font-weight: 600; color: var(--muted); text-align: right;
}
.rank__perks .is-gift { border-color: color-mix(in srgb, var(--orange) 55%, transparent); color: var(--orange-ink); }
@media (prefers-reduced-motion: reduce) { .rank::before, .rank::after { animation: none; opacity: .3; transform: none; } }

/* Classifica: una riga per giocatore, podio evidenziato */
.lb { display: grid; gap: 6px; margin-top: var(--s-2); }
[data-leaderboard][hidden] { display:none !important; }
.lb__empty { padding:10px 12px; border:1px solid var(--line); border-radius:var(--r-sm); color:var(--muted); font-size:.85rem; }
.lb__row {
  display: grid; grid-template-columns: 28px 28px minmax(0, 1fr) auto; align-items: center; gap: var(--s-3);
  min-height: 52px; padding: var(--s-2) var(--s-3);
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
}
.lb__pos { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums; }
.lb__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--rk, var(--muted)); }
.lb__dot--staff { width: 28px; height: 28px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:var(--surface); border:1px solid #8b5cf6; }
.lb__rank-icon { font-size: 16px; line-height: 1; }
.lb__who { display: grid; min-width: 0; line-height: 1.25; }
.lb__name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb__rank { font-size: .8125rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb__pts { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lb__pts span { font-weight: 600; color: var(--muted); font-size: .8125rem; }
.lb--podium .lb__row:nth-child(-n+3) { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pod) 60%, transparent); background: color-mix(in srgb, var(--pod) 12%, var(--surface)); }
.lb--podium .lb__row:nth-child(1) { --pod: #ffc93d; }
.lb--podium .lb__row:nth-child(2) { --pod: #aab6cc; }
.lb--podium .lb__row:nth-child(3) { --pod: #c98a55; }

/* ---------- Form nei pannelli (Carta, recensione) ---------- */
.form.form--panel { max-width: none; margin-top: 0; }
.form__intro { margin-top: calc(-1 * var(--s-2)); color: var(--muted); font-size: .9375rem; }
.form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4); }
.field__hint { font-weight: 500; color: var(--muted); }
.field textarea {
  min-height: 120px; padding: var(--s-3) var(--s-4);
  border: 1px solid var(--line-strong); border-radius: var(--r-md);
  background: var(--surface); font-size: 1rem; line-height: 1.5; resize: vertical;
}
.field textarea:focus-visible { outline: none; border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.field textarea[aria-invalid="true"] { border-color: var(--danger); }
/* Voto a stelle: cinque radio veri, le stelle sono le label. Le stelle fino a quella scelta si accendono */
.rate__stars { display: flex; gap: 2px; margin-top: 2px; }
.rate__stars label { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-sm); cursor: pointer; color: var(--muted); }
.rate__stars svg { width: 30px; height: 30px; fill: currentColor; transition: transform var(--motion-micro) var(--ease-snap); }
.rate__stars input:focus-visible + label { outline: 3px solid var(--sky); outline-offset: 0; }
.rate__stars:has(#rv-v1:checked) label:nth-of-type(-n+1),
.rate__stars:has(#rv-v2:checked) label:nth-of-type(-n+2),
.rate__stars:has(#rv-v3:checked) label:nth-of-type(-n+3),
.rate__stars:has(#rv-v4:checked) label:nth-of-type(-n+4),
.rate__stars:has(#rv-v5:checked) label:nth-of-type(-n+5) { color: var(--orange); }
@media (hover: hover) { .rate__stars label:hover svg { transform: scale(1.12); } }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Recensioni ---------- */
.reviews { background: var(--bg-2); }
.score {
  display: grid; grid-template-columns: auto auto; align-items: center; gap: 0 var(--s-4);
  padding: var(--s-4) var(--s-5);
  border-radius: var(--r-xl);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
}
.score__n { grid-row: span 2; font-size: clamp(3rem, 6vw, 4.25rem); line-height: .9; font-variant-numeric: tabular-nums; }
.score__stars svg { width: 110px; height: 20px; fill: var(--orange); }
.score__label { font-weight: 700; }
.score__label a { display: inline-flex; align-items: center; min-height: 32px; }
.quotes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: var(--s-4); align-items: stretch; }
.quote {
  display: flex; flex-direction: column; min-width: 0;
  min-height: 250px; aspect-ratio: auto !important; grid-column: auto !important; grid-row: auto !important;
  padding: var(--s-5);
  border-radius: var(--r-lg);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
}
.quotes > .quote {
  position: relative; isolation: isolate; overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--quote-accent, #8b5cf6) 42%, var(--line)) !important;
  background: linear-gradient(145deg, color-mix(in srgb, var(--quote-accent, #8b5cf6) 17%, var(--surface)) 0%, color-mix(in srgb, var(--surface-2, var(--surface)) 92%, var(--quote-accent, #8b5cf6)) 100%) !important;
  box-shadow: 0 18px 46px -34px color-mix(in srgb, var(--quote-accent, #8b5cf6) 75%, transparent), inset 0 1px 0 rgba(255,255,255,.28) !important;
  transform: none !important;
}
.quotes > .quote::after { content: ""; position: absolute; z-index: -1; width: 190px; height: 190px; right: -92px; top: -105px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--quote-accent, #8b5cf6) 31%, transparent), transparent 70%); }
.quotes > .quote:nth-child(4n + 1) { --quote-accent: #f0ad38; }
.quotes > .quote:nth-child(4n + 2) { --quote-accent: #74c7df; }
.quotes > .quote:nth-child(4n + 3) { --quote-accent: #b58bff; }
.quotes > .quote:nth-child(4n) { --quote-accent: #55c795; }
.quotes > .quote:hover { border-color: var(--quote-accent) !important; box-shadow: 0 22px 50px -30px color-mix(in srgb, var(--quote-accent) 70%, transparent), inset 0 1px 0 rgba(255,255,255,.34) !important; }
.quote::before { content: "“"; display: block; height: .5em; margin-bottom: var(--s-3); font: 800 3rem/1 var(--f-wide); color: var(--quote-accent, var(--green-ink)); opacity: .78; }
.quote blockquote p { font-size: 1.0625rem; }
.quote__who { margin-top: auto; padding-top: var(--s-4); font-size: .875rem; font-weight: 700; color: var(--text); }
.quote__who span { font-weight: 500; color: var(--muted); }

.reviews__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s-6); align-items: start; margin-top: var(--s-8); }
.reviews__main { display: grid; gap: var(--s-4); min-width: 0; }
.reviews__aside { display: grid; gap: var(--s-2); position: sticky; top: calc(var(--header-h) + 24px); }
.reviews__aside .lb { margin-top: var(--s-2); }
.sreviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
.sreview {
  display: flex; flex-direction: column; gap: var(--s-3); min-width: 0;
  padding: var(--s-4) var(--s-5);
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: var(--surface);
}
.sreview__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2); }
.sreview__stars { display: flex; gap: 2px; color: var(--orange); }
.sreview__stars svg { width: 16px; height: 16px; fill: currentColor; }
.sreview__stars .is-off { color: color-mix(in srgb, var(--muted) 40%, transparent); }
.sreview__src { font-size: .8125rem; color: var(--muted); }
.sreview__text { font-size: 1rem; }
.sreview__who { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin-top: auto; font-size: .875rem; font-weight: 700; }
.rankpill {
  display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 0 10px;
  border-radius: var(--r-pill); border: 1px solid color-mix(in srgb, var(--rk, var(--muted)) 55%, transparent);
  font-size: .75rem; font-weight: 700; color: var(--text);
}
.rankpill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rk, var(--muted)); }

/* ---------- Blog: card (home e blog.html) ---------- */
.bgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5) var(--s-4); }
.bgrid > li { min-width: 0; }
.bgrid__fallback { grid-column: 1 / -1; }
.bcard {
  position: relative; isolation: isolate;
  display: flex; flex-direction: column; height: 100%;
  border-radius: var(--r-lg);
  border: var(--card-border);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
  transition: transform var(--motion-ui) var(--ease-enter);
}
/* Bordo più deciso al passaggio: sta in un overlay e si accende in opacità */
.bcard::before {
  content: ""; position: absolute; inset: -1px; z-index: 2; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 0 0 1px var(--line-strong), var(--card-shadow-hover);
  opacity: 0; transition: opacity var(--motion-ui) var(--ease-enter);
}
.bcard__media {
  display: grid; place-items: center; overflow: hidden;
  aspect-ratio: 16 / 10;
  margin: var(--s-2) var(--s-2) 0;
  border-radius: calc(var(--r-lg) - 8px);
}
.bcard__media img { width: auto; height: auto; max-width: 72%; max-height: 84%; object-fit: contain; filter: drop-shadow(0 14px 16px rgb(10 16 32 / .3)); transition: transform 400ms var(--ease-enter); }
.bcard__media img.on-white { mix-blend-mode: multiply; filter: none; }
.bcard__media.is-photo { background: var(--surface-2); box-shadow: none; }
.bcard__media.is-photo img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; filter: none; }
.bcard__body { display: flex; flex-direction: column; gap: var(--s-2); flex: 1; min-width: 0; padding: var(--s-4) var(--s-5) var(--s-5); }
.bcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-2); font-size: .8125rem; color: var(--muted); }
.bcard__cat { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sky-ink); }
.bcard__title { font-family: var(--f-wide); font-stretch: 108%; font-size: 1.25rem; line-height: 1.2; font-weight: 800; }
.bcard__title a { text-decoration: none; }
/* Tutta la card è cliccabile, il link resta uno solo */
.bcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--r-lg); }
.bcard__title a:focus-visible { outline: none; }
.bcard:has(.bcard__title a:focus-visible) { outline: 3px solid var(--sky); outline-offset: 3px; }
.bcard__excerpt { color: var(--muted); font-size: .9375rem; }
.bcard__more { margin-top: auto; padding-top: var(--s-2); font-size: .9375rem; font-weight: 700; color: var(--text); }
@media (hover: hover) and (pointer: fine) {
  .bcard:hover { transform: translateY(-4px); }
  .bcard:hover::before { opacity: 1; }
  .bcard:hover .bcard__more { text-decoration: underline; text-decoration-color: var(--green); text-decoration-thickness: 2px; text-underline-offset: 5px; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .bcard:hover .bcard__media img { transform: scale(1.04); }
}

/* ---------- blog.html: elenco e articolo ---------- */
.filter__n { margin-left: 2px; font-size: .8125rem; font-weight: 600; color: var(--muted); }
.filter.is-active .filter__n { color: inherit; opacity: .7; }
.bloghead .filters { margin-bottom: var(--s-6); }
.bloghead__intro { max-width: 58ch; margin: var(--s-2) 0 0; color: var(--muted); font-size: clamp(.98rem, 1.5vw, 1.125rem); line-height: 1.65; }
.bloghead [data-blog-cats] { padding: 12px; border: 1px solid var(--line); border-radius: var(--r-card); background: linear-gradient(115deg, color-mix(in srgb, var(--sky) 7%, var(--surface)), color-mix(in srgb, var(--green) 5%, var(--surface))); }
.bloghead [data-blog-cats] .filter { min-height: 42px; padding-inline: 15px; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.section.post { border-top: 0; padding-top: var(--s-6); }
.post__wrap { display: grid; gap: var(--s-6); }
.post__back { justify-self: start; display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--text); text-decoration: none; }
@media (hover: hover) { .post__back:hover { text-decoration: underline; text-underline-offset: 4px; } }
.post__article { display: grid; gap: var(--s-6); max-width: 760px; }
.post__head { display: grid; gap: var(--s-4); max-width: 820px; }
.post__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-2); color: var(--muted); font-size: .9375rem; }
.post__meta .bcard__cat { display: inline-flex; align-items: center; min-height: 32px; text-decoration: none; }
.post__title { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: clamp(2rem, 4.4vw, 3.5rem); line-height: 1.02; letter-spacing: -.025em; }
.post__lead { color: var(--muted); font-size: 1.1875rem; line-height: 1.5; max-width: 60ch; }
.post__cover { display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r-xl); }
.post__cover img { width: auto; height: auto; max-width: 62%; max-height: 82%; object-fit: contain; filter: drop-shadow(0 20px 22px rgb(10 16 32 / .35)); }
.post__cover img.on-white { mix-blend-mode: multiply; filter: none; }
.post__cover.is-photo img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; filter: none; }
.post__body { display: grid; gap: var(--s-4); max-width: 68ch; font-size: 1.125rem; line-height: 1.7; }
.post__body h2 { margin-top: var(--s-4); font-family: var(--f-wide); font-stretch: 112%; font-weight: 800; font-size: 1.5rem; line-height: 1.2; }
.post__body > ul:not([class]) { display: grid; gap: var(--s-2); padding-left: 1.25em; list-style: disc; }
.post__body > ul:not([class]) li::marker { color: var(--green-ink); }
/* Blocchi { loyalty } dell'articolo: gli stessi componenti della sezione Carta */
.post__body .earn { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin: 0; font-size: 1rem; line-height: 1.5; }
.post__body .ranks { margin: 0; font-size: 1rem; line-height: 1.5; }
.post__comments { display: grid; gap: var(--s-4); max-width: 68ch; margin-top: var(--s-4); padding-top: var(--s-6); border-top: 1px solid var(--line); }
.comments { display: grid; gap: var(--s-3); }
.comment { padding: var(--s-4) var(--s-5); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); }
.comment__who { font-size: .875rem; font-weight: 700; }
.comment__who time { font-weight: 500; color: var(--muted); }
.comment__text { margin-top: var(--s-1); }
.comment--empty { color: var(--muted); }
.post__more { display: grid; gap: var(--s-5); margin-top: var(--s-6); padding-top: var(--s-7); border-top: 1px solid var(--line); }
.post__related { margin-top: var(--s-2); }

/* ---------- Form e social ---------- */
.form { display: grid; gap: var(--s-4); margin-top: var(--s-5); max-width: 560px; }
.field { display: grid; gap: 6px; border: 0; padding: 0; min-width: 0; }
.field label, .field legend { font-weight: 700; font-size: .9375rem; }
.field input {
  height: 52px; padding: 0 var(--s-4);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-pill);
  background: var(--surface);
  font-size: 1rem;
}
.field input::placeholder { color: var(--muted); opacity: 1; }
.field input:focus-visible { outline: none; border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.field input[aria-invalid="true"] { border-color: var(--danger); }
.field__error { color: var(--danger); font-size: .875rem; font-weight: 600; }
.check { display: inline-flex; align-items: center; gap: var(--s-2); min-height: 40px; padding: 0 var(--s-3); border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--surface); font-size: .9375rem; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--green); }
.check:has(input:checked) { border-color: var(--green); }
.check--line { border: 0; background: none; padding: 0; min-height: 32px; align-items: flex-start; }
.check--line input { margin-top: 3px; flex: none; }
.form .btn { justify-self: start; }
.form__ok { font-weight: 700; color: var(--green-ink); }
.form__ok:empty { display: none; }

/* Ancora compatibile (#novita) in cima alla sezione Prodotti */
.anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }

/* ---------- Prodotti: filtri in una barra, catalogo in una fila che scorre ---------- */
[data-state="available"] { --st: var(--green); }
[data-state="on_order"] { --st: var(--sky); }
[data-state="preorder"] { --st: var(--orange); }
[data-state="terminated"] { --st: var(--danger); }
.brand-marquee { overflow-x: auto; overscroll-behavior-x: contain; margin: 0 0 var(--s-6); padding: var(--s-3) 0; border-block: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 78%, transparent); scrollbar-width: none; }
.brand-marquee::-webkit-scrollbar { display: none; }
.brand-marquee__loop { display: flex; width: max-content; }
.brand-marquee__track { display: flex; flex: none; align-items: center; justify-content: space-around; gap: clamp(32px, 7vw, 96px); min-width: max-content; padding-inline: var(--s-5); }
.brand-marquee__track a { display: inline-flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; }
.brand-marquee__track a:focus-visible { outline: 2px solid #8b5cf6; outline-offset: 5px; border-radius: 6px; }
.brand-marquee__track img[src$="riftbound-official.png"] { height: clamp(40px, 4.5vw, 60px); max-width: 150px; padding: 5px 9px; border-radius: 8px; background: #080b12; }
.brand-marquee__track span { font-family: var(--f-wide); font-size: .8rem; font-weight: 850; letter-spacing: .05em; }
.brand-marquee img { width: auto; height: clamp(34px, 4vw, 56px); max-width: 160px; object-fit: contain; }
.brand-marquee img[src$="vtes.svg"] { filter: brightness(0); }
:root:not([data-theme="giorno"]) .brand-marquee img[src$="vtes.svg"] { filter: none; }
.brand-marquee img[src$="fusion-world.png"] { padding: 4px 8px; border-radius: 8px; background: #142038; filter: none; }
@media (prefers-reduced-motion: no-preference) { .brand-marquee__loop { animation: brand-marquee-scroll 28s linear infinite; } .brand-marquee:hover .brand-marquee__loop { animation-play-state: paused; } }
@keyframes brand-marquee-scroll { to { transform: translateX(-50%); } }
.product-filter { margin-top: var(--s-6); }
.product-filter__label { display: inline-flex; width: max-content; margin: 0 0 var(--s-2); }
.game-rail { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: var(--s-3); margin: 0 0 var(--s-5); padding: 2px; }
.game-rail__games { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); }
.game-rail__games { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.game-rail__item {
  position: relative; display: grid; place-items: center; min-width: 0; min-height: 86px; padding: var(--s-3) var(--s-4);
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); text-decoration: none;
  transition: transform var(--motion-micro) var(--ease-enter), border-color var(--motion-micro) linear, background-color var(--motion-micro) linear;
}
.game-rail a::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: 8px; height: 3px; border-radius: var(--r-pill); background: #8b5cf6; transform: scaleX(0); transition: transform var(--motion-ui) var(--ease-enter); pointer-events: none; }
.game-rail a.is-active::after { transform: scaleX(1); }
.game-rail__item img { width: auto; height: 42px; max-width: 100%; object-fit: contain; }
.game-rail__item[data-game="riftbound"] img { height: 42px; max-width: 100%; }
.game-rail__item[data-game="riftbound"] { background: #090c14; border-color: #d88a26; }
:root[data-theme="giorno"] .game-rail__item[data-game="riftbound"] { background:#fff; border-color:var(--line); }
:root[data-theme="giorno"] .brand-marquee__track img[src$="riftbound-official.png"] { background:#fff; }
.adm-communication-tabs { margin:0 0 18px; }
.adm-communication-card { display:grid; gap:14px; }
.adm-communication-subtitle { margin:6px 0 0; font-size:1rem; }
.adm-wa-template-editor { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; padding:14px; border:1px solid var(--line-2); border-radius:12px; background:var(--bg-2); }
.adm-wa-template-editor label,.adm-wa-message { display:grid; gap:6px; color:var(--ink-2); font-size:.8rem; font-weight:650; }
.adm-wa-template-editor .adm-actions { grid-column:1/-1; display:flex; gap:8px; flex-wrap:wrap; margin:0; }
.adm-wa-message { margin-top:14px; }
.adm-wa-message .adm-wa-editor { width:100%; min-height:190px; line-height:1.55; }
@media(max-width:620px){.adm-wa-template-editor{grid-template-columns:1fr}.adm-wa-template-editor .adm-actions{grid-column:auto}}

/* Titoli fissi e campi leggibili con la stessa gerarchia in tutto il gestionale. */
.shead--fixed { opacity:1!important; transform:none!important; }
.adm-form-grid > label > span:first-child,
.adm-communication-card .adm-wa-message > span,
.adm-communication-card .adm-wa-template-editor label > span,
.adm-card .adm-field-label {
  display:inline-flex; align-items:center; width:fit-content; max-width:100%;
  padding:5px 9px; border:1px solid color-mix(in srgb,var(--adm-accent) 38%,var(--line));
  border-radius:7px; background:color-mix(in srgb,var(--adm-accent) 13%,var(--bg-2));
  color:var(--ink); font-size:.78rem; line-height:1.25; font-weight:800;
  letter-spacing:.035em; text-transform:uppercase;
}
.adm-communication-card .adm-wa-template-editor label { display:grid; gap:8px; width:auto; padding:0; border:0; background:transparent; color:var(--ink-2); }
.adm-communication-card .adm-wa-template-editor label input { font-weight:500; letter-spacing:normal; text-transform:none; }
.adm-communication-card .adm-wa-message > span { display:inline-flex; margin-bottom:2px; }
.adm-htitle { font-size:1.18rem; font-weight:800; line-height:1.3; color:var(--ink); }
.adm-tournament-week { margin:18px 0 26px; }
.adm-tournament-week + .adm-tournament-week { padding-top:18px; border-top:2px solid color-mix(in srgb,var(--adm-accent) 42%,var(--line)); }
.adm-tournament-week-head { display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; margin:0 0 12px; padding:11px 14px; border:1px solid color-mix(in srgb,var(--adm-accent) 32%,var(--line)); border-left:4px solid var(--adm-accent); border-radius:10px; background:color-mix(in srgb,var(--adm-accent) 9%,var(--bg-2)); }
.adm-tournament-week-head span { padding:4px 8px; border-radius:6px; background:color-mix(in srgb,var(--adm-accent) 18%,var(--bg-2)); color:var(--ink); font-size:.7rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.adm-tournament-week-head h3 { margin:0; font-size:1rem; font-weight:800; }
.adm-tournament-week-head b { margin-left:auto; color:var(--ink-2); font-size:.8rem; }
.adm-summary-strip { margin:4px 0 18px; }
.adm-summary-strip > div { max-width:none!important; }
.adm-communication-tabs .adm-nav-btn { min-width:140px; }
@media(max-width:600px){.adm-tournament-week-head b{margin-left:0}.adm-form-grid > label > span:first-child{font-size:.72rem}}

/* UI backoffice: etichette e separatori uniformi, dimensioni leggibili anche nei form lunghi. */
.adm-wrap .btn-gold { background:var(--accent, #8b5cf6); border-color:var(--accent, #8b5cf6); color:#fff; }
.adm-wrap .btn-gold:hover { filter:brightness(1.1); }
.adm-section-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.adm-form-grid > label > span:first-child,
.adm-communication-card .adm-wa-template-editor label > span,
.adm-communication-card .adm-wa-message > span,
.adm-newsletter-upload > span,
.adm-widget-product-row .adm-field-label,
.adm-widget-product-form > label > span:first-child { font-size:.72rem; padding:4px 8px; border-color:color-mix(in srgb,var(--accent, #8b5cf6) 35%,var(--line)); background:color-mix(in srgb,var(--accent, #8b5cf6) 10%,var(--bg-2)); }
.adm-tournament-week { margin:20px 0 30px; padding-bottom:18px; border-bottom:3px solid color-mix(in srgb,var(--accent, #8b5cf6) 42%,var(--line)); }
.adm-tournament-week + .adm-tournament-week { padding-top:16px; }
.adm-tournament-week-head { min-height:56px; padding:12px 16px; border:1px solid color-mix(in srgb,var(--accent, #8b5cf6) 42%,var(--line)); border-left:7px solid var(--accent, #8b5cf6); border-radius:10px; background:linear-gradient(90deg,color-mix(in srgb,var(--accent, #8b5cf6) 15%,var(--bg-2)),color-mix(in srgb,var(--sky, #2bb8ff) 8%,var(--bg-2))); box-shadow:0 5px 16px color-mix(in srgb,var(--accent, #8b5cf6) 10%,transparent); }
.adm-tournament-week-head span,.adm-tournament-week-head h3,.adm-tournament-week-head b { text-transform:uppercase; }
.adm-tournament-week-head h3 { font-size:1.05rem; letter-spacing:.035em; }
.adm-tournament-week-head b { color:var(--ink); font-size:.86rem; padding:5px 10px; border-radius:7px; background:color-mix(in srgb,var(--sky, #2bb8ff) 13%,var(--bg-2)); }
.adm-widget-products { display:grid; gap:8px; margin-top:10px; }
.adm-widget-product { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--line-2); border-radius:10px; background:var(--bg-2); color:var(--ink); text-align:left; cursor:pointer; }
.adm-widget-product.selected { border-color:var(--accent, #8b5cf6); background:color-mix(in srgb,var(--accent, #8b5cf6) 10%,var(--bg-2)); }
.adm-widget-product img,.adm-widget-product-row > img,.adm-widget-product-placeholder { width:42px; height:50px; flex:none; object-fit:cover; border-radius:6px; }
.adm-widget-product-placeholder { display:grid; place-items:center; color:var(--accent, #8b5cf6); background:color-mix(in srgb,var(--accent, #8b5cf6) 12%,var(--bg-1)); }
.adm-widget-product span:nth-child(2) { display:grid; gap:3px; flex:1; min-width:0; }
.adm-widget-product small { color:var(--ink-2); }
.adm-widget-product > b { font-size:1.2rem; color:var(--accent, #8b5cf6); }
.adm-widget-product-form { margin:14px 0; padding:14px; border:1px solid var(--line-2); border-radius:12px; background:var(--bg-2); }
.adm-widget-product-row { display:grid; grid-template-columns:44px minmax(140px,1.4fr) minmax(90px,.7fr) minmax(145px,1fr) minmax(170px,1.1fr) auto; align-items:end; gap:9px; padding:10px; border:1px solid var(--line-2); border-radius:10px; background:var(--bg-2); }
.adm-widget-product-row label { display:grid; gap:5px; min-width:0; }
.adm-widget-file input { max-width:190px; font-size:.75rem; }
.adm-empty-hint,.adm-inline-status { padding:10px 12px; border-radius:8px; background:color-mix(in srgb,var(--accent, #8b5cf6) 8%,var(--bg-2)); color:var(--ink-2); }
.adm-2fa-toggle-card { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 16px; padding:14px 16px; border:1px solid color-mix(in srgb,var(--accent, #8b5cf6) 35%,var(--line)); border-left:5px solid var(--accent, #8b5cf6); border-radius:12px; background:color-mix(in srgb,var(--accent, #8b5cf6) 7%,var(--bg-2)); }
.adm-2fa-toggle-card > div { flex:1; min-width:220px; }
.adm-2fa-toggle-card p { margin:7px 0 0; color:var(--ink-2); font-size:.88rem; }
.adm-state-pill { padding:5px 11px; border-radius:999px; background:color-mix(in srgb,var(--danger) 15%,var(--bg-2)); color:var(--danger); font-size:.78rem; font-weight:850; letter-spacing:.07em; }
.adm-state-pill.is-on { background:color-mix(in srgb,var(--ok) 15%,var(--bg-2)); color:var(--ok); }
.adm-2fa-disable { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.adm-2fa-disable label { display:grid; gap:8px; min-width:260px; }
.adm-subsection-title { margin:0 0 8px; color:var(--ink); font-size:1.05rem; }
.adm-newsletter-upload { display:grid; gap:8px; }
.adm-newsletter-preview { display:grid; gap:10px; margin:14px 0; padding:12px; border:1px solid var(--line-2); border-radius:10px; background:var(--bg-2); }
.adm-newsletter-preview iframe { width:100%; min-height:260px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.adm-tournament-week { margin:22px 0 34px; padding:0 0 22px; border-bottom:4px solid color-mix(in srgb,var(--sky, #18b8d4) 58%,var(--accent, #8b5cf6)); }
.adm-tournament-week + .adm-tournament-week { padding-top:18px; }
.adm-tournament-week-head { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; min-height:64px; margin-bottom:14px; padding:12px 16px; border:1px solid color-mix(in srgb,var(--accent, #8b5cf6) 55%,var(--line)); border-left:8px solid var(--accent, #8b5cf6); border-radius:10px; background:linear-gradient(100deg,color-mix(in srgb,var(--accent, #8b5cf6) 20%,var(--bg-2)) 0%,color-mix(in srgb,var(--sky, #18b8d4) 15%,var(--bg-2)) 100%); box-shadow:0 5px 18px color-mix(in srgb,var(--accent, #8b5cf6) 16%,transparent); }
.adm-tournament-week-head span { padding:7px 10px; border:1px solid color-mix(in srgb,var(--accent, #8b5cf6) 40%,var(--line)); border-radius:7px; background:color-mix(in srgb,var(--accent, #8b5cf6) 22%,var(--bg-2)); font-size:.78rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.adm-tournament-week-head h3 { margin:0; font-size:1.12rem; font-weight:900; letter-spacing:.045em; text-transform:uppercase; }
.adm-tournament-week-head b { justify-self:end; padding:7px 11px; border-radius:7px; background:color-mix(in srgb,var(--sky, #18b8d4) 24%,var(--bg-2)); color:var(--ink); font-size:.88rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
@media(max-width:600px){.adm-tournament-week-head{grid-template-columns:1fr auto}.adm-tournament-week-head h3{grid-column:1/-1;grid-row:2;font-size:.92rem}.adm-tournament-week-head b{grid-column:2;grid-row:1}}
@media(max-width:900px){.adm-widget-product-row{grid-template-columns:44px repeat(2,minmax(100px,1fr))}.adm-widget-product-row .adm-widget-file{grid-column:2}.adm-widget-product-row>button{grid-column:3}}
@media(max-width:600px){.adm-section-actions{width:100%;justify-content:flex-start}.adm-widget-product-row{grid-template-columns:42px 1fr}.adm-widget-product-row label,.adm-widget-product-row>button{grid-column:2}.adm-widget-product-row .adm-widget-file{grid-column:2}.adm-tournament-week-head h3{font-size:.88rem}}
.game-rail__item[data-game="vtes"] { background: #fff; border-color: var(--line-strong); }
.game-rail__item[data-game="vtes"] img { filter: brightness(0); }
:root:not([data-theme="giorno"]) .game-rail__item[data-game="vtes"] img { filter: none; }
.game-rail__item[data-game="vtes"] img { height: 42px; }
.game-rail__item[data-game="gundam"], .game-rail__item[data-game="starwars"] { background: #fff; border-color: var(--line-strong); }
.game-rail__item[data-game="fusionworld"] { background: #fff; border-color: var(--line-strong); }
.game-rail__item[data-game="fusionworld"] img { padding: 4px 8px; border-radius: 8px; background: #142038; }
.game-rail__item[data-game="starwars"] img { filter: brightness(0); }
.game-rail .filter__n { position: absolute; right: 8px; top: 8px; min-width: 20px; padding: 2px 5px; border-radius: var(--r-pill); background: var(--surface-3); color: var(--muted); font-size: .6875rem; text-align: center; }
.game-rail a.is-active { border-color: #8b5cf6; box-shadow: inset 0 0 0 1px #8b5cf6; background: color-mix(in srgb, var(--surface) 82%, #8b5cf6 18%); }
.game-rail__item[data-game="fusionworld"].is-active { background: #fff; }
.game-rail__item[data-game="fusionworld"].is-active { border-color: #8b5cf6; box-shadow: inset 0 0 0 1px #8b5cf6; }
.game-contact { display: flex; justify-content: center; margin: var(--s-4) 0 var(--s-5); }
.game-contact .btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding-inline: 24px; border-radius: 999px; box-shadow: 0 10px 28px -16px #25d366; }
.game-contact .ico { width: 20px; height: 20px; }
.adm-gametile--riftbound { padding:5px 7px; background:#080b12; border-color:#d88a26; }
@media (max-width: 720px) { .game-rail__games { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
:root[data-theme="giorno"] .drawer__games a[data-game="gundam"],
:root[data-theme="giorno"] .drawer__games a[data-game="starwars"],
:root[data-theme="giorno"] .drawer__games a[data-game="vtes"] { background: #fff !important; border-color: var(--line-strong); }
:root[data-theme="giorno"] .drawer__games a[data-game="gundam"] img { filter:none; }
:root[data-theme="giorno"] .drawer__games a[data-game="starwars"] img { filter:brightness(0) !important; }
:root[data-theme="giorno"] .drawer__games a[data-game="vtes"] img { filter:brightness(0) !important; }
:root:not([data-theme="giorno"]) .drawer__games a[data-game="gundam"] img { filter:brightness(0) invert(1); }
.drawer__games a[data-game="fusionworld"] img { padding: 4px 8px; border-radius: 8px; background: #142038; }
.game-rail a.is-disabled { opacity: .5; pointer-events: none; }
@media (hover: hover) { .game-rail__item:hover { transform: translateY(-2px); border-color: #8b5cf6; } }
.game-rail a:focus-visible { outline-color: #8b5cf6; }
.ecommerce-off [data-cart-open], .ecommerce-off [data-add], .ecommerce-off [data-search-toggle], .ecommerce-off [data-searchbar], [data-cart-open][hidden], [data-search-toggle][hidden] { display: none !important; }
:root:not([data-theme="giorno"]) .game-rail__item { background: color-mix(in srgb, var(--surface) 78%, transparent); border-color: var(--line); box-shadow: none; }
:root:not([data-theme="giorno"]) .game-rail a.is-active { border-color: #8b5cf6; box-shadow: inset 0 0 0 1px #8b5cf6; }
:root:not([data-theme="giorno"]) .game-rail__item[data-game="gundam"] img { filter: brightness(0) invert(1); }
:root:not([data-theme="giorno"]) .game-rail__item[data-game="starwars"] img { filter: none; }
.statusbar { display: grid; grid-template-columns: 1fr; justify-items: stretch; gap: var(--s-2); padding: 0; border: 0; background: transparent; box-shadow: none; }
.statusbar__badge { flex: none; padding: 4px 10px; border-radius: var(--r-pill); background: var(--grad-brand); color: var(--on-accent); font-size: .6875rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.statusbar__badge { justify-self: start; }
.statusbar .filter { display: flex; justify-content: center; min-width: 0; min-height: 32px; gap: 7px; padding: 2px 10px; border-color: var(--line-strong); background: var(--surface); color: var(--text); font-size: .75rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.statusbar .filter:hover { border-color: var(--st); background: var(--surface-2); }
.statusbar .filter.is-active { border-color: var(--st); background: color-mix(in srgb, var(--surface) 78%, var(--st) 22%); color: var(--text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--st) 58%, transparent); }
.statusbar .filter__n { display: grid; place-items: center; min-width: 20px; min-height: 20px; margin-left: 1px; padding: 0 5px; border-radius: var(--r-pill); background: var(--surface-3); color: var(--muted); font-size: .6875rem; line-height: 1; }
.statusbar .filter.is-active .filter__n { color: var(--text); background: color-mix(in srgb, var(--st) 24%, var(--surface)); opacity: 1; }
.filter[data-state] > span:first-child { display: inline-flex; align-items: center; gap: 6px; }
.filter[data-state] > span:first-child::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--st); }
/* Scelta senza prodotti: visibile ma spenta, non cliccabile */
.filter.is-disabled { color: var(--muted); background: transparent; border-style: dashed; cursor: not-allowed; }
.filter.is-disabled::before, .filter.is-disabled > span:first-child::before { opacity: .4; }
@media (hover: hover) { .filter.is-disabled:hover { border-color: var(--line); } }

/* ---------- Tornei: questa settimana, prossime settimane, calendario ---------- */
.tourn { display: grid; gap: var(--s-7); }
.tourn__weeks { display: grid; min-width: 0; }
.tourn__week { display: grid; gap: var(--s-4); min-width: 0; }
.tourn__week + .tourn__week { margin-top: var(--s-5); padding-top: var(--s-5); border-top: 1px solid var(--line-strong); }
.tourn__more { margin-top: var(--s-3); border: 1px solid var(--line); border-radius: var(--r-lg); background: color-mix(in srgb, var(--surface) 80%, transparent); }
.tourn__more summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 var(--s-4); cursor: pointer; color: var(--sky-ink); font-size: .8125rem; font-weight: 800; letter-spacing: .09em; list-style: none; }
.tourn__more summary::-webkit-details-marker { display: none; }
.tourn__more summary span { font-size: 1.25rem; transition: transform var(--motion-ui) var(--ease-enter); }
.tourn__more[open] summary { border-bottom: 1px solid var(--line); }
.tourn__more[open] summary span { transform: rotate(45deg); }
.tourn__more .board { margin: var(--s-4); }
.tourn__week-title {
  display: flex; align-items: center; gap: var(--s-3);
  font-family: var(--f-wide); font-stretch: 115%; font-weight: 800;
  font-size: clamp(1.125rem, 2vw, 1.375rem); line-height: 1.15; letter-spacing: .03em;
}
.tourn__week-title::before { content: ""; flex: none; width: 4px; height: .9em; border-radius: 2px; background: var(--orange); }
.tourn__title { display: flex; align-items: center; gap: var(--s-3); font-family: var(--f-wide); font-stretch: 115%; font-weight: 800; font-size: clamp(1.375rem, 2.4vw, 1.75rem); line-height: 1.15; text-transform: uppercase; }
.tourn__title::before { content: ""; flex: none; width: 4px; height: .9em; border-radius: 2px; background: var(--sky); }
.tcal .tourn__title::before { background: var(--green); }
.tourn__noscript { padding: var(--s-4) var(--s-5); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); }
.board__row.is-past { opacity: .62; }
.board:empty { display: none; }

.tcal {
  display: grid; gap: var(--s-5);
  padding: var(--s-5);
  border-radius: var(--r-xl);
  border: var(--card-border); background: var(--card-bg); box-shadow: var(--card-shadow);
}
.tcal__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); }
.tcal__nav { display: flex; align-items: center; gap: var(--s-2); }
.tcal__nav .iconbtn:disabled { opacity: .35; cursor: default; }
.tcal__month { min-width: 12ch; text-align: center; font-family: var(--f-wide); font-stretch: 112%; font-weight: 800; }
.tcal__body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--s-6); align-items: start; }
.tcal__table { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.tcal__table th { padding-bottom: var(--s-1); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.tcal__table abbr { text-decoration: none; }
.tcal__table td { padding: 0; text-align: center; vertical-align: top; }
.tcal__day {
  display: grid; place-items: center; align-content: center; gap: 3px;
  width: 100%; height: clamp(40px, 5vw, 56px); padding: 0;
  border: 1px solid transparent; border-radius: var(--r-sm);
  background: none; color: var(--muted);
  font-size: .9375rem; font-weight: 600; font-variant-numeric: tabular-nums;
}
.tcal__day.has-events {
  color: var(--text); background: var(--surface-2); border-color: var(--line-strong); cursor: pointer;
  transition: border-color var(--motion-micro) linear, background-color var(--motion-micro) linear;
}
@media (hover: hover) { .tcal__day.has-events:hover { border-color: var(--sky); } }
.tcal__day[aria-current="date"] { box-shadow: inset 0 0 0 2px var(--sky); color: var(--text); }
.tcal__day.is-past { opacity: .6; }
.tcal__day[aria-pressed="true"] { background: var(--text); color: var(--bg); border-color: var(--text); opacity: 1; }
.tcal__dots { display: flex; justify-content: center; gap: 3px; }
.tcal__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--gc); }
.tcal__panel { display: grid; gap: var(--s-3); align-content: start; min-width: 0; }
.tcal__daytitle { font-family: var(--f-wide); font-stretch: 110%; font-weight: 800; font-size: 1.125rem; line-height: 1.25; }
.tcal__events { display: grid; gap: var(--s-2); }
.tcal__event {
  display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: var(--s-3);
  padding: var(--s-3);
  border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface);
}
.tcal__event .board__actions { grid-column: 1 / -1; }
.tcal__event.is-past { opacity: .62; }
.tcal__logo { display: grid; place-items: center; height: 40px; padding: 4px 6px; border-radius: var(--r-sm); }
.tcal__logo img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.tcal__what { display: grid; gap: 2px; min-width: 0; }
.tcal__title { font-size: 1rem; font-weight: 700; line-height: 1.25; }
.tcal__none { color: var(--muted); }
.tcal__legend { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); font-size: .8125rem; color: var(--muted); }
.tcal__legend li { display: inline-flex; align-items: center; gap: 6px; }
.tcal__legend li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gc); }

/* ---------- Carta Fedeltà: iscrizione e carta creata ---------- */
.carta__customer-actions { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; align-items: stretch; }
.carta__customer-actions > .signup { grid-column: 1; justify-self: stretch; width: 100%; min-width: 0; }
.signup { display: grid; gap: var(--s-4); justify-self: center; width: min(100%, 760px); padding: clamp(20px, 4vw, 40px); border: 1px solid transparent; background: radial-gradient(ellipse at 95% 8%, rgb(139 92 246 / .16), transparent 38%), radial-gradient(ellipse at 8% 92%, rgb(43 184 255 / .12), transparent 42%), linear-gradient(var(--surface), var(--surface)) padding-box, var(--grad-brand) border-box; box-shadow: 0 0 30px rgb(139 92 246 / .14), 0 0 64px rgb(43 184 255 / .08); }
.signup.panel { position: relative; padding-bottom: 70px; }
.signup__form { width: 100%; max-width: 620px; gap: var(--s-4); justify-self: center; text-align: center; }
.signup__card-title { margin: 0; color: var(--green-ink); font-size: 1.08rem; font-weight: 900; letter-spacing: .12em; text-align: center; text-shadow: 0 0 18px color-mix(in srgb,var(--green) 22%,transparent); }
.signup__fields { display: grid; gap: var(--s-3); text-align: left; }
.signup__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--s-3); }
.signup__actions .btn { min-width: 155px; }
.signup__head { position: relative; display: grid; place-items: center; min-height: 80px; padding-inline: 96px; text-align: center; }
.signup__head .carta__h--label { justify-content: center; color: var(--text); font-size: clamp(1.25rem, 3vw, 1.75rem); letter-spacing: .01em; text-transform: none; }
.signup__head .carta__h--label::before { content: none; }
.signup__logo { position: absolute; top: 0; right: 0; width: 76px; height: 76px; padding: 5px; border: 1px solid rgb(255 255 255 / .65); border-radius: 50%; background: rgb(255 255 255 / .94); object-fit: contain; box-shadow: 0 0 22px rgb(139 92 246 / .3); }
.signup__done .btn { justify-self: center; }
.signup__privacy { position: absolute; left: clamp(16px,4vw,32px); bottom: 8px; max-width: 52ch; margin: 0; font-size: .75rem; color: var(--muted); }
.signup__privacy a { display: inline-flex; align-items: center; min-height: 24px; color: var(--muted); font-weight: 700; }
.signup__done { display: grid; justify-items: center; gap: var(--s-4); text-align: center; }
.signup__done:focus { outline: none; }
.signup__msg { max-width: 56ch; font-weight: 700; color: var(--green-ink); }
.field select {
  height: 52px; padding: 0 var(--s-4);
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background-color: var(--surface); font-size: 1rem;
}
.field select:focus-visible { outline: none; border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.lcard {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: space-between; gap: var(--s-4);
  width: 100%; max-width: 380px; aspect-ratio: 1.586;
  padding: var(--s-5);
  border-radius: var(--r-lg);
  background: radial-gradient(70% 90% at 100% 100%, rgb(43 184 255 / .7), transparent 62%), var(--grad-brand);
  color: #0b1020;
  box-shadow: var(--shadow-deep);
}
.lcard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 50% at 85% 0%, rgb(255 255 255 / .45), transparent 70%); }
.lcard__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-3); }
.lcard__logo { width: 68px; height: 46px; object-fit: contain; border-radius: 8px; }
.lcard__brand { font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lcard__name { font-family: var(--f-wide); font-stretch: 118%; font-weight: 800; font-size: 1.5rem; line-height: 1.1; overflow-wrap: anywhere; }
.lcard__row { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); }
.lcard__k { display: block; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgb(11 16 32 / .78); }
.lcard__v { font-weight: 800; font-size: 1.0625rem; }
.lcard__rank { display: inline-flex; align-items: center; gap: 6px; }
@media (prefers-reduced-motion: no-preference) {
  .signup__done:not([hidden]) .lcard { animation: card-in var(--motion-scene) var(--ease-snap); }
}
@keyframes card-in { from { opacity: 0; transform: translateY(16px) rotate(-2deg) scale(.96); } }

/* ---------- Recensioni: link alla pagina, condivisione ---------- */
.reviews__more { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-6); }
.sreview { transition: border-color var(--motion-micro) linear; }
.sreview.is-target { border-color: var(--sky); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky) 30%, transparent); }
.sreview.is-target:focus { outline: none; }
.sreview__share {
  align-self: flex-start;
  display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--s-3);
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: none; color: var(--text); font-size: .8125rem; font-weight: 700;
  transition: border-color var(--motion-micro) linear, color var(--motion-micro) linear;
}
@media (hover: hover) { .sreview__share:hover { border-color: var(--sky); } }
.sreview__share.is-done { border-color: var(--green); color: var(--green-ink); }
.rpage__h { margin-bottom: var(--s-4); }
.rhero__quotes { margin-bottom: 0; }
.rhero__quotes .quote blockquote p { font-size: 1rem; font-weight: 400; line-height: 1.6; }

/* ---------- Social: icone rotonde, al passaggio prendono un colore del marchio ---------- */
.social { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.social__link {
  --nc: var(--sky);
  display: grid; place-items: center; width: 44px; height: 44px;
  border-radius: 50%; border: 1px solid var(--line-strong);
  background: var(--surface); color: var(--text);
  transition: background-color var(--motion-micro) linear, border-color var(--motion-micro) linear, color var(--motion-micro) linear, transform var(--motion-micro) var(--ease-enter);
}
.social__link .ico { width: 20px; height: 20px; }
.social__link[data-net="instagram"] { --nc: #e4405f; color: #e4405f; }
.social__link[data-net="facebook"] { --nc: #1877f2; color: #1877f2; }
.social__link[data-net="tiktok"] { --nc: #25f4ee; color: #25f4ee; }
.social__link[data-net="youtube"] { --nc: #ff0000; color: #ff0000; }
.social__link[data-net="whatsapp"] { --nc: #25d366; color: #25d366; }
:root[data-theme="giorno"] .social__link[data-net="tiktok"] { color: #111; }
@media (hover: hover) { .social__link:hover { background: var(--nc); border-color: var(--nc); color: var(--on-accent); transform: translateY(-2px); } }
.social__link:focus-visible { border-color: var(--nc); }
.info__label { margin-bottom: var(--s-2); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* ---------- Footer: bordo a gradiente del marchio, bagliori, colonne con titoli colorati ---------- */
.footer { position: relative; isolation: isolate; overflow: hidden; padding: var(--s-8) 0 var(--s-5); background: var(--footer-bg); }
.footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--green), var(--orange) 50%, var(--sky)); }
.footer__glow {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(40% 60% at 0% 0%, color-mix(in srgb, var(--green) calc(var(--glow) * 30%), transparent), transparent 70%),
    radial-gradient(35% 55% at 100% 0%, color-mix(in srgb, var(--sky) calc(var(--glow) * 30%), transparent), transparent 70%),
    radial-gradient(45% 50% at 55% 115%, color-mix(in srgb, var(--orange) calc(var(--glow) * 24%), transparent), transparent 70%);
}
.footer__inner { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr)); gap: var(--s-6) var(--s-5); }
.footer__inner > * { min-width: 0; }
.footer__brand { display: grid; align-content: start; gap: var(--s-4); }
.footer__logo { justify-self: start; display: block; border-radius: 12px; }
.footer__logo img { width: 72px; }
.footer__brand p { max-width: 36ch; color: var(--muted); font-size: .9375rem; }
.footer__col { --tone: var(--green-ink); display: grid; align-content: start; gap: var(--s-2); }
.footer__col[data-tone="orange"] { --tone: var(--orange-ink); }
.footer__col[data-tone="sky"] { --tone: var(--sky-ink); }
.footer__h { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-1); font-size: .8125rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--tone); }
.footer__h::before { content: ""; flex: none; width: 16px; height: 3px; border-radius: 2px; background: currentColor; }
.footer address { color: var(--muted); font-size: .9375rem; line-height: 1.7; }
.footer__links { display: grid; }
.footer__links a { display: inline-flex; align-items: center; min-height: 32px; color: var(--muted); font-size: .9375rem; text-decoration: none; transition: color var(--motion-micro) linear; }
.footer__links .footer__whatsapp { gap: 7px; color: #25d366; }
.footer__whatsapp .ico { width: 18px; height: 18px; stroke: currentColor; }
@media (hover: hover) { .footer__links a:hover { color: var(--tone); text-decoration: underline; text-underline-offset: 4px; } }
.footer__hours { display: grid; font-size: .9375rem; }
.footer__hours div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s-3); min-height: 32px; border-bottom: 1px dashed var(--line); }
.footer__hours dt { color: var(--muted); }
.footer__hours dd { margin: 0; justify-self: end; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
.footer__hours .is-late dd { color: var(--sky-ink); }
.footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-7); padding-top: var(--s-4); border-top: 1px solid var(--line); font-size: .8125rem; color: var(--muted); }
.footer__bottom-left { display: grid; gap: var(--s-3); }
/* Firma Fuze Agency: badge condiviso tra i siti seguiti dall'agenzia. */
.fz-credit { --fz-a: #a855f7; --fz-b: #22d3ee; position: relative; display: inline-flex; align-items: center; justify-self: start; gap: 10px; min-height: 40px; padding: 4px 5px 4px 4px; border: 1px solid color-mix(in srgb, currentColor 14%, transparent); border-radius: var(--r-pill); background: color-mix(in srgb, currentColor 4%, transparent); color: inherit; font-family: var(--f-body); line-height: 1.15; text-decoration: none; transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s; }
.fz-credit::before { content: ""; position: absolute; inset: -1px; padding: 1px; border-radius: inherit; background: linear-gradient(90deg, var(--fz-a), var(--fz-b)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; pointer-events: none; transition: opacity .35s; }
.fz-logo { position: relative; isolation: isolate; display: grid; place-items: center; width: 30px; height: 30px; flex: none; }
.fz-logo::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: conic-gradient(from 0deg, var(--fz-a), var(--fz-b), var(--fz-a)); }
.fz-logo img { width: 27px; height: 27px; border-radius: 50%; }
.fz-txt { display: grid; gap: 3px; }
.fz-lbl { font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; opacity: .72; }
.fz-brand { font-family: var(--f-wide); font-size: 12px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; background: linear-gradient(90deg, var(--fz-a), var(--fz-b), var(--fz-a)); background-position: 100% 0; background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; transition: background-position .8s ease; }
.fz-go { display: grid; place-items: center; width: 28px; height: 28px; margin-left: 4px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 50%; transition: background .35s, border-color .35s, color .35s; }
.fz-go svg { transition: transform .35s cubic-bezier(.2,.8,.2,1); }
@media (hover: hover) { .fz-credit:hover { transform: translateY(-1px); border-color: transparent; box-shadow: 0 10px 28px -12px color-mix(in srgb, var(--fz-a) 70%, transparent), 0 0 0 4px color-mix(in srgb, var(--fz-b) 7%, transparent); } .fz-credit:hover::before { opacity: 1; } .fz-credit:hover .fz-logo::before { animation: fz-spin 3s linear infinite; } .fz-credit:hover .fz-brand { color: transparent; background-position: 0 0; } .fz-credit:hover .fz-go { border-color: transparent; background: linear-gradient(135deg, var(--fz-a), var(--fz-b)); color: #fff; } .fz-credit:hover .fz-go svg { transform: translate(1px, -1px); } }
@keyframes fz-spin { to { transform: rotate(1turn); } }
.footer__top {
  display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 var(--s-4);
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  color: var(--text); font-weight: 700; text-decoration: none;
  transition: border-color var(--motion-micro) linear;
}
@media (hover: hover) { .footer__top:hover { border-color: var(--green); } }

/* Drawer: Blog, Recensioni e Area riservata in un secondo gruppo, staccato */
.drawer__links--alt { margin-top: var(--s-2); padding-top: var(--s-3); border-top: 2px solid var(--line-strong); }
.drawer__links--alt a { min-height: 44px; font-size: 1rem; color: var(--muted); }
@media (max-width: 767px) { .drawer__links--alt { margin-top: 0; padding-top: var(--s-2); border-top: 1px solid var(--line); } }

/* ---------- Dialog: dettaglio torneo, carrello ---------- */
dialog { padding: 0; border: 0; color: var(--text); background: transparent; max-width: none; max-height: none; }
dialog::backdrop { background: rgb(5 8 18 / .65); }
dialog[open] { animation: pop-in var(--motion-ui) var(--ease-enter); }
dialog[open]::backdrop { animation: fade-in var(--motion-ui) linear; }
dialog.is-closing { animation: pop-out var(--motion-exit) var(--ease-exit) forwards; }
dialog.is-closing::backdrop { animation: fade-out var(--motion-exit) linear forwards; }

.tdrawer { margin: 0 0 0 auto; height: 100dvh; width: min(460px, 100%); }
.tdrawer[open] { animation: slide-in var(--motion-ui) var(--ease-enter); }
.tdrawer.is-closing { animation: slide-out var(--motion-exit) var(--ease-exit) forwards; }
.tdrawer__panel {
  height: 100%; overflow-y: auto; overscroll-behavior: contain;
  display: flex; flex-direction: column; gap: var(--s-4);
  padding: var(--s-5) var(--s-5) var(--s-6);
  background: var(--bg);
  color: var(--text);
  border-left: 1px solid var(--line);
}
.tdrawer__head { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); }
.tdrawer__when { font-weight: 700; color: var(--sky-ink); }
.tdrawer__logo { display: grid; place-items: center; height: 88px; padding: var(--s-3); border-radius: var(--r-lg); }
.tdrawer__logo img { max-height: 100%; width: auto; }
.tdrawer__title { font-size: 1.625rem; line-height: 1.05; }
.tdrawer__facts { display: grid; gap: var(--s-2); }
.tdrawer__facts div { padding: var(--s-2) 0; border-bottom: 1px solid var(--line); }
.tdrawer__facts dt { font-size: .8125rem; color: var(--muted); font-weight: 600; }
.tdrawer__facts dd { font-weight: 600; }
.tdrawer__note { color: var(--muted); }
.tdrawer .btn { margin-top: auto; }

.minicart { margin: 0 0 0 auto; height: 100dvh; width: min(420px, 100%); }
.minicart[open] { animation: slide-in var(--motion-ui) var(--ease-enter); }
.minicart.is-closing { animation: slide-out var(--motion-exit) var(--ease-exit) forwards; }
.minicart__inner { overflow-y: auto; overscroll-behavior: contain; height: 100%; display: flex; flex-direction: column; gap: var(--s-4); padding: var(--s-5) var(--s-5) var(--s-6); background: var(--bg); border-left: 1px solid var(--line); }
.minicart__head { display: flex; justify-content: space-between; align-items: center; }
.minicart__title { font-family: var(--f-wide); font-stretch: 115%; font-weight: 800; font-size: 1.375rem; }
.minicart__list { display: grid; gap: var(--s-2); }
.minicart__list li { display: flex; justify-content: space-between; gap: var(--s-3); padding: var(--s-3) 0; border-bottom: 1px solid var(--line); font-size: .9375rem; }
.minicart__list .num { font-weight: 700; white-space: nowrap; }
.minicart__qty { flex: none; color: var(--muted); font-variant-numeric: tabular-nums; }
.minicart__name { flex: 1; min-width: 0; }
.minicart__controls { display: inline-flex; flex: none; align-items: center; gap: 3px; }
.minicart__controls button { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); cursor: pointer; font-weight: 700; }
.minicart__controls button:hover { border-color: var(--sky); }
.minicart__empty { color: var(--muted); }
.minicart__foot { margin-top: auto; display: grid; gap: var(--s-3); }
.minicart__foot p { display: flex; justify-content: space-between; font-weight: 800; font-size: 1.125rem; }
.checkout { display: grid; gap: var(--s-3); }
.checkout__intro { color: var(--ink-2); font-size: .9rem; line-height: 1.5; }
.checkout__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.checkout label { display: grid; gap: 6px; font-size: .82rem; font-weight: 700; }
.checkout label > span { font-weight: 400; color: var(--ink-2); }
.checkout .co-input { width: 100%; min-width: 0; }
.checkout textarea { resize: vertical; }
.checkout__pickup { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: var(--bg-2); }
.checkout__pickup strong { font-size: .93rem; }
.checkout__privacy { grid-template-columns: auto 1fr !important; align-items: start; gap: 9px !important; line-height: 1.45; }
.checkout__privacy input { margin-top: 3px; accent-color: var(--accent); }
.checkout__privacy a { color: var(--accent-2); }
.checkout__trap { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.checkout__actions { display: flex; justify-content: space-between; gap: var(--s-2); margin-top: auto; padding-top: var(--s-3); }
.checkout__done { margin: auto 0; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-2); line-height: 1.55; }
.checkout__done h3 { font-family: var(--f-wide); font-size: 1.35rem; margin: 0 0 10px; }
.checkout__done p { margin: 8px 0; color: var(--ink-2); }
.checkout__done .btn { margin-top: 10px; }
@media (max-width: 520px) { .checkout__grid { grid-template-columns: 1fr; gap: var(--s-2); } }

.toast {
  position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 80;
  max-width: min(560px, 100% - 32px);
  padding: var(--s-3) var(--s-4);
  border-radius: var(--r-md);
  background: var(--text); color: var(--bg);
  font-weight: 600; font-size: .9375rem;
  box-shadow: var(--shadow-deep);
  opacity: 0; transform: translate(-50%, 16px);
  pointer-events: none;
  transition: opacity var(--motion-ui) var(--ease-enter), transform var(--motion-ui) var(--ease-enter);
}
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.confetti { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 90; pointer-events: none; }

/* View Transition: dissolvenza incrociata del cambio tema */
::view-transition-old(root), ::view-transition-new(root) { animation-duration: var(--motion-exit); }

/* ---------- Keyframes: solo transform e opacity ---------- */
@keyframes pop-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
@keyframes pop-out { to { opacity: 0; transform: scale(.98); } }
@keyframes fade-in { from { opacity: 0; } }
@keyframes fade-out { to { opacity: 0; } }
@keyframes drop-in { from { opacity: 0; transform: translateY(-8px); } }
@keyframes slide-in { from { transform: translateX(100%); } }
@keyframes slide-out { to { transform: translateX(100%); opacity: 0; } }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .board__row { grid-template-columns: 56px 88px minmax(0, 1fr) 160px; }
  .board__actions { grid-column: 3 / -1; }
}
@media (min-width: 1241px) {
  .iconbtn--menu { display: none; }
}
@media (max-width: 1240px) {
  .mainnav { display: none; }
}
@media (max-width: 1023px) {
  :root { --header-h: 64px; }
  .hbar__inner { height: 64px; }
  .brand__logo { width: 56px; }
  .preorder, .preorder__slide { grid-template-columns: 1fr; gap: var(--s-5); }
  .preorder__stage { order: -1; }
  .bento { grid-template-columns: 1fr 1fr; grid-template-areas: "a a" "c e" "info info"; }
  .earn { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .carta__leader-grid { grid-template-columns: 1fr; }
  .carta__col--leader { border-top: 1px solid var(--line); border-left: 0; }
  .reviews__grid { grid-template-columns: 1fr; margin-top: var(--s-7); }
  .reviews__aside { position: static; }
  .bgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Tablet: una colonna, il box sotto il testo; lo scrim copre tutta la colonna del testo */
@media (min-width: 768px) and (max-width: 1023px) {
  .hero__inner { grid-template-columns: 1fr; gap: var(--s-6); }
  .pcar { justify-self: start; width: min(100%, 420px); }
  .pcar__stage { height: 220px; }
  .pcar__meta, .pcar__dots { justify-self: start; }
  .hero__media::after {
    background:
      linear-gradient(0deg, var(--bg) 0, rgb(var(--veil) / 0) var(--fade)),
      linear-gradient(90deg, rgb(var(--scrim) / .82) 0%, rgb(var(--scrim) / .62) 55%, rgb(var(--scrim) / .25) 85%, rgb(var(--scrim) / .1) 100%);
  }
}
/* Mobile: il logo resta immediatamente sopra il carosello, con il vetro leggero sulla scena. */
@media (max-width: 767px) {
  .carta__customer-actions { grid-template-columns: minmax(0, 1fr); }
  .carta__customer-actions > .signup { grid-column: 1; }
  .hero { min-height: min(100svh, 700px); padding-top: var(--s-5); overflow: hidden; }
  .hero__media { position: absolute; inset: 0; z-index: -1; height: auto; }
  .hero__poster, .hero__video { object-position: 50% 38%; }
  .hero__scene { filter: brightness(.94) contrast(1.04); }
  .hero__media::after {
    background: linear-gradient(180deg, rgb(5 8 18 / .46) 0%, rgb(5 8 18 / .28) 48%, rgb(5 8 18 / .68) 100%);
  }
  .hero__inner {
    display: flex; flex-direction: column; justify-content: flex-start;
    gap: var(--s-2); min-height: calc(min(100svh, 700px) - var(--s-5));
    padding-top: clamp(34px, 8svh, 68px); padding-bottom: var(--s-4); position: relative;
  }
  .hero__copy { align-self: stretch; max-width: 100%; margin: 0 0 var(--s-2); padding-left: clamp(0px, 7vw, 28px); text-align: left; }
  .hero__brand { justify-content: flex-start; gap: var(--s-3); }
  .hero__logo { width: clamp(48px, 14vw, 64px); }
  .hero__title { font-size: clamp(1.8rem, 8.5vw, 2.5rem); }
  .hero__descriptor { margin-top: 4px; font-size: .875rem; }
  .pcar { position: relative; top: auto; left: auto; right: auto; align-self: center; justify-self: center; width: min(calc(100vw - (2 * var(--gutter))), 340px); gap: 5px; margin-top: auto; transform: none; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .pcar__track, .pcar__slide, .pcar__link, .pcar__stage { width: 100%; min-width: 0; }
  .pcar__link { display: block; }
  .pcar__stage { height: clamp(112px, 22svh, 176px); }
  .pcar__slide[data-game] .pcar__img { top: auto; bottom: 0; left: 0; right: 0; width: min(100%, 190px); height: min(150px, 88%); max-width: none; max-height: none; margin-inline: auto; object-fit: contain; transform: none; filter: drop-shadow(0 10px 12px rgb(5 8 18 / .35)); }
  .pcar__meta {
    justify-self: end; width: 100%; min-height: 42px; gap: 4px; padding: 5px 7px;
    border-radius: var(--r-sm); background: rgba(10, 16, 28, .22); border: 1px solid rgba(255,255,255,.16);
    color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  }
  .pcar__logo { width: 54px; height: 24px; padding: 2px 5px; }
  .pcar__text { display: grid; min-width: 0; }
  .pcar__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .6875rem; }
  .pcar__state { font-size: .68rem; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
  .pcar__state { color: #9cf29a; }
  .pcar__state--pre { color: #ffd06d; }
  .pcar__dots { justify-self: end; justify-content: flex-end; gap: 2px; padding: 0 4px; background: none; color: #fff; }
  .pcar__dot { width: 17px; height: 20px; }
  .pcar__pause { width: 22px; height: 22px; }
  .pcar__dot span { background: rgb(255 255 255 / .35); }
  .pcar__dot span::after { background: #fff; }
}
@media (max-width: 860px) {
  .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4) var(--s-3); }
  /* Giorno e logo sulla prima riga, il resto a tutta larghezza: i bottoni restano su una riga */
  .board__row { grid-template-columns: auto minmax(0, 1fr); gap: var(--s-3) var(--s-4); padding: var(--s-4); }
  .board__day { grid-row: 1; grid-column: 1; display: flex; align-items: baseline; gap: var(--s-2); }
  .board__date { margin-top: 0; font-size: 1.5rem; }
  .board__logo { grid-column: 2; grid-row: 1; justify-self: end; height: 40px; width: 96px; }
  .board__what, .board__seats, .board__actions { grid-column: 1 / -1; }
  .board__actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .board__actions .btn { white-space: nowrap; }
  .board__inline-form { grid-column:1/-1; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .board__quick-form { grid-template-columns:minmax(0,1fr) max-content; }
  .board__quick-modes { display:grid; grid-template-columns:1fr 1fr; }
  .board__inline-form label,.board__inline-form .board__inline-message { grid-column:1/-1; }
  .board__inline-form > button { grid-column:auto; }
}
@media (max-width: 720px) {
  .signup__head { min-height: 64px; padding: 0 68px 0 0; }
  .signup__head .carta__h--label { font-size: clamp(1.125rem, 4vw, 1.5rem); }
  .signup__logo { width: 56px; height: 56px; }
  .tourbar__inner { gap: var(--s-2); }
  .tourbar__badge { padding-inline: 7px; font-size: .5625rem; letter-spacing: .04em; }
  .tourbar__items { gap: 3px; overflow-x: auto; scrollbar-width: none; }
  .tourbar__items::-webkit-scrollbar { display: none; }
  .tourbar__slot { min-width: 0; gap: 4px; padding-inline: 4px; font-size: .625rem; }
  .tourbar__day { font-size: .625rem; }
  .tourbar__logo { max-width: 34px; height: 16px; padding-inline: 2px; }
  .tourbar__title, .tourbar__time, .tourbar__seats { display: none; }
  .tourbar__slot.is-open { max-width: min(100%, 250px); border-color: var(--gc); background: var(--surface-2); }
  .tourbar__slot.is-open .tourbar__title { display: inline; overflow: hidden; text-overflow: ellipsis; }
  .tourbar__all { display: none; }
  .marks__inner { display: flex; flex-direction: column; align-items: stretch; min-height: 0; gap: 0; padding-block: var(--s-1); }
  .marks__viewport, .marks__track { display: block; width: 100%; }
  .marks__list { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 4px; width: 100%; }
  .marks__list li { flex: none; gap: 4px; min-height: 30px; font-size: .5625rem; letter-spacing: .015em; }
  .marks__list li::before { width: 5px; height: 5px; }
  .marks__rating { align-self: center; gap: 4px; min-height: 28px; padding: 0; border: 0; font-size: .6875rem; }
  .marks__rating strong { font-size: 1rem; }
  .marks__rating-count { display: none; }
  .preorder { padding: var(--s-5); }
  .countdown__cell { min-width: 64px; }
  .countdown__n { font-size: 1.625rem; }
  .quotes { grid-template-columns: 1fr; }
  .quote:last-child { grid-column: auto; }
  .shead { gap: var(--s-4); }
  .shead__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--s-3) var(--s-4); width: 100%; }
  .shead__idx { order: 10; }
  .nextnight { text-align: left; }
  .sreviews { grid-template-columns: 1fr; }
  .bgrid { grid-template-columns: 1fr; }
  .form__row { grid-template-columns: 1fr; }
  .panel { padding: var(--s-4); }
  .rank { grid-template-columns: 40px minmax(0, 1fr) max-content; }
  .rank__perks { grid-column: 3; justify-items: end; }
}
@media (max-width: 420px) {
  .products { gap: var(--s-3) var(--s-2); }
  .pcard__info { padding: var(--s-3); }
  .pcard__price { font-size: 1.0625rem; }
  .pcard__row .btn { width: 100%; }
  .pcard__game { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pcard__title { -webkit-line-clamp: 3; min-height: 3.75em; }
  .hbar__actions { gap: 0; }
  .bento { grid-template-columns: 1fr; grid-template-areas: "a" "c" "e" "info"; }
  .earn { grid-template-columns: 1fr; }
  .board__row { padding: 7px; gap: 5px 6px; }
  .board__actions .btn { min-height: 28px; padding-inline: 7px; font-size: .59375rem; }
  .rank { grid-template-columns: 24px minmax(0, 1fr) max-content; padding: 6px 7px; }
  .rank__badge { width: 23px; height: 23px; font-size: 1rem; }
  .rank__perks li { font-size: .5625rem; }
}
@media (max-width: 360px) {
  .marks__list { gap: 2px; }
  .marks__list li { font-size: .5rem; letter-spacing: 0; }
}

/* ---------- Responsive dei blocchi del decimo giro ---------- */
@media (max-width: 1180px) {
  .footer__inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer__brand { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--s-5); }
  .footer__brand .social { grid-column: 1 / -1; }
}
@media (max-width: 1023px) {
  .tcal__body { grid-template-columns: 1fr; gap: var(--s-5); }
  .footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  :root { --section-y: 42px; --head-gap: 22px; }
  .h2 { font-size: clamp(2rem, 10.5vw, 2.65rem); }
  .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
  /* Filtri: ogni gruppo su una riga che scorre, invece di andare a capo in quattro righe */
  .filters { gap: var(--s-2); }
  .filterbar { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--gutter)); padding: 2px var(--gutter); scrollbar-width: none; }
  .filterbar::-webkit-scrollbar { display: none; }
  .filterbar .filter { flex: none; }
  .game-rail { margin-inline: 0; padding-inline: 0; gap: var(--s-2); }
  .game-rail__games { gap: var(--s-2); }
  .game-rail__item { min-height: 66px; padding: var(--s-2); }
  .game-rail__item img { height: 30px; }
  .statusbar { display: grid; grid-template-columns: 1fr; overflow: visible; margin-inline: 0; padding-inline: 0; }
  .statusbar .filter { min-height: 34px; gap: 0; padding-inline: 3px; font-size: .625rem; letter-spacing: 0; }
  .statusbar .filter__n { display: none; }
  .brand-marquee { margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); }
  .brand-marquee__track { justify-content: flex-start; gap: 34px; padding-inline: 17px; }
  .brand-marquee img { height: 34px; }
  .pcar__state { font-size: .65rem; letter-spacing: .045em; }
  .preorder__copy { grid-template-rows: auto minmax(4.5rem, auto) auto minmax(74px, auto) auto; gap: var(--s-3); align-content: start; }
  .preorder__title { font-size: clamp(1.25rem, 5.8vw, 1.625rem); line-height:1.16; }
  .preorder__date { font-size: clamp(.875rem, 3.6vw, 1rem); letter-spacing: .01em; }
  .preorder__status { font-size: .75rem; }
  .tcal { padding: var(--s-4); }
  .tcal__table { border-spacing: 3px; }
  .footer__brand { grid-template-columns: 1fr; }

  /* Schede dense ma leggibili: su telefono Tornei e Carta restano rapidi da scorrere. */
  .tourn { gap: var(--s-4); }
  .tourn__week { gap: var(--s-2); }
  .tourn__week + .tourn__week { margin-top: var(--s-3); padding-top: var(--s-3); }
  .tourn__week-title { gap: var(--s-2); font-size: .875rem; }
  .tourn__week-title::before { width: 3px; }
  .board { border-radius: var(--r-md); }
  .board__row { gap: 6px var(--s-2); padding: 9px; }
  .board__day { gap: 2px; }
  .board__dow { font-size: .5625rem; letter-spacing: .08em; }
  .board__date { font-size: 1.0625rem; }
  .board__logo { width: 68px; height: 26px; padding: 3px 5px; }
  .board__what { display: grid; gap: 2px; }
  .board__title { font-size: .8125rem; line-height: 1.2; }
  .board__meta, .board__count { font-size: .6875rem; line-height: 1.25; }
  .board__meta { gap: 2px 6px; margin-top: 0; }
  .level { padding-inline: 6px; font-size: .625rem; }
  .board__seats { display: flex; align-items: center; gap: var(--s-2); }
  .board__seats .bar { flex: 1; margin-top: 0; height: 4px; }
  .board__actions { gap: 6px; }
  .board__actions .btn { min-height: 30px; padding: 0 9px; font-size: .625rem; }
  .tourn__more { margin-top: 6px; border-radius: var(--r-md); }
  .tourn__more summary { min-height: 40px; padding-inline: 10px; font-size: .6875rem; }
  .tourn__more .board { margin: 8px; }

  .carta__intro { grid-template-columns: 1fr; gap: var(--s-3); margin-bottom: var(--s-5); }
  .earn--rules { margin-bottom: 0; }
  .carta__signature { gap: var(--s-3); padding: var(--s-3); }
  .carta__signature img { width: 52px; height: 52px; }
  .carta__signature-title { font-size: .9375rem; }
  .earn--rules .earn__item { min-height: 50px; padding: var(--s-2) var(--s-3); }
  .earn--rules .earn__big { font-size: .875rem; }
  .carta__grid { gap: var(--s-3); }
  .carta__leader-grid { border-radius: var(--r-lg); }
  .carta__col, .carta__col--leader { gap: var(--s-2); }
  .carta__h--label { gap: 6px; font-size: .6875rem; letter-spacing: .09em; }
  .ranks { gap: 5px; margin-top: 0; }
  .rank { grid-template-columns: 28px minmax(0, 1fr) max-content; gap: 4px 7px; padding: 7px 9px; border-radius: var(--r-sm); }
  .rank__badge { width: 26px; height: 26px; font-size: 1.125rem; }
  .rank__name { font-size: .75rem; }
  .rank__pts { font-size: .65625rem; }
  .rank__perks { grid-column: 3; justify-items: end; gap: 2px; }
  .rank__perks li { min-height: 18px; padding: 0 6px; font-size: .59375rem; white-space: normal; }
  .carta__leader-panel .lb { gap: 4px; }
  .lb__row { grid-template-columns: 20px 24px minmax(0, 1fr) auto; gap: 6px; min-height: 40px; padding: 5px 7px; border-radius: var(--r-sm); }
  .lb__pos, .lb__pts { font-size: .6875rem; }
  .lb__dot { width: 8px; height: 8px; }
  .lb__dot--staff { width:22px; height:22px; }
  .lb__name { font-size: .6875rem; }
  .lb__rank, .lb__pts span { font-size: .59375rem; }
}
@media (max-width: 560px) {
  .footer { padding: var(--s-5) 0 var(--s-3); }
  .footer__inner { grid-template-columns: 1fr; }
  .footer__inner { gap: var(--s-4); }
  .footer__brand { grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--s-3); gap: var(--s-2); }
  .footer__brand .social { grid-column: 1 / -1; }
  .footer__logo img { width: 42px; }
  .footer__brand p { font-size: .8125rem; line-height: 1.45; }
  .footer__col { gap: 2px; }
  .footer__h { font-size: .6875rem; margin-top: var(--s-2); }
  .footer__links a, .footer__hours { min-height: 28px; font-size: .8125rem; }
  .footer__hours div { min-height: 28px; }
  .social { gap: 6px; }
  .social__link { width: 32px; height: 32px; }
  .social__link .ico { width: 16px; height: 16px; }
  .footer__bottom { margin-top: var(--s-4); padding-top: var(--s-3); font-size: .6875rem; }
  .footer__top { min-height: 30px; padding-inline: var(--s-3); font-size: .75rem; }
  .fz-credit { min-height: 34px; gap: 7px; font-size: .6875rem; }
  .lcard { padding: var(--s-4); }
  .lcard__name { font-size: 1.25rem; }
  .drawer__links--alt { margin-top: 0; padding-top: var(--s-2); border-top: 1px solid var(--line); }
}

/* ---------- Movimento ridotto: stato finale, niente decorazioni in moto ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Classifiche pubbliche dei tornei ---------- */
.rankings-page { min-height:100vh; display:flex; flex-direction:column; }
.rankings-main { flex:1; padding-block:clamp(40px,7vw,88px); }
.rankings-title-row { align-items:center; padding-bottom:var(--s-5); border-bottom:1px solid var(--line); }
.rankings-kicker { margin:0 0 8px; color:var(--muted); font-size:.75rem; font-weight:900; letter-spacing:.13em; }
.rankings-title-row .h2 { margin:0; }
.rankings-selector { display:grid; grid-template-columns:1fr; gap:12px; margin:var(--s-6) 0 var(--s-5); }
.rankings-gamebar { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:stretch; gap:12px; }
.rankings-game { min-width:112px; height:70px; display:grid; place-items:center; padding:12px 18px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--card-bg); color:var(--text); cursor:pointer; box-shadow:var(--card-shadow); transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.rankings-game:hover { transform:translateY(-2px); border-color:var(--green); }
.rankings-game[aria-pressed="true"] { border-color:var(--green); background:color-mix(in srgb,var(--green) 11%,var(--card-bg)); box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 22%,transparent); }
.rankings-game img { display:block; width:auto; max-width:142px; height:auto; max-height:42px; object-fit:contain; }
.rankings-game[data-ranking-game="fusionworld"] img { padding:4px 8px; border-radius:8px; background:#142038; }
.rankings-game--light-logo,.rankings-game--light-logo[aria-pressed="true"] { background:#fff !important; border-color:var(--line-strong); }
.rankings-game--light-logo img,.rankings-current[data-game="vtes"] img,.rankings-current[data-game="starwars"] img,.standings__archive-head img[src*="vtes.svg"],.standings__archive-head img[src*="star-wars-unlimited"] { filter:brightness(0); }
.rankings-current__logo-tile { display:inline-flex; align-items:center; justify-content:center; padding:5px 9px; border-radius:9px; background:#fff; }
.standings__archive-head img[src*="vtes.svg"],.standings__archive-head img[src*="star-wars-unlimited"] { padding:5px 9px; border-radius:9px; }
.standings__archive-head img[src*="vtes.svg"],.standings__archive-head img[src*="star-wars-unlimited"] { background:#fff; }
:root:not([data-theme="giorno"]) .rankings-game--light-logo,:root:not([data-theme="giorno"]) .rankings-game--light-logo[aria-pressed="true"] { background:var(--card-bg) !important; border-color:var(--line); }
:root:not([data-theme="giorno"]) .rankings-game--light-logo img,:root:not([data-theme="giorno"]) .rankings-current[data-game="vtes"] img,:root:not([data-theme="giorno"]) .rankings-current[data-game="starwars"] img,:root:not([data-theme="giorno"]) .standings__archive-head img[src*="vtes.svg"],:root:not([data-theme="giorno"]) .standings__archive-head img[src*="star-wars-unlimited"] { filter:none; }
:root:not([data-theme="giorno"]) .rankings-current__logo-tile { background:var(--surface); }
:root:not([data-theme="giorno"]) .standings__archive-head img[src*="vtes.svg"],:root:not([data-theme="giorno"]) .standings__archive-head img[src*="star-wars-unlimited"] { background:var(--surface); }
.rankings-game--total { width:100%; min-height:62px; }
.rankings-page [data-cart-open] { display:none !important; }
.rankings-current { min-height:76px; display:flex; align-items:center; gap:16px; margin-bottom:var(--s-4); color:var(--text); font-family:var(--f-wide); font-size:clamp(1.1rem,2.5vw,1.55rem); font-weight:900; letter-spacing:.05em; }
.rankings-current img { max-width:min(220px,55vw); max-height:65px; object-fit:contain; }
.rankings-game[data-ranking-game="riftbound"] img { opacity:1; visibility:visible; animation:none; transition:none; }
.rankings-current[data-game="fusionworld"] img { padding:5px 10px; border-radius:10px; background:#142038; }
.rankings-results-title { margin:var(--s-7) 0 var(--s-4); color:var(--text); font-family:var(--f-wide); font-size:1.1rem; letter-spacing:.08em; }
.standings__head { display:flex; align-items:end; justify-content:space-between; gap:var(--s-5); margin:var(--s-6) 0 var(--s-4); padding-bottom:var(--s-4); border-bottom:1px solid var(--line); }
.standings__head > p { margin:0; color:var(--muted); font-family:var(--f-wide); font-size:.8125rem; font-weight:800; letter-spacing:.1em; }
.standings__head label { display:grid; gap:7px; width:min(100%,260px); }
.standings__head label > span { color:var(--muted); font-size:.75rem; font-weight:800; letter-spacing:.08em; }
.standings__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-3); margin-bottom:var(--s-4); }
.standings__stat,.standings__panel,.standings__result { border:var(--card-border); border-radius:var(--r-lg); background:var(--card-bg); box-shadow:var(--card-shadow); }
.standings__stat { display:grid; gap:5px; padding:var(--s-4) var(--s-5); }
.standings__stat span { color:var(--muted); font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.standings__stat strong { color:var(--text); font-family:var(--f-wide); font-size:clamp(1.25rem,2.2vw,1.75rem); font-weight:900; }
.standings__panel { overflow:hidden; }
.standings__table { width:100%; border-collapse:collapse; text-align:left; }
.standings__table th { padding:12px 14px; background:color-mix(in srgb,var(--green) 10%,var(--surface)); color:var(--muted); font-size:.6875rem; font-weight:900; letter-spacing:.08em; }
.standings__table td { padding:13px 14px; border-top:1px solid var(--line); color:var(--text); font-size:.9375rem; }
.standings__table td:first-child,.standings__table td:nth-child(n+3) { font-variant-numeric:tabular-nums; }
.standings__table td:nth-child(n+3) { text-align:center; }
.standings__results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-3); margin-top:var(--s-6); }
.standings__result { padding:var(--s-4) var(--s-5); }
.standings__result h3 { margin:0 0 4px; font-size:1rem; line-height:1.35; }
.standings__result p { margin:0; color:var(--muted); font-size:.8125rem; }
.standings__result ol { display:grid; gap:7px; margin:var(--s-3) 0 0; padding-left:1.3rem; color:var(--text); font-size:.875rem; }
.standings__empty { padding:var(--s-5); border:1px dashed var(--line-strong); border-radius:var(--r-lg); color:var(--muted); text-align:center; }
@media(max-width:700px) { .rankings-gamebar { gap:7px; } .rankings-selector { gap:8px; } .rankings-game { min-width:0; height:58px; padding:6px 5px; } .rankings-game img { max-width:100%; max-height:36px; } .rankings-game--total { min-height:52px; } .rankings-current { min-height:62px; } .rankings-current img { max-height:48px; } .standings__head { align-items:stretch; flex-direction:column; } .standings__head label { width:100%; } .standings__stats { gap:8px; } .standings__stat { padding:12px; } .standings__table th,.standings__table td { padding:10px 8px; font-size:.75rem; } .standings__results { grid-template-columns:1fr; } }
.rankings-game--total { font-family:var(--f-wide); font-size:.76rem; line-height:1.3; letter-spacing:.07em; font-weight:900; }
.standings__archive { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-3); }
.standings__archive-head { display:flex; align-items:center; gap:14px; min-height:56px; }
.standings__archive-head img { flex:none; width:88px; max-height:42px; object-fit:contain; }
.standings__archive-head h3 { margin:0 0 4px; }
.standings__result ol { list-style:none; padding:0; }
.standings__result li { display:flex; gap:12px; padding:8px 0; border-top:1px solid var(--line); }
.ranking-player-results { display:grid; gap:4px; min-width:150px; font-size:.79rem; }
.ranking-player-results span { white-space:nowrap; }
.rankings-page .standings__panel { overflow:hidden; }
.rankings-page .standings__table { table-layout:fixed; }
.rankings-page .standings__table th,.rankings-page .standings__table td { padding:11px 8px; }
.ranking-player-toggle { display:flex; width:100%; min-width:0; align-items:center; justify-content:space-between; gap:8px; padding:0; border:0; background:transparent; color:var(--text); text-align:left; font:inherit; font-weight:750; cursor:pointer; }
.ranking-player-toggle > span { min-width:0; overflow-wrap:anywhere; }
.ranking-player-toggle > span > small { display:flex; flex-wrap:wrap; gap:4px; margin-top:5px; }
.ranking-player-toggle > i { display:grid; place-items:center; width:23px; height:23px; flex:none; border:1px solid var(--line-strong); border-radius:7px; color:var(--green-ink); font-style:normal; }
.ranking-kind { padding:2px 6px; border:1px solid color-mix(in srgb,var(--orange) 38%,var(--line)); border-radius:999px; background:color-mix(in srgb,var(--orange) 11%,var(--surface)); color:var(--orange-ink); font-size:.62rem; font-style:normal; font-weight:850; letter-spacing:.04em; }
.ranking-player-results { display:grid; gap:5px; min-width:0; font-size:.72rem; }
.ranking-player-results span { display:flex; align-items:center; gap:5px; min-width:0; white-space:normal; line-height:1.3; text-align:left; }
.ranking-player-results img { width:28px; max-height:17px; flex:none; padding:1px 3px; border-radius:4px; background:#fff; filter:brightness(0); object-fit:contain; }
.ranking-details-row[hidden] { display:none !important; }
.ranking-details-row > td { padding:0 !important; }
.ranking-details { display:grid; gap:9px; padding:12px 16px 15px; border-top:1px solid var(--line); background:color-mix(in srgb,var(--green) 4%,var(--surface)); }
.ranking-details h3 { color:var(--muted); font-size:.7rem; letter-spacing:.09em; }
.ranking-detail { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px; border:1px solid var(--line); border-radius:10px; background:var(--card-bg); }
.ranking-detail > img { width:42px; max-height:29px; padding:3px 5px; border:1px solid var(--line); border-radius:7px; background:#fff; object-fit:contain; }
.ranking-detail > div { display:grid; gap:3px; min-width:0; }
.ranking-detail strong { overflow-wrap:anywhere; font-size:.85rem; }
.ranking-detail small { color:var(--muted); font-size:.72rem; line-height:1.35; }
.ranking-detail > b { color:var(--green-ink); font-size:.72rem; white-space:nowrap; }
.standings__archive-head img { padding:3px 5px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.standings__archive-head img[src*="vtes.svg"],.standings__archive-head img[src*="star-wars-unlimited"] { filter:brightness(0); }
:root:not([data-theme="giorno"]) .standings__archive-head img[src*="vtes.svg"],:root:not([data-theme="giorno"]) .standings__archive-head img[src*="star-wars-unlimited"] { filter:none; }
.standings__result li b { display:inline-flex; align-items:center; justify-content:center; min-width:58px; padding:4px 6px; border:1px solid color-mix(in srgb,var(--orange) 28%,var(--line)); border-radius:7px; background:color-mix(in srgb,var(--orange) 8%,var(--surface)); }
@media(max-width:760px) {
  .rankings-page .standings__panel { overflow:visible; border:0; background:transparent; box-shadow:none; }
  .rankings-page .standings__table,.rankings-page .standings__table tbody { display:block; width:100%; }
  .rankings-page .standings__table thead { display:none; }
  .rankings-page .standings__table tbody { display:grid; gap:10px; }
  .rankings-page .standings__table tr:not(.ranking-details-row) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 8px; padding:10px; border:1px solid var(--line); border-radius:13px; background:var(--card-bg); box-shadow:var(--card-shadow); }
  .rankings-page .standings__table tr:not(.ranking-details-row) td { display:flex; min-width:0; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:3px; padding:5px 3px; border:0; text-align:left !important; font-size:.78rem; }
  .rankings-page .standings__table tr:not(.ranking-details-row) td::before { content:attr(data-label); color:var(--muted); font-size:.57rem; line-height:1.2; font-weight:850; letter-spacing:.02em; text-align:left; }
  .rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(1),.rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(2),.rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(9) { grid-column:1/-1; }
  .rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(2) { padding:7px 3px; border-bottom:1px solid var(--line); }
  .rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(9) { display:grid; }
  .rankings-page .standings__table tr:not(.ranking-details-row) td:nth-child(9)::before { margin-bottom:2px; }
  .ranking-player-results span { justify-content:flex-start; }
  .ranking-details-row { display:block; margin-top:-10px; padding:0 4px 5px; border:1px solid var(--line); border-top:0; border-radius:0 0 13px 13px; background:var(--surface); }
  .ranking-details-row > td { display:block; border:0 !important; }
  .ranking-detail { grid-template-columns:34px minmax(0,1fr); }
  .ranking-detail > img { width:34px; }
  .ranking-detail > b { grid-column:2; }
  .standings__archive { grid-template-columns:1fr; }
  .tcal__legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 12px; }
}
.loyalty-ranking-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(250px,.8fr); gap:clamp(18px,3vw,36px); align-items:start; }
.loyalty-ranking-main { min-width:0; }
.loyalty-ranking-main .rankings-current { min-height:52px; margin:0 0 var(--s-4); }
.loyalty-ranking-side { display:grid; gap:var(--s-4); }
.loyalty-side-panel { padding:var(--s-4); border:var(--card-border); border-radius:var(--r-lg); background:var(--card-bg); box-shadow:var(--card-shadow); }
.loyalty-side-panel h2 { margin:0 0 var(--s-3); font-family:var(--f-wide); font-size:1rem; letter-spacing:.08em; }
.loyalty-rank-card { display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.loyalty-rank-card > span { font-size:1.35rem; }
.loyalty-rank-card div { display:grid; gap:3px; }
.loyalty-rank-card--staff { margin-top:10px; padding-top:18px; border-top:2px solid var(--line-strong); }
.loyalty-rank-goal { color:var(--sky-ink) !important; font-weight:750; }
.loyalty-rank-card small { color:var(--muted); font-size:.76rem; }
.loyalty-player-rank { white-space:nowrap; font-weight:800; }
.loyalty-ranking-scroll { overflow:auto; }
@media(max-width:900px) { .standings__archive { grid-template-columns:1fr; } .loyalty-ranking-layout { grid-template-columns:1fr; } .loyalty-ranking-side { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .loyalty-ranking-side { grid-template-columns:1fr; } .standings__archive-head img { width:70px; } }

/* Briciole di pane e pagine legali (pagine interne) */
.crumbs { padding-top: calc(var(--section-y, 4rem) / 2); font-size: .85rem; color: var(--muted); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.crumbs li + li::before { content: "›"; margin-right: .4rem; opacity: .6; }
.crumbs a { text-decoration: underline; text-underline-offset: 3px; }
.legal h2 { margin: 2rem 0 .5rem; font-size: 1.2rem; }
.legal p, .legal li { line-height: 1.65; }
.legal ul { padding-left: 1.2rem; }
.legal .todo { background: #ffd54a; color: #1a1a1a; padding: 0 .35em; border-radius: 4px; font-weight: 700; }
.legal-foot { padding: 2rem 0 3rem; font-size: .9rem; }
.legal-foot ul { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }

/* ---------- Blog: iscrizione agli avvisi e sezione «Dal Blog» della home ---------- */
.blogsub .form { max-width: 680px; margin-inline: auto; }
.bloghome { padding-block: var(--s-8, 4rem); }
.post__cover:not(.is-photo) { min-height: 0; }
/* Gruppo WhatsApp dentro il menu (in alto, centrato) */
.drawer__wa{display:flex;justify-content:center;padding:var(--s-3) 0 var(--s-4)}
.wa-join--drawer{height:48px;padding:0 20px 0 16px;gap:10px;margin-inline:auto}
.wa-join--drawer .wa-join__ico{display:block;width:24px;height:24px}
.wa-join--drawer .wa-join__pre{display:inline}
.wa-join--drawer .wa-join__t{font-size:.875rem}
/* Mobile: recensioni a scorrimento e footer compatto */
@media (max-width:640px){
.quotes{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s-3);margin-inline:calc(var(--s-4,16px)*-1);padding:0 var(--s-4,16px) var(--s-2);-webkit-overflow-scrolling:touch;scrollbar-width:none}
.quotes::-webkit-scrollbar{display:none}
.quotes>.quote{flex:0 0 82%;scroll-snap-align:center;min-height:0;padding:var(--s-3) var(--s-4)}
.quote::before{font-size:2rem;height:.4em;margin-bottom:var(--s-2)}
.quote blockquote p{font-size:.9375rem;line-height:1.5}
.quote__who{padding-top:var(--s-3);font-size:.8125rem}
.footer{padding:var(--s-4) 0 var(--s-3)}
.footer__inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4) var(--s-3)}
.footer__brand{grid-column:1/-1}
.footer__h{font-size:.6875rem;margin-top:0}
.footer__links a,.footer__hours,.footer__hours div{min-height:26px;font-size:.8125rem}
.footer address{font-size:.8125rem;line-height:1.5}
.footer__bottom{margin-top:var(--s-3);padding-top:var(--s-3)}
}
