*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 10px);}
html,body{max-width:100vw;overflow-x:hidden;}
body{margin:0;font-family:var(--ff-body);color:var(--text);background:var(--bg);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}

/* Grain TEX-2 (impose da_engine) */
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,video,iframe,svg{max-width:100%;display:block;}

h1,h2,h3,h4,h5{font-family:var(--ff-display);font-weight:500;color:var(--text);line-height:1.15;margin:0 0 0.6em;letter-spacing:-0.01em;}
h1{font-size:clamp(2.2rem,5.6vw,3.6rem);}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem);}
h3{font-size:clamp(1.2rem,2.2vw,1.45rem);}
p{margin:0 0 1em;}

a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}

::selection{background:var(--accent);color:#fff;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:var(--bg-alt);}
::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;}

button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0;}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;}
input::placeholder,textarea::placeholder{color:var(--text-mute);}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px;}
.eyebrow{font-family:var(--ff-ui);text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--accent);font-weight:600;margin-bottom:14px;display:inline-block;}

section{padding:48px 0;}
@media (min-width:768px){
  section{padding:80px 0;}
}
