*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-base);background-color:var(--bg-deep);color:var(--text-primary);line-height:1.6;overflow-x:hidden}
h1,h2,h3,h4{line-height:1.15;font-weight:800}
h1{font-size:var(--text-hero);font-weight:900}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-xl);font-weight:700}
p{color:var(--text-muted);font-size:var(--text-base)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{list-style:none}
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.section{padding:var(--section-py) 0}
.section-label{font-size:var(--text-xs);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:0.5rem}
.section-title{font-size:var(--text-h2);font-weight:800;color:var(--text-primary);margin-bottom:0.75rem}
.section-subtitle{color:var(--text-muted);font-size:var(--text-base);max-width:560px}
.accent{color:var(--accent)}
.text-center{text-align:center}
.text-center .section-subtitle{margin:0 auto}
.fade-up{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
