* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }

.btn { cursor: pointer; transition: transform .15s ease, box-shadow .2s ease, filter .15s ease; }
.btn:hover { transform: translateY(-1px); filter: brightness(1.05); }
.btn:active { transform: translateY(0); filter: brightness(0.97); }

.btn-primary { box-shadow: var(--glow-rest, none); }
.btn-primary:hover { box-shadow: var(--glow-hover, none); filter: brightness(1.08); }

.card-hover { transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(0,0,0,.22); }

.card-premium { position: relative; transition: transform .15s ease, box-shadow .2s ease; box-shadow: var(--card-shadow-rest); }
.card-premium:hover { transform: translateY(-3px); box-shadow: var(--card-shadow-hover); }
.card-premium::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: linear-gradient(140deg, var(--card-border-glow, transparent), transparent 45%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none;
}

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

.check-row { transition: filter .12s ease, border-color .12s ease; cursor: pointer; }
.check-row:hover { filter: brightness(0.97); }

#back-to-top { transition: opacity .2s ease, visibility .2s ease, transform .2s ease, filter .15s ease; }
#back-to-top.visible { opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important; }

a, .pill-link { transition: opacity .12s ease, filter .12s ease; }
a:hover, .pill-link:hover { opacity: 0.82; }

:focus-visible { outline: 2px solid #4338ca; outline-offset: 2px; }

@media print {
  .no-print { display: none !important; }
  html, body { background: #fff !important; }
}
