/*
Theme Name: BuonCasino Theme
Theme URI: https://buoncasino.it/
Description: Retro arcade-era coin-op CRT terminal theme for an Italian ADM-casino authority site. Hand-built classic theme — no framework, no CDN. Self-hosted fonts, inline-SVG logo, CRT leaderboard signature, boot-sequence reveal, phosphor atmosphere.
Version: 1.1.1
Author: BuonCasino
Text Domain: buoncasino
Requires at least: 6.8
Requires PHP: 8.0
License: GPL-2.0-or-later
*/

:root {
	--bc-black: #0B0E0C;
	--bc-cabinet: #1a1f1b;
	--bc-amber: #E8A030;
	--bc-green: #3FB950;
	--bc-cream: #EDE6D8;
	--bc-alert: #E86A50;
}

/* ============================================================
   Self-hosted fonts (assets/fonts/). No Google CDN.
   Palette (hardcoded everywhere, no custom properties):
   CRT black var(--bc-black) · phosphor amber var(--bc-amber) · phosphor green var(--bc-green)
   warm white var(--bc-cream) · alert var(--bc-alert) (AA-safe) · cabinet var(--bc-cabinet) · panel #121614
   ============================================================ */
@font-face { font-family: "Press Start 2P"; src: url("assets/fonts/press-start-2p.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("assets/fonts/ibm-plex-mono.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("assets/fonts/ibm-plex-mono-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Space Grotesk"; src: url("assets/fonts/space-grotesk.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Space Grotesk"; src: url("assets/fonts/space-grotesk-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

/* ============================================================
   Base
   ============================================================ */
* { box-sizing: border-box; }
*::before { box-sizing: border-box; }
*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background-color: var(--bc-black); color: var(--bc-cream); font-family: "Space Grotesk", system-ui, sans-serif; font-size: 16px; line-height: 1.6; overflow-x: hidden; }
::selection { background: var(--bc-amber); color: var(--bc-black); }
body img { max-width: 100%; height: auto; }
body a { color: var(--bc-amber); text-decoration: none; }
body a:focus-visible { outline: 3px solid var(--bc-green); outline-offset: 2px; }
body summary:focus-visible { outline: 3px solid var(--bc-green); outline-offset: 2px; }
body span[tabindex]:focus-visible { outline: 3px solid var(--bc-green); outline-offset: 2px; }
body .screen-reader-text { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body .bc-skip-link { position: absolute; left: -9999px; top: 0; background: var(--bc-amber); color: var(--bc-black); padding: 10px 16px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; z-index: 300; }
body .bc-skip-link:focus { left: 0; }

/* Custom pixel-crosshair cursor on interactive elements */
body a { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17"><rect x="7" y="0" width="3" height="6" fill="%23E8A030"/><rect x="7" y="11" width="3" height="6" fill="%23E8A030"/><rect x="0" y="7" width="6" height="3" fill="%23E8A030"/><rect x="11" y="7" width="6" height="3" fill="%23E8A030"/></svg>') 8 8, pointer; }
body summary { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17"><rect x="7" y="0" width="3" height="6" fill="%23E8A030"/><rect x="7" y="11" width="3" height="6" fill="%23E8A030"/><rect x="0" y="7" width="6" height="3" fill="%23E8A030"/><rect x="11" y="7" width="6" height="3" fill="%23E8A030"/></svg>') 8 8, pointer; }
body .bc-trigger { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17"><rect x="7" y="0" width="3" height="6" fill="%23E8A030"/><rect x="7" y="11" width="3" height="6" fill="%23E8A030"/><rect x="0" y="7" width="6" height="3" fill="%23E8A030"/><rect x="11" y="7" width="6" height="3" fill="%23E8A030"/></svg>') 8 8, pointer; }

/* ============================================================
   CRT atmosphere: scanlines + curvature vignette + phosphor bloom + grain
   All fixed, non-interactive, aria-hidden in markup.
   ============================================================ */
body .bc-scanline { position: fixed; inset: 0; background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)); background-size: 100% 4px, 3px 100%; z-index: 100; pointer-events: none; opacity: 0.3; animation: bc-scan-flicker 6s steps(60) infinite; }
@keyframes bc-scan-flicker { 0%, 100% { opacity: 0.28; } 50% { opacity: 0.34; } }
body .bc-vignette { position: fixed; inset: 0; background: radial-gradient(ellipse 105% 95% at 50% 48%, rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.42) 100%); z-index: 99; pointer-events: none; }
body .bc-bloom { position: fixed; inset: 0; background: radial-gradient(ellipse 40% 30% at 8% 4%, rgba(63, 185, 80, 0.055) 0%, rgba(63, 185, 80, 0) 70%), radial-gradient(ellipse 45% 35% at 94% 92%, rgba(232, 160, 48, 0.05) 0%, rgba(232, 160, 48, 0) 70%); z-index: 98; pointer-events: none; }
body .bc-grain { position: fixed; inset: 0; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="140" height="140"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="2" stitchTiles="stitch"/></filter><rect width="140" height="140" filter="url(%23n)" opacity="0.5"/></svg>'); opacity: 0.05; z-index: 97; pointer-events: none; }

/* Blinking terminal cursor (decorative) */
body .bc-cursor::after { content: "_"; animation: bc-blink 1s step-end infinite; }
@keyframes bc-blink { 50% { opacity: 0; } }

/* ============================================================
   Shell / layout
   ============================================================ */
body .wrapper { position: relative; z-index: 10; }
body .wrapper .bc-container { max-width: 1200px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
body .wrapper .bc-container--narrow { max-width: 1040px; }
/* SLOT hub (page 42): the article carries --narrow for its intro prose, but it also
   holds the full-width slot-card grid + controls. Let the container span the full
   1200px so the grid fills the width; .bc-prose keeps its own readable measure and
   stays left-aligned inside the wider article. */
body.page-id-42 .wrapper .bc-container--narrow { max-width: 1200px; }
/* SLOT hub (page 42): the slot controls + card grid live INSIDE .bc-prose, which is
   capped at 860px — that cap left the grid pinned to 860px and flush-left, dumping the
   leftover ~340px as whitespace on the right ("spazio bianco ai lati"). Fix: let .bc-prose
   span the full 1200px here, but keep the reading elements (paragraphs, headings, lists,
   tables, FAQ) at the 860px measure so body copy stays readable and left-aligned. Only the
   slot controls + grid use the full width. */
body.page-id-42 .wrapper .bc-prose { max-width: none; }
body.page-id-42 .wrapper .bc-prose > p,
body.page-id-42 .wrapper .bc-prose > h2,
body.page-id-42 .wrapper .bc-prose > h3,
body.page-id-42 .wrapper .bc-prose > ol,
body.page-id-42 .wrapper .bc-prose > table,
body.page-id-42 .wrapper .bc-prose > details { max-width: 860px; }
body.page-id-42 .wrapper .bc-slot-controls,
body.page-id-42 .wrapper .bc-slot-grid { max-width: none; }
body .wrapper .bc-section { padding-top: 56px; padding-bottom: 56px; }
body .wrapper .bc-section--panel { background: #121614; border-top: 4px solid var(--bc-cabinet); border-bottom: 4px solid var(--bc-cabinet); }
body .wrapper .bc-section--dark { background: #121614; }
@media (min-width: 768px) {
  body .wrapper .bc-section { padding-top: 80px; padding-bottom: 80px; }
}

/* ============================================================
   Header
   ============================================================ */
body .wrapper .bc-header { border-bottom: 4px solid var(--bc-cabinet); background: var(--bc-black); position: relative; }
body .wrapper .bc-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 2px; background: linear-gradient(90deg, rgba(232, 160, 48, 0) 0%, rgba(232, 160, 48, 0.35) 50%, rgba(232, 160, 48, 0) 100%); }
body .wrapper .bc-header__inner { max-width: 1200px; margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
body .wrapper .bc-brand { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
body .wrapper .bc-brand__id { display: flex; flex-direction: column; }
body .wrapper .bc-brand__row { display: inline-flex; align-items: center; gap: 12px; }
body .wrapper .bc-brand__logo { display: inline-flex; width: 34px; height: 34px; }
body .wrapper .bc-brand__logo svg { width: 100%; height: 100%; }
body .wrapper .bc-brand__name { font-family: "Press Start 2P", "Courier New", monospace; font-size: 15px; letter-spacing: -1px; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.8); }
body .wrapper .bc-brand__sub { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 10px; margin-top: 5px; text-transform: uppercase; letter-spacing: 4px; color: var(--bc-green); font-weight: 700; }
body .wrapper .bc-nav { display: none; }
/* Both selectors kept: legacy (wp_nav_menu bare ul/a) AND the BEM classes the
   fallback menu emits — so an assigned WP menu keeps the identical top-level look. */
body .wrapper .bc-nav ul,
body .wrapper .bc-nav__list { list-style: none; display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; }
body .wrapper .bc-nav a,
body .wrapper .bc-nav__link { font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-cream); position: relative; transition: color 0.15s ease; text-decoration: none; }
body .wrapper .bc-nav a::after,
body .wrapper .bc-nav__link::after { content: "_"; color: var(--bc-amber); opacity: 0; margin-left: 2px; }
body .wrapper .bc-nav a:hover,
body .wrapper .bc-nav__link:hover { color: var(--bc-amber); }
body .wrapper .bc-nav a:hover::after,
body .wrapper .bc-nav__link:hover::after { opacity: 1; animation: bc-blink 0.8s step-end infinite; }

/* parent item + flyout scaffolding */
body .wrapper .bc-nav__item { position: relative; }
body .wrapper .bc-nav__sub-toggle { display: none; }  /* mobile-only "+"; desktop uses hover/focus */
body .wrapper .bc-nav__toggle { display: none; }        /* hamburger: mobile-only */

/* Flyout panel: flat terminal panel, 1px phosphor border, 3px radius (matches .bc-sg-* idiom).
   NB: .bc-nav ul (line ~100) sets display:flex/row on ALL nav uls incl. this one — so we
   force a vertical single column here with matching specificity + column direction. */
body .wrapper .bc-nav .bc-subnav,
body .wrapper .bc-subnav {
  list-style: none; margin: 0; padding: 7px; position: absolute; top: calc(100% + 8px); left: -12px;
  min-width: 210px; width: max-content; max-width: 320px;
  display: flex; flex-direction: column; align-items: stretch; gap: 1px;
  background: #121614; border: 1px solid #2a322c; border-top: 2px solid var(--bc-amber);
  border-radius: 3px; box-shadow: 0 12px 30px rgba(0,0,0,0.65), 0 0 20px rgba(232,160,48,0.12);
  z-index: 120; opacity: 0; visibility: hidden; transform: translateY(-6px) scale(0.985); transform-origin: 20px top;
  pointer-events: none; transition: opacity .15s ease, transform .15s cubic-bezier(.2,.9,.3,1), visibility 0s linear .15s;
}
/* right-edge parents (last two nav items) open the panel flush-right so it never
   overflows the viewport; the caret shifts to match. */
body .wrapper .bc-nav__list > .bc-nav__item--has-sub:nth-last-child(-n+2) .bc-subnav { left: auto; right: -12px; transform-origin: calc(100% - 20px) top; }
body .wrapper .bc-nav__list > .bc-nav__item--has-sub:nth-last-child(-n+2) .bc-subnav::before { left: auto; right: 18px; }
/* caret: a rotated square carrying the panel's own top border + fill, so it sits
   seamlessly on the edge and points up at the parent item (replaces the flat stub) */
body .wrapper .bc-subnav::before {
  content: ""; position: absolute; top: -6px; left: 18px; width: 10px; height: 10px; background: #121614;
  border-left: 1px solid var(--bc-amber); border-top: 1px solid var(--bc-amber); transform: rotate(45deg);
  box-shadow: -1px -1px 6px rgba(232,160,48,0.25);
}
/* invisible hover-bridge across the 8px gap so the pointer can travel item→panel without the flyout closing */
body .wrapper .bc-nav__item--has-sub::after { content: ""; position: absolute; top: 100%; left: 0; width: 100%; height: 10px; }
body .wrapper .bc-nav__item--has-sub:hover .bc-subnav,
body .wrapper .bc-nav__item--has-sub:focus-within .bc-subnav,
body .wrapper .bc-nav__item--has-sub.is-open .bc-subnav {
  opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto;
  transition: opacity .15s ease, transform .15s cubic-bezier(.2,.9,.3,1);
}
body .wrapper .bc-nav__item--has-sub:hover > .bc-nav__link,
body .wrapper .bc-nav__item--has-sub:focus-within > .bc-nav__link { color: var(--bc-amber); }
body .wrapper .bc-nav__item--has-sub:hover > .bc-nav__link::after,
body .wrapper .bc-nav__item--has-sub:focus-within > .bc-nav__link::after { opacity: 1; animation: bc-blink 0.8s step-end infinite; }
body .wrapper .bc-subnav__link {
  display: block; font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; letter-spacing: .04em;
  color: var(--bc-cream); text-decoration: none; padding: 9px 12px 9px 10px; border-radius: 2px; white-space: nowrap;
  border-left: 2px solid transparent; transition: background .12s ease, color .12s ease, border-color .12s ease, transform .12s ease;
}
body .wrapper .bc-subnav__link::before { content: "> "; color: var(--bc-green); opacity: .55; transition: opacity .12s ease; }
body .wrapper .bc-subnav__link:hover,
body .wrapper .bc-subnav__link:focus-visible { background: rgba(232,160,48,0.10); color: var(--bc-amber); border-left-color: var(--bc-amber); transform: translateX(2px); }
body .wrapper .bc-subnav__link:hover::before,
body .wrapper .bc-subnav__link:focus-visible::before { opacity: 1; }
body .wrapper .bc-subnav__link:focus-visible { outline: 2px solid var(--bc-green); outline-offset: -2px; }
/* "VEDI TUTTI" row: separated leaf → hub jump. Thin divider above, amber accent, → glyph.
   Scoped under .bc-subnav to outrank the generic .bc-nav a::after "_" cursor + .bc-subnav__link color. */
body .wrapper .bc-subnav .bc-subnav__item--all { margin-top: 3px; padding-top: 3px; border-top: 1px solid #2a322c; }
body .wrapper .bc-subnav .bc-subnav__link--all { color: var(--bc-amber); font-size: 11px; letter-spacing: .08em; }
body .wrapper .bc-subnav .bc-subnav__link--all::before { content: "" !important; opacity: 1; }
body .wrapper .bc-subnav .bc-subnav__link--all::after { content: " →" !important; color: var(--bc-amber); opacity: .7; animation: none; margin-left: 0; }
body .wrapper .bc-subnav .bc-subnav__link--all:hover,
body .wrapper .bc-subnav .bc-subnav__link--all:focus-visible { background: rgba(232,160,48,0.14); border-left-color: var(--bc-amber); }
@media (prefers-reduced-motion: reduce) {
  body .wrapper .bc-subnav { transition: opacity .15s ease, visibility 0s linear .15s; transform: none; }
  body .wrapper .bc-nav__item--has-sub:hover .bc-subnav,
  body .wrapper .bc-nav__item--has-sub:focus-within .bc-subnav,
  body .wrapper .bc-nav__item--has-sub.is-open .bc-subnav { transform: none; }
  body .wrapper .bc-subnav__link:hover,
  body .wrapper .bc-subnav__link:focus-visible { transform: none; }
  body .wrapper .bc-nav__item--has-sub:hover > .bc-nav__link::after,
  body .wrapper .bc-nav__item--has-sub:focus-within > .bc-nav__link::after { animation: none; }
}

body .wrapper .bc-age-badge { border: 2px solid var(--bc-alert); padding: 8px 14px; }
body .wrapper .bc-age-badge span { font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-alert); animation: bc-pulse 2s ease-in-out infinite; display: inline-block; }
@keyframes bc-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }

/* MOBILE NAV (< 1024px): .bc-nav lives inside .bc-brand (a flex-wrap row); let it
   break to its own full-width row with a hamburger. Sibling .bc-age-badge is in
   .bc-header__inner, NOT in .bc-brand, so it never collides with the stacked panel. */
@media (max-width: 1023.98px) {
  /* .bc-brand shares the flex-wrap header row with .bc-age-badge, so its (and the nav's)
     100% was only ~half the header → the open panel left an empty right band with the
     age-badge orphaned in it. Force .bc-brand full-width so the drawer spans the whole
     header, and keep the toggle + badge together on the top line (badge pinned right). */
  body .wrapper .bc-brand { width: 100%; }
  body .wrapper .bc-header__inner { align-items: flex-start; }
  body .wrapper .bc-nav { display: block; width: 100%; order: 3; }
  body .wrapper .bc-nav__toggle { margin-left: auto; }
  body .wrapper .bc-age-badge { align-self: center; }
  body .wrapper .bc-nav__toggle {
    display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 34px;
    background: var(--bc-black); border: 2px solid var(--bc-cabinet); border-radius: 3px; cursor: pointer;
  }
  body .wrapper .bc-nav__toggle-bars,
  body .wrapper .bc-nav__toggle-bars::before,
  body .wrapper .bc-nav__toggle-bars::after { content: ""; display: block; width: 18px; height: 2px; background: var(--bc-amber); position: relative; }
  body .wrapper .bc-nav__toggle-bars::before { position: absolute; top: -6px; }
  body .wrapper .bc-nav__toggle-bars::after  { position: absolute; top: 6px; }
  body .wrapper .bc-nav__toggle[aria-expanded="true"] .bc-nav__toggle-bars { background: transparent; }
  body .wrapper .bc-nav__toggle[aria-expanded="true"] .bc-nav__toggle-bars::before { top: 0; transform: rotate(45deg); }
  body .wrapper .bc-nav__toggle[aria-expanded="true"] .bc-nav__toggle-bars::after  { top: 0; transform: rotate(-45deg); }

  body .wrapper .bc-nav__list {
    display: none; flex-direction: column; align-items: stretch; gap: 0; width: 100%;
    margin-top: 12px; background: #121614; border: 1px solid #2a322c; border-radius: 3px; padding: 4px;
  }
  /* the open-state rule outranks line ~101 (.bc-nav__list, gap:34px/align:center) — carry the
     column reset here too so the desktop row spacing can't leak into the stacked mobile panel */
  body .wrapper .bc-nav.is-open .bc-nav__list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  /* hairline divider between top-level rows so the stacked list reads as one tidy terminal
     drawer, not scattered floating labels; last row loses its border */
  body .wrapper .bc-nav__item { position: static; display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid #20261f; }
  body .wrapper .bc-nav__list > .bc-nav__item:last-child { border-bottom: 0; }
  body .wrapper .bc-nav__item--has-sub::after { display: none; }  /* desktop hover-bridge off on mobile */
  body .wrapper .bc-nav__link { flex: 1; padding: 12px 12px; text-align: left; }
  body .wrapper .bc-nav__list > .bc-nav__item > .bc-nav__link:hover { background: rgba(232,160,48,0.06); }
  body .wrapper .bc-nav__sub-toggle {
    display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center;
    background: transparent; border: 1px solid #2a322c; border-radius: 3px; color: var(--bc-amber);
    font-family: "IBM Plex Mono", monospace; font-size: 16px; cursor: pointer;
  }
  /* selector must match the desktop flyout base (.bc-nav .bc-subnav, specificity 0,3,1) or the
     collapsed `display:none` loses and every submenu renders always-open — the true cause of the
     tall, gap-ridden mobile panel. .is-open reveal below is 0,4,1 so it still outranks this. */
  body .wrapper .bc-nav .bc-subnav {
    position: static; opacity: 1; visibility: visible; transform: none; pointer-events: auto;
    box-shadow: none; border: 0; border-top: 1px solid #2a322c; border-radius: 0; min-width: 0; width: 100%;
    padding: 2px 0 6px 14px; display: none; transition: none; max-width: none;
  }
  /* neutralize the desktop right-edge flyout anchor (line ~131, higher specificity via
     :nth-last-child) so the last two parents' submenus stay INLINE on mobile instead of
     escaping to the viewport right edge as an absolute panel */
  body .wrapper .bc-nav__list > .bc-nav__item--has-sub:nth-last-child(-n+2) .bc-subnav {
    position: static; left: auto; right: auto; transform: none; width: 100%; max-width: none;
  }
  body .wrapper .bc-subnav::before,
  body .wrapper .bc-nav__list > .bc-nav__item--has-sub:nth-last-child(-n+2) .bc-subnav::before { display: none; }
  body .wrapper .bc-nav__item--has-sub.is-open .bc-subnav { display: grid; }
  body .wrapper .bc-nav__item--has-sub:hover .bc-subnav,
  body .wrapper .bc-nav__item--has-sub:focus-within .bc-subnav { opacity: 1; visibility: visible; }
}

@media (min-width: 1024px) {
  body .wrapper .bc-nav { display: block; }
  body .wrapper .bc-brand__name { font-size: 17px; }
}

/* ============================================================
   Hero — boot sequence. H1 is the LCP: never animated.
   ============================================================ */
body .wrapper .bc-hero { padding: 64px 0; border-bottom: 4px solid var(--bc-cabinet); box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.8); border-top: 4px solid var(--bc-cabinet); position: relative; overflow: hidden; }
body .wrapper .bc-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 22% 30%, rgba(232, 160, 48, 0.06) 0%, rgba(232, 160, 48, 0) 65%); pointer-events: none; }
body .wrapper .bc-hero__inner { max-width: 1024px; margin: 0 auto; padding: 0 20px; position: relative; }
body .wrapper .bc-status-chip { display: inline-block; padding: 6px 12px; border: 1px solid var(--bc-green); margin-bottom: 28px; animation: bc-boot-in 0.5s ease-out 0.15s backwards; }
body .wrapper .bc-status-chip span { font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-green); }
body .wrapper .bc-hero__title { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 29px; line-height: 1.3; letter-spacing: 0; color: var(--bc-amber); text-shadow: 0 0 14px rgba(232, 160, 48, 0.55), 0 0 42px rgba(232, 160, 48, 0.18); text-transform: none; margin: 0 0 32px; max-width: 30ch; }
body .wrapper .bc-hero__boot { font-family: "IBM Plex Mono", "Courier New", monospace; font-variant-numeric: tabular-nums; font-size: 17px; line-height: 1.9; color: rgba(237, 230, 216, 0.82); max-width: 760px; margin: 0; overflow-wrap: anywhere; }
body .wrapper .bc-hero__boot .bc-boot-line { display: block; animation: bc-boot-in 0.4s ease-out backwards; }
body .wrapper .bc-hero__boot .bc-boot-line:nth-child(1) { animation-delay: 0.35s; }
body .wrapper .bc-hero__boot .bc-boot-line:nth-child(2) { animation-delay: 0.6s; }
body .wrapper .bc-hero__boot .bc-boot-line:nth-child(3) { animation-delay: 0.85s; }
@keyframes bc-boot-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 768px) {
  body .wrapper .bc-hero { padding: 96px 0; }
  body .wrapper .bc-hero__title { font-size: 38px; }
}

/* ============================================================
   Ticker divider — slow compliance marquee (decorative, aria-hidden)
   ============================================================ */
body .wrapper .bc-ticker { overflow: hidden; border-bottom: 4px solid var(--bc-cabinet); background: #121614; padding: 10px 0; white-space: nowrap; }
body .wrapper .bc-ticker__track { display: inline-block; animation: bc-ticker-scroll 42s linear infinite; }
body .wrapper .bc-ticker__track span { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: rgba(63, 185, 80, 0.75); padding-right: 48px; }
@keyframes bc-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ============================================================
   Leaderboard — THE signature: arcade selection menu
   ============================================================ */
body .wrapper .bc-board-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px; }
body .wrapper .bc-board-head__tag { display: flex; align-items: center; gap: 16px; }
body .wrapper .bc-board-head__tag span { font-family: "Press Start 2P", "Courier New", monospace; font-size: 13px; color: var(--bc-green); text-shadow: 0 0 8px rgba(63, 185, 80, 0.8); white-space: nowrap; }
body .wrapper .bc-board-head__meta { display: flex; flex-direction: column; gap: 8px; }
body .wrapper .bc-board-head__meta h2 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 24px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.4); line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
body .wrapper .bc-board-head__ref { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; color: var(--bc-green); overflow-wrap: anywhere; }
body .wrapper .bc-rule { height: 2px; flex: 1; background: var(--bc-cabinet); min-width: 40px; }
body .wrapper .bc-board-caption { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; color: rgba(237, 230, 216, 0.66); margin: 0 0 14px; font-style: italic; }
body .wrapper .bc-op-sheet > .bc-board-title { caption-side: top; text-align: left; font-family: "Press Start 2P", "Courier New", monospace; font-size: 11px; line-height: 1.7; color: var(--bc-amber); text-shadow: 0 0 8px rgba(232, 160, 48, 0.4); letter-spacing: 1px; padding: 4px 0 14px; }
body .wrapper .bc-table-wrap { overflow-x: auto; border: 4px solid var(--bc-cabinet); background: var(--bc-black); box-shadow: inset 0 0 26px rgba(0, 0, 0, 0.7), 0 0 22px rgba(232, 160, 48, 0.05); min-width: 0; }
body .wrapper .bc-board { width: 100%; min-width: 720px; border-collapse: collapse; text-align: left; font-family: "IBM Plex Mono", "Courier New", monospace; font-variant-numeric: tabular-nums; }
body .wrapper .bc-board thead tr { background: var(--bc-cabinet); border-bottom: 2px solid var(--bc-amber); }
body .wrapper .bc-board th { padding: 16px 18px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 9px; font-weight: 400; color: var(--bc-amber); letter-spacing: 1px; }
body .wrapper .bc-board tbody tr { border-top: 1px solid var(--bc-cabinet); position: relative; transition: background 0.15s ease; }
body .wrapper .bc-board tbody tr:hover { background: rgba(232, 160, 48, 0.06); }
body .wrapper .bc-board td { padding: 20px 18px; font-size: 15px; }
/* (removed .bc-pos rank-cell rules — the ranking column was dropped for
   continenza; the list is a neutral registry, not a leaderboard.) */
body .wrapper .bc-board .bc-op { font-weight: 700; color: var(--bc-cream); letter-spacing: 4px; }
body .wrapper .bc-board .bc-c-green { color: var(--bc-green); }
/* continenza (Decreto Dignità): de-spotlighted — was glowing amber, now a
   neutral data cell so no single column "risalta" (offer emphasis). */
body .wrapper .bc-board .bc-c-amber { color: rgba(237, 230, 216, 0.9); }
body .wrapper .bc-board .bc-c-white { color: rgba(237, 230, 216, 0.9); }
body .wrapper .bc-board-foot { margin-top: 14px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
body .wrapper .bc-board-foot span { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 11px; color: var(--bc-green); }
@media (min-width: 768px) {
  body .wrapper .bc-board-head { flex-direction: column; }
  body .wrapper .bc-board-head__meta { flex-direction: row; align-items: flex-end; justify-content: space-between; }
}

/* ============================================================
   Methodology — asymmetric grid, stats overlap upward (grid-break)
   ============================================================ */
body .wrapper .bc-method-grid { display: grid; grid-template-columns: 1fr; gap: 44px; }
body .wrapper .bc-method__eyebrow { display: inline-block; font-family: "Press Start 2P", "Courier New", monospace; font-size: 9px; color: var(--bc-alert); padding: 6px 10px; border: 1px solid var(--bc-alert); margin-bottom: 18px; }
body .wrapper .bc-method__title { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 24px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.4); line-height: 1.4; margin: 0 0 34px; overflow-wrap: anywhere; }

/* Site-specific CRT prompt frame (deliberately NOT a left-border callout) */
body .wrapper .bc-prompt { position: relative; border: 1px solid var(--bc-cabinet); background: rgba(18, 22, 20, 0.6); padding: 18px 20px 18px 44px; margin-bottom: 20px; transition: border-color 0.2s ease; }
body .wrapper .bc-prompt::before { content: ">"; position: absolute; left: 18px; top: 16px; font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 16px; color: var(--bc-amber); }
body .wrapper .bc-prompt:hover { border-color: rgba(232, 160, 48, 0.5); }
body .wrapper .bc-prompt__label { display: inline-block; font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--bc-amber); margin-bottom: 8px; text-decoration: none; }
body .wrapper .bc-prompt__label::before { content: "[ "; color: rgba(232, 160, 48, 0.5); }
body .wrapper .bc-prompt__label::after { content: " ]"; color: rgba(232, 160, 48, 0.5); }
body .wrapper a.bc-prompt__label { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color 0.18s ease; }
body .wrapper a.bc-prompt__label:hover, body .wrapper a.bc-prompt__label:focus-visible { text-decoration-color: currentColor; }
body .wrapper .bc-prompt__body { font-size: 14px; line-height: 1.7; color: rgba(237, 230, 216, 0.72); margin: 0; }
body .wrapper .bc-prompt--green::before { color: var(--bc-green); }
body .wrapper .bc-prompt--green .bc-prompt__label { color: var(--bc-green); }
body .wrapper .bc-prompt--green .bc-prompt__label::before { color: rgba(63, 185, 80, 0.5); }
body .wrapper .bc-prompt--green .bc-prompt__label::after { color: rgba(63, 185, 80, 0.5); }
body .wrapper .bc-prompt--green:hover { border-color: rgba(63, 185, 80, 0.5); }

body .wrapper .bc-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-content: start; }
body .wrapper .bc-stat { border: 2px solid var(--bc-cabinet); padding: 28px 12px; text-align: center; background: var(--bc-black); transition: transform 0.2s ease, border-color 0.2s ease; min-width: 0; }
body .wrapper .bc-stat:hover { transform: translateY(-3px); border-color: rgba(232, 160, 48, 0.45); }
body .wrapper .bc-stat:nth-child(2) { transform: translateY(10px); }
body .wrapper .bc-stat:nth-child(3) { transform: translateY(-6px); }
body .wrapper .bc-stat:nth-child(2):hover { transform: translateY(7px); }
body .wrapper .bc-stat:nth-child(3):hover { transform: translateY(-9px); }
body .wrapper .bc-stat__val { font-family: "Press Start 2P", "Courier New", monospace; font-size: 21px; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.5); margin-bottom: 14px; }
body .wrapper .bc-stat__lbl { font-family: "Press Start 2P", "Courier New", monospace; font-size: 8px; color: var(--bc-green); line-height: 1.6; overflow-wrap: anywhere; }
@media (min-width: 1024px) {
  body .wrapper .bc-method-grid { grid-template-columns: 7fr 5fr; gap: 72px; }
  body .wrapper .bc-stats { margin-top: -110px; position: relative; z-index: 5; }
}

/* ============================================================
   Section heads + module cards
   ============================================================ */
body .wrapper .bc-section-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 44px; }
/* Same readable heading system as .bc-prose h2 — one section-heading language across all pages.
   Kicker (the .bc-kicker span) sits above; pixel font stays reserved for the hero H1 + brand. */
body .wrapper .bc-section-head h2 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 24px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.4); line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
body .wrapper .bc-cards { display: grid; grid-template-columns: 1fr; gap: 24px; }
body .wrapper .bc-card { display: block; border: 2px solid var(--bc-cabinet); padding: 32px 28px; position: relative; overflow: hidden; transition: border-color 0.2s ease, transform 0.2s ease; }
body .wrapper .bc-card::after { content: ""; position: absolute; top: 0; left: -80%; width: 55%; height: 100%; background: linear-gradient(105deg, rgba(232, 160, 48, 0) 0%, rgba(232, 160, 48, 0.07) 50%, rgba(232, 160, 48, 0) 100%); transform: skewX(-12deg); transition: left 0.45s ease; pointer-events: none; }
body .wrapper .bc-card:hover { border-color: var(--bc-amber); transform: translateY(-3px); }
body .wrapper .bc-card:hover::after { left: 130%; }
body .wrapper .bc-card__no { font-family: "Press Start 2P", "Courier New", monospace; font-size: 9px; color: var(--bc-green); text-transform: uppercase; margin-bottom: 18px; }
body .wrapper .bc-card__title { font-family: "Press Start 2P", "Courier New", monospace; font-size: 16px; color: var(--bc-cream); margin: 0 0 18px; line-height: 1.5; transition: color 0.2s ease; }
body .wrapper .bc-card:hover .bc-card__title { color: var(--bc-amber); }
body .wrapper .bc-card__desc { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 13px; line-height: 1.7; color: rgba(237, 230, 216, 0.66); margin: 0 0 28px; }
body .wrapper .bc-card__cta { display: inline-flex; align-items: center; gap: 10px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-amber); }
body .wrapper .bc-card__cta svg { width: 14px; height: 14px; transition: transform 0.2s ease; }
body .wrapper .bc-card:hover .bc-card__cta svg { transform: translateX(4px); }
@media (min-width: 768px) {
  body .wrapper .bc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
  body .wrapper .bc-card { padding: 40px 36px; }
}

/* ============================================================
   Simulators
   ============================================================ */
body .wrapper .bc-sim-head { display: flex; flex-direction: column; gap: 16px; margin-bottom: 40px; }
body .wrapper .bc-sim-head__title h2 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 24px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.4); line-height: 1.4; margin: 0 0 10px; overflow-wrap: anywhere; }
body .wrapper .bc-sim-head__title p { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; color: rgba(237, 230, 216, 0.66); margin: 0; overflow-wrap: anywhere; }
body .wrapper .bc-sim-head__badge { align-self: flex-start; padding: 10px 16px; border: 2px solid var(--bc-alert); color: var(--bc-alert); font-family: "Press Start 2P", "Courier New", monospace; font-size: 8px; }
body .wrapper .bc-sim-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
body .wrapper .bc-sim { display: block; border: 4px solid var(--bc-cabinet); background: var(--bc-black); overflow: hidden; transition: border-color 0.2s ease; text-decoration: none; color: inherit; }
body .wrapper a.bc-sim:hover .bc-sim__title { color: var(--bc-amber); }
body .wrapper .bc-sim:hover { border-color: rgba(63, 185, 80, 0.4); }
body .wrapper .bc-sim:focus-within { border-color: var(--bc-green); }
body .wrapper .bc-sim__screen { aspect-ratio: 16 / 9; background: var(--bc-cabinet); position: relative; display: flex; align-items: center; justify-content: center; }
body .wrapper .bc-sim__id { position: absolute; top: 14px; left: 14px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 8px; color: var(--bc-green); }
body .wrapper .bc-sim__icon { width: 64px; height: 64px; color: rgba(63, 185, 80, 0.22); transition: color 0.25s ease; }
body .wrapper .bc-sim:hover .bc-sim__icon { color: rgba(63, 185, 80, 0.55); }
body .wrapper .bc-sim__gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; background: rgba(11, 14, 12, 0.92); opacity: 0; transition: opacity 0.25s ease; }
body .wrapper .bc-sim:hover .bc-sim__gate { opacity: 1; }
body .wrapper .bc-sim:focus-within .bc-sim__gate { opacity: 1; }
body .wrapper .bc-sim__gate-label { font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-alert); }
body .wrapper .bc-sim__gate-btn { display: inline-block; padding: 10px 22px; border: 2px solid var(--bc-amber); font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-amber); background: transparent; transition: background 0.2s ease, color 0.2s ease; }
body .wrapper .bc-sim__gate-btn:hover { background: var(--bc-amber); color: var(--bc-black); }
body .wrapper .bc-sim__gate-btn:focus-visible { outline: 3px solid var(--bc-green); outline-offset: 2px; }
body .wrapper .bc-sim__body { padding: 26px 28px; }
body .wrapper .bc-sim__title { font-family: "Press Start 2P", "Courier New", monospace; font-size: 12px; color: var(--bc-cream); margin: 0 0 10px; overflow-wrap: anywhere; }
body .wrapper .bc-sim__desc { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; color: rgba(237, 230, 216, 0.66); margin: 0; }
@media (min-width: 768px) {
  body .wrapper .bc-sim-head { flex-direction: row; align-items: flex-start; justify-content: space-between; }
  body .wrapper .bc-sim-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
}

/* ============================================================
   FAQ accordion
   ============================================================ */
body .wrapper .bc-faq details { border: 1px solid var(--bc-cabinet); margin-bottom: 12px; background: rgba(18, 22, 20, 0.5); transition: border-color 0.2s ease; }
body .wrapper .bc-faq details:hover { border-color: rgba(232, 160, 48, 0.4); }
body .wrapper .bc-faq details[open] { border-color: rgba(232, 160, 48, 0.55); }
body .wrapper .bc-faq summary { list-style: none; padding: 18px 48px 18px 20px; font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 14px; color: var(--bc-cream); position: relative; user-select: none; }
body .wrapper .bc-faq summary::-webkit-details-marker { display: none; }
body .wrapper .bc-faq summary h3 { display: inline; font-family: inherit; font-weight: 700; font-size: 14px; color: inherit; margin: 0; letter-spacing: inherit; }
body .wrapper .bc-faq summary::after { content: ""; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><rect x="6" y="0" width="2" height="14" fill="%23E8A030"/><rect x="0" y="6" width="14" height="2" fill="%23E8A030"/></svg>'); background-size: contain; background-repeat: no-repeat; transition: transform 0.2s ease; }
body .wrapper .bc-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
body .wrapper .bc-faq .bc-faq__body { padding: 0 20px 20px; }
body .wrapper .bc-faq .bc-faq__body p { margin: 0; font-size: 14px; line-height: 1.75; color: rgba(237, 230, 216, 0.75); }

/* ============================================================
   Footer — compliance core
   ============================================================ */
body .wrapper .bc-footer { background: var(--bc-black); border-top: 8px solid var(--bc-cabinet); padding: 64px 0 44px; font-family: "IBM Plex Mono", "Courier New", monospace; position: relative; }
body .wrapper .bc-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 2px; background: linear-gradient(90deg, rgba(63, 185, 80, 0) 0%, rgba(63, 185, 80, 0.3) 50%, rgba(63, 185, 80, 0) 100%); }
body .wrapper .bc-footer__grid { display: grid; grid-template-columns: 1fr; gap: 44px; margin-bottom: 56px; }
body .wrapper .bc-footer__brand { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
body .wrapper .bc-footer__logo { display: inline-flex; width: 44px; height: 44px; }
body .wrapper .bc-footer__logo svg { width: 100%; height: 100%; }
body .wrapper .bc-footer__brand-name { display: block; font-family: "Press Start 2P", "Courier New", monospace; font-size: 14px; color: var(--bc-cream); }
body .wrapper .bc-footer__brand-sub { display: block; font-family: "Press Start 2P", "Courier New", monospace; font-size: 8px; color: var(--bc-green); text-transform: uppercase; margin-top: 6px; }
body .wrapper .bc-footer__badges { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
body .wrapper .bc-footer__chip { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--bc-cabinet); padding: 9px 14px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 9px; }
body .wrapper .bc-footer__chip svg { width: 14px; height: 14px; }
body .wrapper .bc-footer__chip--amber { color: var(--bc-amber); }
body .wrapper .bc-footer__chip--green { color: var(--bc-green); }
body .wrapper .bc-footer__chip--bare { border: none; padding: 0; }
body .wrapper .bc-footer__rg { font-size: 13px; line-height: 1.8; color: rgba(237, 230, 216, 0.68); max-width: 560px; margin: 0 0 16px; }
body .wrapper .bc-footer__rg a { text-decoration: underline; }
body .wrapper .bc-footer__rg strong { color: rgba(237, 230, 216, 0.9); }
body .wrapper .bc-footer__adv { font-size: 12px; line-height: 1.8; color: rgba(237, 230, 216, 0.58); max-width: 560px; margin: 0 0 14px; }
body .wrapper .bc-footer__legal { font-size: 12px; line-height: 1.8; color: rgba(237, 230, 216, 0.58); max-width: 560px; margin: 0; }
body .wrapper .bc-footer__col h5 { font-family: "Press Start 2P", "Courier New", monospace; font-size: 10px; color: var(--bc-amber); margin: 0 0 26px; }
body .wrapper .bc-footer__col ul { list-style: none; margin: 0; padding: 0; }
body .wrapper .bc-footer__col li { margin-bottom: 14px; }
body .wrapper .bc-footer__col a { font-size: 14px; color: rgba(237, 230, 216, 0.62); transition: color 0.15s ease; }
body .wrapper .bc-footer__col a:hover { color: var(--bc-amber); }
body .wrapper .bc-footer__bar { border-top: 2px solid var(--bc-cabinet); padding-top: 36px; display: flex; flex-direction: column; gap: 24px; }
body .wrapper .bc-footer__bar-left { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
body .wrapper .bc-badge-18 { border: 2px solid var(--bc-cabinet); padding: 5px 11px; font-family: "Press Start 2P", "Courier New", monospace; font-size: 15px; color: var(--bc-alert); }
body .wrapper .bc-footer__bar-right p { margin: 0; font-size: 11px; text-transform: uppercase; font-weight: 700; letter-spacing: 2px; color: #6FCF7F; line-height: 1.9; }
@media (min-width: 768px) {
  body .wrapper .bc-footer__grid { grid-template-columns: 2fr 1fr 1fr; gap: 56px; }
  body .wrapper .bc-footer__bar { flex-direction: row; align-items: center; justify-content: space-between; }
  body .wrapper .bc-footer__bar-right p { text-align: right; }
}

/* ============================================================
   Content fallbacks (index / page / single)
   ============================================================ */
/* H1 shares the IBM Plex Mono section-heading language with .bc-prose h2/h3
   (one heading family per page — the pixel font stays reserved for hero + brand).
   Sized one step above the H2 (26px vs 22px) so the hierarchy reads at a glance. */
body .wrapper .bc-page-title { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 26px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 12px rgba(232, 160, 48, 0.55); line-height: 1.3; margin: 0 0 36px; }
body .wrapper .bc-prose { max-width: 860px; }
body .wrapper .bc-prose p { line-height: 1.8; color: rgba(237, 230, 216, 0.85); }
/* Readable section headings: Press Start 2P (a 5x7 bitmap face) wraps hard and
   skims as texture on long Italian H2s. Reserve the pixel font for the hero H1 +
   brand; section headings use the mono-700 terminal face — same CRT DNA, legible.
   A green "> " prompt tick keeps the terminal signature without a markup change. */
body .wrapper .bc-prose h2 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 24px; letter-spacing: 0.01em; color: var(--bc-amber); text-shadow: 0 0 10px rgba(232, 160, 48, 0.35); line-height: 1.4; margin: 52px 0 18px; }
body .wrapper .bc-prose h2::before { content: "> "; color: var(--bc-green); }
body .wrapper .bc-prose h3 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 17px; color: var(--bc-cream); margin: 34px 0 14px; }
/* Content-page FAQ accordions (.bc-prose details) reuse the homepage .bc-faq look —
   one FAQ treatment across all pages. The question is an <h3> inside <summary>
   (CLAUDE.md FAQ rule); reset its heading size so it reads as an accordion label. */
body .wrapper .bc-prose details { border: 1px solid var(--bc-cabinet); margin-bottom: 12px; background: rgba(18, 22, 20, 0.5); transition: border-color 0.2s ease; }
body .wrapper .bc-prose details:hover { border-color: rgba(232, 160, 48, 0.4); }
body .wrapper .bc-prose details[open] { border-color: rgba(232, 160, 48, 0.55); }
body .wrapper .bc-prose details > summary { list-style: none; padding: 18px 48px 18px 20px; position: relative; user-select: none; cursor: pointer; }
body .wrapper .bc-prose details > summary::-webkit-details-marker { display: none; }
body .wrapper .bc-prose details > summary h3 { display: inline; font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 15px; color: var(--bc-cream); margin: 0; }
body .wrapper .bc-prose details > summary::after { content: ""; position: absolute; right: 18px; top: 22px; width: 14px; height: 14px; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><rect x="6" y="0" width="2" height="14" fill="%23E8A030"/><rect x="0" y="6" width="14" height="2" fill="%23E8A030"/></svg>'); background-size: contain; background-repeat: no-repeat; transition: transform 0.2s ease; }
body .wrapper .bc-prose details[open] > summary::after { transform: rotate(45deg); }
body .wrapper .bc-prose details > p { margin: 0; padding: 0 20px 20px; font-size: 14px; line-height: 1.75; color: rgba(237, 230, 216, 0.78); }
body .wrapper .bc-prose a { text-decoration: underline; }
body .wrapper .bc-prose ul { line-height: 1.8; color: rgba(237, 230, 216, 0.85); }
body .wrapper .bc-prose ol { line-height: 1.8; color: rgba(237, 230, 216, 0.85); }
body .wrapper .bc-prose table { border-collapse: collapse; width: 100%; font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 14px; }
body .wrapper .bc-prose table th { border: 1px solid var(--bc-cabinet); padding: 10px 12px; color: var(--bc-amber); text-align: left; }
body .wrapper .bc-prose table td { border: 1px solid var(--bc-cabinet); padding: 10px 12px; }
body .wrapper .bc-list { list-style: none; margin: 0; padding: 0; }
body .wrapper .bc-list__item { border: 1px solid var(--bc-cabinet); padding: 26px 28px; margin-bottom: 18px; transition: border-color 0.2s ease; }
body .wrapper .bc-list__item:hover { border-color: rgba(232, 160, 48, 0.45); }
body .wrapper .bc-list__item h2 { font-family: "IBM Plex Mono", "Courier New", monospace; font-weight: 700; font-size: 17px; margin: 0 0 10px; }
body .wrapper .bc-list__meta { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 11px; color: var(--bc-green); text-transform: uppercase; letter-spacing: 2px; display: block; margin-bottom: 8px; }
body .wrapper .bc-list__excerpt { font-size: 14px; color: rgba(237, 230, 216, 0.7); margin: 0; }
body .wrapper .bc-post-date { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 11px; color: var(--bc-green); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 40px; }
body .wrapper .bc-mono { font-family: "IBM Plex Mono", "Courier New", monospace; font-variant-numeric: tabular-nums; }

/* ============================================================
   Reduced motion — kill every animation & transition
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  body .bc-scanline { animation: none; opacity: 0.3; }
  body .bc-cursor::after { animation: none; }
  body .wrapper .bc-age-badge span { animation: none; }
  body .wrapper .bc-status-chip { animation: none; }
  body .wrapper .bc-hero__boot .bc-boot-line { animation: none; }
  body .wrapper .bc-ticker__track { animation: none; }
  body .wrapper .bc-card { transition: none; }
  body .wrapper .bc-card::after { display: none; }
  body .wrapper .bc-stat { transition: none; }
  body .wrapper .bc-stat:nth-child(2) { transform: none; }
  body .wrapper .bc-stat:nth-child(3) { transform: none; }
  body .wrapper .bc-sim__gate { transition: none; }
  body .wrapper .bc-faq summary::after { transition: none; }
  body .wrapper .bc-prose details > summary::after { transition: none; }
  html { scroll-behavior: auto; }
}

/* ============================================================ *
 * SIMULATORI didattici — CRT widgets (.bc-sg-*). Palette reuses
 * theme tokens: var(--bc-black) bg, var(--bc-cabinet) panel, var(--bc-amber) amber,
 * var(--bc-green) green, var(--bc-cream) warm-white, var(--bc-alert) alert.
 * ============================================================ */
.bc-sg{background:var(--bc-black);border:1px solid #2a322c;border-radius:4px;padding:1.5rem;margin:2rem 0;color:var(--bc-cream);position:relative;overflow:hidden}
.bc-sg__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-bottom:1px solid #2a322c;padding-bottom:1rem;margin-bottom:1.25rem}
.bc-sg__eyebrow{font-family:"IBM Plex Mono","Courier New",monospace;font-size:.68rem;letter-spacing:.08em;color:var(--bc-green);display:block}
.bc-sg__title{font-family:"Space Grotesk",system-ui,sans-serif;font-size:1.35rem;margin:.35rem 0 .25rem;color:var(--bc-cream);line-height:1.2}
.bc-sg__sub{font-family:"Space Grotesk",system-ui,sans-serif;font-size:.95rem;color:#b9b3a6;margin:0;max-width:52ch}
.bc-sg__badge{font-family:"Press Start 2P","Courier New",monospace;font-size:.7rem;color:var(--bc-black);background:var(--bc-amber);padding:.5rem .6rem;border-radius:3px;flex:none}
.bc-sg__gate{position:absolute;inset:0;background:rgba(11,14,12,.96);display:flex;align-items:center;justify-content:center;z-index:5;padding:2rem;text-align:center}
.bc-sg__gate-inner{max-width:34ch}
.bc-sg__gate-label{font-family:"IBM Plex Mono",monospace;color:var(--bc-amber);font-size:.8rem;letter-spacing:.1em}
.bc-sg__gate p{color:#b9b3a6;margin:.75rem 0 1.25rem;font-family:"Space Grotesk",sans-serif}
.bc-sg__gate-btn,.bc-sg-bj__actions button,.bc-sg-rl__sim button,.bc-sg-rt button,#bc-bj-next{font-family:"IBM Plex Mono","Courier New",monospace;background:var(--bc-amber);color:var(--bc-black);border:none;border-radius:3px;padding:.7rem 1rem;font-weight:700;cursor:pointer;letter-spacing:.03em}
.bc-sg__gate-btn:hover,.bc-sg-bj__actions button:hover,.bc-sg-rl__sim button:hover,.bc-sg-rt button:hover{background:#f0af45}
.bc-sg__note{font-size:.85rem;color:#b9b3a6;font-family:"Space Grotesk",sans-serif;border-top:1px solid #2a322c;padding-top:1rem;margin-top:1.25rem}
.bc-sg__rg{font-family:"IBM Plex Mono",monospace;font-size:.75rem;color:var(--bc-alert);margin:.5rem 0 0}
.bc-sg__note strong,.bc-sg__rg strong{color:var(--bc-cream)}

/* Blackjack trainer */
.bc-sg-bj__felt{display:grid;gap:1rem;margin-bottom:1.25rem}
.bc-sg-bj__lbl{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.08em;color:var(--bc-green);display:block;margin-bottom:.4rem}
.bc-sg-bj__lbl em{color:var(--bc-amber);font-style:normal}
.bc-sg-bj__cards{display:flex;gap:.5rem;flex-wrap:wrap;min-height:3.2rem}
.bc-sg-bj__c{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:3.2rem;background:var(--bc-cream);color:var(--bc-black);border-radius:4px;font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:1.1rem}
.bc-sg-bj__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.bc-sg-bj__actions button[disabled]{opacity:.35;cursor:not-allowed}
.bc-sg-bj__out{min-height:2.6rem;font-family:"Space Grotesk",sans-serif;font-size:.95rem;padding:.6rem .8rem;border-radius:3px;border:1px solid transparent}
.bc-sg-bj__out.is-ok{border-color:var(--bc-green);color:#6FCF7F}
.bc-sg-bj__out.is-no{border-color:var(--bc-alert);color:#f0a08c}
.bc-sg-bj__out strong{color:var(--bc-amber)}
.bc-sg-bj__score{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;font-family:"IBM Plex Mono",monospace;font-size:.82rem;color:#b9b3a6;margin-top:1rem}
.bc-sg-bj__score strong{color:var(--bc-cream)}
#bc-bj-next{margin-left:auto}

/* Roulette + RTP shared rows */
.bc-sg-rl__controls,.bc-sg-rt__controls{display:grid;gap:1rem;margin-bottom:1.25rem}
.bc-sg-rl__field span,.bc-sg-rt__field span{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.06em;color:var(--bc-green);display:block;margin-bottom:.35rem}
.bc-sg-rl__field select,.bc-sg-rt__field select,.bc-sg-rt__field input[type=range]{width:100%;background:#121614;color:var(--bc-cream);border:1px solid #2a322c;border-radius:3px;padding:.5rem;font-family:"IBM Plex Mono",monospace}
.bc-sg-rl__wheel label,.bc-sg-rt__field span em{font-family:"Space Grotesk",sans-serif;color:var(--bc-cream)}
.bc-sg-rl__wheel{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}
.bc-sg-rl__out,.bc-sg-rt__out{background:#121614;border:1px solid #2a322c;border-radius:3px;padding:.5rem .9rem;margin-bottom:1rem}
.bc-sg-rl__row,.bc-sg-rt__row{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px solid #20261f;font-family:"Space Grotesk",sans-serif;font-size:.92rem;color:#b9b3a6}
.bc-sg-rl__row:last-child,.bc-sg-rt__row:last-child{border-bottom:none}
.bc-sg-rl__row strong,.bc-sg-rt__row strong{font-family:"IBM Plex Mono",monospace;color:var(--bc-cream)}
.bc-sg-rl__row--edge strong,.bc-sg-rt__row--edge strong{color:var(--bc-alert)}
.bc-sg-rl__simout{font-family:"Space Grotesk",sans-serif;font-size:.92rem;color:#b9b3a6;margin:.75rem 0 0}
.bc-sg-rl__simout strong,.bc-sg-rt__real{color:var(--bc-amber)}
/* EU-vs-US side-by-side (duo): two columns, each with its own dial + live loss readout */
.bc-sg-rl__duo-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
.bc-sg-rl__col{background:#121614;border:1px solid #2a322c;border-radius:3px;padding:1rem;display:flex;flex-direction:column}
.bc-sg-rl__col--us{border-color:#3a2a24}
.bc-sg-rl__col-head{font-family:"Press Start 2P",monospace;font-size:.72rem;line-height:1.6;color:var(--bc-cream);margin:0 0 .75rem;text-align:center}
.bc-sg-rl__col-head span{display:block;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.05em;color:var(--bc-green);margin-top:.4rem}
.bc-sg-rl__col--us .bc-sg-rl__col-head span{color:var(--bc-amber)}
.bc-sg-rl__col .bc-sg-viz{background:transparent;border:none;padding:.25rem 0;margin:0 0 .6rem}
.bc-sg-rl__live{font-family:"IBM Plex Mono",monospace;font-size:1.05rem;letter-spacing:.03em;color:#b9b3a6;text-align:center;margin:.2rem 0 .9rem}
.bc-sg-rl__live strong{font-size:1.3rem;color:var(--bc-cream);font-weight:700}
.bc-sg-rl__col--us .bc-sg-rl__live strong{color:var(--bc-alert)}
.bc-sg-rl__live.is-running strong{animation:bc-rl-tick .9s ease-in-out infinite}
@keyframes bc-rl-tick{50%{opacity:.72}}
@media(prefers-reduced-motion:reduce){.bc-sg-rl__live.is-running strong{animation:none}}
.bc-sg-rt__chart{margin:1rem 0;background:#121614;border:1px solid #2a322c;border-radius:3px;padding:.5rem}
.bc-sg-rt__field em{color:var(--bc-amber);font-style:normal}
.bc-sg-rt__verdict{position:relative;font-family:"Space Grotesk",sans-serif;font-size:.92rem;line-height:1.55;color:#c9c3b6;margin:.9rem 0 0;padding:.75rem .9rem .75rem 1.9rem;border:1px solid #2a322c;border-radius:3px;background:#121614}
.bc-sg-rt__verdict::before{content:"\203A";position:absolute;left:.75rem;top:.7rem;font-family:"IBM Plex Mono",monospace;font-weight:700;color:var(--bc-green)}
.bc-sg-rt__verdict:empty{display:none}
.bc-sg-rt__verdict strong{color:var(--bc-amber)}
.bc-sg-rt__hint{font-family:"IBM Plex Mono","Courier New",monospace;font-size:.78rem;line-height:1.5;color:#8a8478;margin:0 0 .9rem}
.bc-sg-rt__hint strong{color:var(--bc-green)}

/* ------------------------------------------------------------------ *
 * SIMULATORI — shared visual stage (.bc-sg-viz).
 * ONE abstract phosphor instrument reused by every tool, keyed by
 * data-sg-viz="wheel|reel|deck". It is DECORATION over the live numbers
 * (aria-hidden): it makes the many-runs convergence watchable, never a
 * single win. No €/balance/coin/win-FX — reuses CRT tokens only. The
 * .bc-sg * reduced-motion reset below already freezes every animation
 * here, and a settled dial reads identically static.
 * ------------------------------------------------------------------ */
.bc-sg-viz{margin:0 0 1.1rem;background:#121614;border:1px solid #2a322c;border-radius:3px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.bc-sg-viz__dial{position:relative;width:150px;height:150px}
.bc-sg-viz__dial svg{display:block;width:100%;height:100%}
/* the rotating group; JS sets --sg-turns, CSS animates the settle */
.bc-sg-viz__rotor{transform-origin:50% 50%;transition:transform 2.4s cubic-bezier(.12,.7,.16,1)}
.bc-sg-viz.is-spinning .bc-sg-viz__rotor{animation:bc-sg-spin .5s linear infinite}
.bc-sg-viz.is-spinning .bc-sg-viz__dial{filter:blur(.6px)}
/* fixed pointer that reads the settled position */
.bc-sg-viz__pointer{fill:var(--bc-amber);filter:drop-shadow(0 0 4px rgba(232,160,48,.6))}
/* readout under the dial: the AGGREGATE statistic, never a single outcome */
.bc-sg-viz__read{font-family:"IBM Plex Mono","Courier New",monospace;font-size:.82rem;letter-spacing:.04em;color:var(--bc-green);text-align:center;min-height:1.2rem}
.bc-sg-viz__read strong{color:var(--bc-amber);font-weight:700}
.bc-sg-viz__runs{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:#8a8478;letter-spacing:.06em}
/* reel variant: a vertical phosphor gauge (abstract, NOT a slot symbol strip) */
.bc-sg-viz[data-sg-viz="reel"] .bc-sg-viz__dial{width:64px;height:150px}
.bc-sg-viz__fill{fill:var(--bc-amber);transition:transform 2.2s cubic-bezier(.12,.7,.16,1);transform-origin:50% 100%}
.bc-sg-viz.is-spinning .bc-sg-viz__fill{animation:bc-sg-reel .35s ease-in-out infinite alternate}
@keyframes bc-sg-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes bc-sg-reel{from{transform:scaleY(.15)}to{transform:scaleY(.95)}}

@media(min-width:640px){
	.bc-sg-rl__controls{grid-template-columns:1fr 1fr;align-items:end}
	.bc-sg-rt__controls{grid-template-columns:1fr 1fr}
	.bc-sg-rl__duo-grid{grid-template-columns:1fr 1fr}
}

/* ------------------------------------------------------------------ *
 * SIGNATURE OVERLAY — full-screen intro gesture per tool.
 * On open a fixed, viewport-filling scrim shows the BIG game gesture
 * (deck cut / wheel flick / slot lever). The visitor performs it (or
 * skips via the button / backdrop / Esc); on commit the tool's headline
 * statistic flashes on the big surface, then the overlay dissolves and
 * only the page remains. It mimics the game's REAL gesture and reveals
 * the MATHEMATICS — never coins/jackpot/celebration (Decreto-Dignità).
 * Driven by window.bcSgOverlay; the invitation nudge lives on the big
 * handle. The final rule freezes all of it under reduced-motion.
 * ------------------------------------------------------------------ */
html.bc-sg-ovl-open{overflow:hidden}
.bc-sg-ovl{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;
	background:radial-gradient(circle at 50% 42%,#12160f 0,var(--bc-black) 78%);
	box-shadow:inset 0 0 160px rgba(0,0,0,.9);animation:bc-sg-ovl-in .4s ease-out;user-select:none;touch-action:none}
.bc-sg-ovl[hidden]{display:none}
.bc-sg-ovl.is-closing{animation:bc-sg-ovl-out .48s ease-in forwards}
.bc-sg-ovl__inner{display:flex;flex-direction:column;align-items:center;gap:clamp(1.4rem,4vh,2.8rem);width:min(92vw,720px);padding:2rem;text-align:center}
.bc-sg-ovl__prompt{font-family:"IBM Plex Mono","Courier New",monospace;font-size:clamp(1rem,2.4vw,1.5rem);line-height:1.5;color:var(--bc-cream);margin:0;max-width:32ch}
.bc-sg-ovl__prompt strong{color:var(--bc-amber)}
.bc-sg-ovl__stage{position:relative;display:flex;align-items:center;justify-content:center;width:min(80vw,440px);height:clamp(200px,34vh,320px)}
.bc-sg-ovl__handle{cursor:grab;background:transparent;border:0;padding:0;position:relative;z-index:2}
.bc-sg-ovl__handle:active{cursor:grabbing}
.bc-sg-ovl__prop{position:absolute;z-index:1;pointer-events:none}
/* reveal + skip */
.bc-sg-ovl__reveal{min-height:3.4rem;display:flex;flex-direction:column;gap:.4rem;opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease;margin:0}
.bc-sg-ovl.is-revealed .bc-sg-ovl__reveal{opacity:1;transform:none}
.bc-sg-ovl.is-revealed .bc-sg-ovl__stage{opacity:.25;transition:opacity .4s ease}
.bc-sg-ovl__stat{font-family:"Press Start 2P","Courier New",monospace;font-size:clamp(1rem,3vw,1.7rem);color:var(--bc-green);text-shadow:0 0 16px rgba(63,185,80,.5);line-height:1.5}
.bc-sg-ovl__sub{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:#9a948a;letter-spacing:.03em}
.bc-sg-ovl__skip{font-family:"IBM Plex Mono","Courier New",monospace;font-size:.78rem;letter-spacing:.06em;color:#8a8478;background:transparent;border:0;border-bottom:1px dotted #4a5147;padding:2px 0;cursor:pointer;transition:color .15s ease}
.bc-sg-ovl__skip:hover{color:var(--bc-amber)}
.bc-sg-ovl__handle:focus-visible,.bc-sg-ovl__skip:focus-visible{outline:3px solid var(--bc-green);outline-offset:4px}
@keyframes bc-sg-ovl-in{from{opacity:0}to{opacity:1}}
@keyframes bc-sg-ovl-out{from{opacity:1}to{opacity:0}}

/* BLACKJACK — cut the shoe: a big card slides off the stack (--cut 0..1) */
.bc-sg-ovl--cut .bc-sg-cut__card{width:120px;height:168px;background:var(--bc-black);border:3px solid var(--bc-amber);border-radius:10px;box-shadow:0 0 28px rgba(232,160,48,.4);transform:translateX(calc(var(--cut,0)*180px)) rotate(calc(var(--cut,0)*8deg));transition:transform .12s ease;animation:bc-sg-cut-nudge 2.4s ease-in-out .7s 3}
.bc-sg-ovl--cut .bc-sg-cut__card.is-done{animation:none}
.bc-sg-ovl--cut .bc-sg-cut__grip{position:absolute;top:50%;left:50%;width:44px;height:3px;margin:-1px 0 0 -22px;background:var(--bc-amber);box-shadow:0 -12px 0 var(--bc-amber),0 12px 0 var(--bc-amber);opacity:.85}
.bc-sg-ovl--cut .bc-sg-cut__stack{width:120px;height:168px;background:repeating-linear-gradient(90deg,#0c100c 0 4px,#161c15 4px 8px);border:3px solid #2a322c;border-radius:10px;box-shadow:inset 0 0 20px rgba(0,0,0,.75)}
@keyframes bc-sg-cut-nudge{0%,100%{transform:translateX(0) rotate(0)}12%{transform:translateX(26px) rotate(1.4deg)}24%{transform:translateX(0) rotate(0)}}

/* ROULETTE — spin the wheel: circular drag rotates the rotor (--spin, deg) */
.bc-sg-ovl--spin .bc-sg-spin__wheel{width:clamp(180px,52vw,260px);height:clamp(180px,52vw,260px);border-radius:50%;position:relative;padding:0}
.bc-sg-ovl--spin .bc-sg-spin__rotor{position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#0c100c 0 40%,#12160f 40% 100%);
  border:3px solid var(--bc-green);box-shadow:0 0 26px rgba(63,185,80,.45),inset 0 0 30px rgba(0,0,0,.8);
  transform:rotate(calc(var(--spin,0)*1deg));transition:transform .06s linear;
  animation:bc-sg-spin-nudge 2.4s ease-in-out .7s 3}
.bc-sg-ovl--spin .bc-sg-spin__wheel.is-done .bc-sg-spin__rotor{animation:none}
.bc-sg-ovl--spin .bc-sg-spin__tick{position:absolute;top:6px;left:50%;width:3px;height:16px;margin-left:-1.5px;
  background:var(--bc-amber);transform-origin:50% calc(clamp(180px,52vw,260px)/2 - 6px);opacity:.8}
.bc-sg-ovl--spin .bc-sg-spin__grip{position:absolute;top:50%;left:50%;width:64%;height:10px;margin-top:-5px;
  transform:translateX(-50%);border-radius:5px;
  background:repeating-linear-gradient(90deg,var(--bc-green) 0 6px,#0c100c 6px 12px);opacity:.9}
.bc-sg-ovl--spin .bc-sg-spin__hub{position:absolute;top:50%;left:50%;width:38px;height:38px;margin:-19px 0 0 -19px;
  border-radius:50%;background:var(--bc-cabinet);border:2px solid #2a322c;z-index:3;pointer-events:none}
.bc-sg-ovl--spin .bc-sg-spin__pointer{top:calc(50% - clamp(90px,26vw,130px) - 12px);left:50%;
  width:0;height:0;margin-left:-9px;border-left:9px solid transparent;border-right:9px solid transparent;
  border-top:16px solid var(--bc-amber);filter:drop-shadow(0 0 6px rgba(232,160,48,.6))}
@keyframes bc-sg-spin-nudge{0%,100%{transform:rotate(0)}14%{transform:rotate(22deg)}28%{transform:rotate(0)}}

/* RTP — pull the lever: a big knob on an arm travels DOWN (--pull 0..1) */
.bc-sg-ovl--lever .bc-sg-lever__frame{width:10px;height:clamp(150px,26vh,240px);background:linear-gradient(180deg,var(--bc-cabinet),#0c100c);border-radius:5px}
.bc-sg-ovl--lever .bc-sg-lever__arm{position:absolute;top:0;width:64px;height:64px}
.bc-sg-ovl--lever .bc-sg-lever__arm{transform:translateY(calc(var(--pull,0)*clamp(120px,20vh,190px)));transition:transform .1s ease;animation:bc-sg-lever-nudge 2.4s ease-in-out .7s 3}
.bc-sg-ovl--lever .bc-sg-lever__arm.is-done{animation:none}
.bc-sg-ovl--lever .bc-sg-lever__knob{display:block;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--bc-alert),#8f2c1c);box-shadow:0 0 22px rgba(232,106,80,.6),inset 0 3px 7px rgba(255,255,255,.28)}
@keyframes bc-sg-lever-nudge{0%,100%{transform:translateY(0)}16%{transform:translateY(20px)}32%{transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){.bc-sg *,.bc-sg-ovl,.bc-sg-ovl *{transition:none!important;animation:none!important}}

.bc-sg__gate[hidden]{display:none!important}
.bc-sg__body[aria-hidden="true"]{filter:blur(3px);pointer-events:none;user-select:none}

/* Operator logo tile (CRT phosphor stencil) — neutral directory glyph */
body .wrapper .bc-board .bc-op { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
body .wrapper .bc-board .bc-op__logo { height: 30px; width: auto; max-width: 128px; display: block; image-rendering: pixelated; opacity: 0.92; filter: drop-shadow(0 0 4px rgba(63, 185, 80, 0.35)); }
body .wrapper .bc-board .bc-op__name { font-weight: 700; color: var(--bc-cream); letter-spacing: 4px; }
body .wrapper .bc-board .bc-op__link { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; text-decoration: none; color: inherit; }
body .wrapper .bc-board .bc-op__link:hover .bc-op__name, body .wrapper .bc-board .bc-op__link:focus-visible .bc-op__name { color: var(--bc-amber); }
body .wrapper .bc-board .bc-op__link:hover .bc-op__logo { opacity: 1; }
body .wrapper .bc-board .bc-op__link:focus-visible { outline: 2px solid var(--bc-amber); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { body .wrapper .bc-board .bc-op__logo { filter: none; } }

/* ================================================================== *
   Pivot additions (2026-07-07): freshness stamp + tool embed mode.
   Match the sheet's body .wrapper specificity so they take effect.
   ================================================================== */

/* WS4 — user-visible "ultimo aggiornamento" in the operator-list foot */
body .wrapper .bc-board-foot .bc-updated { color: rgba(237, 230, 216, 0.9); }
body .wrapper .bc-board-foot .bc-updated strong { color: var(--bc-green); font-weight: 700; }

/* WS3 — tool embed mode (?embed=1): chrome-free, plus the "incorpora" snippet */
body.bc-embed { background: var(--bc-black); }
body.bc-embed .bc-sg { margin: 0; border-radius: 0; }
.bc-embed-note { font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; color: rgba(237, 230, 216, 0.7); text-align: center; padding: 10px; }
.bc-embed-note a { color: var(--bc-green); }
.bc-embed-snippet { margin: 20px 0; border: 1px solid var(--bc-cabinet); border-radius: 6px; background: #0c100c; }
.bc-embed-snippet summary { cursor: pointer; padding: 12px 16px; font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 13px; color: var(--bc-green); }
.bc-embed-snippet textarea { width: 100%; min-height: 84px; background: #060806; color: var(--bc-cream); border: 0; border-top: 1px solid var(--bc-cabinet); padding: 12px 16px; font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; resize: vertical; }

/* ---------- Cornerstone SEO: kicker labels + lead/intro prose (2026-07-09) ----------
   The old machine-label <h2> (COME_SI_GIOCA.BIN) became a small mono "kicker" above a
   real keyworded <h2>; the CRT identity is preserved as the eyebrow, the heading now
   carries the SEO. Lead/intro are genuine readable body prose. */
.bc-kicker {
	display: block;
	font-family: var(--bc-mono, "IBM Plex Mono", ui-monospace, monospace);
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--bc-green);
	opacity: .8;
	margin-bottom: .4rem;
}
.bc-hero__lead {
	max-width: 60ch;
	margin: 1.4rem 0 0;   /* left-align with the H1 / boot-lines — was auto-centered, which read as a floating popup */
	color: var(--bc-cream);
	font-size: 1.05rem;
	line-height: 1.7;
}
.bc-section-intro {
	max-width: 68ch;
	margin: 0 0 2rem;
	color: var(--bc-cream);
	line-height: 1.7;
}
.bc-section--dark .bc-section-intro { color: var(--bc-cream); opacity: .92; }

/* ============================================================
   SLOT REVIEW LAYOUT (wave-1, 2026-07) — reference-informed,
   fil-rouge-safe. No promo, no emoji. Arcade-CRT identity kept.
   ============================================================ */

/* --- Breadcrumb --- */
.bc-breadcrumb {
	font-family: var(--bc-mono, monospace);
	font-size: .72rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--bc-green);
	opacity: .8;
	margin: 0 0 1.2rem;
}
.bc-breadcrumb a { color: var(--bc-green); text-decoration: none; }
.bc-breadcrumb a:hover { text-decoration: underline; }
.bc-breadcrumb span[aria-current] { color: var(--bc-cream); opacity: .7; }

/* --- Quick-facts box (top of single) --- */
.bc-slot-facts {
	border: 1px solid rgba(232,160,48,.35);
	background: linear-gradient(180deg, rgba(26,31,27,.9), rgba(11,14,12,.9));
	border-radius: 6px;
	padding: 1.1rem 1.3rem;
	margin: 0 0 1.8rem;
	box-shadow: inset 0 0 0 1px rgba(11,14,12,.6), 0 0 22px rgba(232,160,48,.06);
}
.bc-slot-facts dl { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 1.2rem; margin: 0; }
.bc-slot-facts dt {
	font-family: var(--bc-mono, monospace);
	font-size: .72rem; letter-spacing: .05em; text-transform: uppercase;
	color: var(--bc-amber); align-self: center;
}
.bc-slot-facts dd { margin: 0; color: var(--bc-cream); font-size: .95rem; }
.bc-slot-facts .bc-slot-verdict { color: var(--bc-green); font-weight: 600; }
.bc-slot-facts .bc-slot-verdict--nd { color: var(--bc-cream); opacity: .7; font-weight: 400; font-style: italic; }
@media (max-width: 540px) { .bc-slot-facts dl { grid-template-columns: 1fr; gap: .15rem; } .bc-slot-facts dt { margin-top: .6rem; } }

/* --- Table of contents (anchor jumps) --- */
.bc-slot-toc {
	border-left: 2px solid var(--bc-green);
	padding: .3rem 0 .3rem 1rem;
	margin: 0 0 2rem;
}
.bc-slot-toc p {
	font-family: var(--bc-mono, monospace); font-size: .7rem; letter-spacing: .06em;
	text-transform: uppercase; color: var(--bc-green); margin: 0 0 .5rem;
}
.bc-slot-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem .9rem; }
.bc-slot-toc a { color: var(--bc-cream); text-decoration: none; font-size: .88rem; border-bottom: 1px dotted rgba(237,230,216,.4); }
.bc-slot-toc a:hover { color: var(--bc-amber); border-bottom-color: var(--bc-amber); }

/* --- Pros / cons (released only) or "punti tecnici" (upcoming) --- */
.bc-slot-pc { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 2rem 0; }
.bc-slot-pc__col { border: 1px solid rgba(237,230,216,.18); border-radius: 6px; padding: 1rem 1.2rem; background: rgba(26,31,27,.5); }
.bc-slot-pc__col h3 { font-size: .95rem; margin: 0 0 .7rem; letter-spacing: .02em; }
.bc-slot-pc__col--pro h3 { color: var(--bc-green); }
.bc-slot-pc__col--con h3 { color: var(--bc-alert); }
.bc-slot-pc ul { margin: 0; padding-left: 1.1rem; }
.bc-slot-pc li { color: var(--bc-cream); font-size: .9rem; line-height: 1.55; margin-bottom: .35rem; }
.bc-slot-pc--tech .bc-slot-pc__col--con h3 { color: var(--bc-amber); }
@media (max-width: 540px) { .bc-slot-pc { grid-template-columns: 1fr; } }

/* --- Reserved demo placeholder (empty-state, no embed) --- */
.bc-slot-demo {
	border: 1px dashed rgba(232,160,48,.4);
	border-radius: 6px; padding: 1.4rem; margin: 2rem 0;
	text-align: center; color: var(--bc-cream); opacity: .75;
	font-family: var(--bc-mono, monospace); font-size: .82rem; letter-spacing: .03em;
}
/* --- Thumbnail state (SlotsLaunch CDN thumb sideloaded; click-to-play iframe = Florian) --- */
.bc-slot-demo--thumb {
	position: relative; padding: 0; opacity: 1; border-style: solid;
	border-color: rgba(232,160,48,.4); overflow: hidden; line-height: 0;
}
.bc-slot-demo__img { display: block; width: 100%; height: auto; }
.bc-slot-demo__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	display: inline-flex; align-items: center; gap: .5rem; cursor: pointer;
	padding: .7rem 1.4rem; border: 2px solid var(--bc-amber); background: rgba(18,22,20,.82);
	color: var(--bc-amber); font-family: "Press Start 2P", "Courier New", monospace;
	font-size: 11px; letter-spacing: .04em; line-height: 1; transition: background .2s ease, color .2s ease;
}
.bc-slot-demo__play:hover { background: var(--bc-amber); color: var(--bc-black); }

/* --- Similar / same-provider internal links --- */
.bc-slot-related { margin: 2.4rem 0 0; border-top: 1px solid rgba(237,230,216,.15); padding-top: 1.4rem; }
.bc-slot-related h2 { font-size: 1.05rem; }
.bc-slot-related ul { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.bc-slot-related a {
	display: inline-block; padding: .35rem .8rem; border: 1px solid rgba(63,185,80,.4);
	border-radius: 4px; color: var(--bc-cream); text-decoration: none; font-size: .85rem;
}
.bc-slot-related a:hover { border-color: var(--bc-amber); color: var(--bc-amber); }

/* --- HUB card grid + sort/filter controls --- */
.bc-slot-controls { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin: 0 0 1.4rem; }
.bc-slot-controls__search { flex: 1 1 200px; }
.bc-slot-controls__search input {
	width: 100%; box-sizing: border-box; background: rgba(11,14,12,.6);
	border: 1px solid rgba(237,230,216,.25); border-radius: 4px; padding: .45rem .7rem;
	color: var(--bc-cream); font-size: .9rem;
}
.bc-slot-controls__search input:focus { outline: 2px solid var(--bc-amber); outline-offset: 1px; }
.bc-slot-controls__sort { font-family: var(--bc-mono, monospace); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bc-cream); display: flex; align-items: center; gap: .4rem; }
.bc-slot-controls__sort select {
	background: rgba(11,14,12,.6); color: var(--bc-cream); border: 1px solid rgba(237,230,216,.3);
	border-radius: 4px; padding: .3rem .5rem; font-size: .8rem;
}
.bc-slot-controls__count { font-family: var(--bc-mono, monospace); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bc-green); margin-left: auto; }
.bc-slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin: 0 0 2.4rem; list-style: none; padding: 0; }
.bc-slot-card { border: 1px solid rgba(232,160,48,.25); border-radius: 6px; overflow: hidden; background: rgba(26,31,27,.6); display: flex; flex-direction: column; transition: border-color .18s ease, transform .18s ease; }
.bc-slot-card[hidden] { display: none; }
.bc-slot-card:hover { border-color: var(--bc-amber); transform: translateY(-2px); }
.bc-slot-card__link { text-decoration: none; color: inherit; display: flex; flex-direction: column; height: 100%; }
.bc-slot-card__thumb { aspect-ratio: 16/10; background: linear-gradient(135deg, #1a1f1b, #0B0E0C); display: flex; align-items: center; justify-content: center; padding: .6rem; position: relative; }
.bc-slot-card__thumb > span { color: var(--bc-amber); font-family: var(--bc-mono, monospace); font-size: .72rem; text-align: center; line-height: 1.3; letter-spacing: .02em; }
.bc-slot-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* when a generated tile is present, it fills the thumb edge-to-edge (no text-fallback padding) */
.bc-slot-card__thumb:has(picture) { padding: 0; }
.bc-slot-card__thumb picture { display: block; width: 100%; height: 100%; }
.bc-slot-card__body { padding: .8rem .9rem; display: flex; flex-direction: column; gap: .3rem; }
.bc-slot-card__badge { align-self: flex-start; font-family: var(--bc-mono, monospace); font-size: .6rem; text-transform: uppercase; letter-spacing: .06em; color: var(--bc-black); background: var(--bc-amber); border-radius: 3px; padding: .15rem .45rem; }
.bc-slot-card__badge--nuovo { background: var(--bc-green); }
.bc-slot-card__name { font-weight: 600; color: var(--bc-cream); font-size: .95rem; line-height: 1.3; }
.bc-slot-card__prov { font-size: .78rem; color: rgba(237,230,216,.7); }
.bc-slot-card__meta { font-family: var(--bc-mono, monospace); font-size: .68rem; color: var(--bc-green); text-transform: uppercase; letter-spacing: .03em; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .1rem; }
.bc-slot-card__date { color: var(--bc-amber); }
@media (prefers-reduced-motion: reduce) { .bc-slot-card { transition: none; } .bc-slot-card:hover { transform: none; } }

/* 18+ accessible age mark (IT-F02) — inline image, aligned with terminal chips */
.bc-footer__age-img{
	width:44px;height:44px;flex:0 0 auto;
	vertical-align:middle;border-radius:50%;
}
.bc-footer__badges{align-items:center;}

/* CoR: list-valued board cells rendered as scannable chips / stacked lines (single-casino board) */
body .wrapper .bc-board td.bc-cell--rich { padding-top: 15px; padding-bottom: 15px; }
body .wrapper .bc-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 7px 8px; }
body .wrapper .bc-chips .bc-chip { display: inline-block; font-family: "IBM Plex Mono", "Courier New", monospace; font-size: 12px; line-height: 1.5; color: rgba(237, 230, 216, 0.92); background: rgba(20, 22, 20, 0.55); border: 1px solid rgba(232, 160, 48, 0.32); border-radius: 2px; padding: 3px 9px; letter-spacing: 0.2px; white-space: nowrap; }
body .wrapper .bc-cell-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
body .wrapper .bc-cell-list li { position: relative; padding-left: 16px; font-size: 14px; line-height: 1.45; color: rgba(237, 230, 216, 0.9); }
body .wrapper .bc-cell-list li::before { content: "\203A"; position: absolute; left: 2px; top: 0; color: var(--bc-green); }
@media (max-width: 640px) { body .wrapper .bc-chips .bc-chip { white-space: normal; } }
