/* EI Event Gate v0.1.12 — EI canonical styles */
.eieg-lock{overflow:hidden}
.ei-event-gate{display:inline-flex;flex-direction:column;gap:8px;align-items:flex-start}
.ei-event-gate.is-hidden{display:none}

/* Canonical style tokens. Effects/animations are intentionally separate. */
.eieg-style-basic{--eieg-bg:#f1f5f9;--eieg-text:#0f172a;--eieg-muted:#475569;--eieg-border:#cbd5e1;--eieg-accent:#334155;--eieg-accent-text:#fff;--eieg-secondary:rgba(100,116,139,.16);--eieg-radius:14px;--eieg-shadow:0 12px 30px rgba(15,23,42,.10);--eieg-font:inherit;--eieg-texture:none}
.eieg-style-minimal{--eieg-bg:#fff;--eieg-text:#111827;--eieg-muted:#64748b;--eieg-border:#e2e8f0;--eieg-accent:#111827;--eieg-accent-text:#fff;--eieg-secondary:#f1f5f9;--eieg-radius:16px;--eieg-shadow:0 16px 42px rgba(15,23,42,.10);--eieg-font:inherit;--eieg-texture:none}
.eieg-style-glass{--eieg-bg:linear-gradient(145deg,rgba(15,23,42,.86),rgba(30,41,59,.72));--eieg-text:#f8fafc;--eieg-muted:#cbd5e1;--eieg-border:rgba(255,255,255,.24);--eieg-accent:#7dd3fc;--eieg-accent-text:#082f49;--eieg-secondary:rgba(255,255,255,.12);--eieg-radius:22px;--eieg-shadow:0 24px 70px rgba(2,6,23,.38),inset 0 1px 0 rgba(255,255,255,.18);--eieg-font:inherit;--eieg-texture:none}
.eieg-style-rpg{--eieg-bg:linear-gradient(180deg,#3a2710,#171006);--eieg-text:#fff1bd;--eieg-muted:#e4ca83;--eieg-border:#d8aa4e;--eieg-accent:#e1b85a;--eieg-accent-text:#241504;--eieg-secondary:rgba(232,190,92,.14);--eieg-radius:12px;--eieg-shadow:inset 0 0 0 2px rgba(255,245,190,.12),0 18px 48px rgba(0,0,0,.38);--eieg-font:Georgia,"Times New Roman",serif;--eieg-texture:linear-gradient(90deg,transparent,rgba(255,220,120,.04),transparent)}
.eieg-style-classic_wood{--eieg-bg:linear-gradient(135deg,#3b2415,#684326 55%,#2d1b11);--eieg-text:#fff4d6;--eieg-muted:#dfc7a3;--eieg-border:#a8723e;--eieg-accent:#d49a52;--eieg-accent-text:#2a170a;--eieg-secondary:rgba(255,241,211,.12);--eieg-radius:10px;--eieg-shadow:inset 0 0 0 3px rgba(50,26,10,.35),0 18px 44px rgba(45,27,17,.35);--eieg-font:Georgia,"Times New Roman",serif;--eieg-texture:repeating-linear-gradient(8deg,rgba(255,255,255,.018) 0 2px,transparent 2px 8px)}
.eieg-style-parchment{--eieg-bg:linear-gradient(135deg,#f7edcf,#e7d3a7);--eieg-text:#3e2a12;--eieg-muted:#725735;--eieg-border:#ac8349;--eieg-accent:#7b5423;--eieg-accent-text:#fff6dd;--eieg-secondary:rgba(117,83,36,.10);--eieg-radius:8px;--eieg-shadow:0 16px 38px rgba(83,57,22,.20),inset 0 0 36px rgba(125,91,42,.08);--eieg-font:Georgia,"Times New Roman",serif;--eieg-texture:radial-gradient(circle at 15% 20%,rgba(111,78,38,.08),transparent 24%),radial-gradient(circle at 80% 75%,rgba(111,78,38,.06),transparent 30%)}
.eieg-style-dark{--eieg-bg:#15171c;--eieg-text:#f8fafc;--eieg-muted:#aeb7c6;--eieg-border:#3d4655;--eieg-accent:#e2e8f0;--eieg-accent-text:#111827;--eieg-secondary:#252a33;--eieg-radius:22px;--eieg-shadow:0 24px 68px rgba(0,0,0,.46);--eieg-font:inherit;--eieg-texture:none}
.eieg-style-chinese{--eieg-bg:linear-gradient(145deg,#681414,#2f0909);--eieg-text:#fff1d0;--eieg-muted:#e7c999;--eieg-border:#c9983e;--eieg-accent:#d7ad55;--eieg-accent-text:#481010;--eieg-secondary:rgba(255,226,166,.12);--eieg-radius:6px;--eieg-shadow:inset 0 0 0 2px rgba(255,211,114,.10),0 22px 56px rgba(74,10,10,.42);--eieg-font:"Noto Serif TC","Songti TC",serif;--eieg-texture:linear-gradient(45deg,transparent 48%,rgba(255,207,103,.05) 49% 51%,transparent 52%)}
.eieg-style-japanese{--eieg-bg:#f5f0e5;--eieg-text:#211f1b;--eieg-muted:#645f55;--eieg-border:#9a9386;--eieg-accent:#982f35;--eieg-accent-text:#fff;--eieg-secondary:rgba(36,32,27,.08);--eieg-radius:3px;--eieg-shadow:8px 10px 0 rgba(34,31,27,.10);--eieg-font:"Noto Serif TC","Yu Mincho",serif;--eieg-texture:repeating-linear-gradient(0deg,rgba(55,48,38,.025) 0 1px,transparent 1px 5px)}
.eieg-style-ink{--eieg-bg:linear-gradient(135deg,#f4f4f1,#deded8);--eieg-text:#171717;--eieg-muted:#555;--eieg-border:#383838;--eieg-accent:#171717;--eieg-accent-text:#fff;--eieg-secondary:rgba(0,0,0,.08);--eieg-radius:2px;--eieg-shadow:6px 8px 0 rgba(0,0,0,.12);--eieg-font:"Noto Serif TC",serif;--eieg-texture:radial-gradient(ellipse at 82% 18%,rgba(0,0,0,.08),transparent 30%)}
.eieg-style-pixel{--eieg-bg:#111827;--eieg-text:#fff;--eieg-muted:#cbd5e1;--eieg-border:#fff;--eieg-accent:#facc15;--eieg-accent-text:#111827;--eieg-secondary:#263449;--eieg-radius:0;--eieg-shadow:7px 7px 0 #000;--eieg-font:monospace;--eieg-texture:none}
.eieg-style-windows95{--eieg-bg:#c0c0c0;--eieg-text:#000;--eieg-muted:#333;--eieg-border:#000;--eieg-accent:#000080;--eieg-accent-text:#fff;--eieg-secondary:#d4d0c8;--eieg-radius:0;--eieg-shadow:inset 2px 2px #fff,inset -2px -2px #666,5px 5px 0 rgba(0,0,0,.18);--eieg-font:"MS Sans Serif",Tahoma,sans-serif;--eieg-texture:none}
.eieg-style-windows{--eieg-bg:linear-gradient(145deg,rgba(248,251,255,.96),rgba(224,235,249,.92));--eieg-text:#14213a;--eieg-muted:#50627e;--eieg-border:#9bb0cc;--eieg-accent:#1267d6;--eieg-accent-text:#fff;--eieg-secondary:rgba(18,103,214,.10);--eieg-radius:12px;--eieg-shadow:0 18px 48px rgba(37,73,124,.18),inset 0 1px 0 #fff;--eieg-font:"Segoe UI",sans-serif;--eieg-texture:none}
.eieg-style-mac{--eieg-bg:linear-gradient(180deg,rgba(255,255,255,.94),rgba(235,240,247,.88));--eieg-text:#16181d;--eieg-muted:#68707c;--eieg-border:rgba(111,119,132,.34);--eieg-accent:#087cff;--eieg-accent-text:#fff;--eieg-secondary:rgba(120,128,140,.12);--eieg-radius:20px;--eieg-shadow:0 24px 60px rgba(27,35,48,.22),inset 0 1px 0 #fff;--eieg-font:-apple-system,BlinkMacSystemFont,"SF Pro Display",sans-serif;--eieg-texture:none}
.eieg-style-cyberpunk{--eieg-bg:linear-gradient(145deg,#080a12,#121025);--eieg-text:#eaffff;--eieg-muted:#99d9e7;--eieg-border:#22d3ee;--eieg-accent:#f0f;--eieg-accent-text:#100014;--eieg-secondary:rgba(34,211,238,.12);--eieg-radius:3px;--eieg-shadow:0 0 28px rgba(34,211,238,.28),inset 0 0 22px rgba(217,70,239,.12);--eieg-font:monospace;--eieg-texture:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px)}
.eieg-style-nasapunk{--eieg-bg:linear-gradient(145deg,#07172a,#0d2a48);--eieg-text:#f2f7ff;--eieg-muted:#b6c8df;--eieg-border:#5c84ab;--eieg-accent:#f59e0b;--eieg-accent-text:#172033;--eieg-secondary:rgba(133,169,207,.16);--eieg-radius:8px;--eieg-shadow:inset 0 0 0 2px rgba(216,234,255,.10),0 22px 54px rgba(3,13,26,.46);--eieg-font:"Arial Narrow",Arial,sans-serif;--eieg-texture:linear-gradient(90deg,transparent 49%,rgba(255,255,255,.025) 50%,transparent 51%)}
.eieg-style-steampunk{--eieg-bg:linear-gradient(145deg,#3a2417,#694427 60%,#2a1a12);--eieg-text:#ffedcb;--eieg-muted:#d9bea0;--eieg-border:#bd7e37;--eieg-accent:#cf8f3f;--eieg-accent-text:#271408;--eieg-secondary:rgba(228,169,92,.14);--eieg-radius:10px;--eieg-shadow:inset 0 0 0 2px rgba(245,197,126,.10),0 20px 50px rgba(49,29,15,.42);--eieg-font:Georgia,serif;--eieg-texture:radial-gradient(circle at 90% 10%,rgba(255,205,128,.08),transparent 25%)}
.eieg-style-terminal{--eieg-bg:#020804;--eieg-text:#86ff9c;--eieg-muted:#55bd68;--eieg-border:#2bdc55;--eieg-accent:#86ff9c;--eieg-accent-text:#001a06;--eieg-secondary:rgba(43,220,85,.10);--eieg-radius:2px;--eieg-shadow:0 0 28px rgba(43,220,85,.20),inset 0 0 26px rgba(43,220,85,.05);--eieg-font:"Courier New",monospace;--eieg-texture:repeating-linear-gradient(0deg,rgba(134,255,156,.035) 0 1px,transparent 1px 3px)}
.eieg-style-arcane{--eieg-bg:radial-gradient(circle at 50% -10%,#3c1c68,#160c29 55%,#090511);--eieg-text:#f6edff;--eieg-muted:#c9b4e4;--eieg-border:#9d6ee7;--eieg-accent:#c084fc;--eieg-accent-text:#1c0737;--eieg-secondary:rgba(192,132,252,.12);--eieg-radius:18px;--eieg-shadow:0 0 46px rgba(139,92,246,.30),inset 0 0 26px rgba(192,132,252,.08);--eieg-font:Georgia,serif;--eieg-texture:radial-gradient(circle at 15% 25%,rgba(255,255,255,.08) 0 1px,transparent 2px)}
.eieg-style-wabisabi{--eieg-bg:#e8e3d8;--eieg-text:#302f2a;--eieg-muted:#6d695f;--eieg-border:#a7a092;--eieg-accent:#6b705c;--eieg-accent-text:#fff;--eieg-secondary:rgba(72,69,61,.08);--eieg-radius:4px;--eieg-shadow:0 14px 32px rgba(57,54,48,.14);--eieg-font:"Noto Serif TC",serif;--eieg-texture:radial-gradient(circle at 85% 15%,rgba(74,69,57,.06),transparent 28%)}
.eieg-style-cute{--eieg-bg:linear-gradient(145deg,#fff7fb,#ffe7f2);--eieg-text:#6f2348;--eieg-muted:#9b5675;--eieg-border:#f2a8c9;--eieg-accent:#ec71aa;--eieg-accent-text:#fff;--eieg-secondary:rgba(236,113,170,.11);--eieg-radius:24px;--eieg-shadow:0 18px 44px rgba(218,101,154,.18);--eieg-font:inherit;--eieg-texture:radial-gradient(circle at 88% 12%,rgba(255,255,255,.8) 0 7px,transparent 8px)}
.eieg-style-western{--eieg-bg:linear-gradient(145deg,#f0eadf,#d9cfbf);--eieg-text:#2d2923;--eieg-muted:#6d6357;--eieg-border:#958674;--eieg-accent:#5a4634;--eieg-accent-text:#fff7e9;--eieg-secondary:rgba(90,70,52,.10);--eieg-radius:7px;--eieg-shadow:0 17px 40px rgba(64,53,40,.20),inset 0 0 0 1px rgba(255,255,255,.45);--eieg-font:Georgia,"Times New Roman",serif;--eieg-texture:linear-gradient(135deg,rgba(255,255,255,.10),transparent 45%)}
.eieg-style-dq{--eieg-bg:linear-gradient(180deg,#173a8b,#071a52);--eieg-text:#fff;--eieg-muted:#d5e1ff;--eieg-border:#fff;--eieg-accent:#f8d64e;--eieg-accent-text:#0e255f;--eieg-secondary:rgba(255,255,255,.13);--eieg-radius:5px;--eieg-shadow:inset 0 0 0 3px #6a8ee8,0 18px 46px rgba(6,25,80,.38);--eieg-font:system-ui,sans-serif;--eieg-texture:none}

.eieg-trigger{appearance:none;cursor:pointer;padding:12px 18px;font-weight:800;letter-spacing:.03em;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;background:var(--eieg-bg);background-image:var(--eieg-texture),var(--eieg-bg);color:var(--eieg-text);border:1px solid var(--eieg-border);border-radius:var(--eieg-radius);box-shadow:var(--eieg-shadow);font-family:var(--eieg-font)}
.eieg-trigger:hover{transform:translateY(-2px);filter:brightness(1.05)}
.eieg-trigger:focus-visible{outline:3px solid color-mix(in srgb,var(--eieg-accent) 55%,transparent);outline-offset:3px}
.eieg-trigger.is-busy,.eieg-trigger:disabled{opacity:.55;cursor:not-allowed;transform:none;filter:none}
.eieg-button-note{font-size:12px;color:#64748b}

.eieg-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:22px}
.eieg-modal.is-on{display:flex}
.eieg-backdrop{position:absolute;inset:0;background:rgba(7,12,24,.62);backdrop-filter:blur(8px)}
.eieg-dialog{--eieg-state-color:var(--eieg-accent);--eieg-state-color-2:color-mix(in srgb,var(--eieg-state-color) 45%,#fff);--eieg-state-glow:var(--eieg-state-color);position:relative;width:min(520px,calc(100vw - 32px));padding:34px 30px 24px;text-align:center;overflow:hidden;background:var(--eieg-bg);background-image:var(--eieg-texture),var(--eieg-bg);color:var(--eieg-text);border:1px solid var(--eieg-border);border-radius:calc(var(--eieg-radius) + 8px);box-shadow:var(--eieg-shadow);font-family:var(--eieg-font);isolation:isolate}
.eieg-dialog::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(125deg,color-mix(in srgb,var(--eieg-accent) 7%,transparent),transparent 42%)}
.eieg-dialog.eieg-style-glass,.eieg-dialog.eieg-style-windows,.eieg-dialog.eieg-style-mac{backdrop-filter:blur(18px)}
.eieg-dialog.eieg-style-pixel{border-width:4px}
.eieg-dialog.eieg-style-windows95{border-width:2px}
.eieg-x{position:absolute;top:12px;right:14px;border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--eieg-text);opacity:.68}
.eieg-title{margin:16px 0 8px;font-size:24px;letter-spacing:.02em;color:var(--eieg-text)!important}
.eieg-text{margin:0 auto 18px;max-width:38em;color:var(--eieg-muted)!important;line-height:1.7}
.eieg-loader{height:72px;display:grid;place-items:center;color:var(--eieg-state-color)}
.eieg-loader span{display:block;width:54px;height:54px;border-radius:999px}
.eieg-loading-orb .eieg-loader span{background:radial-gradient(circle at 34% 28%,#fff 0 6%,var(--eieg-state-color-2) 15%,var(--eieg-state-color) 48%,color-mix(in srgb,var(--eieg-state-color) 12%,transparent) 68%,transparent 72%);box-shadow:0 0 36px color-mix(in srgb,var(--eieg-state-glow) 72%,transparent);animation:eiegPulse 1.15s infinite ease-in-out}
.eieg-loading-ring .eieg-loader span{border:4px solid color-mix(in srgb,var(--eieg-state-color-2) 35%,transparent);border-top-color:var(--eieg-state-color);border-right-color:var(--eieg-state-color-2);box-shadow:0 0 24px color-mix(in srgb,var(--eieg-state-glow) 46%,transparent);animation:eiegSpin .8s linear infinite}
.eieg-loading-crystal .eieg-loader span{border-radius:12px;transform:rotate(45deg);background:linear-gradient(135deg,var(--eieg-state-color-2),var(--eieg-state-color) 62%);box-shadow:0 0 32px color-mix(in srgb,var(--eieg-state-glow) 58%,transparent);animation:eiegPulse 1.2s infinite}
.eieg-loading-rune .eieg-loader span{border:2px solid var(--eieg-state-color);background:conic-gradient(from 45deg,transparent 0 12%,var(--eieg-state-color-2) 13% 18%,transparent 19% 37%,var(--eieg-state-color) 38% 43%,transparent 44% 62%,var(--eieg-state-color-2) 63% 68%,transparent 69%);box-shadow:inset 0 0 0 10px color-mix(in srgb,var(--eieg-state-color) 10%,transparent),0 0 28px color-mix(in srgb,var(--eieg-state-glow) 76%,transparent);animation:eiegSpin 2s linear infinite}
.eieg-loading-portal .eieg-loader span{background:conic-gradient(from 0deg,transparent,var(--eieg-state-color),var(--eieg-state-color-2),transparent);box-shadow:0 0 30px color-mix(in srgb,var(--eieg-state-glow) 60%,transparent);animation:eiegSpin .95s linear infinite}
.eieg-loading-dots .eieg-loader span{width:78px;height:18px;border-radius:0;background:radial-gradient(circle at 10% 50%,var(--eieg-state-color) 0 8px,transparent 9px),radial-gradient(circle at 50% 50%,var(--eieg-state-color-2) 0 8px,transparent 9px),radial-gradient(circle at 90% 50%,var(--eieg-state-color) 0 8px,transparent 9px);filter:drop-shadow(0 0 8px var(--eieg-state-glow));animation:eiegPulse 1s infinite}

.eieg-loading-coin .eieg-loader span{position:relative;border:4px double var(--eieg-state-color-2);background:radial-gradient(circle at 34% 28%,#fff 0 5%,var(--eieg-state-color-2) 10%,var(--eieg-state-color) 62%);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--eieg-state-color-2) 45%,transparent),0 0 28px color-mix(in srgb,var(--eieg-state-glow) 58%,transparent)}
.eieg-loading-coin .eieg-loader span::before{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:color-mix(in srgb,var(--eieg-state-color-2) 60%,#fff);font-size:24px;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.eieg-loading-gem .eieg-loader span{border-radius:8px;clip-path:polygon(50% 0,88% 25%,74% 82%,50% 100%,26% 82%,12% 25%);background:linear-gradient(135deg,#fff 0 5%,var(--eieg-state-color-2) 20%,var(--eieg-state-color) 58%,color-mix(in srgb,var(--eieg-state-color) 75%,#000));box-shadow:0 0 34px color-mix(in srgb,var(--eieg-state-glow) 64%,transparent)}
.eieg-loading-seal .eieg-loader span{position:relative;border:2px solid var(--eieg-state-color);background:radial-gradient(circle,transparent 0 34%,color-mix(in srgb,var(--eieg-state-color) 18%,transparent) 35% 50%,transparent 51%);box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--eieg-state-color-2) 18%,transparent),0 0 30px color-mix(in srgb,var(--eieg-state-glow) 56%,transparent)}
.eieg-loading-seal .eieg-loader span::before,.eieg-loading-seal .eieg-loader span::after{content:"";position:absolute;inset:10px;border:2px solid var(--eieg-state-color-2);transform:rotate(45deg)}
.eieg-loading-seal .eieg-loader span::after{transform:rotate(22.5deg);border-color:var(--eieg-state-color)}
.eieg-loading-star .eieg-loader span{border-radius:0;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 94%,50% 71%,21% 94%,32% 56%,2% 35%,39% 35%);background:linear-gradient(135deg,var(--eieg-state-color-2),var(--eieg-state-color) 58%);filter:drop-shadow(0 0 12px var(--eieg-state-glow))}
.eieg-loading-halo .eieg-loader span{width:64px;height:30px;border:5px solid var(--eieg-state-color);border-left-color:var(--eieg-state-color-2);border-right-color:var(--eieg-state-color-2);box-shadow:0 0 24px color-mix(in srgb,var(--eieg-state-glow) 72%,transparent),inset 0 0 14px color-mix(in srgb,var(--eieg-state-glow) 45%,transparent);transform:rotateX(58deg)}
.eieg-progress{height:5px;border-radius:999px;background:var(--eieg-secondary);overflow:hidden;margin:18px 0}
.eieg-progress i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:var(--eieg-state-color)}
.eieg-actions{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:18px}
.eieg-close,.eieg-primary{border:1px solid transparent;border-radius:max(6px,var(--eieg-radius));padding:10px 16px;text-decoration:none;cursor:pointer;font-weight:800;transition:transform .16s ease,filter .16s ease}
.eieg-close{background:var(--eieg-secondary);color:var(--eieg-text);border-color:color-mix(in srgb,var(--eieg-border) 70%,transparent)}
.eieg-primary{background:var(--eieg-accent);color:var(--eieg-accent-text)}
.eieg-close:hover,.eieg-primary:hover{transform:translateY(-1px);filter:brightness(1.06)}
.eieg-dialog.is-success{--eieg-state-color:#22c55e}
.eieg-dialog.is-rare{--eieg-state-color:#c084fc}
.eieg-dialog.is-fail{--eieg-state-color:#94a3b8}
.eieg-dialog.is-blocked,.eieg-dialog.is-error{--eieg-state-color:#64748b}
.eieg-dialog.is-result .eieg-loader span{animation:none}
.eieg-media{margin:0 auto 16px;max-width:100%;display:grid;place-items:center}
.eieg-media[hidden]{display:none!important}
.eieg-media img{display:block;max-width:min(320px,100%);max-height:220px;width:auto;height:auto;border-radius:max(0px,var(--eieg-radius));object-fit:contain;border:1px solid color-mix(in srgb,var(--eieg-border) 72%,transparent);box-shadow:0 16px 45px rgba(0,0,0,.22)}
.eieg-dialog.eieg-style-pixel .eieg-media img,.eieg-dialog.eieg-style-windows95 .eieg-media img{border-radius:0;image-rendering:pixelated}
.eieg-dialog.eieg-no-loader .eieg-loader{display:none}
.eieg-dialog.eieg-no-loader .eieg-media.is-on{margin-top:10px}
.eieg-modal.is-close-locked .eieg-x,.eieg-modal.is-close-locked .eieg-close{display:none!important}
.eieg-modal.is-close-locked .eieg-backdrop{cursor:default}

@keyframes eiegPulse{0%,100%{transform:scale(.92);opacity:.72}50%{transform:scale(1.06);opacity:1}}
@keyframes eiegSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){.eieg-modal{padding:14px}.eieg-dialog{padding:30px 20px 20px;border-radius:max(12px,var(--eieg-radius))}.eieg-title{font-size:21px}.eieg-actions{flex-direction:column}.eieg-close,.eieg-primary{width:100%;box-sizing:border-box}}
@media(prefers-reduced-motion:reduce){.eieg-trigger,.eieg-close,.eieg-primary,.eieg-loader span{animation:none!important;transition:none!important}}
.eieg-button-note[class*="eieg-style-"]{color:var(--eieg-muted);font-family:var(--eieg-font);background:none;border:0;box-shadow:none;padding:0}

/* EI Event Gate v0.1.12 — dynamic outcome tone */
.eieg-dialog.is-neutral{--eieg-state-color:#60a5fa}

/* EI Event Gate v0.1.15 — living outcome motion system */
.eieg-loader{perspective:420px;overflow:visible}
.eieg-loader span{position:relative;transform-style:preserve-3d;will-change:transform,opacity,filter;isolation:isolate}
.eieg-loader span::before,.eieg-loader span::after{box-sizing:border-box;pointer-events:none}
.eieg-dialog.is-result .eieg-loader{animation:eiegResultReveal .62s cubic-bezier(.16,1,.3,1) both}

/* Orb: asymmetric drift, inner current and expanding aura. */
.eieg-loading-orb .eieg-loader span{
  background:radial-gradient(circle at 31% 24%,#fff 0 5%,color-mix(in srgb,var(--eieg-state-color-2) 78%,#fff) 9%,var(--eieg-state-color-2) 18%,var(--eieg-state-color) 47%,color-mix(in srgb,var(--eieg-state-color) 22%,transparent) 66%,transparent 73%);
  box-shadow:0 0 18px color-mix(in srgb,var(--eieg-state-glow) 62%,transparent),0 0 46px color-mix(in srgb,var(--eieg-state-glow) 32%,transparent);
  animation:eiegOrbAlive 2.55s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-orb .eieg-loader span::before{
  content:"";position:absolute;inset:7px;border-radius:50%;
  background:conic-gradient(from 30deg,transparent 0 16%,color-mix(in srgb,var(--eieg-state-color-2) 76%,#fff) 18% 24%,transparent 27% 57%,color-mix(in srgb,var(--eieg-state-color) 76%,#fff) 60% 67%,transparent 70%);
  opacity:.76;mix-blend-mode:screen;filter:blur(.35px);
  animation:eiegOrbCurrent 2.9s linear infinite;
}
.eieg-loading-orb .eieg-loader span::after{
  content:"";position:absolute;inset:-10px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--eieg-state-glow) 55%,transparent);
  box-shadow:0 0 18px color-mix(in srgb,var(--eieg-state-glow) 34%,transparent),inset 0 0 12px color-mix(in srgb,var(--eieg-state-glow) 18%,transparent);
  animation:eiegOrbWave 1.82s cubic-bezier(.16,.84,.3,1) infinite;
}

/* Ring: two counter-rotating rings plus an orbiting spark. */
.eieg-loading-ring .eieg-loader span{
  background:transparent;border:4px solid color-mix(in srgb,var(--eieg-state-color-2) 34%,transparent);border-top-color:var(--eieg-state-color);border-right-color:var(--eieg-state-color-2);
  box-shadow:0 0 20px color-mix(in srgb,var(--eieg-state-glow) 38%,transparent),inset 0 0 12px color-mix(in srgb,var(--eieg-state-glow) 18%,transparent);
  animation:eiegRingAlive 1.36s cubic-bezier(.45,.05,.3,.95) infinite;
}
.eieg-loading-ring .eieg-loader span::before{
  content:"";position:absolute;inset:8px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--eieg-state-color-2) 74%,transparent);
  animation:eiegSpinReverse 2.05s linear infinite;
}
.eieg-loading-ring .eieg-loader span::after{
  content:"";position:absolute;left:50%;top:-6px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#fff;
  box-shadow:0 0 8px #fff,0 0 16px var(--eieg-state-glow);transform-origin:4px 33px;
  animation:eiegOrbitSpark 1.08s linear infinite;
}

/* Crystal: levitation, tiny tilts and traveling facet highlight. */
.eieg-loading-crystal .eieg-loader span{
  border-radius:12px;background:linear-gradient(135deg,#fff 0 4%,var(--eieg-state-color-2) 18%,var(--eieg-state-color) 62%,color-mix(in srgb,var(--eieg-state-color) 76%,#000));
  box-shadow:0 0 22px color-mix(in srgb,var(--eieg-state-glow) 48%,transparent),0 12px 24px rgba(0,0,0,.18);
  animation:eiegCrystalAlive 2.72s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-crystal .eieg-loader span::before{
  content:"";position:absolute;inset:5px;border-radius:8px;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.8) 43%,transparent 62%);
  mix-blend-mode:screen;transform:translateX(-125%);animation:eiegFacetSweep 2.35s ease-in-out infinite;
}
.eieg-loading-crystal .eieg-loader span::after{
  content:"";position:absolute;inset:-8px;border-radius:16px;border:1px solid color-mix(in srgb,var(--eieg-state-glow) 45%,transparent);
  animation:eiegCrystalAura 1.9s ease-in-out infinite;
}

/* Rune: slow imperfect rotation, reverse inner geometry and breathing field. */
.eieg-loading-rune .eieg-loader span{
  border:2px solid var(--eieg-state-color);background:conic-gradient(from 45deg,transparent 0 12%,var(--eieg-state-color-2) 13% 18%,transparent 19% 37%,var(--eieg-state-color) 38% 43%,transparent 44% 62%,var(--eieg-state-color-2) 63% 68%,transparent 69%);
  box-shadow:inset 0 0 0 10px color-mix(in srgb,var(--eieg-state-color) 10%,transparent),0 0 25px color-mix(in srgb,var(--eieg-state-glow) 64%,transparent);
  animation:eiegRuneAlive 4.9s cubic-bezier(.5,.04,.36,1) infinite;
}
.eieg-loading-rune .eieg-loader span::before{
  content:"";position:absolute;inset:9px;border-radius:50%;border:2px dotted var(--eieg-state-color-2);
  box-shadow:inset 0 0 10px color-mix(in srgb,var(--eieg-state-glow) 24%,transparent);animation:eiegSpinReverse 3.15s linear infinite;
}
.eieg-loading-rune .eieg-loader span::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid color-mix(in srgb,var(--eieg-state-glow) 50%,transparent);
  animation:eiegRuneField 2.1s ease-in-out infinite;
}

/* Portal: layered vortexes with different speeds and an outward shockwave. */
.eieg-loading-portal .eieg-loader span{
  border-radius:50%;background:conic-gradient(from 0deg,transparent 0 9%,var(--eieg-state-color) 17%,var(--eieg-state-color-2) 38%,transparent 49%,var(--eieg-state-color) 72%,transparent 88%);
  box-shadow:0 0 24px color-mix(in srgb,var(--eieg-state-glow) 54%,transparent),inset 0 0 15px rgba(255,255,255,.18);
  animation:eiegPortalAlive 1.48s cubic-bezier(.42,0,.58,1) infinite;
}
.eieg-loading-portal .eieg-loader span::before{
  content:"";position:absolute;inset:9px;border-radius:50%;background:conic-gradient(from 180deg,transparent,var(--eieg-state-color-2),transparent 44%,var(--eieg-state-color),transparent 77%);
  filter:blur(.4px);animation:eiegSpinReverse .88s linear infinite;
}
.eieg-loading-portal .eieg-loader span::after{
  content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid color-mix(in srgb,var(--eieg-state-glow) 45%,transparent);
  animation:eiegPortalWave 1.62s ease-out infinite;
}

/* Dots: each dot moves independently instead of the whole group pulsing together. */
.eieg-loading-dots .eieg-loader span{
  width:14px;height:14px;border-radius:50%;background:var(--eieg-state-color-2);box-shadow:0 0 11px color-mix(in srgb,var(--eieg-state-glow) 65%,transparent);
  animation:eiegDotMid .92s cubic-bezier(.5,.05,.35,1) infinite;
}
.eieg-loading-dots .eieg-loader span::before,.eieg-loading-dots .eieg-loader span::after{
  content:"";position:absolute;top:0;width:14px;height:14px;border-radius:50%;background:var(--eieg-state-color);box-shadow:0 0 10px color-mix(in srgb,var(--eieg-state-glow) 60%,transparent);
}
.eieg-loading-dots .eieg-loader span::before{left:-28px;animation:eiegDotSide .92s cubic-bezier(.5,.05,.35,1) -.18s infinite}
.eieg-loading-dots .eieg-loader span::after{left:28px;animation:eiegDotSide .92s cubic-bezier(.5,.05,.35,1) .18s infinite}

/* Coin: floating 3D flip, breathing edge and a moving glint. */
.eieg-loading-coin .eieg-loader span{
  border:4px double var(--eieg-state-color-2);background:radial-gradient(circle at 34% 28%,#fff 0 5%,var(--eieg-state-color-2) 10%,var(--eieg-state-color) 62%);
  box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--eieg-state-color-2) 45%,transparent),0 0 25px color-mix(in srgb,var(--eieg-state-glow) 52%,transparent);
  animation:eiegCoinAlive 2.25s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-coin .eieg-loader span::before{
  content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:color-mix(in srgb,var(--eieg-state-color-2) 60%,#fff);font-size:24px;text-shadow:0 1px 2px rgba(0,0,0,.35),0 0 8px #fff;
  animation:eiegCoinMark 2.25s ease-in-out infinite;
}
.eieg-loading-coin .eieg-loader span::after{
  content:"";position:absolute;top:-18%;bottom:-18%;width:10px;left:-30%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);
  animation:eiegCoinShine 2.25s ease-in-out infinite;
}

/* Gem: uneven levitation and traveling internal refraction. */
.eieg-loading-gem .eieg-loader span{
  border-radius:8px;clip-path:polygon(50% 0,88% 25%,74% 82%,50% 100%,26% 82%,12% 25%);background:linear-gradient(135deg,#fff 0 5%,var(--eieg-state-color-2) 20%,var(--eieg-state-color) 58%,color-mix(in srgb,var(--eieg-state-color) 75%,#000));
  filter:drop-shadow(0 0 12px color-mix(in srgb,var(--eieg-state-glow) 70%,transparent));animation:eiegGemAlive 2.65s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-gem .eieg-loader span::before{
  content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 18%,rgba(255,255,255,.88) 40%,transparent 58%);transform:translateX(-125%);animation:eiegFacetSweep 2.15s ease-in-out .15s infinite;
}
.eieg-loading-gem .eieg-loader span::after{
  content:"";position:absolute;inset:18% 24%;background:radial-gradient(circle,#fff 0 8%,var(--eieg-state-color-2) 12%,transparent 48%);opacity:.62;animation:eiegGemCore 1.48s ease-in-out infinite;
}

/* Seal: nested geometry moves independently and the field expands softly. */
.eieg-loading-seal .eieg-loader span{
  border:2px solid var(--eieg-state-color);background:radial-gradient(circle,transparent 0 34%,color-mix(in srgb,var(--eieg-state-color) 18%,transparent) 35% 50%,transparent 51%);
  box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--eieg-state-color-2) 18%,transparent),0 0 26px color-mix(in srgb,var(--eieg-state-glow) 50%,transparent);
  animation:eiegSealAlive 5.4s linear infinite;
}
.eieg-loading-seal .eieg-loader span::before,.eieg-loading-seal .eieg-loader span::after{
  content:"";position:absolute;inset:10px;border:2px solid var(--eieg-state-color-2);
}
.eieg-loading-seal .eieg-loader span::before{animation:eiegSealFrame 2.8s ease-in-out infinite}
.eieg-loading-seal .eieg-loader span::after{border-color:var(--eieg-state-color);animation:eiegSealFrameReverse 3.4s ease-in-out infinite}

/* Star: small rotational drift with two independent satellites. */
.eieg-loading-star .eieg-loader span{
  border-radius:0;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 94%,50% 71%,21% 94%,32% 56%,2% 35%,39% 35%);background:linear-gradient(135deg,var(--eieg-state-color-2),var(--eieg-state-color) 58%);
  filter:drop-shadow(0 0 11px var(--eieg-state-glow));animation:eiegStarAlive 2.35s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-star .eieg-loader span::before,.eieg-loading-star .eieg-loader span::after{
  content:"";position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff,0 0 14px var(--eieg-state-glow);
}
.eieg-loading-star .eieg-loader span::before{width:6px;height:6px;left:-8px;top:2px;animation:eiegStarSpark 1.4s ease-in-out infinite}
.eieg-loading-star .eieg-loader span::after{width:4px;height:4px;right:-9px;bottom:5px;animation:eiegStarSpark 1.4s ease-in-out -.7s infinite}

/* Halo: hovering 3D ring, inner core and reverse secondary ring. */
.eieg-loading-halo .eieg-loader span{
  width:64px;height:30px;border:5px solid var(--eieg-state-color);border-left-color:var(--eieg-state-color-2);border-right-color:var(--eieg-state-color-2);
  box-shadow:0 0 22px color-mix(in srgb,var(--eieg-state-glow) 65%,transparent),inset 0 0 14px color-mix(in srgb,var(--eieg-state-glow) 42%,transparent);
  animation:eiegHaloAlive 2.75s cubic-bezier(.45,.05,.25,1) infinite;
}
.eieg-loading-halo .eieg-loader span::before{
  content:"";position:absolute;width:16px;height:16px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 28%,#fff,var(--eieg-state-color-2) 28%,var(--eieg-state-color) 70%);
  box-shadow:0 0 16px var(--eieg-state-glow);animation:eiegHaloCore 1.45s ease-in-out infinite;
}
.eieg-loading-halo .eieg-loader span::after{
  content:"";position:absolute;inset:2px 9px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--eieg-state-color-2) 72%,transparent);
  animation:eiegSpinReverse 3.1s linear infinite;
}

@keyframes eiegResultReveal{0%{transform:scale(.72) translateY(10px);opacity:0;filter:blur(5px)}65%{transform:scale(1.06) translateY(-2px);opacity:1;filter:blur(0)}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes eiegOrbAlive{0%,100%{transform:translate3d(0,3px,0) scale(.92);filter:saturate(.95);box-shadow:0 0 16px color-mix(in srgb,var(--eieg-state-glow) 52%,transparent),0 0 40px color-mix(in srgb,var(--eieg-state-glow) 28%,transparent)}21%{transform:translate3d(0,-4px,0) scale(1.04)}53%{transform:translate3d(0,-1px,0) scale(.98);filter:saturate(1.2)}78%{transform:translate3d(0,-6px,0) scale(1.07);box-shadow:0 0 27px color-mix(in srgb,var(--eieg-state-glow) 72%,transparent),0 0 54px color-mix(in srgb,var(--eieg-state-glow) 35%,transparent)}}
@keyframes eiegOrbCurrent{to{transform:rotate(360deg)}}
@keyframes eiegOrbWave{0%{transform:scale(.72);opacity:.82}68%{opacity:.28}100%{transform:scale(1.32);opacity:0}}
@keyframes eiegRingAlive{0%{transform:rotate(0deg) scale(.93)}42%{transform:rotate(152deg) scale(1.05)}70%{transform:rotate(266deg) scale(.98)}100%{transform:rotate(360deg) scale(.93)}}
@keyframes eiegSpinReverse{to{transform:rotate(-360deg)}}
@keyframes eiegOrbitSpark{to{transform:rotate(360deg)}}
@keyframes eiegCrystalAlive{0%,100%{transform:translateY(3px) rotate(42deg) scale(.94)}28%{transform:translateY(-5px) rotate(47deg) scale(1.03)}62%{transform:translateY(-1px) rotate(43deg) scale(.99)}82%{transform:translateY(-4px) rotate(46deg) scale(1.05)}}
@keyframes eiegFacetSweep{0%,23%{transform:translateX(-130%);opacity:0}42%{opacity:.9}62%,100%{transform:translateX(135%);opacity:0}}
@keyframes eiegCrystalAura{0%,100%{transform:scale(.86) rotate(-8deg);opacity:.25}50%{transform:scale(1.18) rotate(8deg);opacity:.7}}
@keyframes eiegRuneAlive{0%{transform:rotate(0deg) scale(.95)}23%{transform:rotate(83deg) scale(1.04)}54%{transform:rotate(196deg) scale(.98)}79%{transform:rotate(288deg) scale(1.05)}100%{transform:rotate(360deg) scale(.95)}}
@keyframes eiegRuneField{0%,100%{transform:scale(.82);opacity:.2}50%{transform:scale(1.18);opacity:.72}}
@keyframes eiegPortalAlive{0%{transform:rotate(0deg) scale(.92)}50%{transform:rotate(190deg) scale(1.07)}100%{transform:rotate(360deg) scale(.92)}}
@keyframes eiegPortalWave{0%{transform:scale(.7);opacity:.72}100%{transform:scale(1.42);opacity:0}}
@keyframes eiegDotMid{0%,100%{transform:translateY(4px) scale(.82);opacity:.58}50%{transform:translateY(-7px) scale(1.12);opacity:1}}
@keyframes eiegDotSide{0%,100%{transform:translateY(4px) scale(.82);opacity:.58}50%{transform:translateY(-7px) scale(1.12);opacity:1}}
@keyframes eiegCoinAlive{0%,100%{transform:translateY(3px) rotateY(-18deg) rotateZ(-2deg) scale(.94)}28%{transform:translateY(-5px) rotateY(28deg) rotateZ(2deg) scale(1.03)}57%{transform:translateY(-1px) rotateY(-10deg) rotateZ(-1deg) scale(.99)}80%{transform:translateY(-4px) rotateY(18deg) rotateZ(1deg) scale(1.05)}}
@keyframes eiegCoinMark{0%,100%{transform:scale(.92);opacity:.78}50%{transform:scale(1.1);opacity:1}}
@keyframes eiegCoinShine{0%,28%{left:-34%;opacity:0}48%{opacity:.95}70%,100%{left:120%;opacity:0}}
@keyframes eiegGemAlive{0%,100%{transform:translateY(3px) rotate(-2deg) scale(.94)}26%{transform:translateY(-6px) rotate(3deg) scale(1.04)}58%{transform:translateY(-1px) rotate(-1deg) scale(.99)}82%{transform:translateY(-4px) rotate(2deg) scale(1.06)}}
@keyframes eiegGemCore{0%,100%{transform:scale(.72);opacity:.28}50%{transform:scale(1.24);opacity:.82}}
@keyframes eiegSealAlive{0%{transform:rotate(0deg) scale(.96)}50%{transform:rotate(180deg) scale(1.04)}100%{transform:rotate(360deg) scale(.96)}}
@keyframes eiegSealFrame{0%,100%{transform:rotate(45deg) scale(.86);opacity:.55}50%{transform:rotate(135deg) scale(1.08);opacity:1}}
@keyframes eiegSealFrameReverse{0%,100%{transform:rotate(22.5deg) scale(1.06);opacity:.9}50%{transform:rotate(-67.5deg) scale(.82);opacity:.45}}
@keyframes eiegStarAlive{0%,100%{transform:translateY(3px) rotate(-4deg) scale(.9);filter:drop-shadow(0 0 8px var(--eieg-state-glow))}32%{transform:translateY(-5px) rotate(5deg) scale(1.08)}62%{transform:translateY(-1px) rotate(-2deg) scale(.98);filter:drop-shadow(0 0 17px var(--eieg-state-glow))}82%{transform:translateY(-4px) rotate(3deg) scale(1.05)}}
@keyframes eiegStarSpark{0%,100%{transform:scale(.3);opacity:.15}50%{transform:scale(1.35);opacity:1}}
@keyframes eiegHaloAlive{0%,100%{transform:translateY(4px) rotateX(58deg) rotateZ(-4deg) scale(.94)}30%{transform:translateY(-5px) rotateX(62deg) rotateZ(4deg) scale(1.04)}62%{transform:translateY(-1px) rotateX(56deg) rotateZ(-2deg) scale(.99)}82%{transform:translateY(-4px) rotateX(61deg) rotateZ(3deg) scale(1.06)}}
@keyframes eiegHaloCore{0%,100%{transform:translate(-50%,-50%) scale(.72);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.18);opacity:1}}

@media(prefers-reduced-motion:reduce){
  .eieg-loader,.eieg-loader span,.eieg-loader span::before,.eieg-loader span::after{animation:none!important;transition:none!important}
}

/* EI Event Gate v0.1.16 — restore translucent gradient materials from the original orb design. */
.eieg-loader span{background-color:transparent}

/* Orb: original white core -> color body -> translucent edge, now with independent soft material drift. */
.eieg-loading-orb .eieg-loader span{
  background:
    radial-gradient(circle at 29% 23%,rgba(255,255,255,.98) 0 4%,rgba(255,255,255,.58) 7%,transparent 20%),
    radial-gradient(ellipse at 68% 72%,color-mix(in srgb,var(--eieg-state-color-2) 56%,transparent) 0 8%,transparent 42%),
    radial-gradient(circle at 48% 45%,color-mix(in srgb,var(--eieg-state-color-2) 84%,#fff) 0 10%,color-mix(in srgb,var(--eieg-state-color) 78%,transparent) 31%,color-mix(in srgb,var(--eieg-state-color) 31%,transparent) 55%,color-mix(in srgb,var(--eieg-state-glow) 8%,transparent) 66%,transparent 74%);
  background-size:100% 100%,135% 135%,108% 108%;
  background-position:center,42% 48%,center;
  box-shadow:
    inset -7px -9px 17px color-mix(in srgb,var(--eieg-state-color) 18%,transparent),
    inset 5px 5px 13px rgba(255,255,255,.22),
    0 0 17px color-mix(in srgb,var(--eieg-state-glow) 60%,transparent),
    0 0 43px color-mix(in srgb,var(--eieg-state-glow) 29%,transparent);
  animation:eiegOrbAlive 2.55s cubic-bezier(.45,.05,.25,1) infinite,eiegOrbMaterial 4.8s ease-in-out infinite alternate;
}
.eieg-loading-orb .eieg-loader span::before{
  inset:6px;
  background:
    radial-gradient(ellipse at 34% 62%,rgba(255,255,255,.46) 0 6%,transparent 30%),
    conic-gradient(from 18deg,transparent 0 13%,color-mix(in srgb,var(--eieg-state-color-2) 42%,transparent) 18% 24%,transparent 31% 56%,color-mix(in srgb,var(--eieg-state-color) 38%,transparent) 62% 69%,transparent 76%);
  opacity:.72;filter:blur(.8px);mix-blend-mode:screen;
}

/* Ring and halo use translucent gradient ribbons instead of solid borders. */
.eieg-loading-ring .eieg-loader span{
  border:0;background:conic-gradient(from 15deg,transparent 0 8%,color-mix(in srgb,var(--eieg-state-color-2) 86%,#fff) 13%,color-mix(in srgb,var(--eieg-state-color) 74%,transparent) 31%,transparent 45%,color-mix(in srgb,var(--eieg-state-color-2) 54%,transparent) 64%,color-mix(in srgb,var(--eieg-state-color) 88%,#fff) 79%,transparent 92%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));
  box-shadow:0 0 19px color-mix(in srgb,var(--eieg-state-glow) 40%,transparent);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--eieg-state-glow) 54%,transparent));
}
.eieg-loading-ring .eieg-loader span::before{background:conic-gradient(from 180deg,transparent,var(--eieg-state-color-2),transparent 32%,color-mix(in srgb,var(--eieg-state-color) 65%,transparent),transparent 69%);border:0;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px))}

/* Crystal / gem: translucent facets, refraction and transparent edges. */
.eieg-loading-crystal .eieg-loader span{
  border:1px solid color-mix(in srgb,var(--eieg-state-color-2) 54%,transparent);
  background:
    linear-gradient(118deg,rgba(255,255,255,.86) 0 4%,transparent 13% 42%,rgba(255,255,255,.22) 49%,transparent 58%),
    linear-gradient(42deg,color-mix(in srgb,var(--eieg-state-color-2) 72%,transparent),color-mix(in srgb,var(--eieg-state-color) 62%,transparent) 54%,color-mix(in srgb,var(--eieg-state-color) 28%,transparent)),
    radial-gradient(circle at 38% 30%,rgba(255,255,255,.55),transparent 38%);
  background-size:165% 165%,100% 100%,100% 100%;
  box-shadow:inset 5px 4px 12px rgba(255,255,255,.18),inset -8px -8px 18px rgba(0,0,0,.12),0 0 23px color-mix(in srgb,var(--eieg-state-glow) 46%,transparent);
  animation:eiegCrystalAlive 2.72s cubic-bezier(.45,.05,.25,1) infinite,eiegFacetMaterial 4.3s ease-in-out infinite alternate;
}
.eieg-loading-gem .eieg-loader span{
  background:
    linear-gradient(125deg,rgba(255,255,255,.92) 0 4%,transparent 12% 35%,rgba(255,255,255,.24) 43%,transparent 55%),
    linear-gradient(35deg,color-mix(in srgb,var(--eieg-state-color-2) 76%,transparent),color-mix(in srgb,var(--eieg-state-color) 66%,transparent) 48%,color-mix(in srgb,var(--eieg-state-color) 30%,transparent)),
    radial-gradient(circle at 48% 52%,color-mix(in srgb,var(--eieg-state-color-2) 45%,transparent),transparent 48%);
  background-size:170% 170%,100% 100%,100% 100%;
  filter:drop-shadow(0 0 12px color-mix(in srgb,var(--eieg-state-glow) 62%,transparent));
  animation:eiegGemAlive 2.65s cubic-bezier(.45,.05,.25,1) infinite,eiegFacetMaterial 3.9s ease-in-out infinite alternate;
}

/* Rune / seal: glowing ink and haze, not opaque plates. */
.eieg-loading-rune .eieg-loader span{
  background:
    radial-gradient(circle,color-mix(in srgb,var(--eieg-state-color-2) 20%,transparent) 0 12%,transparent 40%),
    conic-gradient(from 45deg,transparent 0 12%,color-mix(in srgb,var(--eieg-state-color-2) 72%,transparent) 13% 18%,transparent 19% 37%,color-mix(in srgb,var(--eieg-state-color) 74%,transparent) 38% 43%,transparent 44% 62%,color-mix(in srgb,var(--eieg-state-color-2) 62%,transparent) 63% 68%,transparent 69%);
  box-shadow:inset 0 0 18px color-mix(in srgb,var(--eieg-state-color-2) 15%,transparent),0 0 25px color-mix(in srgb,var(--eieg-state-glow) 55%,transparent);
}
.eieg-loading-seal .eieg-loader span{
  background:
    radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--eieg-state-color-2) 18%,transparent) 0 13%,transparent 31%),
    radial-gradient(circle,transparent 0 34%,color-mix(in srgb,var(--eieg-state-color) 24%,transparent) 35% 44%,color-mix(in srgb,var(--eieg-state-color-2) 8%,transparent) 49%,transparent 55%);
  box-shadow:inset 0 0 18px color-mix(in srgb,var(--eieg-state-color-2) 12%,transparent),0 0 26px color-mix(in srgb,var(--eieg-state-glow) 47%,transparent);
}

/* Portal: translucent vortex ribbons with a luminous but hollow center. */
.eieg-loading-portal .eieg-loader span{
  background:
    radial-gradient(circle,rgba(255,255,255,.42) 0 3%,color-mix(in srgb,var(--eieg-state-color-2) 24%,transparent) 8%,transparent 29%),
    conic-gradient(from 0deg,transparent 0 7%,color-mix(in srgb,var(--eieg-state-color) 78%,transparent) 15%,color-mix(in srgb,var(--eieg-state-color-2) 62%,transparent) 30%,transparent 45%,color-mix(in srgb,var(--eieg-state-color) 54%,transparent) 62%,color-mix(in srgb,var(--eieg-state-color-2) 80%,transparent) 76%,transparent 91%);
  background-size:100% 100%,128% 128%;background-position:center;
  box-shadow:0 0 22px color-mix(in srgb,var(--eieg-state-glow) 50%,transparent),inset 0 0 19px color-mix(in srgb,var(--eieg-state-glow) 28%,transparent);
  animation:eiegPortalAlive 1.48s cubic-bezier(.42,0,.58,1) infinite,eiegPortalMaterial 3.6s ease-in-out infinite alternate;
}
.eieg-loading-portal .eieg-loader span::before{background:conic-gradient(from 180deg,transparent,color-mix(in srgb,var(--eieg-state-color-2) 68%,transparent),transparent 44%,color-mix(in srgb,var(--eieg-state-color) 55%,transparent),transparent 77%)}

/* Dots: tiny glass beads with bright cores and transparent rims. */
.eieg-loading-dots .eieg-loader span,.eieg-loading-dots .eieg-loader span::before,.eieg-loading-dots .eieg-loader span::after{
  background:radial-gradient(circle at 32% 27%,rgba(255,255,255,.96) 0 8%,var(--eieg-state-color-2) 20%,color-mix(in srgb,var(--eieg-state-color) 65%,transparent) 55%,transparent 76%);
  box-shadow:0 0 9px color-mix(in srgb,var(--eieg-state-glow) 55%,transparent),inset -2px -3px 5px color-mix(in srgb,var(--eieg-state-color) 18%,transparent);
}

/* Coin: layered metallic gradients rather than a flat disk. */
.eieg-loading-coin .eieg-loader span{
  background:
    linear-gradient(112deg,transparent 18%,rgba(255,255,255,.68) 35%,transparent 51%),
    radial-gradient(circle at 34% 28%,rgba(255,255,255,.96) 0 4%,var(--eieg-state-color-2) 11%,color-mix(in srgb,var(--eieg-state-color) 82%,transparent) 47%,color-mix(in srgb,var(--eieg-state-color) 44%,transparent) 67%,transparent 78%);
  background-size:180% 180%,100% 100%;
  box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--eieg-state-color-2) 34%,transparent),inset -7px -8px 13px rgba(0,0,0,.14),0 0 24px color-mix(in srgb,var(--eieg-state-glow) 48%,transparent);
  animation:eiegCoinAlive 2.25s cubic-bezier(.45,.05,.25,1) infinite,eiegMetalMaterial 3.8s ease-in-out infinite alternate;
}

/* Star: luminous translucent body, not a solid polygon. */
.eieg-loading-star .eieg-loader span{
  background:
    radial-gradient(circle at 34% 28%,rgba(255,255,255,.96) 0 5%,transparent 21%),
    linear-gradient(135deg,color-mix(in srgb,var(--eieg-state-color-2) 82%,transparent),color-mix(in srgb,var(--eieg-state-color) 67%,transparent) 54%,color-mix(in srgb,var(--eieg-state-color) 28%,transparent));
  box-shadow:inset 0 0 12px rgba(255,255,255,.16);filter:drop-shadow(0 0 11px color-mix(in srgb,var(--eieg-state-glow) 64%,transparent));
  animation:eiegStarAlive 2.35s cubic-bezier(.45,.05,.25,1) infinite,eiegStarMaterial 3.4s ease-in-out infinite alternate;
}

.eieg-loading-halo .eieg-loader span{
  border:0;background:conic-gradient(from 10deg,transparent 0 8%,color-mix(in srgb,var(--eieg-state-color-2) 80%,#fff) 16%,color-mix(in srgb,var(--eieg-state-color) 66%,transparent) 37%,transparent 48%,color-mix(in srgb,var(--eieg-state-color-2) 56%,transparent) 66%,color-mix(in srgb,var(--eieg-state-color) 82%,#fff) 82%,transparent 94%);
  -webkit-mask:radial-gradient(ellipse,transparent calc(100% - 6px),#000 calc(100% - 5px));mask:radial-gradient(ellipse,transparent calc(100% - 6px),#000 calc(100% - 5px));
  filter:drop-shadow(0 0 8px color-mix(in srgb,var(--eieg-state-glow) 68%,transparent));box-shadow:none;
}
.eieg-loading-halo .eieg-loader span::before{background:radial-gradient(circle at 34% 28%,#fff 0 5%,var(--eieg-state-color-2) 20%,color-mix(in srgb,var(--eieg-state-color) 68%,transparent) 57%,transparent 78%)}

@keyframes eiegOrbMaterial{0%{background-position:center,36% 42%,center;filter:brightness(.96) saturate(.94)}50%{background-position:center,62% 58%,center;filter:brightness(1.08) saturate(1.14)}100%{background-position:center,44% 65%,center;filter:brightness(1.01) saturate(1.02)}}
@keyframes eiegFacetMaterial{0%{background-position:0% 35%,center,center;filter:brightness(.96) saturate(.95)}100%{background-position:100% 64%,center,center;filter:brightness(1.08) saturate(1.12)}}
@keyframes eiegPortalMaterial{0%{background-position:center,38% 44%;filter:saturate(.92) brightness(.95)}100%{background-position:center,62% 56%;filter:saturate(1.18) brightness(1.08)}}
@keyframes eiegMetalMaterial{0%{background-position:0% 40%,center;filter:brightness(.94)}100%{background-position:100% 60%,center;filter:brightness(1.1)}}
@keyframes eiegStarMaterial{0%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--eieg-state-glow) 50%,transparent)) brightness(.96)}100%{filter:drop-shadow(0 0 16px color-mix(in srgb,var(--eieg-state-glow) 72%,transparent)) brightness(1.12)}}
