@import url("./tokens.css");

*{box-sizing:border-box;margin:0;padding:0;}
html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{
  font-family:"Barlow", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  letter-spacing:.01em;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{
  background:var(--primary);
  color:#fff;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--link);text-decoration:none;}
a:hover{text-decoration:underline;opacity:.92;}
.container{width:min(var(--container), calc(100% - 40px));margin:0 auto;}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link:focus{left:20px;top:16px;width:auto;height:auto;padding:10px 16px;background:var(--primary);color:#fff;border-radius:var(--radius-md);z-index:9999;font-weight:600;}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius-sm);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
}

.status-err{color:var(--highlight);}
.status-ok{color:var(--trust);}

/* Honeypot (spam trap) */
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}

/* ── Grain texture overlay (applied to body) ── */
body::after{
  content:"";
  position:fixed;inset:0;z-index:9999;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  background-size:200px;
  opacity:0.35;
}
