/* Agoramores — "bird" theme overrides. Loaded after main.css.
   Every selector here is scoped to body[data-theme-id="bird"]. */

/* A THEME, NOT A MONTH, AND NOT IN THE PICKER.

   The flyway map is the one piece of scenery that is not a month's. It is a
   chart, it is opened deliberately by the bird on the instrument rail, and it
   has to look the same in August as in January or it is not a chart. So the
   bird lamp does not tint the month it lands in — it takes the page off the
   month outright, and this sheet paints what is left.

   WHY NOT AN OVERLAY. The first attempt at this was a body[data-flyways="on"]
   sheet layered over whichever month was lit. It could not work. A month sheet
   is not only tokens: August alone carries 107 literal colour declarations in
   its component rules, February 264. An overlay has to out-declare every one
   of them, in every month, forever — a sheet that would be longer than all
   twelve put together and would spring a new leak every time anyone touched a
   month. Changing the attribute the months are keyed to costs one line and no
   month rule matches at all. Zero bleed by construction, not by exhaustion.

   ON THE RULE THIS BENDS. main.js says, of the calendar theme: "If a month
   ever genuinely needs a second sheet, fix it in CSS, not by moving
   data-theme-id off the month." That was written on 2026-08-11 about August's
   DAY LIGHTING silently resolving to lava-lamp, and the three things it broke
   are all avoided here:

     - the picker reported the wrong theme for half of every August day.
       Bird is entered only by the lamp, and the picker keeps reporting the
       month underneath, which is what the reader gets back when the lamp
       goes off. See applyThemeById in main.js — selectedThemeId is still
       maintained, only the painted attribute moves.
     - lava-lamp became a selectable duplicate of a month. The picker is
       built from the directories under agCom/.obsidian/themes/, and there is
       no bird directory there, so this sheet can never be chosen as a theme.
     - lava-lamp.css put display:none on header::before and
       .heading-section::before and silently took the neon strip and the
       locked rainbow rails with it. Nothing outside .night-sky is switched
       off below, and the rails are left to re-derive themselves.

   The month is not lost while the lamp is on, only unpainted. Turning the lamp
   off restores it exactly.

   TEMPORARY BY INTENT — "for the time being", per the request that prompted
   it. To hand the layer back to the months, delete this file and the
   flyway branch in setFlyways; nothing else knows about it. */

/* --- the palette -----------------------------------------------------------

   A field guide, not a season. Mid-value and mid-saturation throughout,
   because this is the ground a low-ink chart has to stay legible against.

   The four accent hues are the map's own: --tt-green, --tt-orange and
   --tt-blue are the literal northbound, southbound and wintering corridor
   colours from the flyway block in main.css, and --tt-gold is its resting
   -ground amber. The page and the map agree about what a season looks like
   instead of arguing about it.

   One palette, both lightings. No [data-mode] block anywhere in this file: the
   map is deliberately not conditioned on the lighting — the passage is
   happening at four in the morning too — and a chart that re-lights twice a
   day is back to being decoration. The only moded token block in main.css is
   July's, which cannot match here.

   EVERY COMPOSITE TOKEN HAS TO BE REDECLARED, and this is the part that is
   easy to get wrong. A custom property whose value contains var() is
   substituted where it is COMPUTED, not where it is used: :root computes
   --tt-heading-text-rainbow against July's --tt-red and --tt-purple and hands
   body an already-resolved gradient. Pinning the base hues on body cannot
   reach back into it. Leaving these four out is what put July's neon rainbow
   over bird's slate on the first pass.

   main.css has exactly ten such tokens in :root — the four below plus --bg,
   --surface, --text, --text-soft, --muted and --border, all of which are
   redeclared here too. If a composite token is ever added to :root, it has to
   be added here as well, which is the same tax every month sheet pays. */
body[data-theme-id="bird"] {
  --tt-bg: #1b1814;
  /* Link-hover paired to this block's ground (standing rule 2026-08-14).
     #141920 is dark: #FF465A clears 5.28:1 here. One palette, both
     lightings — no counterpart [data-mode] block to pair separately. */
  --link-hover: #FF4947;
  --tt-bg-alt: #26221d;
  --tt-cyan: #dfddd3;
  --tt-cyan-soft: #a8a497;
  --tt-yellow: #e2b658;
  --tt-orange: #cc7220;
  --tt-green: #59a659;
  --tt-chartreuse: #7fb04a;
  --tt-pink: #cd918f;
  --tt-purple: #a98674;
  --tt-blue: #8a7961;
  --tt-teal: #647859;
  --tt-gray: #9b968d;
  --tt-gold: #b8862f;
  --tt-red: #c05f4a;
  --tt-breadcrumb-text: #dfddd3;
  --tt-breadcrumb-glow: rgba(223, 221, 211, 0.45);
  --tt-engrave: 0 1px 0 rgba(0, 0, 0, 0.55);
  --zodiac-glow: var(--tt-breadcrumb-glow);
  /* The passage read left to right and top to bottom: wintering blue through
     the resting teal and the northbound green, into the amber the resting
     grounds and the southbound corridors share. The same four hues the map
     is drawn in, in the order the year runs them. */
  --tt-heading-rainbow: linear-gradient(90deg, var(--tt-blue), var(--tt-teal), var(--tt-green), var(--tt-gold), var(--tt-orange), var(--tt-blue));
  --tt-heading-rainbow-vertical: linear-gradient(180deg, var(--tt-blue), var(--tt-teal), var(--tt-green), var(--tt-gold), var(--tt-orange), var(--tt-blue));
  --tt-heading-text-rainbow: linear-gradient(
    90deg,
    var(--tt-blue),
    var(--tt-teal),
    var(--tt-green),
    var(--tt-chartreuse),
    var(--tt-gold),
    var(--tt-orange),
    var(--tt-red),
    var(--tt-purple),
    var(--tt-blue),
    var(--tt-teal),
    var(--tt-green),
    var(--tt-chartreuse),
    var(--tt-gold),
    var(--tt-orange),
    var(--tt-red),
    var(--tt-purple),
    var(--tt-blue)
  );
  --bg: #1b1814;
  --surface: #26221d;
  --text: var(--tt-cyan);
  --text-soft: var(--tt-cyan-soft);
  --muted: var(--tt-gray);
  --border: var(--tt-blue);
  --border-dim: rgba(138, 121, 97, 0.3);
  --border-teal: rgba(100, 120, 89, 0.5);
  background: #1b1814;
  color: var(--tt-cyan);
  color-scheme: dark;
}

/* --- the two literal glows in main.css -------------------------------------

   Not month bleed. These two live in main.css itself, where the glow is a
   literal rgba rather than a token — July's yellow on the brand and July's
   cyan under the neon strip — so a theme that only pins tokens keeps them.
   Every month sheet overrides both for exactly this reason; bird is not
   special in having to.

   The strip's own colours already follow, because it is painted with
   --tt-heading-rainbow and that is redeclared above. Only the halo under it
   is hard-coded, and only the halo is replaced here. */
body[data-theme-id="bird"] .brand a,
body[data-theme-id="bird"] .brand a:hover {
  text-shadow:
    0 0 10px rgba(226, 182, 88, 0.5),
    0 0 28px rgba(184, 134, 47, 0.26),
    0 0 46px rgba(138, 121, 97, 0.2);
}

/* --- the ground ------------------------------------------------------------

   Off the month, .night-sky falls back to July's: a starfield with a city
   skyline along the bottom. Stars over a migration map read as a night sky the
   birds are crossing, which is a picture this layer is not making, and the
   skyline is July's ground element and belongs to July.

   So the scenery is quieted and the continent becomes the ground element in
   its own right — the same trade every month makes, each in its own sheet.
   The map itself is drawn by the flyway block in main.css and is not touched
   here; this only clears the table it sits on. */
body[data-theme-id="bird"] .night-sky {
  background: linear-gradient(180deg, #231f1b 0%, #1b1814 55%, #18130a 100%);
}

/* Both star layers and the twinkle on ::before. background-image rather than
   display, so the elements keep their place in the stack and nothing below
   reflows into the gap. */
body[data-theme-id="bird"] .night-sky::before,
body[data-theme-id="bird"] .night-sky__stars--far,
body[data-theme-id="bird"] .night-sky__stars--near {
  background-image: none;
  animation: none;
}

/* July's skyline and July's fireworks. The fireworks JS already refuses to
   spawn off-July; this is for any burst still on screen when the lamp is
   pressed. */
body[data-theme-id="bird"] .night-sky__aurora,
body[data-theme-id="bird"] .night-sky__fireworks {
  display: none;
}
