/* Site-wide motion + interaction floor (Emil pass, 2026-08-29).
   One authored entrance (the hero); everything else is feedback, not decoration. */
:root{--ease-out-strong:cubic-bezier(.23,1,.32,1);--ease-in-out-strong:cubic-bezier(.77,0,.175,1)}

/* Buttons and link-buttons: instant feedback on press, transform-only */
.talk,.hero-talk,.btn,.btn-primary,.btn-ghost,.text-link,.offer-detail,.focus-link,.all-resources,.podcast-actions a,.result-actions button,.download-button,.resource-chooser a,.chooser-options a,.resource-stack-wide a,.case-card,.resource-card,.universe-map a,.answer-link,summary{
  transition:transform 160ms var(--ease-out-strong),background-color 160ms ease,color 160ms ease,border-color 160ms ease,box-shadow 200ms ease}
.talk:active,.hero-talk:active,.btn:active,.btn-primary:active,.btn-ghost:active,.offer-detail:active,.focus-link:active,.all-resources:active,.podcast-actions a:active,.result-actions button:active,.download-button:active{transform:scale(.97)}
.case-card:active,.resource-card:active,.universe-map a:active,.resource-stack-wide a:active,.chooser-options a:active{transform:scale(.99)}

/* Hover lifts only where a pointer can hover */
@media(hover:hover) and (pointer:fine){
  .case-card:hover,.resource-card:hover,.universe-map a:hover{transform:translateY(-2px)}
}

/* FAQ / details: rotate the marker instead of swapping glyphs */
summary:after{transition:transform 200ms var(--ease-out-strong)}
details[open] summary:after{content:'+';transform:rotate(45deg)}

/* Range sliders: the thumb answers the hand */
input[type='range']::-webkit-slider-thumb{transition:transform 120ms var(--ease-out-strong),box-shadow 120ms ease}
input[type='range']:active::-webkit-slider-thumb{transform:scale(1.12)}
input[type='range']::-moz-range-thumb{transition:transform 120ms var(--ease-out-strong)}
input[type='range']:active::-moz-range-thumb{transform:scale(1.12)}

/* Dialogs: enter from an already-visible state, backdrop fades */
dialog[open]{animation:cw-dialog-in 220ms var(--ease-out-strong)}
dialog::backdrop{animation:cw-fade 220ms ease}
@keyframes cw-dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cw-fade{from{opacity:0}to{opacity:1}}

/* Browser surfaces belong to the design */
::selection{background:#f15f4b;color:#1d1a18}
:focus-visible{outline:3px solid #c9e622;outline-offset:3px;border-radius:2px}
html{scrollbar-color:#401070 #f3ecdf}

/* Reduced motion: keep fades and color, drop movement */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
