/* ===========================================================================
   ARNS — Agntic Radio Network Solutions
   Base stylesheet. The page markup keeps its inline styles from the design
   handoff (that is what holds the layout pixel-accurate); this file carries
   the reset, keyframes, and everything a `style` attribute cannot express:
   pseudo-classes, media queries, and the no-JS fallback.
   =========================================================================== */

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#050506}
body{
  margin:0;
  background:#050506;
  color:#E6E4DF;
  font-family:Archivo,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:#E6E4DF;text-decoration:none}
a:hover{color:#E9E0A6}
::selection{background:#E9E0A6;color:#050506}
img{display:block;max-width:100%}
[hidden]{display:none !important}

@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.15}}
@keyframes sweep{0%{transform:translateX(-100%)}100%{transform:translateX(340%)}}
@keyframes tick{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* The nav strip scrolls horizontally on narrow screens; hide its scrollbar
   the way the prototype does (scrollbar-width is already inline). */
nav ::-webkit-scrollbar,
nav::-webkit-scrollbar{display:none}

/* --- keyboard accessibility ------------------------------------------------
   The design removes outlines on focus in favour of a border colour change.
   That reads fine for pointer users but leaves keyboard users stranded, so
   restore a visible ring for keyboard focus only. */
:focus-visible{
  outline:2px solid #E9E0A6 !important;
  outline-offset:2px !important;
}

/* --- reveal-on-scroll ------------------------------------------------------
   Elements carry inline `opacity:0` and are revealed by arns.js. Without JS
   they would stay invisible, so force them visible when JS is unavailable. */
.no-js [data-reveal]{opacity:1 !important;transform:none !important}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important}
}

/* --- contact form ---------------------------------------------------------- */
[data-arns-form] input::placeholder,
[data-arns-form] textarea::placeholder{color:rgba(230,228,223,.38)}

[data-arns-form] button[disabled]{opacity:.55;cursor:progress}

.arns-error{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  letter-spacing:.16em;
  line-height:1.6;
  color:#E4A0A0;
}

/* Honeypot — off-screen rather than display:none so bots still fill it. */
.arns-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* --- conditional wrappers ---------------------------------------------------
   <sc-if> in the prototype rendered its children directly into the parent's
   layout. The converted wrapper must not become a flex/grid item of its own,
   so make it layout-transparent. [hidden] still wins over this. */
[data-arns-if]{display:contents}

/* ---- generated from style-hover / style-focus ---- */
.hv-0:hover{background:#E9E0A6 !important;color:#050506 !important;border-color:#E9E0A6 !important}
.hv-1:hover{background:#F3ECC0 !important}
.hv-2:hover{border-color:#A7D3A6 !important;color:#A7D3A6 !important}
.hv-3:hover{background:#E9E0A6 !important;color:#050506 !important}
.hv-4:hover{border-color:#E9E0A6 !important;color:#E9E0A6 !important}
.fc-5:focus{border-color:#E9E0A6 !important;outline:none !important}
