/* Nova Publication — extra styling, animations and print rules */

:root { --radius: 0.9rem; }

h1, h2, h3, h4 { font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif; letter-spacing: -0.02em; }

.text-gradient {
  background: linear-gradient(135deg, #3b5bff, #9b5bff);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.card-hover { transition: transform .3s ease, box-shadow .3s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 10px 30px -12px rgba(15,21,51,.2); }

.glass { background: rgba(255,255,255,.72); backdrop-filter: blur(14px); border: 1px solid rgba(230,232,240,.9); }

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* fade + slide entrance */
@keyframes fadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.animate-fade-up { animation: fadeUp .6s ease both; }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.animate-floaty { animation: floaty 6s ease-in-out infinite; }
@keyframes shimmer { 100% { transform: translateX(100%); } }
.skeleton { position: relative; overflow: hidden; background: #eef0f7; }
.skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); animation: shimmer 1.4s infinite; }

/* dark mode for the admin shell */
.dark { color-scheme: dark; }
.dark body, body.dark { background: #0d1226; color: #f4f6ff; }
.dark .admin-card { background: #161d3a; border-color: rgba(255,255,255,.08); }
.dark .admin-sidebar { background: #101731; border-color: rgba(255,255,255,.08); }
.dark .admin-input { background: #0d1226; border-color: rgba(255,255,255,.14); color: #f4f6ff; }
.dark .admin-muted { color: #9aa3c7; }

/* print: only the printable slip */
@media print {
  body * { visibility: hidden !important; }
  .printable, .printable * { visibility: visible !important; }
  .printable { position: absolute; inset: 0; margin: 0 auto; box-shadow: none !important; }
  @page { margin: 10mm; }
}
