/* Sentinel v2 - fx-horizon.css
   The rules fx-horizon.js (window.SentinelFx.glow - Home's horizon) needs around its layers. Ported from voice-glow
   (libraries.dev) by Jakub Antalik, MIT License (v2/LICENSE-voice-glow.txt, THIRD-PARTY.md). The module writes the
   gradients, masks, blurs and per-frame custom properties inline; this sheet only places the layers.

   .sfx-glow-host        the element the light belongs to: made its own stacking context, so the light can sit
                         under the host's content and over its background and border (isolation: isolate)
   .sfx-glow-host--pos   added only when the host was position: static
   .sfx-glow             the one layer the module adds (aria-hidden, no pointer events). It covers the host's
                         border box and follows its corner radius. data-layer="under" (default) | "over";
                         data-look="glow" | "dots" | "lines". Its opacity carries the breath (at rest a Web
                         Animation the compositor plays); under a ceiling the module masks it below the line
   .sfx-glow__inner      soft light inside the host, rastered at half size and scaled back up
   .sfx-glow__edge       the 1 px line along the host's outline, full resolution
   .sfx-glow__bloom      the blurred halo, half size
   .sfx-glow__wash       on paper only: a wash of the host's own colour at the source, half size
   .sfx-glow__halo / __band   the two canvases the bent ridge of light is drawn on (a strip along the bottom)
   .sfx-glow__sheet      the canvas of the dots and lines looks (a strip along the bottom, under the content) */

.sfx-glow-host {
  isolation: isolate;
}
.sfx-glow-host--pos {
  position: relative;
}

.sfx-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  contain: layout paint style;
}
.sfx-glow[data-layer="over"] {
  z-index: 3;
}

.sfx-glow > div,
.sfx-glow > canvas {
  position: absolute;
  display: block;
  pointer-events: none;
}

/* the soft layers: half the box, every length inside at half, scaled back up by the compositor */
.sfx-glow__inner,
.sfx-glow__bloom,
.sfx-glow__wash {
  left: 0;
  top: 0;
  width: 50%;
  height: 50%;
  transform: translateZ(0) scale(2);
  transform-origin: 0 0;
  will-change: transform;
}
.sfx-glow__inner { z-index: 1; }
.sfx-glow__bloom { z-index: 3; }
.sfx-glow__wash { z-index: 4; }

/* the edge line: the padding ring of a full-size box (the mask keeps only the ring) */
.sfx-glow__edge {
  inset: 0;
  box-sizing: border-box;
  padding: 1px;
  border-radius: inherit;
  will-change: transform;
  z-index: 2;
}

.sfx-glow__halo,
.sfx-glow__band,
.sfx-glow__sheet {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  will-change: transform;
  z-index: 5;
}
