/* =====================================================================
 EOS ENTERPRISE ESTATE, BRAND TOKENS
 One gradient, one ground, four marks. Self-contained. Nothing fetched.
 ===================================================================== */
:root{
 /* GROUND ---------------------------------------------------------- */
 --void:#05060B; /* page ground */
 --field:#0A0D14; /* raised panels */
 --edge:#141A26; /* hairlines */

 /* THE AURA, 135 degrees, never another angle. Cyan leads, violet closes. */
 --cyan-hi:#96E6F0; /* gradient crest */
 --cyan:#7ADCEC; /* primary signal, VERIFIED */
 --azure:#50B4E6; /* source labels */
 --blue:#326EBE; /* gradient cold end */
 --peri:#8B9BF5; /* the turn */
 --violet:#9B7BF0; /* CONTESTED, disagreement, exception */
 --aura:linear-gradient(135deg,var(--cyan-hi) 0%,var(--cyan) 22%,
 var(--azure) 46%,var(--blue) 62%,var(--peri) 82%,var(--violet) 100%);

 /* TEXT ------------------------------------------------------------- */
 --mist:#DCE6F0; /* primary text */
 --haze:#7E8A9C; /* secondary text */
 --dim:#727e96; /* tertiary */

 /* TYPE ------------------------------------------------------------- */
 --display:"Space Grotesk","Avenir Next",Avenir,"Segoe UI Variable Display",ui-sans-serif,system-ui,sans-serif;
 --body:"Space Grotesk","Avenir Next",Avenir,"Segoe UI Variable Display",ui-sans-serif,system-ui,sans-serif;
 --mono:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,Consolas,monospace;
 --serif:"Space Grotesk","Avenir Next",Avenir,"Segoe UI Variable Display",ui-sans-serif,system-ui,sans-serif; /* Shadow Key only */

 /* MOTION, slow and weighted. Nothing bounces. --------------------- */
 --reveal:1.6s;
 --ease:cubic-bezier(.22,.61,.36,1);
}

/* CYAN MEANS VERIFIED. VIOLET MEANS CONTESTED.
 That mapping is the product rendered as colour. Do not add a third. */
.is-verified,.state-verified{color:var(--cyan)}
.is-contested,.state-contested{color:var(--violet)}
.is-source{color:var(--azure)}

/* THE AURA. One per viewport. */
.aura-text{background:var(--aura);-webkit-background-clip:text;
 background-clip:text;color:transparent}
.aura-rule{height:1px;border:0;background:var(--aura)}
.aura-action{background:var(--aura);color:var(--void);border:0;border-radius:0;
 font-weight:600;padding:13px 24px;text-decoration:none;display:inline-block;
 font-family:var(--body)}

/* RULE 2: zero radius, no shadows. Depth comes from value. */
*{border-radius:0!important;box-shadow:none!important}

/* RULE 4: identifiers, figures and addresses are always monospace. */
code,kbd,samp.mono.figure.identifier.addr,[data-mono]{font-family:var(--mono)}

/* RULE 5: motion is slow and weighted. */
@media(prefers-reduced-motion:no-preference){
 .reveal{animation:reveal var(--reveal) var(--ease) both}
 @keyframes reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){
 .reveal{animation:none}
 *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* RULE 3: serif belongs to Shadow Key alone. */
.shadow-key{font-family:var(--serif)}

/* RULE 5 by cascade: weighted motion is the floor, not a per-declaration edit. */
a,button,[role="button"].chip.card,.cell{transition-duration:.32s;
 transition-timing-function:var(--ease)}
