{
  "surface": "/tide/today",
  "description": "Defaults that /tide will fall back to right now for a visitor with no saved preferences and no URL hash. Palette rotates by hour. Scene rotates by hour. Soundscape rotates by day-of-year so the same day always sounds the same.",
  "serverTimeIso": "2026-06-11T15:55:12.155Z",
  "serverHourLocal": 8,
  "dayOfYear": 162,
  "timezone": "America/Los_Angeles",
  "today": {
    "palette": "crystal",
    "scene": "waves",
    "soundscape": "bubbles"
  },
  "derivation": {
    "palette": {
      "rule": "hour-of-day → /tide.json clockDefault.ranges",
      "ranges": [
        {
          "from": 0,
          "to": 5,
          "id": "abyss"
        },
        {
          "from": 5,
          "to": 8,
          "id": "daybreak"
        },
        {
          "from": 8,
          "to": 11,
          "id": "crystal"
        },
        {
          "from": 11,
          "to": 14,
          "id": "lagoon"
        },
        {
          "from": 14,
          "to": 17,
          "id": "kelp"
        },
        {
          "from": 17,
          "to": 20,
          "id": "coral"
        },
        {
          "from": 20,
          "to": 22,
          "id": "storm"
        },
        {
          "from": 22,
          "to": 24,
          "id": "nighttide"
        }
      ],
      "chosen": "crystal"
    },
    "scene": {
      "rule": "hour-of-day → 6 buckets (mystify/waves/starfield/bounce/waves/pipes)",
      "ranges": [
        {
          "from": 0,
          "to": 6,
          "id": "mystify"
        },
        {
          "from": 6,
          "to": 10,
          "id": "waves"
        },
        {
          "from": 10,
          "to": 14,
          "id": "starfield"
        },
        {
          "from": 14,
          "to": 18,
          "id": "bounce"
        },
        {
          "from": 18,
          "to": 21,
          "id": "waves"
        },
        {
          "from": 21,
          "to": 24,
          "id": "pipes"
        }
      ],
      "chosen": "waves"
    },
    "soundscape": {
      "rule": "dayOfYear % 4 → drift/chimes/bubbles/granular",
      "index": 2,
      "sequence": [
        "drift",
        "chimes",
        "bubbles",
        "granular"
      ],
      "chosen": "bubbles"
    }
  },
  "open": "https://pointcast.xyz/tide#crystal/waves",
  "note": "These are defaults. Returning visitors keep their last palette + scene + soundscape via localStorage. URL hash overrides everything.",
  "related": {
    "/tide": "the room",
    "/tide.json": "full catalog (palettes, scenes, soundscapes)",
    "/tide/moments": "saved moments viewer"
  }
}