/* =====================================================================
   VIRTUS SHARED BRAND LAYER — link on every Virtus page. Pair with
   virtus-hex-tile.css (forward... no: LIGHT brand, 'atrium' tier, violet #6403DD
   nodes + dark-indigo lattice; the [data-theme=light] block carries the readable
   boosted layer).

   VIRTUS IS A LIGHT BRAND (Adam 2026-06-25), the second light surface after Atrium:
   Atrium's light treatment carried in Virtus Aurora indigo #6403DD (LOCKED 2026-06-02).
   Light lavender ground, white panels that lift, dark indigo text, violet accent.

     <link rel="stylesheet" href="/virtus-hex-tile.css">
     <link rel="stylesheet" href="/virtus-brand.css">
     <body data-theme="light">           (REQUIRED — selects the readable hex layer)
       <div id="mx-hexbg" aria-hidden="true"></div>
       <div class="vir-glow"></div>
       <div class="vir-brand"><span class="vir-hex"></span><img class="vir-wm" alt="Virtus" src="/virtus-wm.png"></div>
       ...content (position:relative; z-index:1)...
       <div class="vir-foot"><span class="vir-hex"></span> Powered by Virtus</div>
   ===================================================================== */

:root, [data-theme="light"]{
  --sans:'Inter',-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --display:'Manrope',var(--sans);
  --mono:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --accent-2:#6403DD; --accent-rgb:100,3,221;

  --bg:#F4F1FA;            /* light lavender ground */
  --bg-2:#ECE7F6;          /* lifted lavender (inputs, subtle fills) */
  --panel:#FFFFFF;         /* white card, clearly lifts off the lavender */
  --ink:#1E1630;           /* dark indigo text */
  --muted:#5C5470;         /* muted indigo-grey */
  --border:rgba(30,18,48,.12);
  --accent:#6403DD;        /* Virtus Aurora indigo — LOCKED */
  --accent-deep:#4A02A6;   /* darker for hovers */
  --accent-text:#6403DD;   /* reads as link/label on the light ground */
  --on-accent:#FFFFFF;     /* white on the violet fill */
  --glow:rgba(100,3,221,.14);
}

/* The hex-tile texture (uses --hex-* from virtus-hex-tile.css; light grounds need
   a touch more opacity than dark ones to read).
   VIRTUS WAVE: the full uniform mesh is shown, with a soft diagonal band of transparency
   that drifts top-left -> bottom-right, like a slow wave passing through the texture. It is
   a gentle DIP (not a hard gap), slow (16s), and disabled under reduced-motion. */
#mx-hexbg{ position:fixed; inset:0; z-index:0; pointer-events:none; opacity:var(--hex-bg-opacity,.7);
  background-image:var(--hex-nodes), var(--hex-lattice); background-size:var(--hex-nodes-size), var(--hex-lattice-size);
  -webkit-mask-image:linear-gradient(135deg,#fff 0%,#fff 34%,rgba(255,255,255,.18) 50%,#fff 66%,#fff 100%);
          mask-image:linear-gradient(135deg,#fff 0%,#fff 34%,rgba(255,255,255,.18) 50%,#fff 66%,#fff 100%);
  -webkit-mask-size:280% 280%; mask-size:280% 280%;
  -webkit-mask-position:100% 100%; mask-position:100% 100%;
  animation:vir-wave 16s linear infinite; will-change:mask-position; }
/* band travels OPPOSITE to the mask shift, so shift bottom-right -> top-left to make the
   visible transparency wave move top-left -> bottom-right. */
@keyframes vir-wave{ from{ -webkit-mask-position:100% 100%; mask-position:100% 100%; }
                     to  { -webkit-mask-position:0% 0%; mask-position:0% 0%; } }
@media (prefers-reduced-motion: reduce){
  #mx-hexbg{ animation:none; -webkit-mask-image:none; mask-image:none; } }

/* The hexagon-clipped focal glow, breathing — soft violet on the light ground. */
.vir-glow{ position:fixed; top:-260px; left:50%; width:680px; height:760px; z-index:0; pointer-events:none;
  background:radial-gradient(circle, var(--glow), transparent 62%);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); filter:blur(60px);
  animation:vir-orbpulse 4.5s ease-in-out infinite; }
@keyframes vir-orbpulse{ 0%,100%{ opacity:.6; transform:translateX(-50%) scale(.97); } 50%{ opacity:.85; transform:translateX(-50%) scale(1.05); } }

/* The pulsing hexagon glyph + the Virtus word logo. */
.vir-brand{ display:flex; align-items:center; justify-content:center; gap:9px; position:relative; z-index:1; }
.vir-hex{ width:10px; height:11px; flex:none; background:var(--accent);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); animation:vir-hexpulse 2.4s ease-in-out infinite; }
@keyframes vir-hexpulse{
  0%,100%{ filter:drop-shadow(0 0 2px var(--glow)); transform:scale(.92); opacity:.85; }
  50%{ filter:drop-shadow(0 0 7px var(--glow)) drop-shadow(0 0 12px var(--glow)); transform:scale(1.12); opacity:1; }
}
.vir-wm{ height:14px; width:auto; display:block; }

.vir-foot{ margin-top:16px; text-align:center; position:relative; z-index:1;
  font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  display:flex; align-items:center; justify-content:center; gap:7px; }
.vir-foot .vir-hex{ width:7px; height:8px; }
