/* ============================================================
   engineermaxxing — sigil logo styles + theme tokens
   Paired with js/sigil.js (window.Sigil.mount). Adapts to
   data-theme (cool purple on dark, warm gold on light).
   ============================================================ */
:root {
  --glow:  #b07aff;   /* primary energy + accent */
  --glow2: #5cc9b5;   /* secondary energy */
  --core:  #cbb3ff;   /* central core fill */
  --ink:   #3c465f;   /* dim structural lines */
  --aura-blend: screen;
}
[data-theme="light"] {
  --glow:  #c4862a;   /* warm gold (matches the maxxing wordmark) */
  --glow2: #2a9b86;   /* teal — a distinct second energy colour, like dark mode's two-tone */
  --core:  #9a6a18;
  --ink:   #c3b49a;
  --aura-blend: multiply;
}

/* ── sigil look (from design handoff, verbatim) ─────────────── */
.sigil{ display:block; width:100%; height:100%; overflow:visible; cursor:pointer; }
.sigil .struct{ fill:none; stroke:var(--ink); stroke-width:var(--weight,1.5); stroke-linecap:round; stroke-linejoin:round; }
.sigil .ring{ fill:none; stroke:var(--ink); stroke-width:calc(var(--weight,1.5)*.85); }
.sigil .spark{ fill:none; stroke:var(--glow); stroke-width:calc(var(--weight,1.5)*1.7);
  stroke-linecap:round; stroke-dasharray:11 89; animation:emx-flow var(--flow-dur,3.4s) linear infinite; }
.sigil .spark.alt{ stroke:var(--glow2); }
.sigil .energy{ opacity:var(--glow-amt,1); }
.sigil .bloom{ opacity:calc(var(--glow-amt,1) * .85); }
@keyframes emx-flow{ to{ stroke-dashoffset:-100; } }
.sigil .node{ fill:var(--glow); transform-box:fill-box; transform-origin:center; animation:emx-twinkle 3.6s ease-in-out infinite; }
.sigil .node.alt{ fill:var(--glow2); }
@keyframes emx-twinkle{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
.sigil .core{ fill:var(--core); transform-box:fill-box; transform-origin:center; animation:emx-breathe 4.2s ease-in-out infinite; }
.sigil .core-halo{ fill:var(--glow); opacity:calc(var(--glow-amt,1)*.5); transform-box:fill-box; transform-origin:center; animation:emx-breathe 4.2s ease-in-out infinite; }
@keyframes emx-breathe{ 0%,100%{ transform:scale(.92); opacity:.8; } 50%{ transform:scale(1.12); opacity:1; } }
.sigil .aura{ opacity:0; transition:opacity .4s ease; mix-blend-mode:var(--aura-blend); }
.sigil .tilt{ transition:transform .35s cubic-bezier(.22,1,.36,1); transform-box:fill-box; transform-origin:center; }
.sigil.live .spark{ animation-duration:calc(var(--flow-dur,3.4s) * .62); }
.sigil.cast .spark{ animation-duration:calc(var(--flow-dur,3.4s) * .3); }
.sigil .ripple{ fill:none; stroke:var(--glow); stroke-width:2; opacity:.9; animation:emx-ripple .9s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes emx-ripple{ to{ r:120px; opacity:0; stroke-width:.4; } }
@media (prefers-reduced-motion:reduce){
  .sigil .spark,.sigil .node,.sigil .core,.sigil .core-halo{ animation:none; }
}

/* ── wordmark (engineer + italic "maxxing") ─────────────────── */
.em-wordmark{ font-family:var(--font-display,'DM Serif Display',serif); font-weight:400; letter-spacing:-.01em; }
.em-wordmark .em-x{ color:var(--glow); font-style:italic; }
