@font-face{
  font-family:"DM Sans";
  src:url("/assets/fonts/DMSans-Italic.ttf") format("truetype");
  font-style:italic;
  font-weight:100 1000;
  font-display:swap;
}
/* ===========================================================================
   SafeBets Portal Theme, THE SINGLE SOURCE OF TRUTH
   ---------------------------------------------------------------------------
   Before this file existed, all 50 portal pages carried their own inline
   <style> block and their own private copy of the design tokens. Fixing a page
   propagated nothing, which is the structural reason a theme sweep could be
   done and then silently undone.

   Every page now loads this file in <head> BEFORE its own inline <style>.
   A page's local :root can still override a token when it genuinely needs to,
   but the canonical value lives here and here only.

   AUTHORITY
     brand/SAFEBETS-BRAND-KIT.md            exact hexes
     brand/HOW-TRUST-SHOULD-LOOK-STANDARD.md  roles + the RECONCILE section

   THE THREE WORLDS
     NAVY   #060152  the stage, and the fill of DATA CARDS
     WHITE  #FFFFFF  daylight, where the product lives
     ORANGE #FF4D00  the punch, emphasis and the metric that matters

   PORTAL GROUND (Jesse, standing)
     The portal base is the VIVID BLUE #3d36bd, not near-black navy. Near-black
     is "too dark to stare at all day". No blue-on-blue: containers commit to a
     solid navy card or an orange gloss card, never 5% white glass on blue.

   CONTRAST, measured, non-negotiable
     gold #FFB800 on orange #FF4D00 = 1.92:1   BANNED
     gold #FFB800 on navy   #060152 = 10.68:1  correct, gold only on dark
     white         on orange #FF4D00 = 3.33:1  mandated for orange tiles,
                                               so keep that text large or bold
   =========================================================================== */

:root {
  /* ---- brand kit exact ---- */
  --sb-blue: #0A00CC;
  --sb-blue-bright: #3A2BFF;
  --sb-orange: #FF4D00;
  --sb-navy: #060152;
  --sb-gold: #FFB800;
  --sb-black: #030213;
  --sb-grey: #ECECEC;
  --sb-white: #FFFFFF;

  /* ---- the ground: vivid blue stage, easy on the eyes all day ---- */
  --ground: #3d36bd;
  --ground-2: #2d2794;
  --bg0: #272182;
  --bg2: #060152;
  --navy: #060152;
  --navy-2: #0a0470;

  --blue: #0A00CC;
  --blue2: #3A2BFF;
  --blue-bright: #3A2BFF;

  /* light periwinkle label accent, legible on the blue stage */
  --indigo: #c3c9ff;
  --indigo-soft: #cdd2ff;
  --indigo-ink: #060152;

  /* ---- ORANGE, the punch ---- */
  --orange: #FF4D00;
  --orange-lit: #ff7a45;
  --orange-soft: #ffc7b3;
  --orange-ink: #c23a00;
  /* AA-safe orange fill: white BODY text on #D93F00 clears 4.5:1.
     #FF4D00 is reserved for large / bold figures (3:1 large-text threshold). */
  --orange-aa: #D93F00;
  --orange-aa2: #B22A00;
  /* SMALL SOLID CHIP. Tags and pills run at 10-14px, which is BODY size, so they
     must clear 4.5:1. Measured white-on-fill:
        #FF4D00 = 3.33:1 FAIL   #D93F00 = 4.49:1 FAIL by a hair   #C23A00 = 5.39:1 PASS
     So small chips fill with --orange-chip and NEVER with full-strength --orange.
     Large figures and data tiles keep --orange / --orange-card. */
  --orange-chip: #C23A00;
  --orange-chip-line: rgba(255, 184, 0, .45);
  /* --red #ff5d6c is a TEXT colour on dark. As a FILL under white body text it
     measures 2.99:1, so a filled red chip uses this deeper red (white = 6.2:1). */
  --red-chip: #c1121f;
  /* The dark counterpart. Gold on this measures 9.9:1, so gold tags live here
     and never on a lifted purple-blue card. */
  --navy-chip: #0a0470;
  --navy-chip-line: rgba(255, 184, 0, .38);

  /* ---- GOLD, kept as a brand accent. DARK SURFACES ONLY. ---- */
  --gold: #FFB800;
  --gold-soft: #ffd873;
  --gold-ink: #9a6a00;
  --gold-cream: #fff6df;

  /* ---- ink on the blue stage. Grey body text is retired: mut/faint are
          white at reduced alpha, never a grey hex. ---- */
  --ink: #ffffff;
  --mut: rgba(255, 255, 255, .94);
  --faint: rgba(255, 255, 255, .88);
  --muted: rgba(255, 255, 255, .94);
  --dim: rgba(255, 255, 255, .94);
  --ink-strong: #ffffff;
  --ink-dim: rgba(255, 255, 255, .94);

  /* ---- WHITE daylight surface. Softened off-white, never stark #fff,
          so it stays comfortable in a dark-mode tool. ---- */
  --leaf-a: #f5f7ff;
  --leaf-b: #e7ebfb;
  --leaf-ink: #0b0a3a;
  --leaf-body: #39406f;
  --leaf-mut: #5f6795;
  --leaf-muted: #5f6795;
  --leaf-line: rgba(10, 8, 56, .14);
  --leaf-hair: rgba(10, 8, 56, .08);

  /* ---- SMALL TEXT ON THE BLUE GROUND ----
     The ground #3d36bd is lighter than the near-black it replaced, so saturated
     accents that cleared contrast on near-black no longer do. Measured on
     #3d36bd: #FF4D00 = 2.97:1 FAIL, #ff7a45 = 3.6:1 FAIL, #ffb59b = 4.98:1 PASS.
     Use these for accent text at body size. Full-strength --orange stays correct
     for large/bold figures and for fills. */
  /* Measured on the BASE ground #3d36bd. Lifted card interiors run a little
     lighter, so these carry ~0.5 of headroom to still clear 4.5:1 there. */
  --orange-on-ground: #ffc7b6;   /* 5.6:1 base */
  --red-on-ground:    #ffc2c8;   /* 5.6:1 base */
  --indigo-on-ground: #d3d7ff;   /* 5.9:1 base */

  /* ---- semantic status, never promoted to a world ---- */
  --grow: #28c98a;
  --grow-lit: #3ddc97;
  --grow-ink: #0b7a49;
  --green: #28c98a;
  --red: #ff5d6c;

  /* ---- structure ---- */
  --line: rgba(255, 255, 255, .17);
  --line-2: rgba(255, 255, 255, .10);
  --glass: rgba(255, 255, 255, .10);
  --panel: rgba(255, 255, 255, .09);
  --panel-2: rgba(255, 255, 255, .12);
  --hairline: rgba(255, 255, 255, .12);

  /* ---- THE TWO CONTAINERS THAT BEAT BLUE-ON-BLUE ----
     NAVY CARD    the structural shell: sections, control panels, disclosures.
     ORANGE CARD  the data / metric tile. Real #FF4D00 with a genuine gloss
                  highlight, never a muddy translucent tint. White text only. */
  --navy-card: linear-gradient(180deg, #141089 0%, #0a0566 58%, #070254 100%);
  --navy-card-line: rgba(255, 255, 255, .20);
  --orange-card: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .05) 20%, rgba(255, 255, 255, 0) 46%, rgba(178, 42, 0, .30)), #FF4D00;
  --orange-card-line: rgba(255, 184, 0, .42);
  /* legacy alias used by the access-guide / ad-archive cohort */
  --oglass: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .05) 20%, rgba(255, 255, 255, 0) 46%, rgba(178, 42, 0, .30)), #FF4D00;
  --oglass-sh: inset 0 1px 0 rgba(255, 255, 255, .5), 0 12px 30px rgba(140, 35, 0, .36);
  --oglass-line: rgba(255, 184, 0, .55);

  /* ---- DIRECTIONAL LIGHT, one source fixed top-left.
          Drops cast down-right. Nothing glows without a source. ---- */
  --sh-navy: 3px 6px 18px rgba(9, 4, 60, .26), 12px 22px 50px rgba(9, 4, 60, .22);
  --sh-navy-in: inset 1px 1px 0 rgba(255, 255, 255, .10), inset -1px -2px 0 rgba(6, 2, 40, .20);
  --sh-leaf: 4px 8px 20px rgba(3, 1, 28, .16), 16px 28px 58px rgba(3, 1, 28, .14);
  --sh-leaf-in: inset 1px 1px 0 rgba(255, 255, 255, .95), inset -1px -2px 0 rgba(11, 8, 56, .05);
  --sh-sm: 0 1px 2px rgba(9, 4, 60, .20), 0 10px 26px rgba(9, 4, 60, .20);
  --sh-orange: 0 8px 26px rgba(255, 77, 0, .28);

  /* ---- type ---- */
  --font: "DM Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: ui-monospace, Menlo, Consolas, monospace;
}

/* ===========================================================================
   RETIRED TOKEN ALIASES
   Older pages read tokens that no longer have a home of their own. They are
   mapped here so a legacy var() resolves on-brand instead of resolving to the
   deprecated near-black stage or to a grey.
   =========================================================================== */
:root {
  --bg1: var(--bg0);          /* Gen A second stage stop */
  --navy2: var(--navy-2);     /* report / winners cohort spelling */
  --mut2: var(--faint);       /* was #8fa2c9 grey-blue */
  --hud: var(--indigo);       /* Gen A cyan #7fd6ff, no brand lineage */
  --line2: var(--oglass-line);
  --panel-line: var(--line);
  --hairline-top: rgba(255, 255, 255, .17);
  --card: var(--glass);
  --card-2: var(--panel-2);
  --field: rgba(255, 255, 255, .08);
  --gold-tint: rgba(255, 184, 0, .16);
  --orange-tint: rgba(255, 77, 0, .15);
  --gold-deep: var(--gold-ink);
  --orange-deep: var(--orange-ink);
  --ok: var(--grow);
  --white: #FFFFFF;
  --black: #030213;
  --grey: #ECECEC;

  /* spellings the report / winners / invoicing cohorts use */
  --sbgold: var(--gold);
  --sborange: var(--orange);
  --green-lit: var(--grow-lit);
  --green-ink: var(--grow-ink);
  --blue-solid: var(--blue);
  --blue-sig: #3A46D8;
  --navy-3: #120a7d;
  --head: #0a0e28;
  --slate: #7f88c8;
  --muted-ink: #5b6390;
  --gold-lit: #ffcf5a;
  --card-accent: var(--orange);
  --on-dark-mut: rgba(255, 255, 255, .90);
  --on-orange-mut: rgba(255, 255, 255, .93);

  /* status pills used by distribution.html */
  --live: var(--grow);
  --dead: var(--red);
  --pend: var(--gold);

  /* tints */
  --green-tint: rgba(40, 201, 138, .15);
  --indigo-tint: rgba(195, 201, 255, .14);
  --grey-tint: rgba(167, 173, 207, .12);

  /* geometry + motion */
  --radius: 15px;
  --stick: 130px;
  --ease-spring: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --shadow: var(--sh-navy);
  --shadow-1: 0 1px 2px rgba(3, 1, 20, .35);
  --shadow-2: 0 14px 40px rgba(3, 1, 20, .5);
  --shadow-sm: var(--sh-sm);

  /* type aliases */
  --dm: var(--font);
  --inter: var(--font-body);
  --disp: var(--font);
  --body: var(--font-body);

  /* ad-system-map depth ramp: root darkest, each level steps lighter/cooler,
     white daylight leaves. Two stops per level give a top-lit surface. */
  --l0a: #0b0548; --l0b: #05012c;
  --l1a: #100b74; --l1b: #0a0553;
  --l2a: #231f8a; --l2b: #161268;
  --l3a: #353690; --l3b: #262672;
  --l4a: #4b4fa6; --l4b: #3a3d8a;
  --l5a: #666abc; --l5b: #5155a2;
}

/* ===========================================================================
   SHARED SURFACE PRIMITIVES
   The reference implementations, so a page stops hand-rolling its own.
     .sb-datacard   the orange gloss metric tile  (reporting.html .kpi pattern)
     .sb-navycard   the structural navy shell
   =========================================================================== */
.sb-datacard {
  background: var(--orange-card);
  border: 1px solid var(--orange-card-line);
  border-radius: 15px;
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 12px 30px rgba(140, 35, 0, .36);
}
/* On an orange tile every text colour is white. Gold here measures 1.92:1. */
.sb-datacard, .sb-datacard * { color: #fff; }
.sb-datacard .k, .sb-datacard .label { color: rgba(255, 255, 255, .92); }

.sb-navycard {
  background: var(--navy-card);
  border: 1px solid var(--navy-card-line);
  border-radius: 15px;
  color: #fff;
  box-shadow: var(--sh-navy);
}
/* Gold is legible on the navy card (10.68:1), this is where historical and
   benchmark figures belong. */
.sb-navycard .benchmark, .sb-navycard .historical { color: var(--gold); }

/* ===========================================================================
   LIGHT-GROUND ESCAPE HATCH
   machine-artifact.html is the portal's one deliberately light page. It opts
   out with <html class="sb-light"> rather than fighting the canon.
   =========================================================================== */
.sb-light {
  --ground: #f5f7ff;
  --ground-2: #eceef7;
  --ink: #0b0a3a;
  --mut: #39406f;
  --muted: #39406f;
  --dim: #39406f;
  --faint: #5f6795;
  --line: rgba(6, 1, 82, .12);
  --line-2: rgba(6, 1, 82, .08);
  --hairline: rgba(6, 1, 82, .10);
  --hairline-top: rgba(255, 255, 255, .7);
  --glass: linear-gradient(158deg, rgba(255, 255, 255, .92), rgba(244, 246, 251, .82));
  /* gold is unreadable on a light ground, so it darkens to its ink form.
     #9a6a00 measured 4.0-4.4 on the lightest leaves, so it is deepened to clear
     4.5:1 there. */
  --gold: #8a5f00;
  --gold-deep: #8a5f00;
  --orange-deep: #c23c00;
  /* on the light ground --grey is a dark ruled-line ink, not the pale brand grey */
  --grey: #0e1230;
  --head: #0a0e28;
  --blue-sig: #3A46D8;
  --shadow: 0 2px 6px rgba(6, 1, 82, .05), 0 20px 46px rgba(6, 1, 82, .10), inset 0 1px 0 rgba(255, 255, 255, .7);
  --disp: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ===========================================================================
   PREMIUM PARTICLES, the shared sand / spark field
   ---------------------------------------------------------------------------
   Small 1-2px grains in the brand colours: white, periwinkle, warm sand, brand
   orange and the brighter blue. Sand and sparks, NEVER bubbles, never a
   screensaver. Lifted out of index.html so the 17 pages that had no particle
   field at all can opt in with one line of markup instead of a 10KB paste:

       <div class="particles" aria-hidden="true"><span class="p1"></span><span
       class="p2"></span><span class="p3"></span><span class="p4"></span><span
       class="p5"></span></div>

   Pages that still carry their own copy are byte-identical and simply win the
   cascade; they can drop it whenever they are next touched.

   Each layer is ONE tiny (1-2px) element whose many box-shadow copies paint a
   field of fine grains; the field is duplicated one viewport down so a slow
   translateY(-100vh) loop is seamless. Tiny + low-opacity = subtle premium
   drift, never bubbles, never a screensaver.
   =========================================================================== */
  .particles{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
  .particles span{position:absolute;left:0;top:0;border-radius:50%;background:transparent;
    will-change:transform;animation:sandDrift linear infinite}
  .particles .p1{width:1px;height:1px;animation-duration:72s;box-shadow:89.23vw 23.98vh 0 0 rgba(255,255,255,.42),89.23vw calc(23.98vh + 100vh) 0 0 rgba(255,255,255,.42),48.39vw 3.08vh 0 0 rgba(255,255,255,.42),48.39vw calc(3.08vh + 100vh) 0 0 rgba(255,255,255,.42),57.91vw 26.57vh 0 0 rgba(255,255,255,.42),57.91vw calc(26.57vh + 100vh) 0 0 rgba(255,255,255,.42),90.49vw 12.20vh 0 0 rgba(255,255,255,.42),90.49vw calc(12.20vh + 100vh) 0 0 rgba(255,255,255,.42),39.62vw 49.78vh 0 0 rgba(255,255,255,.42),39.62vw calc(49.78vh + 100vh) 0 0 rgba(255,255,255,.42),62.39vw 86.29vh 0 0 rgba(255,255,255,.42),62.39vw calc(86.29vh + 100vh) 0 0 rgba(255,255,255,.42),67.97vw 67.20vh 0 0 rgba(255,255,255,.42),67.97vw calc(67.20vh + 100vh) 0 0 rgba(255,255,255,.42),23.90vw 3.40vh 0 0 rgba(255,255,255,.42),23.90vw calc(3.40vh + 100vh) 0 0 rgba(255,255,255,.42),39.98vw 5.91vh 0 0 rgba(255,255,255,.42),39.98vw calc(5.91vh + 100vh) 0 0 rgba(255,255,255,.42),92.70vw 54.12vh 0 0 rgba(255,255,255,.42),92.70vw calc(54.12vh + 100vh) 0 0 rgba(255,255,255,.42),87.01vw 94.99vh 0 0 rgba(255,255,255,.42),87.01vw calc(94.99vh + 100vh) 0 0 rgba(255,255,255,.42),41.50vw 26.78vh 0 0 rgba(255,255,255,.42),41.50vw calc(26.78vh + 100vh) 0 0 rgba(255,255,255,.42),65.28vw 62.22vh 0 0 rgba(255,255,255,.42),65.28vw calc(62.22vh + 100vh) 0 0 rgba(255,255,255,.42),6.64vw 25.55vh 0 0 rgba(255,255,255,.42),6.64vw calc(25.55vh + 100vh) 0 0 rgba(255,255,255,.42),59.04vw 76.42vh 0 0 rgba(255,255,255,.42),59.04vw calc(76.42vh + 100vh) 0 0 rgba(255,255,255,.42),56.35vw 34.15vh 0 0 rgba(255,255,255,.42),56.35vw calc(34.15vh + 100vh) 0 0 rgba(255,255,255,.42),86.10vw 49.21vh 0 0 rgba(255,255,255,.42),86.10vw calc(49.21vh + 100vh) 0 0 rgba(255,255,255,.42),43.40vw 56.52vh 0 0 rgba(255,255,255,.42),43.40vw calc(56.52vh + 100vh) 0 0 rgba(255,255,255,.42),86.75vw 82.88vh 0 0 rgba(255,255,255,.42),86.75vw calc(82.88vh + 100vh) 0 0 rgba(255,255,255,.42),98.98vw 1.95vh 0 0 rgba(255,255,255,.42),98.98vw calc(1.95vh + 100vh) 0 0 rgba(255,255,255,.42),30.35vw 51.37vh 0 0 rgba(255,255,255,.42),30.35vw calc(51.37vh + 100vh) 0 0 rgba(255,255,255,.42),16.79vw 15.06vh 0 0 rgba(255,255,255,.42),16.79vw calc(15.06vh + 100vh) 0 0 rgba(255,255,255,.42),1.63vw 80.55vh 0 0 rgba(255,255,255,.42),1.63vw calc(80.55vh + 100vh) 0 0 rgba(255,255,255,.42),64.19vw 58.98vh 0 0 rgba(255,255,255,.42),64.19vw calc(58.98vh + 100vh) 0 0 rgba(255,255,255,.42),82.12vw 46.03vh 0 0 rgba(255,255,255,.42),82.12vw calc(46.03vh + 100vh) 0 0 rgba(255,255,255,.42),35.84vw 69.63vh 0 0 rgba(255,255,255,.42),35.84vw calc(69.63vh + 100vh) 0 0 rgba(255,255,255,.42),11.12vw 36.77vh 0 0 rgba(255,255,255,.42),11.12vw calc(36.77vh + 100vh) 0 0 rgba(255,255,255,.42),8.00vw 11.26vh 0 0 rgba(255,255,255,.42),8.00vw calc(11.26vh + 100vh) 0 0 rgba(255,255,255,.42),24.95vw 36.45vh 0 0 rgba(255,255,255,.42),24.95vw calc(36.45vh + 100vh) 0 0 rgba(255,255,255,.42),20.85vw 15.80vh 0 0 rgba(255,255,255,.42),20.85vw calc(15.80vh + 100vh) 0 0 rgba(255,255,255,.42),13.84vw 20.35vh 0 0 rgba(255,255,255,.42),13.84vw calc(20.35vh + 100vh) 0 0 rgba(255,255,255,.42),49.10vw 67.24vh 0 0 rgba(255,255,255,.42),49.10vw calc(67.24vh + 100vh) 0 0 rgba(255,255,255,.42),50.12vw 69.39vh 0 0 rgba(255,255,255,.42),50.12vw calc(69.39vh + 100vh) 0 0 rgba(255,255,255,.42),89.47vw 56.32vh 0 0 rgba(255,255,255,.42),89.47vw calc(56.32vh + 100vh) 0 0 rgba(255,255,255,.42)}
  .particles .p2{width:1.5px;height:1.5px;animation-duration:54s;box-shadow:27.71vw 15.84vh 0 0 rgba(206,216,255,.50),27.71vw calc(15.84vh + 100vh) 0 0 rgba(206,216,255,.50),14.20vw 68.90vh 0 0 rgba(206,216,255,.50),14.20vw calc(68.90vh + 100vh) 0 0 rgba(206,216,255,.50),51.51vw 77.78vh 0 0 rgba(206,216,255,.50),51.51vw calc(77.78vh + 100vh) 0 0 rgba(206,216,255,.50),57.56vw 84.79vh 0 0 rgba(206,216,255,.50),57.56vw calc(84.79vh + 100vh) 0 0 rgba(206,216,255,.50),62.95vw 74.01vh 0 0 rgba(206,216,255,.50),62.95vw calc(74.01vh + 100vh) 0 0 rgba(206,216,255,.50),50.11vw 76.36vh 0 0 rgba(206,216,255,.50),50.11vw calc(76.36vh + 100vh) 0 0 rgba(206,216,255,.50),95.80vw 20.38vh 0 0 rgba(206,216,255,.50),95.80vw calc(20.38vh + 100vh) 0 0 rgba(206,216,255,.50),90.95vw 47.32vh 0 0 rgba(206,216,255,.50),90.95vw calc(47.32vh + 100vh) 0 0 rgba(206,216,255,.50),53.83vw 15.70vh 0 0 rgba(206,216,255,.50),53.83vw calc(15.70vh + 100vh) 0 0 rgba(206,216,255,.50),32.66vw 40.41vh 0 0 rgba(206,216,255,.50),32.66vw calc(40.41vh + 100vh) 0 0 rgba(206,216,255,.50),10.44vw 28.52vh 0 0 rgba(206,216,255,.50),10.44vw calc(28.52vh + 100vh) 0 0 rgba(206,216,255,.50),28.81vw 86.98vh 0 0 rgba(206,216,255,.50),28.81vw calc(86.98vh + 100vh) 0 0 rgba(206,216,255,.50),79.76vw 2.83vh 0 0 rgba(206,216,255,.50),79.76vw calc(2.83vh + 100vh) 0 0 rgba(206,216,255,.50),50.10vw 71.84vh 0 0 rgba(206,216,255,.50),50.10vw calc(71.84vh + 100vh) 0 0 rgba(206,216,255,.50),59.79vw 72.95vh 0 0 rgba(206,216,255,.50),59.79vw calc(72.95vh + 100vh) 0 0 rgba(206,216,255,.50),42.49vw 19.73vh 0 0 rgba(206,216,255,.50),42.49vw calc(19.73vh + 100vh) 0 0 rgba(206,216,255,.50),7.47vw 65.49vh 0 0 rgba(206,216,255,.50),7.47vw calc(65.49vh + 100vh) 0 0 rgba(206,216,255,.50),13.40vw 87.68vh 0 0 rgba(206,216,255,.50),13.40vw calc(87.68vh + 100vh) 0 0 rgba(206,216,255,.50),73.16vw 12.31vh 0 0 rgba(206,216,255,.50),73.16vw calc(12.31vh + 100vh) 0 0 rgba(206,216,255,.50),55.18vw 22.88vh 0 0 rgba(206,216,255,.50),55.18vw calc(22.88vh + 100vh) 0 0 rgba(206,216,255,.50),48.77vw 20.81vh 0 0 rgba(206,216,255,.50),48.77vw calc(20.81vh + 100vh) 0 0 rgba(206,216,255,.50),51.73vw 57.69vh 0 0 rgba(206,216,255,.50),51.73vw calc(57.69vh + 100vh) 0 0 rgba(206,216,255,.50),74.64vw 72.10vh 0 0 rgba(206,216,255,.50),74.64vw calc(72.10vh + 100vh) 0 0 rgba(206,216,255,.50),68.46vw 44.83vh 0 0 rgba(206,216,255,.50),68.46vw calc(44.83vh + 100vh) 0 0 rgba(206,216,255,.50)}
  .particles .p3{width:2px;height:2px;animation-duration:40s;box-shadow:83.28vw 59.70vh 0 0 rgba(255,201,132,.55),83.28vw calc(59.70vh + 100vh) 0 0 rgba(255,201,132,.55),46.41vw 60.83vh 0 0 rgba(255,201,132,.55),46.41vw calc(60.83vh + 100vh) 0 0 rgba(255,201,132,.55),45.95vw 76.04vh 0 0 rgba(255,201,132,.55),45.95vw calc(76.04vh + 100vh) 0 0 rgba(255,201,132,.55),59.08vw 41.64vh 0 0 rgba(255,201,132,.55),59.08vw calc(41.64vh + 100vh) 0 0 rgba(255,201,132,.55),1.15vw 97.08vh 0 0 rgba(255,201,132,.55),1.15vw calc(97.08vh + 100vh) 0 0 rgba(255,201,132,.55),78.58vw 54.02vh 0 0 rgba(255,201,132,.55),78.58vw calc(54.02vh + 100vh) 0 0 rgba(255,201,132,.55),15.25vw 43.67vh 0 0 rgba(255,201,132,.55),15.25vw calc(43.67vh + 100vh) 0 0 rgba(255,201,132,.55),70.31vw 25.68vh 0 0 rgba(255,201,132,.55),70.31vw calc(25.68vh + 100vh) 0 0 rgba(255,201,132,.55),93.50vw 58.95vh 0 0 rgba(255,201,132,.55),93.50vw calc(58.95vh + 100vh) 0 0 rgba(255,201,132,.55),36.01vw 38.47vh 0 0 rgba(255,201,132,.55),36.01vw calc(38.47vh + 100vh) 0 0 rgba(255,201,132,.55),15.48vw 71.63vh 0 0 rgba(255,201,132,.55),15.48vw calc(71.63vh + 100vh) 0 0 rgba(255,201,132,.55),31.41vw 32.72vh 0 0 rgba(255,201,132,.55),31.41vw calc(32.72vh + 100vh) 0 0 rgba(255,201,132,.55),28.34vw 74.55vh 0 0 rgba(255,201,132,.55),28.34vw calc(74.55vh + 100vh) 0 0 rgba(255,201,132,.55),94.90vw 55.88vh 0 0 rgba(255,201,132,.55),94.90vw calc(55.88vh + 100vh) 0 0 rgba(255,201,132,.55),38.36vw 71.92vh 0 0 rgba(255,201,132,.55),38.36vw calc(71.92vh + 100vh) 0 0 rgba(255,201,132,.55),51.04vw 93.37vh 0 0 rgba(255,201,132,.55),51.04vw calc(93.37vh + 100vh) 0 0 rgba(255,201,132,.55)}
  .particles .p4{width:1.5px;height:1.5px;animation-duration:63s;box-shadow:36.19vw 16.38vh 0 0 rgba(255,77,0,.62),36.19vw calc(16.38vh + 100vh) 0 0 rgba(255,77,0,.62),89.79vw 72.09vh 0 0 rgba(255,122,69,.55),89.79vw calc(72.09vh + 100vh) 0 0 rgba(255,122,69,.55),39.27vw 74.97vh 0 0 rgba(255,77,0,.48),39.27vw calc(74.97vh + 100vh) 0 0 rgba(255,77,0,.48),71.41vw 52.27vh 0 0 rgba(255,77,0,.62),71.41vw calc(52.27vh + 100vh) 0 0 rgba(255,77,0,.62),19.28vw 97.95vh 0 0 rgba(255,122,69,.55),19.28vw calc(97.95vh + 100vh) 0 0 rgba(255,122,69,.55),7.92vw 96.01vh 0 0 rgba(255,77,0,.48),7.92vw calc(96.01vh + 100vh) 0 0 rgba(255,77,0,.48),69.06vw 40.00vh 0 0 rgba(255,77,0,.62),69.06vw calc(40.00vh + 100vh) 0 0 rgba(255,77,0,.62),55.35vw 32.16vh 0 0 rgba(255,122,69,.55),55.35vw calc(32.16vh + 100vh) 0 0 rgba(255,122,69,.55),61.93vw 22.28vh 0 0 rgba(255,77,0,.48),61.93vw calc(22.28vh + 100vh) 0 0 rgba(255,77,0,.48),33.56vw 23.38vh 0 0 rgba(255,77,0,.62),33.56vw calc(23.38vh + 100vh) 0 0 rgba(255,77,0,.62),92.07vw 47.22vh 0 0 rgba(255,122,69,.55),92.07vw calc(47.22vh + 100vh) 0 0 rgba(255,122,69,.55),90.56vw 72.24vh 0 0 rgba(255,77,0,.48),90.56vw calc(72.24vh + 100vh) 0 0 rgba(255,77,0,.48),7.76vw 96.40vh 0 0 rgba(255,77,0,.62),7.76vw calc(96.40vh + 100vh) 0 0 rgba(255,77,0,.62),68.68vw 42.26vh 0 0 rgba(255,122,69,.55),68.68vw calc(42.26vh + 100vh) 0 0 rgba(255,122,69,.55)}
  .particles .p5{width:1px;height:1px;animation-duration:88s;box-shadow:4.11vw 25.58vh 0 0 rgba(58,43,255,.60),4.11vw calc(25.58vh + 100vh) 0 0 rgba(58,43,255,.60),13.56vw 67.37vh 0 0 rgba(122,112,255,.50),13.56vw calc(67.37vh + 100vh) 0 0 rgba(122,112,255,.50),57.75vw 36.64vh 0 0 rgba(58,43,255,.60),57.75vw calc(36.64vh + 100vh) 0 0 rgba(58,43,255,.60),82.25vw 23.12vh 0 0 rgba(122,112,255,.50),82.25vw calc(23.12vh + 100vh) 0 0 rgba(122,112,255,.50),39.31vw 78.22vh 0 0 rgba(58,43,255,.60),39.31vw calc(78.22vh + 100vh) 0 0 rgba(58,43,255,.60),16.78vw 39.45vh 0 0 rgba(122,112,255,.50),16.78vw calc(39.45vh + 100vh) 0 0 rgba(122,112,255,.50),17.73vw 17.85vh 0 0 rgba(58,43,255,.60),17.73vw calc(17.85vh + 100vh) 0 0 rgba(58,43,255,.60),3.99vw 11.35vh 0 0 rgba(122,112,255,.50),3.99vw calc(11.35vh + 100vh) 0 0 rgba(122,112,255,.50),52.00vw 37.67vh 0 0 rgba(58,43,255,.60),52.00vw calc(37.67vh + 100vh) 0 0 rgba(58,43,255,.60),40.62vw 43.65vh 0 0 rgba(122,112,255,.50),40.62vw calc(43.65vh + 100vh) 0 0 rgba(122,112,255,.50),87.38vw 16.38vh 0 0 rgba(58,43,255,.60),87.38vw calc(16.38vh + 100vh) 0 0 rgba(58,43,255,.60),58.31vw 35.61vh 0 0 rgba(122,112,255,.50),58.31vw calc(35.61vh + 100vh) 0 0 rgba(122,112,255,.50)}
  @keyframes sandDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-100vh,0)}}
  @media(prefers-reduced-motion:reduce){.particles{display:none}}
