/* Reset minimal */
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top: calc(var(--header-h-mobile) + 12px);
}
@media (min-width:768px){
  html{scroll-padding-top: calc(var(--header-h) + 16px);}
}
body{
  font-family: var(--ff-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  overflow-x: clip;
  max-width: 100vw;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* TEX-2 grain fin discret */
body{position:relative;}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body > *{position:relative; z-index:1;}

img,svg,video,iframe{max-width:100%; display:block;}
img{height:auto;}
figure{margin:0;}
button{font-family:inherit; cursor:pointer;}
a{color:inherit; text-decoration:none;}
ul,ol{margin:0; padding:0; list-style:none;}
p{margin:0 0 1em;}
h1,h2,h3,h4{
  font-family: var(--ff-display);
  font-weight: 600;
  line-height: 1.15;
  color: var(--text);
  margin: 0 0 .6em;
  letter-spacing: -0.005em;
}

[hidden]{display:none !important;}

/* Selection + scrollbar + focus (micro details) */
::selection{background: color-mix(in srgb, var(--accent) 32%, transparent); color: var(--text);}
::-webkit-scrollbar{width:8px; height:8px;}
::-webkit-scrollbar-thumb{background: color-mix(in srgb, var(--accent) 60%, transparent); border-radius:4px;}
::-webkit-scrollbar-track{background: transparent;}
:focus-visible{outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px;}
input::placeholder, textarea::placeholder{color: var(--text-mute);}
