/* Arcane Circuits THEME v2: motif utilities (Bigpappa 17 lane A). Load AFTER tokens.css. Every colour is a token; the only literal colour is the rain
   tile, which is a mask (its ink comes from --rain-ink). Every animation is declared only under prefers-reduced-motion: no-preference.
   Classes: ac-rim, ac-plate, ac-trace, ac-pad, ac-glow-*, ac-runes, ac-lightning, ac-rain. THEME.md says when to use each. */

/* ---------- ac-rim: bevelled metal ring around any round thing ----------
   <div class="ac-rim"><img src="emblem.png" alt=""></div>   (a square box; the child fills the inside)
   Modifiers: ac-rim--thin (3px), ac-rim--thick (10px), ac-rim--brass (brass ring). Size the rim box; the ring is inside it. */
.ac-rim {
  --_w: var(--rim-width);
  position: relative; box-sizing: border-box; aspect-ratio: 1; padding: var(--_w);
  border-radius: 50%; background: var(--rim-gradient); box-shadow: var(--glow-soft), 0 2px 6px rgb(0 0 0 / 0.35);
}
.ac-rim > * { display: block; width: 100%; height: 100%; border-radius: 50%; overflow: hidden; object-fit: cover; background: var(--void); }
.ac-rim::after { /* the bevel: a lit outer edge, a lit inner lip, a shadowed lower inner edge */
  content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.22), inset 0 2px 2px rgb(255 255 255 / 0.18), inset 0 -2px 3px rgb(0 0 0 / 0.45);
}
.ac-rim--thin { --_w: 3px; }
.ac-rim--thick { --_w: 10px; }
.ac-rim--brass { background: conic-gradient(from 210deg, var(--brass), var(--line) 22%, var(--steel-deep) 45%, var(--line) 65%, var(--brass) 82%, var(--steel-deep) 95%, var(--brass)); }

/* ---------- ac-plate: chamfered-corner panel with a thin glowing edge ----------
   Cut corners top-left and bottom-right (the folder icons). ac-plate--quad cuts all four. Put content straight inside.
   clip-path clips shadows: to make a plate glow, wrap it in a box with ac-glow-halo-1/2/3. */
.ac-plate {
  --_c: var(--chamfer);
  position: relative; isolation: isolate; box-sizing: border-box; padding: var(--space-6); color: var(--ink);
  background: var(--plate-edge);
  clip-path: polygon(var(--_c) 0, 100% 0, 100% calc(100% - var(--_c)), calc(100% - var(--_c)) 100%, 0 100%, 0 var(--_c));
}
.ac-plate::before { /* the face, one pixel in, so the edge colour shows as a hairline */
  content: ""; position: absolute; inset: 1px; z-index: -1; background: var(--plate-fill);
  clip-path: polygon(calc(var(--_c) - 0.4px) 0, 100% 0, 100% calc(100% - var(--_c) + 0.4px), calc(100% - var(--_c) + 0.4px) 100%, 0 100%, 0 calc(var(--_c) - 0.4px));
}
.ac-plate::after { /* a brighter edge across each cut corner */
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(45deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / var(--_c) var(--_c) no-repeat,
    linear-gradient(45deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 100% 100% / var(--_c) var(--_c) no-repeat;
}
.ac-plate--quad {
  clip-path: polygon(var(--_c) 0, calc(100% - var(--_c)) 0, 100% var(--_c), 100% calc(100% - var(--_c)), calc(100% - var(--_c)) 100%, var(--_c) 100%, 0 calc(100% - var(--_c)), 0 var(--_c));
}
.ac-plate--quad::before {
  clip-path: polygon(calc(var(--_c) - 0.4px) 0, calc(100% - var(--_c) + 0.4px) 0, 100% calc(var(--_c) - 0.4px), 100% calc(100% - var(--_c) + 0.4px), calc(100% - var(--_c) + 0.4px) 100%, calc(var(--_c) - 0.4px) 100%, 0 calc(100% - var(--_c) + 0.4px), 0 calc(var(--_c) - 0.4px));
}
.ac-plate--quad::after {
  background:
    linear-gradient(45deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / var(--_c) var(--_c) no-repeat,
    linear-gradient(45deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 100% 100% / var(--_c) var(--_c) no-repeat,
    linear-gradient(135deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 100% 0 / var(--_c) var(--_c) no-repeat,
    linear-gradient(135deg, transparent calc(50% - 1px), var(--glow) calc(50% - 1px), var(--glow) calc(50% + 1px), transparent calc(50% + 1px)) 0 100% / var(--_c) var(--_c) no-repeat;
}
.ac-plate--sm { --_c: 8px; padding: var(--space-3); }
.ac-plate--lg { --_c: 22px; padding: var(--space-8); }

/* ---------- ac-trace: circuit-trace divider, solder pads at both ends, one 45-degree bend ----------
   <div class="ac-trace" role="separator"></div>   Modifiers: ac-trace--flat (no bend), ac-trace--lit (glow colour + halo),
   ac-trace--live (a spark runs along it; motion only if allowed). Set --ac-trace-c to recolour. Pure CSS, scales to any width. */
.ac-trace {
  --_c: var(--ac-trace-c, var(--circuit)); --_t: var(--trace-width);
  position: relative; height: 16px; width: 100%; margin: var(--space-3) 0;
  background:
    radial-gradient(circle at 5px 4px, transparent 0 1.5px, var(--_c) 2px 4.5px, transparent 5px) 0 0 / 10px 16px no-repeat,
    radial-gradient(circle at 5px 12px, transparent 0 1.5px, var(--_c) 2px 4.5px, transparent 5px) 100% 0 / 10px 16px no-repeat,
    linear-gradient(var(--_c), var(--_c)) 8px 3px / calc(50% - 13px) var(--_t) no-repeat,
    linear-gradient(45deg, transparent calc(50% - var(--_t) / 2), var(--_c) calc(50% - var(--_t) / 2), var(--_c) calc(50% + var(--_t) / 2), transparent calc(50% + var(--_t) / 2)) 50% 3px / 10px 10px no-repeat,
    linear-gradient(var(--_c), var(--_c)) calc(100% - 8px) 11px / calc(50% - 13px) var(--_t) no-repeat;
}
.ac-trace--flat {
  height: 10px;
  background:
    radial-gradient(circle at 5px 5px, transparent 0 1.5px, var(--_c) 2px 4.5px, transparent 5px) 0 0 / 10px 10px no-repeat,
    radial-gradient(circle at 5px 5px, transparent 0 1.5px, var(--_c) 2px 4.5px, transparent 5px) 100% 0 / 10px 10px no-repeat,
    linear-gradient(var(--_c), var(--_c)) 8px 4px / calc(100% - 16px) var(--_t) no-repeat;
}
.ac-trace--lit { --ac-trace-c: var(--glow); filter: drop-shadow(0 0 4px rgb(var(--glow-rgb) / 0.6)); }
.ac-trace--live::after { content: ""; position: absolute; top: 1px; left: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--lightning); box-shadow: var(--glow-strong); opacity: 0.9; }
.ac-pad { /* a single solder pad: use as a bullet, a node on a diagram, a list marker */
  display: inline-block; width: var(--pad-size); height: var(--pad-size); box-sizing: border-box; vertical-align: middle;
  border: 2px solid var(--ac-trace-c, var(--circuit)); border-radius: 50%; background: transparent;
}
.ac-pad--lit { border-color: var(--glow); box-shadow: var(--glow-soft); }

/* ---------- ac-glow: light levels ----------
   ac-glow-1/2/3: box-shadow glow on a plain box (soft, strong, strongest). ac-glow-halo-1/2/3: the same as a drop-shadow, which follows
   an element's real outline, including clip-path children: put it on a wrapper. ac-glow-text-1/2: text-shadow for a heading (dark theme;
   on vellum it falls back to a faint shadow). Level 3 is for the single focus of a view. */
.ac-glow-1 { box-shadow: var(--glow-soft); }
.ac-glow-2 { box-shadow: var(--glow-rune); }
.ac-glow-3 { box-shadow: var(--glow-strong); }
.ac-glow-halo-1 { filter: drop-shadow(0 0 6px rgb(var(--glow-rgb) / 0.3)); }
.ac-glow-halo-2 { filter: drop-shadow(0 0 8px rgb(var(--glow-rgb) / 0.5)); }
.ac-glow-halo-3 { filter: drop-shadow(0 0 4px rgb(var(--glow-rgb) / 0.7)) drop-shadow(0 0 18px rgb(var(--glow-rgb) / 0.45)); }
.ac-glow-text-1 { text-shadow: 0 0 10px rgb(var(--glow-rgb) / 0.35); }
.ac-glow-text-2 { text-shadow: 0 0 4px rgb(var(--glow-rgb) / 0.6), 0 0 16px rgb(var(--glow-rgb) / 0.4); }

/* ---------- ac-runes: a band of Elder Futhark, decorative ----------
   <div class="ac-runes ac-runes--futhark" aria-hidden="true"></div>   or put your own runes in the element's text (always aria-hidden).
   ac-runes--band: ruled above and below, faded at the ends. ac-runes--lit: glowing. Never carry meaning in runes. */
.ac-runes {
  font: var(--text-rune); font-size: 15px; color: var(--steel-light); letter-spacing: 0.7em; white-space: nowrap; overflow: hidden;
  user-select: none; pointer-events: none; text-align: center; text-transform: none;
}
.ac-runes--futhark::before {
  content: "ᚠᚢᚦᚨᚱᚲᚷᚹᚺᚾᛁᛃᛇᛈᛉᛊᛏᛒᛖᛗᛚᛜᛞᛟ";
  content: "ᚠᚢᚦᚨᚱᚲᚷᚹᚺᚾᛁᛃᛇᛈᛉᛊᛏᛒᛖᛗᛚᛜᛞᛟ" / ""; /* empty alt text where supported, so screen readers skip it */
}
.ac-runes--band { padding: var(--space-2) 0; border-block: 1px solid var(--line-subtle); -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.ac-runes--lit { color: var(--glow); text-shadow: 0 0 6px rgb(var(--glow-rgb) / 0.6); }
svg text.ac-runes-ring { font-family: var(--font-rune); fill: var(--steel-light); letter-spacing: 0.35em; user-select: none; } /* for a ring: <text class="ac-runes-ring"><textPath href="#circle">...</textPath></text> */

/* ---------- ac-lightning: an SVG arc helper ----------
   <svg viewBox="0 0 200 60" aria-hidden="true"><path class="ac-lightning-glow" d="..."/><path class="ac-lightning" d="..."/></svg>
   Draw a jagged path (straight segments, forks as extra paths). -glow is the wide soft underlay, the other is the white-cyan core.
   ac-lightning--strike flashes the core now and then (give the path pathLength="1"). */
.ac-lightning, .ac-lightning-glow { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.ac-lightning { stroke: var(--lightning); stroke-width: 2; filter: drop-shadow(0 0 3px var(--lightning)) drop-shadow(0 0 9px rgb(var(--glow-rgb) / 0.7)); }
.ac-lightning-glow { stroke: var(--glow); stroke-width: 7; opacity: 0.28; }
.ac-lightning--thin { stroke-width: 1.25; }

/* ---------- ac-rain: faint binary-and-rune columns behind a section (opt-in, once per view at most) ----------
   <section class="ac-rain">...content...</section>   Modifiers: ac-rain--drift (slow fall when motion is allowed). Content sits above it. */
.ac-rain { position: relative; isolation: isolate; }
.ac-rain::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--rain-ink);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22320%22 height=%22360%22 viewBox=%220 0 320 360%22%3E%3Ctext font-family=%22Noto Sans Runic,Segoe UI Historic,Consolas,monospace%22 font-size=%2213%22 fill=%22%23000%22%3E%3Ctspan x=%2214%22 y=%2226%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%2243%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%2214%22 y=%2260%22%3E%E1%9A%BE%3C/tspan%3E%3Ctspan x=%2214%22 y=%2277%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%2294%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22111%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2214%22 y=%22128%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%22145%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%2214%22 y=%22162%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22179%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22196%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%2214%22 y=%22213%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%2214%22 y=%22230%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%22247%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%2214%22 y=%22264%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%2214%22 y=%22281%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2254%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2271%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2288%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%2252%22 y=%22105%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22122%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22139%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22156%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22173%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22190%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2252%22 y=%22207%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22224%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%2252%22 y=%22241%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%2252%22 y=%22258%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22275%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2252%22 y=%22292%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%2252%22 y=%22309%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22326%22%3E%E1%9A%BE%3C/tspan%3E%3Ctspan x=%2252%22 y=%22343%22%3E%E1%9B%88%3C/tspan%3E%3Ctspan x=%2290%22 y=%2232%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%2249%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%2290%22 y=%2266%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%2290%22 y=%2283%22%3E0%3C/tspan%3E%3Ctspan x=%2290%22 y=%22100%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%2290%22 y=%22117%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%22134%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%22151%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%2290%22 y=%22168%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22128%22 y=%2227%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%2244%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22128%22 y=%2261%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22128%22 y=%2278%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%2295%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22128%22 y=%22112%22%3E%E1%9B%8A%3C/tspan%3E%3Ctspan x=%22128%22 y=%22129%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%22146%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22166%22 y=%220%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%2217%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22166%22 y=%2234%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%22166%22 y=%2251%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%2268%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22166%22 y=%2285%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%22166%22 y=%22102%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22119%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22166%22 y=%22136%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22153%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22170%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22187%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22204%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22221%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22166%22 y=%22238%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%22166%22 y=%22255%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22272%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22289%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%22166%22 y=%22306%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22323%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%22204%22 y=%2210%22%3E1%3C/tspan%3E%3Ctspan x=%22204%22 y=%2227%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%22204%22 y=%2244%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22204%22 y=%2261%22%3E1%3C/tspan%3E%3Ctspan x=%22204%22 y=%2278%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22204%22 y=%2295%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22112%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22129%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22146%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%22204%22 y=%22163%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22180%22%3E%E1%9B%89%3C/tspan%3E%3Ctspan x=%22204%22 y=%22197%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22204%22 y=%22214%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%2240%22%3E0%3C/tspan%3E%3Ctspan x=%22242%22 y=%2257%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22242%22 y=%2274%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22242%22 y=%2291%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22108%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22242%22 y=%22125%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22242%22 y=%22142%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22159%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%22242%22 y=%22176%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%22242%22 y=%22193%22%3E0%3C/tspan%3E%3Ctspan x=%22242%22 y=%22210%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%22242%22 y=%22227%22%3E%E1%9B%8A%3C/tspan%3E%3Ctspan x=%22242%22 y=%22244%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22261%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22242%22 y=%22278%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22280%22 y=%229%22%3E0%3C/tspan%3E%3Ctspan x=%22280%22 y=%2226%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22280%22 y=%2243%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22280%22 y=%2260%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%2277%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%2294%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22280%22 y=%22111%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%22128%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22280%22 y=%22145%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22280%22 y=%22162%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%22179%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22280%22 y=%22196%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%22318%22 y=%2219%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%2236%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%22318%22 y=%2253%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%22318%22 y=%2270%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%2287%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22318%22 y=%22104%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22121%22%3E0%3C/tspan%3E%3Ctspan x=%22318%22 y=%22138%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22155%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%22318%22 y=%22172%22%3E0%3C/tspan%3E%3Ctspan x=%22318%22 y=%22189%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22318%22 y=%22206%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22223%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22240%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22318%22 y=%22257%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22318%22 y=%22274%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22291%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22318%22 y=%22308%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22318%22 y=%22325%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22342%22%3E%E1%9B%96%3C/tspan%3E%3C/text%3E%3C/svg%3E"), linear-gradient(180deg, #000 0%, transparent 85%);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22320%22 height=%22360%22 viewBox=%220 0 320 360%22%3E%3Ctext font-family=%22Noto Sans Runic,Segoe UI Historic,Consolas,monospace%22 font-size=%2213%22 fill=%22%23000%22%3E%3Ctspan x=%2214%22 y=%2226%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%2243%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%2214%22 y=%2260%22%3E%E1%9A%BE%3C/tspan%3E%3Ctspan x=%2214%22 y=%2277%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%2294%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22111%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2214%22 y=%22128%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%22145%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%2214%22 y=%22162%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22179%22%3E0%3C/tspan%3E%3Ctspan x=%2214%22 y=%22196%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%2214%22 y=%22213%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%2214%22 y=%22230%22%3E1%3C/tspan%3E%3Ctspan x=%2214%22 y=%22247%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%2214%22 y=%22264%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%2214%22 y=%22281%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2254%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2271%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%2288%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%2252%22 y=%22105%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22122%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22139%22%3E1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22156%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22173%22%3E%E1%9A%B1%3C/tspan%3E%3Ctspan x=%2252%22 y=%22190%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2252%22 y=%22207%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22224%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%2252%22 y=%22241%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%2252%22 y=%22258%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22275%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%2252%22 y=%22292%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%2252%22 y=%22309%22%3E0%3C/tspan%3E%3Ctspan x=%2252%22 y=%22326%22%3E%E1%9A%BE%3C/tspan%3E%3Ctspan x=%2252%22 y=%22343%22%3E%E1%9B%88%3C/tspan%3E%3Ctspan x=%2290%22 y=%2232%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%2249%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%2290%22 y=%2266%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%2290%22 y=%2283%22%3E0%3C/tspan%3E%3Ctspan x=%2290%22 y=%22100%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%2290%22 y=%22117%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%22134%22%3E1%3C/tspan%3E%3Ctspan x=%2290%22 y=%22151%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%2290%22 y=%22168%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22128%22 y=%2227%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%2244%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22128%22 y=%2261%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22128%22 y=%2278%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%2295%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22128%22 y=%22112%22%3E%E1%9B%8A%3C/tspan%3E%3Ctspan x=%22128%22 y=%22129%22%3E1%3C/tspan%3E%3Ctspan x=%22128%22 y=%22146%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22166%22 y=%220%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%2217%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22166%22 y=%2234%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%22166%22 y=%2251%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%2268%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22166%22 y=%2285%22%3E%E1%9B%8F%3C/tspan%3E%3Ctspan x=%22166%22 y=%22102%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22119%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22166%22 y=%22136%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22153%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22170%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22187%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22204%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22221%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22166%22 y=%22238%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%22166%22 y=%22255%22%3E0%3C/tspan%3E%3Ctspan x=%22166%22 y=%22272%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22166%22 y=%22289%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%22166%22 y=%22306%22%3E1%3C/tspan%3E%3Ctspan x=%22166%22 y=%22323%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%22204%22 y=%2210%22%3E1%3C/tspan%3E%3Ctspan x=%22204%22 y=%2227%22%3E%E1%9A%A8%3C/tspan%3E%3Ctspan x=%22204%22 y=%2244%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22204%22 y=%2261%22%3E1%3C/tspan%3E%3Ctspan x=%22204%22 y=%2278%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22204%22 y=%2295%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22112%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22129%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22146%22%3E%E1%9B%83%3C/tspan%3E%3Ctspan x=%22204%22 y=%22163%22%3E0%3C/tspan%3E%3Ctspan x=%22204%22 y=%22180%22%3E%E1%9B%89%3C/tspan%3E%3Ctspan x=%22204%22 y=%22197%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22204%22 y=%22214%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%2240%22%3E0%3C/tspan%3E%3Ctspan x=%22242%22 y=%2257%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22242%22 y=%2274%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22242%22 y=%2291%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22108%22%3E%E1%9A%BA%3C/tspan%3E%3Ctspan x=%22242%22 y=%22125%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22242%22 y=%22142%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22159%22%3E%E1%9A%A0%3C/tspan%3E%3Ctspan x=%22242%22 y=%22176%22%3E%E1%9B%97%3C/tspan%3E%3Ctspan x=%22242%22 y=%22193%22%3E0%3C/tspan%3E%3Ctspan x=%22242%22 y=%22210%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%22242%22 y=%22227%22%3E%E1%9B%8A%3C/tspan%3E%3Ctspan x=%22242%22 y=%22244%22%3E1%3C/tspan%3E%3Ctspan x=%22242%22 y=%22261%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22242%22 y=%22278%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22280%22 y=%229%22%3E0%3C/tspan%3E%3Ctspan x=%22280%22 y=%2226%22%3E%E1%9A%B7%3C/tspan%3E%3Ctspan x=%22280%22 y=%2243%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22280%22 y=%2260%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%2277%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%2294%22%3E%E1%9B%81%3C/tspan%3E%3Ctspan x=%22280%22 y=%22111%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%22128%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22280%22 y=%22145%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22280%22 y=%22162%22%3E1%3C/tspan%3E%3Ctspan x=%22280%22 y=%22179%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22280%22 y=%22196%22%3E%E1%9B%9E%3C/tspan%3E%3Ctspan x=%22318%22 y=%2219%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%2236%22%3E%E1%9B%9C%3C/tspan%3E%3Ctspan x=%22318%22 y=%2253%22%3E%E1%9B%87%3C/tspan%3E%3Ctspan x=%22318%22 y=%2270%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%2287%22%3E%E1%9A%A6%3C/tspan%3E%3Ctspan x=%22318%22 y=%22104%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22121%22%3E0%3C/tspan%3E%3Ctspan x=%22318%22 y=%22138%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22155%22%3E%E1%9B%9A%3C/tspan%3E%3Ctspan x=%22318%22 y=%22172%22%3E0%3C/tspan%3E%3Ctspan x=%22318%22 y=%22189%22%3E%E1%9A%B9%3C/tspan%3E%3Ctspan x=%22318%22 y=%22206%22%3E%E1%9B%92%3C/tspan%3E%3Ctspan x=%22318%22 y=%22223%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22240%22%3E%E1%9B%96%3C/tspan%3E%3Ctspan x=%22318%22 y=%22257%22%3E%E1%9A%B2%3C/tspan%3E%3Ctspan x=%22318%22 y=%22274%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22291%22%3E%E1%9A%A2%3C/tspan%3E%3Ctspan x=%22318%22 y=%22308%22%3E%E1%9B%9F%3C/tspan%3E%3Ctspan x=%22318%22 y=%22325%22%3E1%3C/tspan%3E%3Ctspan x=%22318%22 y=%22342%22%3E%E1%9B%96%3C/tspan%3E%3C/text%3E%3C/svg%3E"), linear-gradient(180deg, #000 0%, transparent 85%);
  -webkit-mask-size: 320px 360px, 100% 100%; mask-size: 320px 360px, 100% 100%;
  -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat;
  -webkit-mask-composite: source-in; mask-composite: intersect;
}

/* ---------- motion: only when the person has not asked for less ---------- */
@media (prefers-reduced-motion: no-preference) {
  @keyframes ac-spark { 0% { left: 8px; opacity: 0; } 8% { opacity: 0.9; } 92% { opacity: 0.9; } 100% { left: calc(100% - 14px); opacity: 0; } }
  @keyframes ac-strike { 0%, 90% { opacity: 0; stroke-dashoffset: 1; } 93% { opacity: 1; stroke-dashoffset: 0; } 100% { opacity: 0; stroke-dashoffset: 0; } }
  @keyframes ac-fall { to { -webkit-mask-position: 0 360px, 0 0; mask-position: 0 360px, 0 0; } }
  @keyframes ac-breathe { 50% { box-shadow: var(--glow-strong); } }
  .ac-trace--live::after { animation: ac-spark var(--dur-pulse) var(--ease-arc) infinite; }
  .ac-lightning--strike { stroke-dasharray: 1; animation: ac-strike 7s linear infinite; }
  .ac-rain--drift::before { animation: ac-fall 40s linear infinite; }
  .ac-glow--breathe { animation: ac-breathe var(--dur-pulse) ease-in-out infinite; }
}
