
/* Lotto Orbit Visual Perfection Edition — homepage + EuroMillions preview only */
body.visual-perfection-home,
body.visual-perfection-euromillions {
  --vp-surface: color-mix(in srgb, var(--surface, #ffffff) 84%, rgba(255,255,255,.55));
  --vp-surface-strong: color-mix(in srgb, var(--surface, #ffffff) 72%, rgba(255,255,255,.82));
  --vp-border: color-mix(in srgb, var(--line, #d7e1eb) 58%, rgba(255,255,255,.75));
  --vp-shadow: 0 22px 56px rgba(7, 22, 40, 0.12), 0 10px 24px rgba(7, 22, 40, 0.08);
  --vp-shadow-soft: 0 14px 34px rgba(7, 22, 40, 0.08), 0 4px 12px rgba(7, 22, 40, 0.05);
  --vp-radius-xl: 28px;
  --vp-radius-lg: 22px;
  --vp-radius-md: 16px;
}
html[data-theme="dark"] body.visual-perfection-home,
html[data-theme="dark"] body.visual-perfection-euromillions {
  --vp-surface: rgba(12, 23, 38, 0.78);
  --vp-surface-strong: rgba(11, 20, 34, 0.92);
  --vp-border: rgba(124, 183, 196, 0.2);
  --vp-shadow: 0 26px 70px rgba(0, 0, 0, 0.42), 0 8px 24px rgba(0, 0, 0, 0.28);
  --vp-shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.24), 0 4px 12px rgba(0, 0, 0, 0.16);
}
body.visual-perfection-home main.container,
body.visual-perfection-euromillions main.container { position: relative; z-index: 0; }
body.visual-perfection-home main.container::before,
body.visual-perfection-euromillions main.container::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 440px;
  pointer-events: none;
  background:
    radial-gradient(circle at 8% 14%, rgba(91, 243, 209, 0.18), transparent 26%),
    radial-gradient(circle at 92% 12%, rgba(255, 196, 120, 0.18), transparent 32%),
    radial-gradient(circle at 48% -12%, rgba(100, 165, 255, 0.18), transparent 40%);
  z-index: -1;
  filter: blur(2px);
}
body.visual-perfection-home .button,
body.visual-perfection-euromillions .button,
body.visual-perfection-euromillions .orbit-quick-button {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease;
}
body.visual-perfection-home .button:hover,
body.visual-perfection-euromillions .button:hover,
body.visual-perfection-euromillions .orbit-quick-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(7, 22, 40, .16);
}
html[data-theme="dark"] body.visual-perfection-home .button:hover,
html[data-theme="dark"] body.visual-perfection-euromillions .button:hover,
html[data-theme="dark"] body.visual-perfection-euromillions .orbit-quick-button:hover {
  box-shadow: 0 16px 32px rgba(0,0,0,.32);
}
body.visual-perfection-home .hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(22px, 3vw, 34px);
  align-items: stretch;
  margin-top: 18px;
}
body.visual-perfection-home .hero > div:first-child,
body.visual-perfection-home .hero-art {
  position: relative;
  overflow: hidden;
  border-radius: var(--vp-radius-xl);
  border: 1px solid var(--vp-border);
  box-shadow: var(--vp-shadow);
}
body.visual-perfection-home .hero > div:first-child {
  padding: clamp(26px, 3vw, 38px);
  background:
    linear-gradient(145deg, rgba(255,255,255,.84), rgba(255,255,255,.62) 46%, rgba(245,252,255,.52)),
    linear-gradient(120deg, rgba(97,243,208,.14), transparent 36%),
    linear-gradient(165deg, rgba(255,210,132,.16), transparent 44%);
  backdrop-filter: blur(16px) saturate(1.1);
}
html[data-theme="dark"] body.visual-perfection-home .hero > div:first-child {
  background:
    linear-gradient(145deg, rgba(12,24,38,.94), rgba(8,18,31,.86) 52%, rgba(11,25,41,.82)),
    linear-gradient(120deg, rgba(97,243,208,.1), transparent 36%),
    linear-gradient(165deg, rgba(255,210,132,.11), transparent 44%);
}
body.visual-perfection-home .hero > div:first-child::before,
body.visual-perfection-home .hero-art::before,
body.visual-perfection-euromillions .game-hero::before,
body.visual-perfection-euromillions .panel::before,
body.visual-perfection-euromillions .orbit-game-story::before,
body.visual-perfection-euromillions .orbit-game-info-pair::before,
body.visual-perfection-home .country-tile::before,
body.visual-perfection-home .orbit-intel::before {
  content:"";
  position:absolute;
  inset: 0;
  pointer-events:none;
  border-radius: inherit;
  background:
    linear-gradient(135deg, rgba(255,255,255,.38), rgba(255,255,255,0) 24%),
    linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,0) 40%);
  opacity: .75;
}
body.visual-perfection-home .hero-art {
  padding: clamp(20px, 2.3vw, 26px);
  background:
    radial-gradient(circle at 20% 18%, rgba(117,255,221,.18), transparent 26%),
    radial-gradient(circle at 82% 20%, rgba(255,211,130,.16), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.82), rgba(244,250,255,.6));
}
html[data-theme="dark"] body.visual-perfection-home .hero-art {
  background:
    radial-gradient(circle at 20% 18%, rgba(117,255,221,.15), transparent 26%),
    radial-gradient(circle at 82% 20%, rgba(255,211,130,.14), transparent 28%),
    linear-gradient(180deg, rgba(9,20,34,.93), rgba(10,22,36,.85));
}
body.visual-perfection-home .atlas-globe-scene { min-height: 100%; border-radius: 24px; }
body.visual-perfection-home .vp-home-pills,
body.visual-perfection-euromillions .vp-euro-pills {
  display:flex; flex-wrap:wrap; gap:10px; margin: 18px 0 0;
}
body.visual-perfection-home .vp-home-pill,
body.visual-perfection-euromillions .vp-euro-pill {
  display:inline-flex; align-items:center; gap:8px;
  padding: 8px 13px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--vp-surface-strong) 84%, rgba(120,238,210,.18));
  border: 1px solid color-mix(in srgb, var(--vp-border) 78%, rgba(120,238,210,.26));
  font-size: .82rem; font-weight: 700; letter-spacing:.02em;
  box-shadow: 0 10px 22px rgba(16, 32, 49, .06);
}
html[data-theme="dark"] body.visual-perfection-home .vp-home-pill,
html[data-theme="dark"] body.visual-perfection-euromillions .vp-euro-pill {
  background: rgba(13, 28, 44, .78);
  box-shadow: 0 10px 22px rgba(0, 0, 0, .18);
}
body.visual-perfection-home .hero h1,
body.visual-perfection-euromillions .game-hero h1 { line-height: .98; }
body.visual-perfection-home .banner-note {
  display:inline-flex; align-items:center; gap:10px; padding: 12px 16px; margin-top:20px;
  background: color-mix(in srgb, var(--vp-surface-strong) 84%, rgba(100,165,255,.12));
  border:1px solid var(--vp-border); border-radius: 16px; box-shadow: var(--vp-shadow-soft);
}
body.visual-perfection-home .mini-stats,
body.visual-perfection-euromillions .mini-stats { gap: 14px; }
body.visual-perfection-home .mini-stats > div,
body.visual-perfection-euromillions .mini-stats > div {
  position: relative;
  border-radius: 18px;
  padding: 18px 16px;
  background: color-mix(in srgb, var(--vp-surface-strong) 88%, rgba(91,243,209,.14));
  border: 1px solid var(--vp-border);
  box-shadow: var(--vp-shadow-soft);
}
body.visual-perfection-home .mini-stats > div::after,
body.visual-perfection-euromillions .mini-stats > div::after {
  content:""; position:absolute; left:16px; right:16px; top:0; height:3px; border-radius:999px;
  background: linear-gradient(90deg, rgba(94,243,209,.82), rgba(255,203,126,.82));
}
body.visual-perfection-home #games,
body.visual-perfection-home #orbitCompare,
body.visual-perfection-home #how-it-works,
body.visual-perfection-home .atlas-home-story,
body.visual-perfection-home #orbitDrawCalendar {
  position: relative;
  margin-top: clamp(22px, 3vw, 34px);
  padding: clamp(20px, 2.5vw, 26px);
  border-radius: var(--vp-radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.84), rgba(249,252,255,.74));
  border: 1px solid var(--vp-border);
  box-shadow: var(--vp-shadow-soft);
  overflow: hidden;
}
html[data-theme="dark"] body.visual-perfection-home #games,
html[data-theme="dark"] body.visual-perfection-home #orbitCompare,
html[data-theme="dark"] body.visual-perfection-home #how-it-works,
html[data-theme="dark"] body.visual-perfection-home .atlas-home-story,
html[data-theme="dark"] body.visual-perfection-home #orbitDrawCalendar {
  background: linear-gradient(180deg, rgba(10,22,36,.92), rgba(9,18,31,.86));
}
body.visual-perfection-home .home-browse input,
body.visual-perfection-home .searchfield {
  border-radius: 16px;
  border: 1px solid var(--vp-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 10px 20px rgba(10,24,38,.05);
}
body.visual-perfection-home .country-catalog-grid { gap: 20px; }
body.visual-perfection-home .country-tile {
  position:relative; overflow:hidden; border-radius: 24px;
  border:1px solid var(--vp-border);
  background:
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(246,250,255,.75)),
    radial-gradient(circle at top right, color-mix(in srgb, var(--country-a) 26%, transparent), transparent 40%);
  box-shadow: var(--vp-shadow-soft);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
html[data-theme="dark"] body.visual-perfection-home .country-tile {
  background:
    linear-gradient(180deg, rgba(10,22,36,.94), rgba(8,18,30,.88)),
    radial-gradient(circle at top right, color-mix(in srgb, var(--country-a) 18%, transparent), transparent 44%);
}
body.visual-perfection-home .country-tile:hover { transform: translateY(-4px); box-shadow: var(--vp-shadow); }
body.visual-perfection-home .country-lottery-link {
  border-radius: 14px;
  background: color-mix(in srgb, var(--vp-surface) 80%, rgba(255,255,255,.26));
  border: 1px solid color-mix(in srgb, var(--vp-border) 72%, rgba(255,255,255,.36));
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
body.visual-perfection-home .country-lottery-link:hover { transform: translateX(4px); }
body.visual-perfection-home .orbit-intel,
body.visual-perfection-home .atlas-home-story { overflow: hidden; }
body.visual-perfection-home .section-top,
body.visual-perfection-home .orbit-intel-top,
body.visual-perfection-home .section-head,
body.visual-perfection-home .atlas-home-story-top { position: relative; z-index: 1; }
body.visual-perfection-home .orbit-compare-grid > *,
body.visual-perfection-home .orbit-intel-grid > *,
body.visual-perfection-home .atlas-home-story-grid > * {
  border-radius: 22px;
}
body.visual-perfection-euromillions .game-hero,
body.visual-perfection-euromillions .orbit-game-story,
body.visual-perfection-euromillions .orbit-game-info-pair,
body.visual-perfection-euromillions #numberStudio,
body.visual-perfection-euromillions .panel,
body.visual-perfection-euromillions .atlas-editorial,
body.visual-perfection-euromillions .nav-under {
  position: relative;
  overflow: hidden;
  border-radius: var(--vp-radius-lg);
  border: 1px solid var(--vp-border);
  box-shadow: var(--vp-shadow-soft);
}
body.visual-perfection-euromillions .game-hero {
  padding: clamp(28px, 3vw, 36px);
  background:
    linear-gradient(120deg, rgba(16, 42, 70, .9), rgba(10, 26, 45, .76) 36%, rgba(8,18,31,.62) 48%),
    radial-gradient(circle at 18% 20%, rgba(98,242,210,.20), transparent 24%),
    radial-gradient(circle at 86% 16%, rgba(255,209,130,.22), transparent 28%),
    url("assets/woven-flags/eu.webp") center/cover no-repeat;
  box-shadow: var(--vp-shadow);
}
body.visual-perfection-euromillions .game-hero::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(90deg, rgba(9,18,30,.08), rgba(9,18,30,0) 20%, rgba(255,255,255,.04) 42%, rgba(9,18,30,.18));
}
body.visual-perfection-euromillions .game-hero > div { position: relative; z-index: 1; max-width: 820px; }
body.visual-perfection-euromillions .game-hero p,
body.visual-perfection-euromillions .game-hero h1,
body.visual-perfection-euromillions .game-hero .orbit-quick-actions span,
body.visual-perfection-euromillions .game-hero .ultra-draw-facts,
body.visual-perfection-euromillions .game-hero .vp-euro-pill { color: #f7fbff; }
body.visual-perfection-euromillions .orbit-quick-button {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(92,241,206,.18), rgba(92,241,206,.08));
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
body.visual-perfection-euromillions .ultra-draw-facts {
  margin-top: 20px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(8, 16, 28, .26);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
}
body.visual-perfection-euromillions .nav-under {
  margin-top: 18px; padding: 14px 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(247,250,254,.76));
}
html[data-theme="dark"] body.visual-perfection-euromillions .nav-under {
  background: linear-gradient(180deg, rgba(10,22,36,.94), rgba(9,18,31,.88));
}
body.visual-perfection-euromillions .orbit-game-story,
body.visual-perfection-euromillions .orbit-game-info-pair,
body.visual-perfection-euromillions #numberStudio,
body.visual-perfection-euromillions .panel,
body.visual-perfection-euromillions .atlas-editorial {
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(247,250,254,.78));
}
html[data-theme="dark"] body.visual-perfection-euromillions .orbit-game-story,
html[data-theme="dark"] body.visual-perfection-euromillions .orbit-game-info-pair,
html[data-theme="dark"] body.visual-perfection-euromillions #numberStudio,
html[data-theme="dark"] body.visual-perfection-euromillions .panel,
html[data-theme="dark"] body.visual-perfection-euromillions .atlas-editorial {
  background: linear-gradient(180deg, rgba(10,22,36,.94), rgba(8,18,31,.88));
}
body.visual-perfection-euromillions .orbit-game-story,
body.visual-perfection-euromillions .orbit-game-info-pair,
body.visual-perfection-euromillions .panel,
body.visual-perfection-euromillions .atlas-editorial { padding: clamp(20px, 2.5vw, 26px); }
body.visual-perfection-euromillions #numberStudio { padding: clamp(18px, 2vw, 24px); }
body.visual-perfection-euromillions .orbit-game-info-pair {
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
body.visual-perfection-euromillions .orbit-game-info-pair > * {
  position: relative;
  border-radius: 20px;
  background: color-mix(in srgb, var(--vp-surface-strong) 88%, rgba(255,255,255,.16));
  border: 1px solid color-mix(in srgb, var(--vp-border) 80%, rgba(255,255,255,.32));
  padding: 18px 18px 16px;
  min-height: 100%;
}
body.visual-perfection-euromillions .studio-column,
body.visual-perfection-euromillions .panel,
body.visual-perfection-euromillions .orbit-game-story,
body.visual-perfection-euromillions .atlas-editorial section,
body.visual-perfection-euromillions .atlas-editorial article {
  border-radius: 20px;
}
body.visual-perfection-euromillions .number-ball,
body.visual-perfection-euromillions .format-ball,
body.visual-perfection-euromillions .sample-ball {
  box-shadow: inset 0 10px 16px rgba(255,255,255,.24), inset 0 -10px 14px rgba(0,0,0,.14), 0 12px 20px rgba(12,34,52,.16);
  transform: translateZ(0);
}
body.visual-perfection-euromillions .ball-extra,
body.visual-perfection-euromillions .format-ball.special {
  box-shadow: inset 0 10px 16px rgba(255,255,255,.26), inset 0 -10px 14px rgba(110,70,0,.18), 0 12px 20px rgba(70,44,0,.18);
}
body.visual-perfection-euromillions .analysis-metrics,
body.visual-perfection-euromillions .atlas-insights-grid section,
body.visual-perfection-euromillions .freq-columns > div,
body.visual-perfection-euromillions .source-glance-card,
body.visual-perfection-euromillions .schedule-card {
  border-radius: 18px;
  background: color-mix(in srgb, var(--vp-surface-strong) 90%, rgba(255,255,255,.14));
  border: 1px solid color-mix(in srgb, var(--vp-border) 80%, rgba(255,255,255,.32));
  box-shadow: var(--vp-shadow-soft);
}
body.visual-perfection-euromillions .orbit-countdown-badge,
body.visual-perfection-home .orbit-countdown-badge {
  box-shadow: 0 12px 22px rgba(12,34,52,.12);
}
body.visual-perfection-euromillions .prediction-lines .line-card,
body.visual-perfection-euromillions .results-list .result-row,
body.visual-perfection-euromillions .history-grid > *,
body.visual-perfection-euromillions .check-grid > * {
  border-radius: 18px;
}
body.visual-perfection-home [data-perfection-reveal],
body.visual-perfection-euromillions [data-perfection-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s ease, transform .55s ease;
}
body.visual-perfection-home [data-perfection-reveal].is-visible,
body.visual-perfection-euromillions [data-perfection-reveal].is-visible {
  opacity: 1; transform: none;
}
body.visual-perfection-euromillions .number-ball.perfection-pop,
body.visual-perfection-euromillions .format-ball.perfection-pop,
body.visual-perfection-euromillions .sample-ball.perfection-pop {
  animation: orbitBallReveal .56s cubic-bezier(.2,.85,.25,1) both;
  animation-delay: calc(var(--reveal-index, 0) * 55ms);
}
@keyframes orbitBallReveal {
  0% { opacity: 0; transform: translateY(18px) scale(.82); }
  72% { opacity: 1; transform: translateY(-4px) scale(1.05); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 980px) {
  body.visual-perfection-home .hero { grid-template-columns: 1fr; }
  body.visual-perfection-euromillions .orbit-game-info-pair { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body.visual-perfection-home .hero > div:first-child,
  body.visual-perfection-home .hero-art,
  body.visual-perfection-home #games,
  body.visual-perfection-home #orbitCompare,
  body.visual-perfection-home #how-it-works,
  body.visual-perfection-home .atlas-home-story,
  body.visual-perfection-home #orbitDrawCalendar,
  body.visual-perfection-euromillions .game-hero,
  body.visual-perfection-euromillions .orbit-game-story,
  body.visual-perfection-euromillions .orbit-game-info-pair,
  body.visual-perfection-euromillions #numberStudio,
  body.visual-perfection-euromillions .panel,
  body.visual-perfection-euromillions .atlas-editorial,
  body.visual-perfection-euromillions .nav-under { border-radius: 20px; }
  body.visual-perfection-home .country-catalog-grid { gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  body.visual-perfection-home .button,
  body.visual-perfection-euromillions .button,
  body.visual-perfection-euromillions .orbit-quick-button,
  body.visual-perfection-home .country-tile,
  body.visual-perfection-home .country-lottery-link,
  body.visual-perfection-home [data-perfection-reveal],
  body.visual-perfection-euromillions [data-perfection-reveal],
  body.visual-perfection-euromillions .number-ball.perfection-pop,
  body.visual-perfection-euromillions .format-ball.perfection-pop,
  body.visual-perfection-euromillions .sample-ball.perfection-pop {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
