/* Tevos Horizon FUSION (2026-11-01). Loads AFTER Horizon (tevos-horizon.css on kit pages, tevos-horizon-site.css on live pages). Flag-gated: every rule is under html[data-rd].
   ONE design from three: NIGHT = Dusk (midnight > abyss, pink horizon glow, serif display) + Teal Aurora bloom (deep-teal luminous haze rising behind the orb, aqua kept as a tint inside the blue-teal family, hue 165-235).
   MORNING = Sky Blur (sky blue > white, motion-blurred soft streaks, fine vertical ribbing) + the same pink dawn glow and the same orb arc. The flip turns the same scene.
   ONE accent: pink #FE81D1, constant (ink #02070A on pink 8.9:1; pink TEXT on light #B01F73 >= 4.5:1). Type: Instrument Serif hero H1 with the pink-orb "o", Inter UI, JetBrains Mono data.
   Tokens are emitted twice from one source (src gen.py): kit namespace (--sky-*, data-theme) and live-site namespace (--hz-*, data-hz). Then the scene recipe (both), then kit components + mobile menu. */

/* tokens: kit */
html[data-rd]{--sky-a:#0593C6;--sky-b:#5CBEE2;--sky-c:#B4E1F1;--sky-d:#EAF4FA;--ground:#F3F9FC;--limb:#F9FCFE;--glow:rgba(254,129,209,.40);--hot:rgba(254,129,209,.9);--aur1:rgba(255,255,255,.55);--aur2:rgba(16,91,255,.12);--rim:rgba(255,255,255,.95)}
html[data-rd][data-theme=night]{--sky-a:#02070A;--sky-b:#121A44;--sky-c:#0A3552;--sky-d:#1A2F86;--ground:#04101F;--limb:#0A2A5E;--glow:rgba(254,129,209,.22);--hot:rgba(254,129,209,.6);--aur1:rgba(20,200,208,.2);--aur2:rgba(12,165,196,.3);--rim:rgba(111,189,217,.5)}
html[data-rd],html[data-rd][data-ink=morning]{--ink:#02070A;--ink-2:#14284A;--surface:rgba(255,255,255,.80);--line:rgba(9,49,141,.16);--border:#35527A;--link:#09318D;--pink-text:#B01F73;--bar:#09318D;--edge:#C0267F;color-scheme:light;--pop:#FFFFFF;--bar-lo:#0A76A3;--grib:rgba(9,49,141,.05);--toplight:rgba(255,255,255,.55);--gline:rgba(255,255,255,.95)}
html[data-rd][data-ink=night]{--ink:#F0F0F0;--ink-2:#C9D6DE;--surface:rgba(8,26,58,.64);--line:rgba(240,240,240,.14);--border:#7F95A8;--link:#7ADBE6;--pink-text:#FE81D1;--bar:#6FC4E0;--edge:rgba(192,38,127,0);color-scheme:dark;--pop:#0A1A38;--bar-lo:#2A7FA3;--grib:rgba(255,255,255,.045);--toplight:rgba(116,255,237,.07);--gline:rgba(150,205,235,.26)}
/* tokens: live site */
html[data-rd][data-hz]{--hz-sky-a:#0593C6;--hz-sky-b:#5CBEE2;--hz-sky-c:#B4E1F1;--hz-sky-d:#EAF4FA;--hz-ground:#F3F9FC;--hz-limb:#F9FCFE;--hz-glow:rgba(254,129,209,.40);--hz-hot:rgba(254,129,209,.9);--hz-aur1:rgba(255,255,255,.55);--hz-aur2:rgba(16,91,255,.12);--hz-rim:rgba(255,255,255,.95)}
html[data-rd][data-hz=night]{--hz-sky-a:#02070A;--hz-sky-b:#121A44;--hz-sky-c:#0A3552;--hz-sky-d:#1A2F86;--hz-ground:#04101F;--hz-limb:#0A2A5E;--hz-glow:rgba(254,129,209,.22);--hz-hot:rgba(254,129,209,.6);--hz-aur1:rgba(20,200,208,.2);--hz-aur2:rgba(12,165,196,.3);--hz-rim:rgba(111,189,217,.5)}
html[data-rd],html[data-rd][data-ink=morning]{--hz-ink:#02070A;--hz-ink2:#14284A;--hz-surface:rgba(255,255,255,.80);--hz-line:rgba(9,49,141,.16);--hz-border:#35527A;--hz-link:#09318D;--hz-pink-text:#B01F73;--hz-bar:#09318D;--hz-edge:#C0267F;color-scheme:light;--hz-surface2:rgba(255,255,255,.55);--hz-base:#F0F0F0;--hz-pop:#FFFFFF;--hz-field:rgba(255,255,255,.9);--hz-tint:rgba(9,49,141,.1);--hz-shadow:0 14px 36px -22px rgba(2,7,10,.55)}
html[data-rd][data-ink=night]{--hz-ink:#F0F0F0;--hz-ink2:#C9D6DE;--hz-surface:rgba(8,26,58,.64);--hz-line:rgba(240,240,240,.14);--hz-border:#7F95A8;--hz-link:#7ADBE6;--hz-pink-text:#FE81D1;--hz-bar:#6FC4E0;--hz-edge:rgba(192,38,127,0);color-scheme:dark;--hz-surface2:rgba(8,26,58,.42);--hz-base:#02070A;--hz-pop:#0A1A38;--hz-field:rgba(2,7,10,.5);--hz-tint:rgba(111,189,217,.14);--hz-shadow:0 14px 36px -22px rgba(0,0,0,.8)}
/* scene recipe: one set of rules; var(--hz-x,var(--x)) reads the live token when present, else the kit token */

html[data-rd] .hz-aur{left:0;right:0;top:0;height:74%;transform:none;
  background:radial-gradient(ellipse 58% 62% at 50% 92%,var(--hz-aur2,var(--aur2)),transparent 72%),radial-gradient(ellipse 7% 58% at 18% 26%,var(--hz-aur1,var(--aur1)),transparent 72%),radial-gradient(ellipse 5% 70% at 33% 14%,var(--hz-aur2,var(--aur2)),transparent 72%),
   radial-gradient(ellipse 9% 52% at 52% 30%,var(--hz-aur1,var(--aur1)),transparent 72%),radial-gradient(ellipse 6% 66% at 71% 18%,var(--hz-aur2,var(--aur2)),transparent 72%),radial-gradient(ellipse 8% 56% at 88% 30%,var(--hz-aur1,var(--aur1)),transparent 72%);
  -webkit-mask:linear-gradient(180deg,transparent,#000 16%,#000 70%,transparent);mask:linear-gradient(180deg,transparent,#000 16%,#000 70%,transparent)}
html[data-rd] .hz-horizon{top:calc(var(--hz-hy,var(--hy)) - 20vh);height:30vh;background:radial-gradient(ellipse 54% 44% at 50% 68%,var(--hz-glow,var(--glow)),transparent 74%),radial-gradient(ellipse 22% 14% at 50% 70%,var(--hz-glow,var(--glow)),transparent 76%)}
html[data-rd] .hz-scene::before{content:"";position:absolute;inset:-8% -12%;transform:skewX(-11deg);pointer-events:none;opacity:var(--hz-mix,var(--mix));
  background:radial-gradient(ellipse 4% 36% at 84% 30%,rgba(9,49,141,.34),transparent 70%),radial-gradient(ellipse 6% 38% at 80% 31%,rgba(5,147,198,.5),transparent 72%),
   radial-gradient(ellipse 12% 40% at 74% 33%,rgba(16,91,255,.2),transparent 74%),radial-gradient(ellipse 22% 24% at 70% 62%,rgba(254,129,209,.5),transparent 72%),
   radial-gradient(ellipse 14% 18% at 78% 58%,rgba(254,129,209,.4),transparent 74%),radial-gradient(ellipse 26% 36% at 66% 44%,rgba(255,255,255,.6),transparent 70%),
   radial-gradient(ellipse 12% 54% at 94% 36%,rgba(255,255,255,.5),transparent 72%)}
html[data-rd] .hz-scene::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:calc(.4 + .6*var(--hz-mix,var(--mix)));
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0 1px,rgba(255,255,255,0) 1px 3px,rgba(2,7,10,.07) 3px 4px,rgba(255,255,255,0) 4px 8px);
  -webkit-mask:linear-gradient(180deg,#000 0,#000 30%,transparent 72%);mask:linear-gradient(180deg,#000 0,#000 30%,transparent 72%)}
html[data-rd] .hz-moon::before{content:"";position:absolute;left:-520px;top:-520px;width:1040px;height:1040px;border-radius:50%;background:radial-gradient(circle,var(--hz-aur2,var(--aur2)) 0,var(--hz-aur1,var(--aur1)) 40%,transparent 66%)}
html[data-rd] .hz-moon .hz-halo{background:radial-gradient(circle,rgba(254,129,209,.5) 0,rgba(254,129,209,.2) 22%,rgba(254,129,209,.07) 46%,transparent 68%)}

@media (max-width:640px){html[data-rd] .hz-horizon{top:calc(var(--hz-hy,var(--hy)) - 12vh);height:22vh}}
@media (max-width:640px){html[data-rd][data-theme=night]{--hot:rgba(254,129,209,.4);--rim:rgba(111,189,217,.3)}html[data-rd][data-hz=night]{--hz-hot:rgba(254,129,209,.4);--hz-rim:rgba(111,189,217,.3)}}

/* blobs and ribbing belong to the first screen: they fade with scroll (filter:opacity, so it never fights the day/night opacity above) */
@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){
  html[data-rd] .hz-scene::before{animation:fzblob linear both;animation-timeline:scroll(root block);animation-range:0 90vh}
  html[data-rd] .hz-scene::after{animation:fzrib linear both;animation-timeline:scroll(root block);animation-range:0 70vh}
    html[data-rd] .hz-orbit{animation:fzorb linear both;animation-timeline:scroll(root block);animation-range:0 55vh}
  @keyframes fzorb{to{opacity:0}}
  html[data-rd] .hz-limb{animation:fzlimb linear both;animation-timeline:scroll(root block);animation-range:0 60vh}
  @keyframes fzlimb{to{opacity:.3}}@keyframes fzblob{to{filter:opacity(.25)}}@keyframes fzrib{to{filter:opacity(0)}}}}


/* ===== kit components (pages built natively on tevos-horizon.css) ===== */
html[data-rd] .display{font-weight:400;letter-spacing:-.032em}
html[data-rd] .orbo{width:.42em;height:.42em}
html[data-rd] .tile__v{font-family:var(--mono);font-weight:300;letter-spacing:-.04em;font-size:clamp(2.1rem,1.6rem + 1.6vw,2.9rem)}
html[data-rd] .tiles>.tile:first-child .tile__v{font-size:clamp(2.6rem,2rem + 2.4vw,3.9rem)}
html[data-rd] .card h3{font-family:var(--sans);font-weight:600;letter-spacing:-.02em;font-size:1.3rem}
html[data-rd] .sub{color:var(--ink)}
html[data-rd] .nav{flex:0 0 auto;margin:0 auto;padding:4px;background:var(--surface);border:1px solid var(--gline);border-radius:999px}
html[data-rd] .hd{border-bottom:0;box-shadow:0 1px 0 var(--gline)}
html[data-rd] .hd__r{margin-left:0}
html[data-rd] .glass{position:relative;isolation:isolate;border-color:var(--gline);background:linear-gradient(180deg,var(--toplight),transparent 46%),var(--surface);box-shadow:inset 0 1px 0 var(--rim),0 20px 42px -26px rgba(2,12,24,.6)}
html[data-rd] .glass::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(90deg,var(--grib) 0 1px,transparent 1px 6px);-webkit-mask:linear-gradient(180deg,#000,transparent 70%);mask:linear-gradient(180deg,#000,transparent 70%)}
html[data-rd] .meter:not(.hi) i{background:linear-gradient(90deg,var(--bar-lo),var(--bar))}
html[data-rd] .cols li:not(.pk) i{background:linear-gradient(180deg,var(--bar),var(--bar-lo))}
html[data-rd] .tile:not(:has(.spark)){min-height:0}
html[data-rd] .btn--glass,html[data-rd] .chip{border-color:var(--border)}
html[data-rd] .hero__cta .btn{min-height:52px}
/* mobile menu: the nav pill becomes a sheet under the header at <=900px (the base kit hid it with no replacement) */
html[data-rd] .hd__menu{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 120ms var(--out),background-color 180ms var(--out)}
html[data-rd] .hd__menu:active{transform:scale(.94)}
html[data-rd] .hd__menu svg{width:20px;height:20px}
html[data-rd] .hd__menu .x{display:none}
html[data-rd] .hd[data-open] .hd__menu .x{display:block}
html[data-rd] .hd[data-open] .hd__menu .b{display:none}
@media (max-width:900px){
  html[data-rd] .hd__menu{display:inline-flex}
  html[data-rd] .hd__r{margin-left:auto}
  html[data-rd] .hd[data-open] .nav{display:flex;flex-direction:column;gap:2px;position:absolute;left:12px;right:12px;top:calc(100% + 8px);margin:0;padding:8px;border-radius:20px;background:var(--pop);border:1px solid var(--border);box-shadow:0 24px 48px -16px rgba(2,7,10,.5);animation:fzmenu 200ms var(--out) both}
  html[data-rd] .hd[data-open] .nav a{min-height:48px;padding:0 16px;border-radius:12px;color:var(--ink);font-size:16px;justify-content:space-between}
  html[data-rd] .hd[data-open] .nav a::after{content:"\2192";color:var(--pink-text)}
  @keyframes fzmenu{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){html[data-rd] .hd[data-open] .nav{animation:none}html[data-rd] .hd__menu{transition:none}html[data-rd] .hz-scene::before,html[data-rd] .hz-scene::after{animation:none}}
