/* kiosko.chat shared shell — page-specific rules live inline in each page's <style>. v1 */
html { scroll-behavior: smooth; }
body { margin: 0; background: #0A0C10; color: #F2F4F8; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #8FB0FF; text-decoration: none; }
a:hover { color: #C3D4FF; }
a:focus-visible, summary:focus-visible, button:focus-visible, label:focus-within { outline: 2px solid #25D366; outline-offset: 3px; border-radius: 6px; }
summary { list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
details[open] [data-plus], details[open] [data-faq-icon] { transform: rotate(45deg); }
section[id] { scroll-margin-top: 84px; }
@keyframes kio-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes kio-dot { 0%, 60%, 100% { opacity: 0.25; } 30% { opacity: 1; } }
@keyframes kio-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
@keyframes kio-float { 0%, 100% { transform: translateY(0) rotate(var(--tilt, 0deg)); } 50% { transform: translateY(-14px) rotate(var(--tilt, 0deg)); } }
@media (min-width: 768px) { [data-mob-only] { display: none !important; } }
@media (max-width: 767px) {
  [data-desk-only] { display: none !important; }
  [data-hide-mob] { display: none !important; }
  [data-head-cta-label] { display: none; }
  [data-page-end] { padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important; }
}
@media (max-width: 1199px) { [data-deco] { display: none; } }
/* sticky mobile CTA (site.js toggles .on) */
[data-sticky].on { transform: translateY(0) !important; }
/* scroll progress bar, CSS only */
[data-progress] { display: none; }
@supports (animation-timeline: scroll()) {
  @keyframes kio-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  [data-progress] { display: block; animation: kio-progress linear both; animation-timeline: scroll(root); }
}
/* hero demo loop (homepage) */
.anim { opacity: 0; transform: translateY(10px); transition: opacity 0.45s ease, transform 0.45s ease; }
.anim.on { opacity: 1; transform: translateY(0); }
#typing { opacity: 0; transition: opacity 0.3s ease; }
#typing.on { opacity: 1; }
#typing.gone { display: none; }
#skel { opacity: 0; }
#skel.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001s !important; animation-iteration-count: 1 !important; transition-duration: 0.001s !important; }
}
