/* ============================================================
   PREMIUM LAYER
   Site-wide polish loaded on every page after fonts.css.
   Additive and non-destructive: refines typography, focus,
   scrolling, depth and motion without overriding page layout.
   ============================================================ */

:root{
  /* Layered elevation scale (color-tinted, soft) */
  --elev-1:0 1px 2px rgba(15,14,26,.04), 0 2px 6px -2px rgba(15,14,26,.06);
  --elev-2:0 2px 4px rgba(15,14,26,.04), 0 12px 28px -16px rgba(15,14,26,.18);
  --elev-3:0 4px 8px rgba(15,14,26,.05), 0 28px 56px -24px rgba(15,14,26,.28);
  --elev-purple:0 18px 44px -20px rgba(80, 0, 168,.42);
  /* Premium easing curves */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-smooth:cubic-bezier(.16,1,.3,1);
}

/* ---------- Typographic refinement ---------- */
/* Balance headings so they never leave a lonely orphan word,
   and tidy paragraph rag for a typeset, editorial feel. */
h1,h2,h3,h4,[data-h4],.h-balance{text-wrap:balance}
p,li,blockquote,figcaption,dd{text-wrap:pretty}
body{font-feature-settings:'kern' 1,'liga' 1,'calt' 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* Crisper large display type */
h1{font-feature-settings:'kern' 1,'liga' 1,'calt' 1,'ss01' 1}

/* ---------- Selection (covers pages without agent.css) ---------- */
::selection{background:#5000A8;color:#fff}
::-moz-selection{background:#5000A8;color:#fff}

/* ---------- Accessible, premium focus ring ---------- */
:where(a,button,[role="button"],input,textarea,select,summary,[tabindex]):focus-visible{
  outline:2px solid #5000A8;
  outline-offset:3px;
  border-radius:8px;
}
:focus:not(:focus-visible){outline:none}

/* ---------- Anchor scroll offset under sticky headers ---------- */
:target{scroll-margin-top:104px}
html{scroll-behavior:smooth}

/* ---------- Branded, unobtrusive scrollbar ---------- */
@media (pointer:fine){
  html{scrollbar-width:thin;scrollbar-color:#CDCAD9 transparent}
  ::-webkit-scrollbar{width:12px;height:12px}
  ::-webkit-scrollbar-track{background:transparent}
  ::-webkit-scrollbar-thumb{
    background:#CDCAD9;border:3px solid transparent;background-clip:content-box;border-radius:100px;
    transition:background .2s ease;
  }
  ::-webkit-scrollbar-thumb:hover{background:#A29DBA;background-clip:content-box}
}

/* ---------- Tap polish on touch ---------- */
a,button,[role="button"]{-webkit-tap-highlight-color:rgba(80, 0, 168,.16)}

/* ---------- Content prose defaults ----------
   Zero-specificity gap-fillers: any page's own rule always wins,
   while unstyled prose on content pages gets a refined baseline. */
:where(blockquote){border-left:3px solid var(--purple,#5000A8);padding:2px 0 2px 18px;margin:24px 0;color:var(--slate,#424B5A)}
:where(code,kbd,samp){font-family:var(--mono,'Google Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,Roboto,Arial,sans-serif);font-size:.92em;background:rgba(80, 0, 168,.08);border:1px solid rgba(80, 0, 168,.16);border-radius:5px;padding:.08em .36em}
:where(pre){overflow:auto}
:where(pre) code{background:none;border:none;padding:0}
:where(hr){border:none;height:1px;background:var(--border,#E9EAEE);margin:40px 0}
:where(mark){background:rgba(80, 0, 168,.16);color:inherit;border-radius:3px;padding:.02em .2em}
:where(ul,ol) li{margin:.28em 0}
:where(:not(pre)>img){max-width:100%;height:auto}

/* ---------- Nav active state (aria-current) ---------- */
.nav-mid > a[aria-current="page"],
.nav-dd-tr[aria-current="page"],
.nav-links a[aria-current="page"]{color:var(--ink,#0A0A0B);font-weight:600}
.nav-mid > a[aria-current="page"]::after{width:100%!important}

/* ---------- Reduced motion safety net ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}
/* Form controls inherit the page font (UA default is Arial) */
button,input,select,textarea{font-family:inherit}

/* Resource tables on phones: scroll sideways inside the table instead of
   pushing past the viewport, with edge shadows that show more columns wait. */
@media (max-width: 640px) {
  table.tbl {
    display: block;
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    background:
      linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left center / 32px 100% no-repeat local,
      linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) right center / 32px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, rgba(10,10,11,.16), rgba(10,10,11,0)) left center / 12px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, rgba(10,10,11,.16), rgba(10,10,11,0)) right center / 12px 100% no-repeat scroll,
      #fff;
  }
  table.tbl th, table.tbl td { min-width: 7.5rem; }
  table.tbl td { background: transparent; }
}
