/* =====================================================================
   ambient-jelia.nyc-original.css — GENERATED by bin/gen-ambient-m5.py on 2026-09-02.
   DO NOT HAND-EDIT: regenerate and re-upload instead.

   the preserved original jelia.nyc at /original/. LIGHTING ONLY throughout, and not by my choice - theme.css locks the panel fill with `background: linear-gradient(...) !important` under the comment 'surfaces read as instrument panels, not warm rooms'. A background-color here could never win and should not: the design states its intent. Ambient contributes the edges and the cast shadow only. The .dir a.site / a.entry directory rows are deliberately UNTOUCHED - they are 0.35rem list links, not panels, and giving them a surface is the .stat mistake again.

   A SEPARATE FILE from the site's own stylesheet on purpose: this is a
   lighting layer over a design that already works. Removing the links
   removes the whole thing and the site is exactly as it was.

   Must load AFTER the site's stylesheet — its components declare their
   background at the same specificity, so only a later sheet can hand the
   surface to the lighting model.
   ===================================================================== */

:root{
  --amb-light-x:-1; --amb-light-y:-1;
  --amb-key-light-intensity:.82;
  --amb-fill-light-intensity:.58;
  /* brass lamp, matching --brass #d8bd84 rather than a neutral white */
  --amb-light-hue:38; --amb-light-saturation:14%;
  --amb-albedo:color(srgb-linear .0125 .0180 .0250);
}

/* .card, .hunt-promo
   instrument panels. Their own box-shadow (0 8px 28px flat black) is replaced by a shadow that actually follows the light; the gradient fill is untouched */
.card, .hunt-promo{
  --amb-thickness:2; --amb-elevation:1; --amb-fillet:1; --amb-fillet-width:2;
  --_amb-chamfer-w: max(-1 * var(--amb-thickness), min(var(--amb-chamfer-width), var(--amb-thickness)));
  --_amb-fillet-w: max(-1 * var(--amb-thickness), min(var(--amb-fillet-width), var(--amb-thickness)));
  --_amb-sh-gate: max(0, min(var(--amb-elevation) + var(--amb-thickness), 1));
  --_amb-body-gate: max(0, min(var(--amb-thickness), 1));
  --_amb-sweep-a: calc(
    var(--_amb-sh-gate) * var(--_amb-body-gate) *
      max(0, 1 - var(--amb-elevation) / 3) *
      (var(--amb-thickness) * 0.02 + 0.047)
  );
  box-shadow: hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--_amb-sh-gate) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.13 + var(--amb-elevation) * -0.077 + 0.368 -
                  var(--_amb-body-gate) * max(0, 1 - var(--amb-elevation)) * 0.14
              )
          )
      )
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 3.8px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 3.8px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 2.7px)
      0.8px,
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 2.85px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 2.85px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 2px)
      calc(var(--amb-thickness) * 0.9px),
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 1.9px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 1.9px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 1.35px)
      calc(var(--amb-thickness) * 0.6px),
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 0.95px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 0.95px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 0.7px)
      calc(var(--amb-thickness) * 0.3px),
    inset calc(var(--amb-light-x) * var(--_amb-chamfer-w) * -1px)
      calc(var(--amb-light-y) * var(--_amb-chamfer-w) * -1px) 0px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        100%
        / calc(
            var(--amb-chamfer) * max(0, min(var(--amb-thickness), 1)) *
              (
                var(--amb-key-light-intensity) * 1.57 +
                  var(--amb-fill-light-intensity) * 0.85 - 1.03
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-chamfer-w) * 1px)
      calc(var(--amb-light-y) * var(--_amb-chamfer-w) * 1px) 0px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--amb-chamfer) * max(0, min(var(--amb-thickness), 1)) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.19 + 0.24
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-fillet-w) * -1.4px)
      calc(var(--amb-light-y) * var(--_amb-fillet-w) * -1.4px) 2px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        100%
        / calc(
            var(--amb-fillet) * max(0, min(var(--amb-thickness), 1)) *
              (
                var(--amb-key-light-intensity) * 1.44 +
                  var(--amb-fill-light-intensity) * 0.85 - 0.99
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-fillet-w) * 1.4px)
      calc(var(--amb-light-y) * var(--_amb-fillet-w) * 1.4px) 2px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--amb-fillet) * max(0, min(var(--amb-thickness), 1)) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.23 + 0.3
              )
          )
      );
}

/* no surface assigned for .card, .hunt-promo — deliberate. */

/* .nav-btn
   the only thing above the fold on this page - a cut edge makes them read as pressable */
.nav-btn{
  --amb-thickness:1; --amb-elevation:0; --amb-chamfer:1;
  --_amb-chamfer-w: max(-1 * var(--amb-thickness), min(var(--amb-chamfer-width), var(--amb-thickness)));
  --_amb-fillet-w: max(-1 * var(--amb-thickness), min(var(--amb-fillet-width), var(--amb-thickness)));
  --_amb-sh-gate: max(0, min(var(--amb-elevation) + var(--amb-thickness), 1));
  --_amb-body-gate: max(0, min(var(--amb-thickness), 1));
  --_amb-sweep-a: calc(
    var(--_amb-sh-gate) * var(--_amb-body-gate) *
      max(0, 1 - var(--amb-elevation) / 3) *
      (var(--amb-thickness) * 0.02 + 0.047)
  );
  box-shadow: hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--_amb-sh-gate) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.13 + var(--amb-elevation) * -0.077 + 0.368 -
                  var(--_amb-body-gate) * max(0, 1 - var(--amb-elevation)) * 0.14
              )
          )
      )
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 3.8px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 3.8px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 2.7px)
      0.8px,
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 2.85px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 2.85px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 2px)
      calc(var(--amb-thickness) * 0.9px),
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 1.9px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 1.9px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 1.35px)
      calc(var(--amb-thickness) * 0.6px),
    hsl(var(--amb-light-hue) var(--amb-light-saturation) 0% / var(--_amb-sweep-a))
      calc(
        var(--amb-light-x) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 0.95px) * -1
      )
      calc(
        var(--amb-light-y) *
          (var(--amb-elevation) * 6.8px + var(--amb-thickness) * 0.95px) * -1
      )
      calc(var(--amb-elevation) * 4.8px + var(--amb-thickness) * 0.7px)
      calc(var(--amb-thickness) * 0.3px),
    inset calc(var(--amb-light-x) * var(--_amb-chamfer-w) * -1px)
      calc(var(--amb-light-y) * var(--_amb-chamfer-w) * -1px) 0px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        100%
        / calc(
            var(--amb-chamfer) * max(0, min(var(--amb-thickness), 1)) *
              (
                var(--amb-key-light-intensity) * 1.57 +
                  var(--amb-fill-light-intensity) * 0.85 - 1.03
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-chamfer-w) * 1px)
      calc(var(--amb-light-y) * var(--_amb-chamfer-w) * 1px) 0px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--amb-chamfer) * max(0, min(var(--amb-thickness), 1)) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.19 + 0.24
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-fillet-w) * -1.4px)
      calc(var(--amb-light-y) * var(--_amb-fillet-w) * -1.4px) 2px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        100%
        / calc(
            var(--amb-fillet) * max(0, min(var(--amb-thickness), 1)) *
              (
                var(--amb-key-light-intensity) * 1.44 +
                  var(--amb-fill-light-intensity) * 0.85 - 0.99
              )
          )
      ),
    inset calc(var(--amb-light-x) * var(--_amb-fillet-w) * 1.4px)
      calc(var(--amb-light-y) * var(--_amb-fillet-w) * 1.4px) 2px 0px
      hsl(
        var(--amb-light-hue)
        var(--amb-light-saturation)
        0%
        / calc(
            var(--amb-fillet) * max(0, min(var(--amb-thickness), 1)) *
              (
                (var(--amb-key-light-intensity) - var(--amb-fill-light-intensity))
                  * 0.23 + 0.3
              )
          )
      );
}

/* no surface assigned for .nav-btn — deliberate. */

@media(prefers-reduced-motion:no-preference){
  .card{ transition:--amb-elevation .18s ease; }
  .card:hover{ --amb-elevation:1; }
}
