/* Night skin: visual values only. No content, auth, locale or behavioral state.
   Loaded before shared CSS, including when JavaScript is unavailable. */
:root {
  --color-bg-rgb: 3, 7, 11;
  --color-surface-rgb: 4, 10, 16;
  --color-dialog-rgb: 7, 16, 25;
  --color-text-rgb: 243, 223, 196;
  --color-muted-rgb: 191, 169, 143;
  --color-accent-rgb: 240, 179, 106;
  --color-border-rgb: var(--color-accent-rgb);
  --color-glow-rgb: var(--color-accent-rgb);
  --color-tint-rgb: 185, 120, 67;
  --color-shadow-rgb: 0, 0, 0;
  --color-highlight-rgb: 255, 255, 255;
  --color-bloom-rgb: 255, 215, 150;

  --color-bg: rgb(var(--color-bg-rgb));
  --color-dialog: rgb(var(--color-dialog-rgb));
  --color-surface-raised: #101a24;
  --color-text: rgb(var(--color-text-rgb));
  --color-text-muted: rgb(var(--color-muted-rgb));
  --color-text-placeholder: rgba(var(--color-text-rgb), 0.35);
  --color-text-faint: rgba(var(--color-text-rgb), 0.4);
  --color-text-caption: rgba(var(--color-text-rgb), 0.5);
  --color-text-quiet: rgba(var(--color-text-rgb), 0.55);
  --color-text-brand: rgba(var(--color-text-rgb), 0.65);
  --color-text-footer: rgba(var(--color-muted-rgb), 0.5);
  --color-text-soft: #e4d2b8;
  --color-accent: rgb(var(--color-accent-rgb));
  --color-accent-hover: #ffc783;
  --color-on-accent: var(--color-bg);
  --color-focus: var(--color-accent);
  --color-error: #e87c5a;
  --color-online: #4caf50;
  --color-highlight: rgb(var(--color-highlight-rgb));
  --color-avatar-start: #1a0e22;
  --color-avatar-middle: #0d1828;
  --color-avatar-end: #0f1e10;
  --color-avatar-corner: var(--color-text);
  --surface-panel: rgba(var(--color-surface-rgb), 0.72);
  --surface-card: rgba(var(--color-surface-rgb), 0.62);
  --surface-overlay: rgba(var(--color-bg-rgb), 0.85);
  --surface-consent: rgba(var(--color-surface-rgb), 0.92);
  --surface-input: rgba(var(--color-surface-rgb), 0.6);
  --surface-chat-input: rgba(var(--color-surface-rgb), 0.5);
  --surface-bubble-bot: rgba(var(--color-accent-rgb), 0.08);
  --surface-bubble-user: rgba(var(--color-accent-rgb), 0.18);
  --border-panel: rgba(var(--color-border-rgb), 0.42);
  --shadow-glow-soft: 0 0 14px rgba(var(--color-glow-rgb), 0.45);
  --shadow-glow-strong: 0 0 28px rgba(var(--color-glow-rgb), 0.75), 0 0 60px rgba(var(--color-tint-rgb), 0.35);

  --font-display: 'Cormorant Garamond', 'EB Garamond', 'Times New Roman', serif;
  --font-body: var(--font-display);
  --font-ui: 'Manrope', 'Helvetica Neue', sans-serif;
  --font-style-display: italic;
  --tracking-label: 0.24em;
  --tracking-wide: 0.42em;
  --tracking-consent-404: 0.08em;

  --filter-photo: saturate(1.0) brightness(0.78);
  --strength-text-shadow: 1;
  --filter-photo-404: brightness(0.45) saturate(0.9);
  --grain-opacity: 0.16;
  --grain-blend: overlay;

  --radius-pill: 999px;
  --radius-round: 50%;
  --radius-detail: 1px;
  --radius-focus: 2px;
  --radius-small: 4px;
  --radius-input: 8px;
  --radius-card: 10px;
  --radius-avatar: 12px;
  --radius-cat-avatar: 14px;
  --radius-bubble: 16px;
  --radius-avatar-frame: 18px;
  --radius-chat-input: 20px;
  --radius-chat-trigger: 24px;

  --image-hero: url('/assets/bg-hero-blur.jpg?v=0db5578');
  --image-programme: url('/assets/bg-map-blur.jpg?v=0db5578');
  --image-practical: url('/assets/bg-stops-blur.jpg?v=0db5578');
  --image-arrival: url('/assets/bg-arrival-blur.jpg?v=0db5578');

  /* Decorative recipes; shared CSS owns geometry and behavior. */
  --decoration-nf-bg: radial-gradient(ellipse 80% 50% at 50% 100%, rgba(var(--color-tint-rgb), 0.12) 0%, transparent 55%),
    var(--color-bg);
  --decoration-nf-bg-after: linear-gradient(180deg,
    rgba(var(--color-bg-rgb), 0.55) 0%,
    rgba(var(--color-bg-rgb), 0.35) 40%,
    rgba(var(--color-bg-rgb), 0.60) 100%);
  --decoration-nf-rule: linear-gradient(90deg, transparent, rgba(var(--color-accent-rgb), 0.5), transparent);
  --decoration-aida-avatar-frame: linear-gradient(145deg, var(--color-avatar-start) 0%, var(--color-avatar-middle) 55%, var(--color-avatar-end) 100%);
  --decoration-ambient-overlay: radial-gradient(ellipse 90% 60% at 50% 92%, rgba(var(--color-tint-rgb), 0.16) 0%, transparent 60%),

    radial-gradient(ellipse 110% 90% at 50% 50%, transparent 55%, rgba(var(--color-bg-rgb), 0.5) 100%),

    linear-gradient(180deg,
      rgba(var(--color-bg-rgb), 0.30) 0%,
      rgba(var(--color-bg-rgb), 0.18) 30%,
      rgba(var(--color-bg-rgb), 0.22) 70%,
      rgba(var(--color-bg-rgb), 0.55) 100%);
  --image-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 0.92 0 0 0 0 0.78 0 0 0 .42 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --decoration-horizon-glow: radial-gradient(ellipse closest-side, rgba(var(--color-accent-rgb), 0.32), transparent 70%);
  --decoration-floor-bar: linear-gradient(180deg, transparent, rgba(var(--color-bg-rgb), 0.92) 60%);
  --decoration-guest-divider: linear-gradient(90deg, transparent, rgba(var(--color-accent-rgb), 0.7), transparent);
  --decoration-timeline-before: linear-gradient(180deg,
    transparent 0%,
    rgba(var(--color-accent-rgb), 0.35) 8%,
    rgba(var(--color-accent-rgb), 0.35) 92%,
    transparent 100%);
  --decoration-info-group-label-after: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.3), transparent);
  --mask-sparkle: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l1.6 5.4L19 9l-5.4 1.6L12 16l-1.6-5.4L5 9l5.4-1.6z'/%3E%3Cpath d='M19 14l.7 2.3L22 17l-2.3.7L19 20l-.7-2.3L16 17l2.3-.7z'/%3E%3C/svg%3E") center/contain no-repeat;
  --decoration-hero-before: radial-gradient(ellipse 65% 50% at 50% 52%,
    rgba(var(--color-bg-rgb), 0.30) 0%,
    rgba(var(--color-bg-rgb), 0.18) 45%,
    transparent 80%);
  --decoration-gate-modal: radial-gradient(ellipse 70% 55% at 50% -10%, rgba(var(--color-accent-rgb), 0.10) 0%, transparent 70%),
    var(--color-dialog);
  --decoration-gate-modal-after: radial-gradient(ellipse 70% 55% at 50% -10%, rgba(var(--color-accent-rgb), 0.10) 0%, transparent 70%),
    var(--color-dialog);
  --decoration-gate-seal: radial-gradient(circle at 50% 35%, rgba(var(--color-accent-rgb), 0.18) 0%, rgba(var(--color-surface-rgb), 0.8) 70%);
  --decoration-gate-divider: linear-gradient(90deg, transparent, rgba(var(--color-accent-rgb), 0.85), transparent);
}

/* Resolve pointer-dependent recipes at their consumer. */
.modal::before {
  --decoration-modal-before: radial-gradient(ellipse 180px 60px at var(--glow-x) 0%, rgba(var(--color-bloom-rgb), 0.55) 0%, transparent 100%),
    rgba(var(--color-accent-rgb), 0.1);
}
.modal > .glow-bloom {
  --decoration-modal-glow-bloom: radial-gradient(ellipse 220px 50px at var(--glow-x) 0%, rgba(var(--color-accent-rgb), 0.22) 0%, transparent 100%);
}
