*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;interpolate-size:allow-keywords}
body{margin:0;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus,currentColor);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:12px 16px;border-radius:10px;background:var(--ink);color:var(--bg);text-decoration:none}
.skip:focus{top:12px}
:root{
  --spring:linear(0,0.009,0.035 2.1%,0.141,0.281 6.7%,0.723 12.9%,0.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,0.991,0.977 51%,0.974 53.8%,0.975 57.1%,0.997 69.8%,1.003 76.9%,1.004 83.8%,1);
  --out:cubic-bezier(.2,.7,.1,1);
}
/* split text */
[data-split] .sw{display:inline-block;white-space:nowrap}
[data-split] .sc{display:inline-block}
/* reveal: scroll-driven where supported, IntersectionObserver class fallback */
@keyframes fm-rise{from{opacity:0;transform:translateY(28px) scale(.98);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
html.sdt [data-reveal]{animation:fm-rise linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
html:not(.sdt) [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--out),transform .9s var(--out)}
html:not(.sdt) [data-reveal].in{opacity:1;transform:none}
/* FAQ: animated <details> using ::details-content + interpolate-size */
details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--out),content-visibility .45s allow-discrete}
details[open]::details-content{block-size:auto}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
/* demo internals */
[data-transcript]{list-style:none;margin:0;padding:0;overflow:auto;scrollbar-width:none}
[data-transcript]::-webkit-scrollbar{display:none}
.line{opacity:0;transform:translateY(8px);transition:opacity .35s var(--out),transform .5s var(--spring)}
.line.shown{opacity:1;transform:none}
.line .who{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin-bottom:2px}
[data-slot]{transition:transform .6s var(--spring),opacity .4s}
[data-sms]{opacity:0;transform:translateY(14px) scale(.96);transition:opacity .4s var(--out),transform .7s var(--spring)}
[data-sms].sent{opacity:1;transform:none}
[data-demo]{view-transition-name:demo}
::view-transition-old(demo){animation:.25s var(--out) both fm-vt-out}
::view-transition-new(demo){animation:.45s var(--out) both fm-vt-in}
@keyframes fm-vt-out{to{opacity:0;transform:scale(.985);filter:blur(4px)}}
@keyframes fm-vt-in{from{opacity:0;transform:scale(1.015);filter:blur(4px)}}
/* placeholder marker */
.ph{font:600 .62rem/1 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:999px;border:1px dashed currentColor;opacity:.75;vertical-align:middle;white-space:nowrap}
.grant-slot{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px dashed currentColor;border-radius:10px;opacity:.7;font-size:.8rem;text-decoration:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;animation-timeline:auto!important}
  html:not(.sdt) [data-reveal]{opacity:1;transform:none}
}
