/* The Spark v2.1 — the GeoProof decrypt (Claude, 2026-11-12; founder
 * correction 2026-11-13T04:46Z: replaces v1 — pixel letters and the spread
 * are OUT; v2.1 2026-11-13T13:42Z adds rule 5 — reflow, found by EpicToo's
 * reflow-195 gate in v2). Ported VERBATIM from
 * spark-ref-v2.1-20261113.zip reference-page.html
 * (sha256 de3ecb86…50c0): the CSS between .hero{position:relative} and
 * @keyframes rise, plus the 720px/480px/299px/reduced spark rules.
 * Host-page rules in those media blocks (.wrap/.belief/.door/...) are NOT
 * part of the Spark — home keeps its own (c8-system.css). decrypt_gen.py
 * is the source of the numbers:
 * pack/evidence/M1/tools/v179-spark-v21-reflow/decrypt_gen.py.
 * Motion: 0.00s grey static (cells flip 60ms); 0.45–1.10s letters lock;
 * 1.20s real h1 + the red full stop stamps down; 1.30/1.45/1.60s the second
 * line, lead and status rise; NOTHING LOOPS. Zero page JS. */

.hero{position:relative}
.dbox{position:relative;font-weight:300;font-size:64px;line-height:68px;letter-spacing:-.02em;--lh:68px;--bl:calc((var(--lh) - 1.3em)/2 + 1.025em)}
.dbox h1{font:inherit;letter-spacing:inherit;white-space:nowrap}
br.m{display:none}
.t{animation:on 1.2s steps(1,end) both}
.spark{display:inline-block;width:.2em;height:.2em;background:#C41E3A;color:transparent;overflow:hidden;vertical-align:baseline;margin-left:.04em;animation:on 1.2s steps(1,end) both,stamp .2s 1.2s cubic-bezier(.2,.9,.25,1) both}
.dc{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;animation:off 1.2s steps(1,end) both}
.dc b{font-weight:inherit;position:absolute;left:calc(var(--k)*.58em);top:0;width:.6em;height:var(--lh);overflow:hidden}
.dc s{display:block;text-decoration:none;animation:dec var(--d) steps(var(--n),end) both}
.dc i{display:flow-root;height:var(--lh);overflow:hidden;color:#525252;font-style:normal}
.dc i::before{content:attr(data-g)}
.dc i.f{color:#000}
.dc i[class^=p]::before{content:"";display:block;width:.5em;height:.7em;margin:calc(var(--bl) - .7em) 0 0 .05em}
.dc i.p1::before{background:#525252}
.dc i.p2::before{background:repeating-conic-gradient(#525252 0 75%,#0000 0 100%) 0 0/.2em .2em}
.dc i.p3::before{background:repeating-conic-gradient(#525252 0 25%,#0000 0 50%) 0 0/.2em .2em}
.dc i.p4::before{background:repeating-conic-gradient(#525252 0 25%,#0000 0 100%) 0 0/.2em .2em}
.dc i.p5::before{background:linear-gradient(#0000 50%,#525252 0)}
.rise{animation:rise .6s ease var(--t) both}
@keyframes on{from{opacity:0}to{opacity:1}}
@keyframes off{from{opacity:1}to{opacity:0}}
@keyframes dec{to{transform:translateY(calc(-1*var(--n)*var(--lh)))}}
@keyframes stamp{from{transform:scale(2.4)}to{transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

@media (max-width:720px){
 .dbox{font-size:40px;line-height:44px;--lh:44px}
}
@media (max-width:480px){
 br.m{display:inline}
 .dc b.l2{left:calc((var(--k) - 11)*.58em);top:var(--lh)}
}
@media (max-width:299px){
 .dbox{font-size:24px;line-height:27px;--lh:27px}
}
@media (prefers-reduced-motion:reduce){
 .dc{display:none}
 .t,.spark,.rise{animation:none}
}
