/* Important safeguards are intentionally first in the layer order: important
   declarations reverse cascade-layer priority. Skins cannot use !important. */
@layer safeguards {
  [hidden] { display: none !important; }
}
@layer preferences {
  @media (prefers-reduced-motion: reduce) {
    .maker-stamp, .maker-stamp:is(:hover, :focus-visible, :active) { transition: none; transform: none; }
    html { scroll-behavior: auto; }
  }
  @media (forced-colors: active) {
    :root {
      --paper: Canvas; --paper-bright: Canvas; --paper-deep: Canvas;
      --card-surface: Canvas; --map-surface: Canvas;
      --ink: CanvasText; --ink-soft: CanvasText; --muted: CanvasText;
      --rule: CanvasText; --rule-faint: CanvasText; --selected: Highlight;
      --glass: ButtonFace; --glass-deep: ButtonFace;
      --rust: LinkText; --rust-dark: LinkText; --moss: Highlight; --moss-dark: CanvasText;
      --map-label-foreground: CanvasText; --map-label-background: Canvas;
      --map-node-1: Highlight; --map-node-2: Highlight; --map-node-3: Highlight;
      --map-node-4: Highlight; --map-node-5: Highlight; --map-node-6: Highlight;
      --map-edge: CanvasText; --map-active-edge: Highlight; --map-dimmed-edge: GrayText;
      --map-node-outline: CanvasText; --map-minimap-node: CanvasText; --map-minimap-viewport: Highlight;
      --cursor-default: default; --cursor-link: pointer; --cursor-text: text;
      --cursor-grab: grab; --cursor-grabbing: grabbing; --cursor-target: crosshair;
      --cursor-zoom-in: zoom-in; --cursor-zoom-out: zoom-out; --cursor-vertical-resize: ns-resize;
    }
    .grain, .ascii-weather { display: none; }
    .button { box-shadow: none; }
    .button::after { display: none; }
  }
  @media print {
    .grain, .ascii-weather, .theme-control { display: none; }
  }
}
