/* =============================================================================
   Zikry glass, done right. Linked after v2.css.
   - Glass belongs only to the floating control layer (tab bar, sticky headers and footers, sheets, small
     buttons). Content cards stay solid.
   - Fixed and sticky bars never use backdrop-filter (design.css §32, a7f7483): blurring what scrolls under a
     fixed bar repaints it on every frame. They get "pre-blurred" glass instead: a near-opaque tinted fill, a
     1px inner top highlight, a hairline ring and a soft shadow. It reads as glass and composites for free.
   - Real blur stays only on short-lived surfaces (toast, sheet scrim, menus) and is dropped entirely with
     html.zk-reduce-transparency (system setting, iPhone app or Settings → Reduce glass; glass.js).
   - Text never sits on clear glass; html.zk-contrast adds solid edges.
   ========================================================================== */
:root{
  --glass-regular:rgb(250 251 254/.94);
  --glass-tinted:color-mix(in srgb,var(--tint) 9%,rgb(250 251 254/.95));
  --glass-edge:rgb(255 255 255/.9);
  --glass-ring:rgb(15 27 51/.10);
  --glass-shadow:0 12px 32px -14px rgba(5,15,40,.34);
  --glass-dim:rgba(3,8,20,.45);
  --glass-sheen:linear-gradient(to bottom,rgb(255 255 255/.5),rgb(255 255 255/0) 55%);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --glass-regular:rgb(22 30 48/.95);
  --glass-tinted:color-mix(in srgb,var(--tint) 12%,rgb(22 30 48/.95));
  --glass-edge:rgb(255 255 255/.12);
  --glass-ring:rgb(255 255 255/.08);
  --glass-shadow:0 14px 34px -14px rgba(0,0,0,.72);
  --glass-dim:rgba(0,0,0,.55);
  --glass-sheen:linear-gradient(to bottom,rgb(255 255 255/.05),rgb(255 255 255/0) 55%);
}}
:root[data-theme="dark"]{
  --glass-regular:rgb(22 30 48/.95);
  --glass-tinted:color-mix(in srgb,var(--tint) 12%,rgb(22 30 48/.95));
  --glass-edge:rgb(255 255 255/.12);
  --glass-ring:rgb(255 255 255/.08);
  --glass-shadow:0 14px 34px -14px rgba(0,0,0,.72);
  --glass-dim:rgba(0,0,0,.55);
  --glass-sheen:linear-gradient(to bottom,rgb(255 255 255/.05),rgb(255 255 255/0) 55%);
}
/* Increased contrast: solid fill, a visible edge, no sheen. */
@media (prefers-contrast:more){:root{--glass-regular:var(--bg-elev);--glass-tinted:var(--bg-elev);--glass-ring:var(--control-line);--glass-edge:transparent;--glass-sheen:none}}
html.zk-contrast{--glass-regular:var(--bg-elev);--glass-tinted:var(--bg-elev);--glass-ring:var(--control-line);--glass-edge:transparent;--glass-sheen:none;
  --separator:var(--control-line);--label-3:var(--label-2)}
html.zk-contrast :is(.card,.zcard){box-shadow:0 0 0 1px var(--control-line)}
/* Reduce transparency: fully opaque, no blur anywhere. */
@media (prefers-reduced-transparency:reduce){:root{--glass-regular:var(--bg-elev);--glass-tinted:var(--bg-elev);--glass-sheen:none}}
html.zk-reduce-transparency{--glass-regular:var(--bg-elev);--glass-tinted:var(--bg-elev);--glass-sheen:none}

/* ---- Pre-blurred glass on fixed and sticky bars (no backdrop-filter) ---- */
.zk-v2 .nav-in::before{background:var(--glass-sheen),var(--glass-regular);-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:inset 0 1px 0 var(--glass-edge),0 0 0 .5px var(--glass-ring),var(--glass-shadow)}
.flow-form>.form-head,.discovery-view>.form-head{background:var(--glass-regular);-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 var(--hairline) 0 var(--separator)}
.sh-foot{background:var(--glass-regular);-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:inset 0 1px 0 var(--glass-edge),0 calc(-1 * var(--hairline)) 0 var(--separator)}
/* The reader and the counter sit on the night sky: their bars keep the dark tint, without blur. */
.reader .r-foot{background:rgb(6 12 30/.92);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 rgb(255 255 255/.08)}
.counter .c-top .icon,.counter .c-foot .pill,.counter .c-foot button{-webkit-backdrop-filter:none;backdrop-filter:none}
.counter .c-foot .pill,.counter .c-foot button{box-shadow:inset 0 1px 0 rgb(255 255 255/.14),inset 0 0 0 1px rgb(255 255 255/.10)}
.set-jump,.chf-cta,.offline-banner,.nav{-webkit-backdrop-filter:none;backdrop-filter:none}

/* ---- Reduce transparency and increased contrast, applied ---- */
html.zk-reduce-transparency *,html.zk-reduce-transparency *::before,html.zk-reduce-transparency *::after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.zk-reduce-transparency .toast{background:var(--label)}
html.zk-reduce-transparency .reader .r-foot{background:rgb(6 12 30)}
@media (prefers-reduced-transparency:reduce){.reader .r-foot{background:rgb(6 12 30)}}
html.zk-contrast .zk-v2 .nav-in::before,html.zk-contrast.zk-v2 .nav-in::before{box-shadow:0 0 0 1px var(--separator-strong),var(--glass-shadow)}
html.zk-contrast .counter .c-foot .pill,html.zk-contrast .counter .c-foot button{box-shadow:inset 0 0 0 1.5px rgb(255 255 255/.5)}

/* ---- The last card scrolls clear of the floating tab bar and the raised count button ---- */
/* glass.js measures the bar (it grows with Text size and the home indicator) into --nav-space. */
.app:not(.welcome){padding-bottom:var(--nav-space,calc(112px + env(safe-area-inset-bottom,0px)))}
