/* 24Livestream — base: reset, typography, animations, global elements */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{
  background:
    radial-gradient(1200px 600px at 82% -8%, rgba(255,46,99,.14), transparent 60%),
    radial-gradient(900px 500px at 6% 4%, rgba(255,107,61,.10), transparent 55%),
    var(--bg);
  background-attachment:fixed;
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--brand-link); text-decoration:none; transition:color .15s; }
a:hover{ color:var(--brand-pink); }
input,select,textarea,button{ font-family:inherit; }
h1,h2,h3,h4{ font-family:var(--font-head); margin:0; }
p{ margin:0; }
button{ cursor:pointer; }

::selection{ background:var(--brand-pink); color:#fff; }
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:var(--line-4); border-radius:8px; }

.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal;
}
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100000; background:var(--surface-1); color:var(--text); padding:12px 18px; border-radius:0 0 10px 0; }
.skip-link:focus{ left:0; }

:focus-visible{ outline:2px solid var(--brand-link); outline-offset:2px; }

/* Animations */
@keyframes livepulse{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.75)} }
@keyframes floaty{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes fadeUp{ from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes gridpan{ from{background-position:0 0} to{background-position:44px 44px} }

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

/* Utilities */
.grad-text{ background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.eyebrow{ font-size:13px; letter-spacing:2px; font-weight:600; text-transform:uppercase; color:var(--brand-link); margin:0 0 14px; }
.muted{ color:var(--muted); }
.text-center{ text-align:center; }
