:root{ color-scheme: light; }
html.dark{ color-scheme: dark; }

* { box-sizing: border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; }
body{ font-family:'Inter', sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5{ font-family:'Plus Jakarta Sans', sans-serif; letter-spacing:-0.02em; }
.font-mono, code, .tag-mono{ font-family:'IBM Plex Mono', monospace; }

::selection{ background:#4C5FF7; color:#fff; }

/* scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:#9CA3AF; border-radius:8px; }
html.dark ::-webkit-scrollbar-thumb{ background:#3A4256; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ---- bounding-box corner-bracket motif : the data-annotation brand device ---- */
.bbox-frame{ position:relative; }
.bbox-frame::before, .bbox-frame::after,
.bbox-frame .bb-br, .bbox-frame .bb-bl{
  content:""; position:absolute; width:14px; height:14px; pointer-events:none;
  border-color: currentColor; opacity:.55; transition:opacity .2s, width .2s, height .2s;
}
.bbox-frame::before{ top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; }
.bbox-frame::after{ top:-1px; right:-1px; border-top:2px solid; border-right:2px solid; }
.bbox-frame .bb-bl{ bottom:-1px; left:-1px; border-bottom:2px solid; border-left:2px solid; }
.bbox-frame .bb-br{ bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; }
.bbox-frame:hover::before, .bbox-frame:hover::after,
.bbox-frame:hover .bb-bl, .bbox-frame:hover .bb-br{ opacity:1; width:20px; height:20px; }

/* ---- hero load sequence (single orchestrated reveal) ---- */
@keyframes riseIn{ from{ opacity:0; transform:translateY(14px);} to{ opacity:1; transform:translateY(0);} }
.reveal{ opacity:0; animation:riseIn .7s cubic-bezier(.2,.7,.2,1) forwards; }
.reveal-1{ animation-delay:.02s; } .reveal-2{ animation-delay:.12s; } .reveal-3{ animation-delay:.22s; }
.reveal-4{ animation-delay:.32s; } .reveal-5{ animation-delay:.42s; }

/* ---- claims flow pulse (RCM section) ---- */
@keyframes dashMove{ to{ stroke-dashoffset:-40; } }
.pulse-line{ stroke-dasharray:6 6; animation:dashMove 1.8s linear infinite; }

/* ---- scan sweep for annotation demo ---- */
@keyframes scanSweep{ 0%{ transform:translateY(-100%);} 100%{ transform:translateY(320%);} }
.scan-sweep{ animation:scanSweep 3.2s ease-in-out infinite; }

/* counter tick */
.tabular{ font-variant-numeric: tabular-nums; }

/* dropdown */
.has-drop:hover .dropdown, .has-drop:focus-within .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.dropdown{ opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s, transform .18s; }

/* mobile accordion chevrons */
.faq-item[open] .faq-chev{ transform:rotate(180deg); }
.faq-item summary::-webkit-details-marker{ display:none; }

/* segmented claims bar */
.seg-bar > span{ height:100%; float:left; }

/* skip link */
.skip-link{ position:absolute; left:-999px; top:auto; }
.skip-link:focus{ left:1rem; top:1rem; z-index:100; }
