/* Revent · horizon.css · the sky as a line. Dawn in light, dusk in dark; the tokens tween on scheme change (theme.css).
   Loaded by every brand surface. Knobs: --hz-w --hz-op --hz-bar-h --hz-ang --hz-shift --hz-span, and data-hz-* toggles on :root (tweaks.js). */
/* title rule · on page surfaces the line is the sky; on sky surfaces (.land) it is the ground */
.ground{display:block;height:var(--hz-w);width:var(--hz-span);background:var(--sky-line-mid);border-radius:1px;margin:12px 0 10px;opacity:var(--hz-op)}
.ground.land{background:var(--hzl-gr);opacity:.92}
/* spinner · the sky as a conic ring */
.sp-sky,:root:not([data-hz-spin="0"]) :is(.btn,.buy,button) .sp{border:0;background:var(--sky-ring);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px))}
/* sky focus: a 2px ring drawn from the sky line, replacing the accent outline when --hz-focus is on */
:root:not([data-hz-focus="0"]) :is(.btn,.buy,button,input,.seg button,.fld input):focus-visible,:root:not([data-hz-focus="0"]) .is-focus{outline:2px solid transparent;position:relative;z-index:1}
:root:not([data-hz-focus="0"]) :is(.btn,.buy,button,.seg button,.fld input,.is-focus):focus-visible::after,:root:not([data-hz-focus="0"]) .is-focus::after{content:"";position:absolute;inset:-4px;border-radius:inherit;padding:2px;background:var(--sky-line);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;box-shadow:0 0 calc(var(--hz-glow) * 18px) color-mix(in oklab,var(--sky-gl) 50%,transparent)}
.btn{position:relative}
.buy{position:relative}
.cell,.cell .row{overflow:visible}
/* horizon bar: a band of the sky fading in from an edge (sky bar top, sheet lip, header rule) */
.hz{position:relative}.hz::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--hz-bar-h);background:var(--sky-line);opacity:var(--hz-op);mask-image:linear-gradient(180deg,#000,transparent);-webkit-mask-image:linear-gradient(180deg,#000,transparent);pointer-events:none;border-radius:inherit}
.hz.lip::before{height:var(--hz-w);mask-image:none;-webkit-mask-image:none}
.hz.bottom::before{top:auto;bottom:0;mask-image:linear-gradient(0deg,#000,transparent);-webkit-mask-image:linear-gradient(0deg,#000,transparent)}
/* sky selection: optional (default off) · 2px sky inset on a selected row/block */
:root[data-hz-select="1"] tr[aria-selected=true] td{background:var(--g2)}
:root[data-hz-select="1"] tr[aria-selected=true] td:first-child{position:relative}
:root[data-hz-select="1"] tr[aria-selected=true] td:first-child::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sky-line-v);opacity:var(--hz-op)}
:root[data-hz-select="1"] .week .e.sel,:root[data-hz-select="1"] .sel-sky{box-shadow:none;position:relative}
:root[data-hz-select="1"] :is(.week .e.sel,.sel-sky)::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:var(--sky-line);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
/* approval ring in sky */
:root:not([data-hz-approve="0"]) .rve-mark-ring{stroke:url(#skyring)}
:root:not([data-hz-approve="0"]) .rve-mark-check{stroke:var(--ink)}

/* functional marks (now-marker, title rules, footer rules) use the middle three stops so neither end can match the ground.
   Decorative edges (bar fade, sheet lip, focus ring) use the full five. */
/* now-marker · the line across the grid, the dot in the glow; accent when data-hz-now="0" */
:root:not([data-hz-now="0"]) .now{height:var(--hz-w);border-top:0;background:var(--sky-line-mid);opacity:1;box-shadow:0 1px 0 color-mix(in oklab,var(--ink) 18%,transparent)}
:root:not([data-hz-now="0"]) .now::before{background:var(--hzl-gl);box-shadow:0 0 0 2px color-mix(in oklab,var(--hzl-gl) 30%,transparent)}
/* lips and fades on glass: sheet top, sticky bar top, footer rule */
.hz-lip{position:relative}.hz-lip::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--hz-w) + 1px);border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--sky-line);opacity:var(--hz-op);z-index:1;pointer-events:none}
