/* Shared visual foundation for the main site and Aquarium. */
:root {
  color-scheme: dark;

  /* Colour and text hierarchy */
  --color-abyss: #020c13;
  --color-ink: #031522;
  --color-deep: #061f2d;
  --color-deep-water: #082431;
  --color-panel: #0a2a37;
  --color-raised: #0b2a36;
  --color-aqua: #62e8d5;
  --color-aqua-bright: #8bf3e4;
  --color-foam: #eefcf8;
  --color-mist: #a9c8ca;
  --color-gold: #efc76e;

  /* Continuous water-column environment */
  --water-sunlit-entry: #b8eee8;
  --water-sunlit-body: #062b3a;
  --water-sunlit-exit: #062330;
  --water-twilight-entry: #062330;
  --water-twilight-body: #041c29;
  --water-twilight-exit: #031722;
  --water-midnight-entry: #031722;
  --water-midnight-body: #03131f;
  --water-midnight-exit: #02111b;
  --water-deep-entry: #02111b;
  --water-deep-body: #041822;
  --water-deep-exit: #020c13;
  --water-transition-band: clamp(120px, 18vh, 220px);
  --water-particle-color: rgba(169, 232, 222, .055);
  --text-primary: var(--color-foam);
  --text-secondary: var(--color-mist);
  --text-utility: rgba(238, 252, 248, .74);
  --text-placeholder: rgba(238, 252, 248, .62);
  --text-disabled: rgba(238, 252, 248, .56);
  --text-on-accent: var(--color-ink);

  /* Surfaces and borders */
  --surface-base: var(--color-ink);
  --surface-sunken: var(--color-abyss);
  --surface-raised: var(--color-deep);
  --surface-panel: var(--color-panel);
  --surface-glass: rgba(255, 255, 255, .025);
  --surface-glass-hover: rgba(255, 255, 255, .045);
  --surface-interactive: rgba(98, 232, 213, .04);
  --surface-interactive-hover: rgba(98, 232, 213, .12);
  --surface-overlay: rgba(1, 8, 14, .86);
  --border-subtle: rgba(169, 232, 222, .12);
  --border-default: rgba(169, 232, 222, .18);
  --border-strong: rgba(169, 232, 222, .28);
  --border-interactive: rgba(98, 232, 213, .45);
  --border-selected: rgba(98, 232, 213, .6);
  --border-gold: rgba(239, 199, 110, .3);

  /* Depth and restrained glow */
  --shadow-card: 0 20px 54px -42px rgba(0, 8, 14, .78), inset 0 1px 0 rgba(255, 255, 255, .035);
  --shadow-card-hover: 0 18px 44px -30px rgba(98, 232, 213, .58);
  --shadow-dialog: 0 34px 100px -44px rgba(0, 0, 0, .86), inset 0 1px 0 rgba(255, 255, 255, .045);
  --glow-aqua-soft: 0 0 22px rgba(98, 232, 213, .12);
  --glow-aqua-focus: 0 0 0 4px rgba(98, 232, 213, .12);
  --glow-gold-soft: 0 0 18px rgba(239, 199, 110, .14);

  /* Typography */
  --font-display: 'IM Fell English', serif;
  --font-body: 'DM Sans', sans-serif;
  --font-mono: 'Space Mono', monospace;
  --leading-tight: 1.08;
  --leading-body: 1.7;
  --leading-compact: 1.5;
  --tracking-label: .16em;

  /* Spacing and shape */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --radius-xs: 4px;
  --radius-sm: 10px;
  --radius-control: 12px;
  --radius-card: 20px;
  --radius-panel: 24px;
  --radius-dialog: 28px;
  --radius-soft: 32px;
  --radius-pill: 999px;

  /* Interaction and motion */
  --focus-ring: 2px solid var(--color-aqua);
  --focus-offset: 3px;
  --motion-fast: 160ms;
  --motion-standard: 220ms;
  --motion-panel: 300ms;
  --motion-slow: 500ms;
  --ease-standard: cubic-bezier(.2, .7, .3, 1);
  --ease-emphasis: cubic-bezier(.2, .8, .2, 1);

  /* Layering */
  --layer-decor: 1;
  --layer-content: 2;
  --layer-depth-rail: 90;
  --layer-nav: 100;
  --layer-modal: 1000;
  --layer-toast: 1200;
  --layer-overlay: 1500;
  --layer-notice: 2000;
  --layer-skip: 2000;

  /* Shared layout */
  --nav-h: 72px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --page-gutter: clamp(16px, 5vw, 72px);
  --shell-max: clamp(1160px, 68vw, 1360px);
  --nav-block: calc(var(--nav-h) + var(--safe-top));
  --depth-rail-right: max(18px, var(--safe-right));
  --depth-rail-marker: 9px;
  --depth-rail-gap: 16px;

  /* Compatibility aliases retained for existing section styles. */
  --ink: var(--color-ink);
  --aqua: var(--color-aqua);
  --foam: var(--color-foam);
  --mist: var(--color-mist);
  --gold: var(--color-gold);
  --line: var(--border-default);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-fast: .01ms;
    --motion-standard: .01ms;
    --motion-panel: .01ms;
    --motion-slow: .01ms;
  }
}
