/* ui-signals, the blocks this site uses (press, field-error, chip-stagger,
   blur-in headline). Linked last so state rules win. Tokens from the brand.
   section-reveal lives in shell.css, card-lift in pages.css and home.css,
   focus-glow and submit-states in pages.css and home.css, count-up in home.js. */
:root{
  --sig-accent:var(--acai);--sig-danger:var(--dragon);--sig-surface:var(--cream);
  --sig-ease-out:cubic-bezier(.23,1,.32,1);--sig-ease-in-out:cubic-bezier(.77,0,.175,1);
  --sig-dur-press:120ms;--sig-dur-state:150ms;--sig-dur-enter:220ms;--sig-dur-reveal:400ms;--sig-dur-count:2000ms;
}

/* press: buttons and button-styled links only */
.pill,.pick,.seg-btn,.burger{transition:transform var(--sig-dur-press) var(--sig-ease-out),background-color var(--sig-dur-state) var(--sig-ease-out),border-color var(--sig-dur-state) var(--sig-ease-out),color var(--sig-dur-state) var(--sig-ease-out),box-shadow var(--sig-dur-state) var(--sig-ease-out)}
.pill:active,.pick:active,.seg-btn:active{transform:scale(.97)}

/* field-error: the message grows under the one field that failed */
.field .err{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--sig-dur-enter) var(--sig-ease-out);min-height:0}
.field .err>span{min-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);transition:opacity var(--sig-dur-enter) var(--sig-ease-out),transform var(--sig-dur-enter) var(--sig-ease-out)}
.field.is-bad .err{grid-template-rows:1fr}
.field.is-bad .err>span{opacity:1;transform:none}

/* chip-stagger: claims arrive in sequence, once, when the list enters view */
.js .sig-chips>*{opacity:0;transform:translateY(6px);transition:opacity var(--sig-dur-enter) var(--sig-ease-out),transform var(--sig-dur-enter) var(--sig-ease-out);transition-delay:calc(var(--i,0) * 40ms)}
.js .sig-chips.is-in>*{opacity:1;transform:none}

/* blur-in headline, ported from React Bits BlurText: each word blurs and
   rises in, once, on load. Only the opening headline of a page. */
.js .sig-blur>span{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(14px);transition:opacity .5s var(--sig-ease-out),filter .5s var(--sig-ease-out),transform .5s var(--sig-ease-out);transition-delay:calc(var(--i,0) * 90ms)}
.js .sig-blur.is-in>span{opacity:1;filter:blur(0);transform:none}

@media (prefers-reduced-motion:reduce){
  .pill:active,.pick:active,.seg-btn:active{transform:none}
  .js .sig-chips>*,.js .sig-blur>span{opacity:1;transform:none;filter:none;transition:none}
  .field .err,.field .err>span{transition:none}
}
