/* Enhancement layer only. The original plan.css owns the entire design. */
[data-polish] { --polish-lift: -2px; --polish-light: .065; --polish-radius: 340px; }
[data-polish="expressive"] { --polish-lift: -4px; --polish-light: .12; --polish-radius: 440px; }
[data-polish] a:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
[data-polish] .card a:focus-visible { outline-color: var(--soft); }
@media (prefers-reduced-motion: no-preference) {
  [data-polish] .btn { transition-timing-function: cubic-bezier(.16,1,.3,1); }
  [data-polish] .btn:active { transform: scale(.98); }
  html.rv [data-polish] .rv-item { transition-timing-function: cubic-bezier(.22,1,.36,1); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  [data-polish] .card.rv-item { transition: opacity .7s var(--ease-out), transform .7s var(--ease-out), translate .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease; }
  [data-polish] .card:hover { translate: 0 var(--polish-lift); box-shadow: 0 38px 70px -30px rgba(16,42,102,.56); }
  [data-polish] .card::before {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(circle var(--polish-radius) at var(--pointer-x,50%) var(--pointer-y,50%), rgba(255,255,255,var(--polish-light)), transparent 75%);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
    opacity: 0; transition: opacity .4s ease;
  }
  [data-polish] .card:hover::before { opacity: 1; }
  [data-polish] .trust-mark { transition: color .2s ease, translate .35s ease; }
  [data-polish] .trust-mark:hover { translate: 0 -2px; }
  [data-polish="expressive"] .btn:hover { filter: drop-shadow(0 5px 8px rgba(37,99,255,.16)); }
}

/* Scroll entrances: same composition, revealed as each item reaches the viewport. */
html.rv body[data-scroll-ready] .rv-item { opacity: 1; transform: none; }
html.rv body[data-scroll-ready] [data-scroll-pending] { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  html.rv body[data-scroll-ready] [data-scroll-pending] { opacity: 1; }
}
