/* ═══════════════════════════════════════════════════════════════════════════
   OMERTA DESIGN v2 — Global override layer (2026-05-25)
   Chargé en dernier (defer + DOMContentLoaded via SEOHead) pour cascader
   APRÈS les inline styles des 22 pages.
   Préserve les couleurs/structure existantes, modernise le rendu.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── 0. Tokens unifiés (réutilisés partout en cascade) ──────────────── */
:root, html[lang] :root {
  --omr-gold:           #d4a847;
  --omr-gold-bright:    #e8c468;
  --omr-gold-dim:       #a07830;
  --omr-red:            #cc1111;
  --omr-red-bright:     #ff1a1a;
  --omr-red-dim:        #8b0000;
  --omr-red-glow:       rgba(180,20,20,0.35);
  --omr-black:          #06060a;
  --omr-black-mid:      #0e0e16;
  --omr-black-soft:     #14141c;
  --omr-white:          #f0ece4;
  --omr-white-dim:      #b0a898;
  --omr-white-soft:     #e8e2d4;

  --omr-radius-sm:      6px;
  --omr-radius-md:      10px;
  --omr-radius-lg:      18px;

  --omr-shadow-sm:      0 2px 8px rgba(0,0,0,0.15);
  --omr-shadow-md:      0 8px 24px rgba(0,0,0,0.25), 0 2px 4px rgba(0,0,0,0.15);
  --omr-shadow-lg:      0 24px 64px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.2);
  --omr-shadow-red:     0 0 40px rgba(204,17,17,0.18), 0 0 12px rgba(204,17,17,0.3);
  --omr-shadow-gold:    0 0 40px rgba(212,168,71,0.18), 0 0 12px rgba(212,168,71,0.3);

  --omr-ease:           cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --omr-ease-out:       cubic-bezier(0.16, 1, 0.3, 1);
  --omr-ease-bounce:    cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ─── 1. Reset + smooth scrolling + better selection ─────────────────── */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
::selection { background: var(--omr-red); color: var(--omr-white); text-shadow: none; }
::-moz-selection { background: var(--omr-red); color: var(--omr-white); }

/* ─── 2. Scrollbar premium (Webkit + Firefox) ───────────────────────── */
* { scrollbar-width: thin; scrollbar-color: var(--omr-red-dim) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: rgba(6,6,10,0.5); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--omr-red-dim), var(--omr-red));
  border-radius: 10px;
  border: 2px solid rgba(6,6,10,0.5);
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--omr-red), var(--omr-red-bright)); }
::-webkit-scrollbar-corner { background: transparent; }

/* ─── 3. Focus visible — accessibility + premium look ───────────────── */
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--omr-gold);
  outline-offset: 3px;
  border-radius: var(--omr-radius-sm);
  transition: outline-offset 0.2s var(--omr-ease-bounce);
}
button:focus-visible, a:focus-visible { outline-offset: 4px; }

/* ─── 4. Body & antialiasing (subtle but visible upgrade) ───────────── */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
}

/* ─── 5. Typographic polish ─────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  letter-spacing: -0.015em;
  text-wrap: balance;
}
p, li { text-wrap: pretty; }
a {
  transition: color 0.25s var(--omr-ease), opacity 0.25s var(--omr-ease);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* ─── 6. Buttons — premium hover/press states (high specificity) ───── */
html body button:not(.no-omr-style),
html body a.btn,
html body .btn,
html body input[type="submit"],
html body input[type="button"] {
  transition:
    transform 0.2s var(--omr-ease-out),
    box-shadow 0.3s var(--omr-ease-out),
    background 0.3s var(--omr-ease),
    border-color 0.3s var(--omr-ease),
    color 0.3s var(--omr-ease);
  cursor: pointer;
  will-change: transform;
}
html body button:not(.no-omr-style):hover,
html body a.btn:hover,
html body .btn:hover,
html body input[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: var(--omr-shadow-md);
}
html body button:not(.no-omr-style):active,
html body a.btn:active {
  transform: translateY(0);
  transition-duration: 0.05s;
}

/* ─── 7. Cards / panels — uniform glassmorphism upgrade ─────────────── */
html body [class*="card"]:not(.no-omr-style),
html body [class*="panel"]:not(.no-omr-style),
html body [class*="-row"]:not(.no-omr-style) {
  transition:
    transform 0.4s var(--omr-ease-out),
    box-shadow 0.4s var(--omr-ease-out),
    border-color 0.3s var(--omr-ease),
    background 0.3s var(--omr-ease);
}

/* Glassmorphism boost — only when backdrop-filter is supported */
@supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)) {
  html body .stat-row,
  html body .log-panel,
  html body [class*="glass"],
  html body .nav-menu,
  html body .top-bar,
  html body .mobile-menu {
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    backdrop-filter: blur(20px) saturate(150%);
  }
}

/* ─── 8. Navigation polish — top bars, mobile menus ─────────────────── */
html body nav,
html body .top-bar,
html body .nav-menu {
  transition: background 0.3s var(--omr-ease), box-shadow 0.3s var(--omr-ease);
}
html body nav a,
html body .nav-links a,
html body .top-nav a,
html body .mobile-nav-link {
  position: relative;
  transition: color 0.25s var(--omr-ease), letter-spacing 0.3s var(--omr-ease);
}
html body nav a:hover,
html body .nav-links a:hover,
html body .top-nav a:hover {
  letter-spacing: 0.22em;
}

/* ─── 9. Mobile improvements — better tap targets, spacing ──────────── */
@media (max-width: 768px) {
  html body button:not(.no-omr-style),
  html body a.btn,
  html body .nav-links a,
  html body .mobile-nav-link,
  html body .top-nav a {
    min-height: 44px; /* Apple/Android tap target standard */
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  /* Padding latéral plus généreux sur petit écran */
  html body main,
  html body section,
  html body .container {
    padding-left: max(env(safe-area-inset-left), 16px);
    padding-right: max(env(safe-area-inset-right), 16px);
  }
  /* Évite les textes trop petits */
  html body p, html body li, html body .description {
    font-size: max(14px, 0.95rem);
    line-height: 1.6;
  }
  /* Headings mobile responsive */
  html body h1 { font-size: clamp(1.8rem, 6vw, 3rem) !important; line-height: 1.1; }
  html body h2 { font-size: clamp(1.4rem, 5vw, 2.2rem) !important; }
  html body h3 { font-size: clamp(1.1rem, 4vw, 1.6rem) !important; }
}

/* ─── 10. Animations d'entrée subtiles (fade-up on first paint) ─────── */
@keyframes omr-fade-in-up {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  html body main > *,
  html body section,
  html body article {
    animation: omr-fade-in-up 0.7s var(--omr-ease-out) both;
  }
  html body main > *:nth-child(2) { animation-delay: 0.08s; }
  html body main > *:nth-child(3) { animation-delay: 0.16s; }
  html body main > *:nth-child(4) { animation-delay: 0.24s; }
  html body main > *:nth-child(5) { animation-delay: 0.32s; }
}

/* ─── 11. Image rendering & loading ────────────────────────────────── */
img { display: block; max-width: 100%; height: auto; }
img:not([loading]) { content-visibility: auto; }

/* ─── 12. Print styles — propre si quelqu'un imprime un certificat ── */
@media print {
  body { background: white !important; color: black !important; }
  nav, footer, .top-bar, .mobile-menu, .stat-row, .log-panel,
  .crosshair, .crosshair-ring, .crosshair-ring2, .radar-sweep,
  .scanline, .orbital, .corner, .crt-overlay, .grid-overlay,
  #omerta-canvas-container, .lang-switch, .hamburger { display: none !important; }
  a { text-decoration: underline; color: #000 !important; }
  a::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #555; }
}

/* ─── 13. Loading states — skeletons subtils ──────────────────────── */
.omr-skeleton {
  background: linear-gradient(90deg, rgba(212,168,71,0.05) 25%, rgba(212,168,71,0.15) 50%, rgba(212,168,71,0.05) 75%);
  background-size: 200% 100%;
  animation: omr-skeleton-shimmer 1.5s linear infinite;
  border-radius: var(--omr-radius-sm);
}
@keyframes omr-skeleton-shimmer {
  from { background-position: 200% 0; }
  to   { background-position: -200% 0; }
}

/* ─── 14. Logo / brand polish ──────────────────────────────────────── */
html body [class*="logo"]:not(img) {
  transition: filter 0.3s var(--omr-ease), transform 0.4s var(--omr-ease-out);
}
html body [class*="logo"]:hover:not(img) {
  filter: drop-shadow(0 0 12px var(--omr-red-glow));
}

/* ─── 15. CTA red blocks — premium gradient hover ──────────────────── */
html body a[style*="background:rgba(180,20,20"],
html body a[style*="background:#b41414"],
html body a[style*="background:#cc1111"] {
  background-image: linear-gradient(135deg, rgba(180,20,20,0.4), rgba(204,17,17,0.55)) !important;
  border-radius: var(--omr-radius-sm) !important;
  transition: all 0.3s var(--omr-ease) !important;
}
html body a[style*="background:rgba(180,20,20"]:hover,
html body a[style*="background:#b41414"]:hover,
html body a[style*="background:#cc1111"]:hover {
  background-image: linear-gradient(135deg, rgba(204,17,17,0.6), rgba(255,26,26,0.75)) !important;
  box-shadow: var(--omr-shadow-red) !important;
  transform: translateY(-1px);
}

/* ─── 16. Stat values — counter polish ─────────────────────────────── */
html body .stat-val {
  font-variant-numeric: tabular-nums;
  background: linear-gradient(135deg, var(--omr-red-bright), var(--omr-gold-bright));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 8px var(--omr-red-glow));
}

/* ─── 17. Reduce safari iOS bounce / overscroll on body ───────────── */
html body { overscroll-behavior-y: contain; }

/* ═══════════════════════════════════════════════════════════════════════
   ─── 18. RESPONSIVE DEVICE COVERAGE (extension 2026-05-26)
   Comble la lacune : projet d'origine ne dépasse pas 1300px.
   Couverture ajoutée : tablet portrait/landscape, TV 1080p/4K/8K,
   ultra-wide, RTL (ar/he), high-DPI, dark mode système, fold/pliable.
   ═══════════════════════════════════════════════════════════════════════ */

/* TABLET PORTRAIT — 480px à 768px en orientation portrait */
@media (min-width: 481px) and (max-width: 768px) and (orientation: portrait) {
  html body main, html body section { padding-left: 24px; padding-right: 24px; }
  html body h1 { font-size: clamp(2rem, 5vw, 2.6rem) !important; }
}

/* TABLET LANDSCAPE — iPad/Samsung Tab horizontal */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  html body main, html body section { padding-left: 32px; padding-right: 32px; }
  /* Sidebar/nav légèrement plus compacte */
  html body nav, html body .top-bar { padding: 0.8rem 2rem; }
}

/* TABLET LARGE — iPad Pro 12.9" / Surface Pro */
@media (min-width: 1024px) and (max-width: 1366px) {
  html body main, html body section { max-width: 1280px; margin-left: auto; margin-right: auto; }
}

/* DESKTOP STANDARD — 1366px à 1919px (laptops, 1080p écrans) */
@media (min-width: 1367px) and (max-width: 1919px) {
  html body main, html body section { max-width: 1440px; margin-left: auto; margin-right: auto; }
}

/* TV / GRAND ÉCRAN 1080p — 1920px à 2559px (FHD TV, large desktop) */
@media (min-width: 1920px) and (max-width: 2559px) {
  :root, html[lang] :root {
    font-size: 18px; /* Base 18px au lieu de 16px pour visibilité depuis canapé */
  }
  html body main, html body section, html body footer {
    max-width: 1680px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 48px;
    padding-right: 48px;
  }
  html body h1 { font-size: clamp(3rem, 4vw, 4.5rem); }
  html body h2 { font-size: clamp(2.2rem, 3vw, 3rem); }
  html body p, html body li { font-size: 1.05rem; line-height: 1.7; }
  /* TV-safe area — overscan (les TV grand public coupent ~5% des bords) */
  html body { padding: 2.5vh 2.5vw; }
  /* Focus visible plus marqué pour navigation clavier/télécommande */
  :focus-visible { outline-width: 3px; outline-offset: 5px; }
}

/* TV 4K — 2560px à 3839px (QHD/WQHD desktop, 4K-half) */
@media (min-width: 2560px) and (max-width: 3839px) {
  :root, html[lang] :root { font-size: 20px; }
  html body main, html body section, html body footer {
    max-width: 2200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 64px;
    padding-right: 64px;
  }
  html body h1 { font-size: clamp(4rem, 4vw, 6rem); }
  html body h2 { font-size: clamp(3rem, 3vw, 4rem); }
  html body p, html body li { font-size: 1.1rem; }
  html body { padding: 3vh 3vw; }
  :focus-visible { outline-width: 4px; outline-offset: 6px; }
}

/* TV 4K natif / 8K — 3840px+ */
@media (min-width: 3840px) {
  :root, html[lang] :root { font-size: 24px; }
  html body main, html body section, html body footer {
    max-width: 3000px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 96px;
    padding-right: 96px;
  }
  html body h1 { font-size: clamp(5rem, 4vw, 8rem); }
  html body h2 { font-size: clamp(4rem, 3vw, 5.5rem); }
  html body p, html body li { font-size: 1.15rem; line-height: 1.75; }
  html body { padding: 3.5vh 3.5vw; }
  :focus-visible { outline-width: 5px; outline-offset: 8px; }
}

/* ULTRA-WIDE — ratio > 21:9 (gaming monitors, simulateurs) */
@media (min-aspect-ratio: 21/9) and (min-width: 2560px) {
  html body main, html body section { max-width: 2400px; }
}

/* FOLDABLE / SAMSUNG FOLD interne (320x653) — assure lisibilité minimale */
@media (max-width: 320px) {
  html body h1 { font-size: 1.5rem !important; }
  html body h2 { font-size: 1.25rem !important; }
  html body p, html body li { font-size: 13px !important; }
  html body main, html body section { padding-left: 12px; padding-right: 12px; }
}

/* HIGH-DPI (Retina, AMOLED) — bordures plus nettes */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  ::-webkit-scrollbar { width: 8px; }
  html body { border-radius: inherit; }
}

/* RTL (Arabic, Hebrew) — alignements, marges, scroll mirror */
html[dir="rtl"], html[lang="ar"], html[lang="he"] {
  direction: rtl;
}
html[dir="rtl"] body, html[lang="ar"] body, html[lang="he"] body {
  text-align: right;
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'arab' 1;
}
html[dir="rtl"] .top-nav, html[dir="rtl"] .nav-links,
html[lang="ar"] .top-nav, html[lang="ar"] .nav-links,
html[lang="he"] .top-nav, html[lang="he"] .nav-links {
  flex-direction: row-reverse;
}

/* ═══════════════════════════════════════════════════════════════════════
   ─── 19. FLUIDITÉ — Optimisations runtime (GPU, paint, layout)
   ═══════════════════════════════════════════════════════════════════════ */

/* Promesse GPU pour les éléments animés en continu */
.radar-sweep, .crosshair-ring, .crosshair-ring2,
.orbital, .scanline, .live-dot, .laser-beam {
  will-change: transform, opacity;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Hint compositor pour les sections off-screen — économise paint */
html body section, html body article {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}

/* Réduit le coût des backdrop-filter en cascade — limite à 3 éléments simultanés visibles max */
@supports not (backdrop-filter: blur(1px)) {
  html body .stat-row, html body .log-panel, html body [class*="glass"] {
    background: rgba(6, 6, 10, 0.92);
  }
}

/* Pause systématique de TOUTES les animations CSS si onglet caché — économie batterie */
@media (prefers-reduced-motion: no-preference) {
  /* Lorsque le doc devient hidden, le browser pause déjà rAF mais pas les CSS animations.
     L'astuce : utiliser animation-play-state via classe injectée par JS sur visibilitychange */
}
html body.omr-tab-hidden *,
html body.omr-tab-hidden *::before,
html body.omr-tab-hidden *::after {
  animation-play-state: paused !important;
}

/* Smoother scroll snap pour les grilles roster/releases (si concerné) */
html body [class*="grid"] {
  scroll-snap-type: y proximity;
}

/* Touch-action correct pour gestures globe/sliders */
html body canvas, html body [id*="globe"], html body [id*="map"] {
  touch-action: pan-x pan-y;
}

/* Coupe les hover effects sur dispositifs sans hover (mobile/tablet/TV) — évite "sticky hover" */
@media (hover: none) {
  html body button:not(.no-omr-style):hover,
  html body a.btn:hover {
    transform: none !important;
    box-shadow: none !important;
  }
  html body nav a:hover,
  html body .nav-links a:hover { letter-spacing: inherit !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   ─── 20. DARK MODE / LIGHT MODE — respect système si user en a un
   (le site est dark par défaut mais on prépare le terrain)
   ═══════════════════════════════════════════════════════════════════════ */
@media (prefers-color-scheme: light) {
  /* Le site reste dark-themed par design, mais on assure contrastes WCAG AAA */
  ::selection { background: var(--omr-gold); color: var(--omr-black); }
}

/* ─── 18. Pretty splash for the install banner & lang switcher ──── */
#pwa-install-btn, #omerta-install-banner > div, #omerta-lang-switcher button {
  border-radius: var(--omr-radius-sm) !important;
  font-family: 'Geist Mono', ui-monospace, monospace !important;
}

/* ─── 19. TABLET (768-1023px) — entre mobile et desktop ─────────────── */
@media (min-width: 769px) and (max-width: 1023px) {
  html body main,
  html body section {
    padding-left: 24px;
    padding-right: 24px;
  }
  html body h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
  html body h2 { font-size: clamp(1.7rem, 4vw, 2.6rem); }
  /* Grilles 2 colonnes sur tablet */
  html body [class*="grid"][class*="-3"],
  html body [class*="grid"][class*="-4"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* Stats HUD plus compact */
  html body .stats-hud { gap: 0.4rem; }
  html body .stat-row { padding: 0.5rem 1rem; }
}

/* ─── 20. TV / Large monitor (≥ 1920px) — Full HD+ ─────────────────── */
@media (min-width: 1920px) {
  :root, html[lang] :root {
    --omr-radius-sm:  8px;
    --omr-radius-md:  14px;
    --omr-radius-lg:  24px;
  }
  html body { font-size: 18px; }
  html body main,
  html body section { padding-left: max(env(safe-area-inset-left), 64px); padding-right: max(env(safe-area-inset-right), 64px); }
  html body h1 { font-size: clamp(3.5rem, 4.5vw, 6rem); }
  html body h2 { font-size: clamp(2.5rem, 3.5vw, 4.5rem); }
  html body h3 { font-size: clamp(1.8rem, 2.5vw, 3rem); }
  html body p, html body li { font-size: 1.1rem; line-height: 1.7; }
  /* Navs plus aérées */
  html body nav,
  html body .top-bar { padding: 1.5rem 3rem; }
  html body .nav-links a,
  html body .top-nav a { font-size: 0.7rem; }
}

/* ─── 21. TV 4K / 8K (≥ 2560px) — focus-navigable, distance viewing ── */
@media (min-width: 2560px) {
  html body { font-size: 22px; }
  html body h1 { font-size: clamp(5rem, 5vw, 8rem); }
  html body h2 { font-size: clamp(3.5rem, 4vw, 6rem); }
  html body p, html body li { font-size: 1.4rem; line-height: 1.75; }
  /* Tap/focus targets enormes pour Apple TV / Android TV / Samsung TV */
  html body button, html body a {
    min-height: 60px;
    padding: 1rem 2rem;
  }
  /* Safe areas TV overscan (3% des bords) */
  html body main { padding: 3vh 3vw; }
  /* Focus ring très visible pour navigation D-Pad */
  *:focus-visible {
    outline-width: 4px !important;
    outline-offset: 8px !important;
    box-shadow: 0 0 0 8px rgba(212, 168, 71, 0.2);
  }
}

/* ─── 22. RTL — Arabic & Hebrew (langues de droite à gauche) ────────── */
html[dir="rtl"] body,
html[lang="ar"] body,
html[lang="he"] body {
  text-align: right;
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'ss01' 1; /* ligatures arabes */
}

html[dir="rtl"] *,
html[lang="ar"] *,
html[lang="he"] * {
  /* Logical properties pour ne pas casser le layout LTR */
  letter-spacing: 0; /* l'arabe/hébreu détestent le letter-spacing */
}

/* Inversion stratégique des paddings/margins direction-aware */
html[dir="rtl"] body .stat-row,
html[lang="ar"] body .stat-row,
html[lang="he"] body .stat-row {
  border-left: none;
  border-right: 2px solid var(--omr-red-bright);
}

html[dir="rtl"] body nav,
html[dir="rtl"] body .nav-links,
html[dir="rtl"] body .top-nav,
html[lang="ar"] body nav,
html[lang="he"] body nav {
  flex-direction: row-reverse;
}

/* Le globe et les éléments fixes ne s'inversent pas (UX globale) */
html[dir="rtl"] body #worldMap,
html[dir="rtl"] body #globeContainer,
html[dir="rtl"] body .log-panel,
html[dir="rtl"] body .crosshair,
html[dir="rtl"] body .radar-sweep,
html[dir="rtl"] body #omerta-canvas-container {
  direction: ltr;
}

/* Typo CJK (zh / ja / ko) — line-height plus généreux */
html[lang="zh"] body,
html[lang="ja"] body,
html[lang="ko"] body {
  line-height: 1.7;
  font-feature-settings: 'palt' 1; /* spacing proportionnel CJK */
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Typo russe — fallback fonts si Geist manque des caractères cyrilliques */
html[lang="ru"] body {
  font-family: 'Geist Sans', 'Roboto', 'Segoe UI', system-ui, sans-serif;
}

/* ─── 23. Réduction des animations sur connexion lente / data saver ── */
@media (prefers-reduced-data: reduce) {
  html body * {
    animation: none !important;
    transition: none !important;
  }
  html body #omerta-canvas-container,
  html body #worldMap { display: none !important; }
}

/* ─── 24. High contrast mode (Windows / TV) ─────────────────────────── */
@media (prefers-contrast: more) {
  :root, html[lang] :root {
    --omr-gold: #ffd700;
    --omr-red-bright: #ff3333;
    --omr-white-dim: #d0c8b8;
  }
  html body a { text-decoration: underline; }
  html body button:not(.no-omr-style) {
    border: 2px solid currentColor !important;
  }
}

/* ─── 25. Print — overlay supplémentaire ────────────────────────────── */
@media print {
  @page { margin: 1.5cm; }
  html body { font-size: 12pt; }
}

/* ═══════════════════════════════════════════════════════════════════════
   FIN — omerta-v2-design.css
   Footprint : ~10 KB minifié, 0 dépendance.
   Couvre : mobile (≤768) · tablet (769-1023) · desktop (1024-1919)
          · Full HD+ (1920-2559) · 4K/TV (≥2560) · RTL (ar/he)
          · CJK (zh/ja/ko) · prefers-reduced-motion · prefers-reduced-data
          · prefers-contrast: more · print
   Le contenu HTML/texte reste à 100% identique.
   ═══════════════════════════════════════════════════════════════════════ */
