/* ZanisWeb — Shared site styles (minimal, cached across pages) */

html { scroll-behavior: smooth; }
body { font-feature-settings: "ss01" on, "cv01" on; }
.num { font-family: 'JetBrains Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums; }
::selection { background: #F5A623; color: #081029; }
:focus-visible { outline: 2px solid #F5A623; outline-offset: 3px; border-radius: 4px; }

/* Sliding day/night switch */
.theme-switch { width: 3.5rem; height: 2rem; }
.theme-knob {
  width: 1.5rem; height: 1.5rem;
  right: 0.25rem;
  transition: right .35s cubic-bezier(.4,0,.2,1), background-color .35s;
}
#theme-toggle:checked ~ .theme-track .theme-knob { right: 2rem; }
#theme-toggle:checked ~ .theme-track { background-color: #152663; }

/* Details/summary custom marker (FAQ / TOC accordions) */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .faq-icon { transform: rotate(45deg); }

/* Signature grid texture backdrop */
.grid-texture {
  background-image:
    linear-gradient(rgba(245,166,35,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,166,35,.10) 1px, transparent 1px);
  background-size: 42px 42px;
}

.marquee-track { display:flex; animation: marquee 28s linear infinite; }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes floatSlow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes pulseSoft { 0%,100% { opacity: 1; } 50% { opacity: .55; } }
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float-slow { animation: floatSlow 9s ease-in-out infinite; }
.animate-pulse-soft { animation: pulseSoft 3s ease-in-out infinite; }

/* Article typography (blog single) */
.prose-zw :where(h2){ scroll-margin-top: 6rem; }
.prose-zw :where(p,li){ line-height: 2.1; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
