/*! © 2026 PYRICATO PRODUCTIONS LLC (Spectre Workflows). All rights reserved. */
/* One star. Every page.

   The core, the glow, the falling line and the breath were being re-typed in each
   surface with slightly different numbers, so the same idea drifted between the
   front page, the documents and the dashboards. This file is the only place those
   numbers live. Use the classes; do not retype the shadow. */

:root{
  --star-core-size:7px;
  --star-core-colour:#fff;
  --star-glow:var(--peri,#A9B8FF);
  --star-glow-open:var(--gold,#E5B856);
  --star-line:rgba(154,181,255,.22);
  --star-breath:4.2s;
}

/* ── the core ───────────────────────────────────────────────────────────── */
.star-core,
[data-star]::before{
  content:"";
  display:block;
  width:var(--star-core-size);
  height:var(--star-core-size);
  flex:none;
  border-radius:50%;
  background:var(--star-core-colour);
  box-shadow:
    0 0 10px 2px var(--star-glow),
    0 0 24px color-mix(in srgb, var(--star-glow) 35%, transparent);
  transition:transform .2s ease, box-shadow .25s ease;
}

/* reaching for it, or opening it, warms the core */
.khlzuerho,
[data-star][open]::before,
[data-star]:hover::before,
a:hover > .star-core,
button:hover > .star-core{
  transform:scale(1.5);
  box-shadow:
    0 0 12px 3px var(--star-glow-open),
    0 0 30px color-mix(in srgb, var(--star-glow-open) 42%, transparent);
}

/* ── the breath ─────────────────────────────────────────────────────────── */
@keyframes spectre-star-breath{
  0%,100%{box-shadow:0 0 8px 1.5px var(--star-glow),
                     0 0 20px color-mix(in srgb, var(--star-glow) 28%, transparent)}
  50%    {box-shadow:0 0 13px 3px var(--star-glow),
                     0 0 32px color-mix(in srgb, var(--star-glow) 45%, transparent)}
}
.rzwfysfue,
.rzwfysfue::before{animation:spectre-star-breath var(--star-breath) ease-in-out infinite}
/* a sky does not keep time: stagger anything in a row */
.tmvaoygpk > *:nth-child(2n) .star-core,
.tmvaoygpk > *:nth-child(2n)[data-star]::before{animation-duration:5.1s;animation-delay:-1.3s}
.tmvaoygpk > *:nth-child(3n) .star-core,
.tmvaoygpk > *:nth-child(3n)[data-star]::before{animation-duration:3.7s;animation-delay:-2.4s}

/* ── the line they hang on ──────────────────────────────────────────────── */
.qmqarpckc{position:relative}
.qmqarpckc::before{
  content:"";
  position:absolute;
  left:5px;
  top:10px;
  bottom:10px;
  width:1px;
  background:linear-gradient(180deg,
    rgba(232,236,240,.42),
    var(--star-line),
    rgba(167,139,250,.1),
    transparent);
  box-shadow:0 0 18px rgba(154,181,255,.16);
}
.qmqarpckc > *{position:relative}

/* ── the surface they sit on ────────────────────────────────────────────── */
.jtsvwrqxd{
  border:1px solid rgba(169,184,255,.22);
  border-radius:28px;
  background:linear-gradient(150deg,#121a2e,#0b1120);
  box-shadow:0 26px 80px -48px rgba(63,108,245,.5);
  transition:transform .45s cubic-bezier(.2,.7,.2,1),
             box-shadow .45s cubic-bezier(.2,.7,.2,1),
             border-color .45s ease;
}
.jtsvwrqxd:hover,
.jtsvwrqxd:focus-within{
  transform:translateY(-6px);
  border-color:rgba(169,184,255,.5);
  box-shadow:0 44px 110px -50px rgba(63,108,245,.68);
}

@media (prefers-reduced-motion:reduce){
  .rzwfysfue,.rzwfysfue::before,
  .tmvaoygpk > * .star-core{animation:none}
  .jtsvwrqxd:hover,.jtsvwrqxd:focus-within{transform:none}
  .star-core,[data-star]::before{transition:none}
}
@media (max-width:760px){
  .qmqarpckc::before{left:4px}
  .jtsvwrqxd{border-radius:22px}
}
