*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:32px 32px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid var(--hl);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
h1,h2,h3{font-family:var(--display);line-height:1.02;margin:0;text-wrap:balance;letter-spacing:-.02em}
h2{font-size:clamp(2rem,4.6vw,3.4rem);font-weight:800}
h3{font-size:1.45rem;font-weight:600;line-height:1.15}
p{margin:0}
.eyebrow{font:600 .78rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.lede{color:var(--muted);max-width:58ch;font-size:1.08rem}
section{padding-block:clamp(64px,9vw,120px)}
.head{display:grid;gap:18px;margin-bottom:clamp(32px,5vw,56px)}

.btn{display:inline-flex;align-items:center;gap:10px;font:600 1rem/1 var(--body);text-decoration:none;padding:15px 22px;border-radius:999px;
  background:var(--accent);color:var(--accent-ink);border:2px solid var(--accent);transition:transform .2s,box-shadow .2s}
.btn span{transition:transform .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px -10px var(--accent)} .btn:hover span{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{box-shadow:none;background:var(--ink);color:var(--bg)}
.btn.sm{padding:10px 16px;font-size:.9rem}
.btn.hl{background:var(--hl);border-color:var(--hl);color:var(--on-hl)}

.rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) backwards}
.d1{animation-delay:.08s}.d2{animation-delay:.18s}.d3{animation-delay:.3s}.d4{animation-delay:.42s}.d5{animation-delay:.55s}

.dot{width:9px;height:9px;border-radius:50%;background:#22C55E;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:pulse 2s infinite}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chips span{font:400 .74rem/1 var(--mono);border:1px solid var(--line);padding:6px 9px;border-radius:6px;background:var(--bg);color:var(--ink)}
.aws{width:22px;height:24px;flex:none}

@keyframes rise{from{opacity:0;transform:translateY(22px)}}

@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

@keyframes spin{to{transform:rotate(360deg)}}

/* scroll-linked reveal: add class "rv" to any block; everything stays visible where unsupported */
@media (prefers-reduced-motion:no-preference){ @supports (animation-timeline:view()){
  .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
}}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition:none!important} html{scroll-behavior:auto} }
section.tight{padding-top:0} /* section that follows another without a divider */
