*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0 }
html { scroll-behavior: smooth }
body { font-family: 'Inter', sans-serif; background: var(--bg); color: var(--t1); line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden }
h1,h2,h3,h4 { letter-spacing: -.03em }
a { text-decoration: none; color: inherit }

/* Scroll progress bar */
#prog { position: fixed; top: 0; left: 0; height: 2px; background: linear-gradient(90deg,var(--green),var(--mint)); z-index: 1000; width: 0%; transition: width .1s linear }

/* Layout */
.si { max-width: var(--max); margin: 0 auto }
section { padding: 100px 5% }

/* Typography utilities */
.tag { font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--mint); margin-bottom: .65rem; display: block }
.h2  { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 800; line-height: 1.15; margin-bottom: 1rem; letter-spacing: -.035em }
.sub { font-size: .97rem; color: var(--t2); line-height: 1.85; max-width: 560px }
.center { text-align: center }
.center .sub { margin: 0 auto }

/* Buttons */
.btn-g { background: var(--green); color: #fff; padding: .85rem 1.9rem; border-radius: var(--r); font-size: .93rem; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; border: none; font-family: 'Inter',sans-serif; cursor: pointer; transition: all .2s; box-shadow: 0 4px 24px rgba(42,157,117,.35) }
.btn-g:hover { background: var(--green-d); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(42,157,117,.45) }
.btn-o { color: var(--t2); border: 1px solid var(--border2); padding: .83rem 1.6rem; border-radius: var(--r); font-size: .9rem; font-weight: 400; display: inline-flex; align-items: center; gap: 7px; transition: all .2s; background: transparent; font-family: 'Inter',sans-serif; cursor: pointer }
.btn-o:hover { color: var(--t1); border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.04) }

/* Fade-up animation */
.fu { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease }
.fu.vis { opacity: 1; transform: translateY(0) }

/* Full-width button utility */
.btn-full { width: 100%; justify-content: center }
.btn-teal  { background: rgba(42,157,117,.8) }

/* Chip / badge */
.chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(42,157,117,.12); border: 1px solid rgba(110,219,176,.2); color: var(--mint); padding: .3rem .85rem; border-radius: 100px; font-size: .69rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase }
.chip-dot { width: 6px; height: 6px; background: var(--green); border-radius: 50%; animation: pulse 2s infinite }
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1) } 50% { opacity: .3; transform: scale(1.6) } }
