*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-padding-top: 90px; }
body { font-family: var(--font-primary); background: var(--color-bg); color: var(--color-text); line-height: 1.7; overflow-x: hidden; position: relative; }
::selection { background: var(--color-primary); color: #fff; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { max-width: var(--container-max); margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 32px; border-radius: 60px; font-family: var(--font-primary); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.01em; border: none; cursor: pointer; transition: all 0.4s var(--ease-out-expo); position: relative; overflow: hidden; white-space: nowrap; }
.btn-primary { background: linear-gradient(135deg, var(--color-primary), #9333ea); color: #fff; box-shadow: 0 4px 24px var(--color-primary-glow), 0 0 0 0 var(--color-primary-glow); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 40px var(--color-primary-glow), 0 0 0 4px rgba(124,58,237,0.15); }
.btn-ghost { background: transparent; color: var(--color-text); border: 1px solid var(--color-border-hover); }
.btn-ghost:hover { background: rgba(0,0,0,0.04); border-color: var(--color-primary-light); color: var(--color-primary-light); transform: translateY(-2px); }
.btn-large { padding: 18px 40px; font-size: 1.05rem; }
.btn-full { width: 100%; justify-content: center; }
section { padding: var(--section-padding) 0; position: relative; }
.section-header { text-align: center; margin-bottom: clamp(48px, 6vw, 80px); }
.section-tag { display: inline-block; font-family: var(--font-mono); font-size: 0.8rem; font-weight: 500; color: var(--color-primary-light); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 16px; }
.section-title { font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; }
.section-title em { font-style: normal; background: linear-gradient(135deg, var(--color-primary-light), var(--color-secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.section-desc { font-size: clamp(1rem, 1.4vw, 1.1rem); color: var(--color-text-muted); max-width: 560px; margin: 16px auto 0; line-height: 1.7; }
.reveal-up, .reveal-left, .reveal-right { opacity: 0; transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo); transition-delay: var(--delay, 0s); }
.reveal-up { transform: translateY(40px); }
.reveal-left { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-up.revealed, .reveal-left.revealed, .reveal-right.revealed { opacity: 1; transform: translate(0, 0); }
.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; }
:focus-visible { outline: 2px solid var(--color-primary-light); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } .reveal-up, .reveal-left, .reveal-right { opacity: 1; transform: none; } }
