/* ============ The Daily Drop · 2D motion kit — tokens + piece styles ============
   One visual language with v3: the colour tokens below fall back to v3's own (--red, --red-hi,
   --ink, --ink2, --paper) so on the live page there is one source; glossy beveled red (top
   highlight, bottom shade); 2.5 stroke at 48; v3 radii; Barlow Condensed 700/800 + Archivo + JBMono;
   five named curves (ease, spring, ease-in, in-out, peel), mirrored in js/core.js. */

:root{
  /* colour: v3's tokens first, the kit's values only as fallbacks */
  --k-red:var(--red,#E30613); --k-hot:#FF2B38; --k-deep:#B3050F; --k-red-hi:var(--red-hi,#FF3D4A);
  --k-ink:var(--ink,#08070A); --k-ink2:var(--ink2,#131116); --k-paper:var(--paper,#F7F2EA);
  --k-mute:rgba(247,242,234,.64); --k-line:rgba(255,240,225,.13); --k-emboss:#7D0109;
  --k-gloss:linear-gradient(180deg,var(--k-red-hi) 0,#F2121F 34%,var(--k-red) 70%,var(--k-deep) 100%);
  --k-bevel:inset 0 1.5px 0 rgba(255,255,255,.45),inset 0 -2px 0 rgba(61,0,5,.55);
  /* radii: the v3 set */
  --k-r-xs:6px; --k-r-sm:10px; --k-r:14px; --k-r-lg:20px; --k-r-xl:28px; --k-r-pill:999px;
  /* the five curves, no others */
  --k-ease:cubic-bezier(.2,.7,.1,1);        /* v3 --ease: arrivals, reveals, fades */
  --k-ease-in:cubic-bezier(.7,0,.84,0);     /* falls and slams that land hard (= JS easeIn) */
  --k-inout:cubic-bezier(.7,0,.2,1);        /* v3's letterbox curve: pen strokes, route, sweeps, breathing (= JS inOut) */
  --k-peel:cubic-bezier(.4,.1,.6,1);        /* the sticker fold: near-linear, soft ends; the fold geometry eases the area (= JS peel) */
  /* the damped spring (1.5 Hz, zeta .52), use over 1.1 s (= JS spring) */
  --k-spring:linear(0,.055,.191,.369,.558,.735,.884,1,1.08,1.127,1.146,1.144,1.128,1.104,1.076,1.049,1.025,1.006,.992,.983,.979,.978,.98,.983,.987,.991,.995,.998,1,1.002,1);
  --k-display:Archivo,"Arial Narrow",system-ui,sans-serif;
  --k-cond:"Barlow Condensed",Archivo,sans-serif;
  --k-body:Barlow,system-ui,sans-serif;
  --k-mono:JBMono,ui-monospace,Menlo,monospace;
}
.k-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ------------------------------------------------------------------ 1 · icons */
.k-ico{width:48px;height:48px;overflow:visible;flex:none}
.k-ico .s{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.k-ico .s.on{stroke:var(--k-paper)}
.k-ico .a{fill:url(#k-red);filter:url(#k-bevel)}
.k-ico .f{fill:currentColor;opacity:.55}
.k-ico .m{transform-box:view-box;transform-origin:24px 24px}
.k-ico.k-ready .s{stroke-dasharray:1 2;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .9s var(--k-inout) calc(var(--i)*80ms),opacity 0s calc(var(--i)*80ms)}
.k-ico.k-ready .a{transform:scale(0);transform-box:fill-box;transform-origin:center;transition:transform 1.1s var(--k-spring) calc(var(--n)*60ms + .2s)}
.k-ico.k-ready .f{opacity:0;transition:opacity .5s var(--k-ease) calc(var(--n)*65ms)}
.k-ico.is-on .s{stroke-dashoffset:0;opacity:1}
.k-ico.is-on .a{transform:none}
.k-ico.is-on .f{opacity:.55}
.k-ico.is-done .s{stroke-dasharray:none;transition:none}
.k-ico.is-on:not(.is-done) .m,.k-ico.k-wig .m{animation:var(--mk,none) var(--md,1.1s) var(--me,var(--k-spring)) calc(.5s + var(--n)*80ms) both}
.k-ico.k-wig .m{animation-delay:0s}
[data-i=bin]{--mk:k-hop}
[data-i=box]{--mk:k-swing} [data-i=box] .m{transform-origin:31.5px 18px}
[data-i=mail]{--mk:k-wiggle;--md:.9s;--me:var(--k-ease)}
[data-i=pallet]{--mk:k-drop}
[data-i=phone]{--mk:k-buzz;--md:.6s;--me:var(--k-ease)}
[data-i=console]{--mk:k-pulse} [data-i=console] .m{transform-box:fill-box;transform-origin:center}
[data-i=laptop]{--mk:k-open} [data-i=laptop] .m{transform-origin:24px 29.5px}
[data-i=qr]{--mk:k-scan;--md:1.5s;--me:var(--k-inout)}
[data-i=pin]{--mk:k-drop} [data-i=pin] .m{transform-origin:24px 43.5px}
[data-i=clock]{--mk:k-spin;--md:1.3s;--me:var(--k-ease)}
[data-i=thursday]{--mk:k-pop} [data-i=thursday] .m{transform-box:fill-box;transform-origin:center}
[data-i=tag]{--mk:k-swing} [data-i=tag] .m{transform-origin:33.5px 14.5px}
[data-i=parking]{--mk:k-pop} [data-i=parking] .m{transform-box:fill-box;transform-origin:center}
[data-i=truck]{--mk:k-drive}
[data-i=card]{--mk:k-flipx}
@keyframes k-hop{from{transform:translateY(-7px)}}
@keyframes k-wiggle{0%,100%{transform:none}20%{transform:rotate(-9deg)}42%{transform:rotate(7deg)}62%{transform:rotate(-4deg)}82%{transform:rotate(2deg)}}
@keyframes k-drop{from{transform:translateY(-13px);opacity:0}}
@keyframes k-buzz{0%,100%{transform:none}12%,37%,62%,87%{transform:translateX(-1.4px)}25%,50%,75%{transform:translateX(1.4px)}}
@keyframes k-pulse{from{transform:scale(1.6)}}
@keyframes k-open{from{transform:scaleY(.08)}}
@keyframes k-scan{0%,100%{transform:none}30%{transform:translateY(-12px)}70%{transform:translateY(12px)}}
@keyframes k-spin{from{transform:rotate(-360deg)}}
@keyframes k-pop{from{transform:scale(0)}}
@keyframes k-swing{from{transform:rotate(24deg)}}
@keyframes k-drive{from{transform:translateX(-11px)}}
@keyframes k-flipx{from{transform:scaleX(.05)}}

/* ------------------------------------------------------------------ 2 · stickers and stamps */
.k-sticker,.k-burst,.k-new,.k-stamp,.k-tape{display:block;width:100%;height:auto;overflow:visible}
.k-stamp{color:var(--k-red)}
.k-stamp-body,.k-stamp-shadow{transform-box:view-box;transform-origin:160px 85px;transform:rotate(var(--tilt))}
.k-stamp-shadow{opacity:0;color:#2a0d10}
.k-stamp-halo{opacity:.13;transform-box:view-box;transform-origin:160px 85px;transform:scale(1.03)}
.k-stamp-spk circle{opacity:.85;transform-box:fill-box;transform:translate(var(--dx),var(--dy))}
.k-stamp:not(.is-on) .k-stamp-body,.k-stamp:not(.is-on) .k-stamp-spk{opacity:0}
/* the hit lands at .3 s: before it only the rubber's soft shadow falls (no ink); ink, halo and speckles start on contact */
.k-stamp.is-on:not(.k-done){animation:k-thud .4s var(--k-ease) .3s}
.k-stamp.is-on:not(.k-done) .k-stamp-shadow{animation:k-stamp-fall .56s both}
.k-stamp.is-on:not(.k-done) .k-stamp-body{animation:k-stamp-ink .9s both}
.k-stamp.is-on:not(.k-done) .k-stamp-halo{animation:k-halo 1.1s var(--k-ease) .3s both}
.k-stamp.is-on:not(.k-done) .k-stamp-spk circle{animation:k-spk .55s var(--k-ease) .3s both}
@keyframes k-stamp-fall{
  0%{opacity:0;transform:scale(1.2) rotate(calc(var(--tilt) - 6deg));animation-timing-function:var(--k-ease-in)}
  54%{opacity:.2;transform:scale(1) rotate(var(--tilt));animation-timing-function:var(--k-ease)}
  100%{opacity:0;transform:scale(1) rotate(var(--tilt))}}
@keyframes k-stamp-ink{
  0%,33%{opacity:0;transform:scale(1.016) rotate(var(--tilt));animation-timing-function:var(--k-ease)}
  35%{opacity:1;transform:scale(1.014) rotate(var(--tilt));animation-timing-function:var(--k-ease)}
  56%{transform:scale(.997) rotate(var(--tilt));animation-timing-function:var(--k-ease)}
  100%{opacity:1;transform:rotate(var(--tilt))}}
@keyframes k-halo{0%{opacity:0;transform:scale(.98)}8%{opacity:.6}100%{opacity:.13;transform:scale(1.03)}}
@keyframes k-spk{from{opacity:0;transform:translate(0,0) scale(.2)}}
@keyframes k-thud{0%,100%{transform:none}30%{transform:translateY(3px) scale(.994)}}

.k-burst-body,.k-burst-rays{transform-box:view-box;transform-origin:150px 150px}
.k-burst-body{transform:rotate(-6deg)}
.k-burst:not(.is-on) .k-burst-body,.k-burst:not(.is-on) .k-burst-rays{opacity:0}
.k-burst.is-on:not(.k-done) .k-burst-body{animation:k-burst-in 1.1s var(--k-spring) both}
.k-burst.is-on:not(.k-done) .k-burst-rays{animation:k-rays-in 1.4s var(--k-ease) .1s both}
.k-glint{--gx:450px}
.k-new .k-glint{--gx:240px}
/* glints pass twice, then rest */
.k-live .is-on:not(.k-done) .k-glint{animation:k-glint 4.2s var(--k-inout) 1.3s 2}
.k-glint{animation-play-state:paused!important}
.k-live .k-glint{animation-play-state:running!important}
@keyframes k-burst-in{from{transform:scale(0) rotate(-80deg)}}
@keyframes k-rays-in{from{transform:scale(.4) rotate(-20deg);opacity:0}}
@keyframes k-glint{0%{transform:none}30%,100%{transform:translateX(var(--gx))}}

.k-new-body{transform-box:view-box;transform-origin:60px 60px;transform:rotate(-10deg)}
.k-new:not(.is-on) .k-new-body{opacity:0}
.k-new.is-on:not(.k-done) .k-new-body{animation:k-new-in 1.1s var(--k-spring) both}
@keyframes k-new-in{from{transform:scale(0) rotate(-50deg)}}

/* ------------------------------------------------------------------ 3 · price ladder (v3 board states) */
.k-ladder{display:block;overflow:visible;max-width:100%}
.k-lad-track{fill:rgba(255,240,225,.035);stroke:none}
.k-lad-bar.is-past{fill:rgba(247,242,234,.07);stroke:rgba(247,242,234,.24);stroke-width:1}
.k-lad-bar.is-today{fill:url(#k-red)}
.k-lad-bar.is-next{fill:rgba(255,255,255,.035);stroke:rgba(255,90,100,.34);stroke-width:1.2}
.k-lad-price{font-family:var(--k-display);font-weight:800;font-stretch:84%;fill:rgba(247,242,234,.66)}
.k-lad-price.is-past{fill:rgba(247,242,234,.42)}
.k-lad-price.is-today{fill:#fff}
.k-lad-day{font:700 14px var(--k-cond);letter-spacing:.16em;fill:rgba(247,242,234,.5)}
.k-lad-day.is-today{fill:#fff}
.k-lad-dot{fill:var(--k-hot)}
.k-lad-today{font:800 11px var(--k-cond);letter-spacing:.2em;fill:#fff}
.k-lad-line{fill:none;stroke:var(--k-hot);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2}
.k-lad-knot{fill:var(--k-paper);stroke:var(--k-red);stroke-width:2;transform-box:fill-box;transform-origin:center}
.k-lad-glow{fill:var(--k-hot)}
/* the breathe multiplies into the wrapper's scrubbed opacity, so scrubbing stays continuous both ways;
   paused (not removed) when today is not lit, three breaths, then rest */
.k-lad-glow rect{animation:k-breathe 2.4s var(--k-inout) 3 both;animation-play-state:paused}
.k-live.is-today .k-lad-glow rect{animation-play-state:running}
@keyframes k-breathe{0%,100%{opacity:1}50%{opacity:.6}}
.k-lad-arrow{fill:none;stroke:var(--k-paper);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1 2;filter:drop-shadow(0 0 6px rgba(0,0,0,.55))}
.k-lad-head{fill:var(--k-paper);stroke:var(--k-paper);stroke-width:1.5;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(0,0,0,.55))}
.k-lad-pill rect{fill:var(--k-ink2);stroke:var(--k-hot);stroke-width:1.5}
.k-lad-pill text{font:800 13px var(--k-cond);letter-spacing:.08em;fill:var(--k-paper)}
.k-ladder--light .k-lad-track{fill:rgba(8,7,10,.035)}
.k-ladder--light .k-lad-bar.is-past{fill:rgba(8,7,10,.06);stroke:rgba(8,7,10,.2)}
.k-ladder--light .k-lad-bar.is-next{fill:rgba(8,7,10,.02);stroke:rgba(179,5,15,.3)}
.k-ladder--light .k-lad-price{fill:rgba(8,7,10,.62)}
.k-ladder--light .k-lad-price.is-past{fill:rgba(8,7,10,.38)}
.k-ladder--light .k-lad-price.is-today{fill:var(--k-red)}
.k-ladder--light .k-lad-day{fill:rgba(8,7,10,.5)}
.k-ladder--light .k-lad-day.is-today{fill:var(--k-ink)}
.k-ladder--light .k-lad-line{stroke:var(--k-red)}
.k-ladder--light .k-lad-arrow,.k-ladder--light .k-lad-head{stroke:var(--k-ink)}
.k-ladder--light .k-lad-head{fill:var(--k-ink)}
.k-ladder--light .k-lad-pill rect{fill:var(--k-ink)}
.k-ladder--light .k-lad-glow{fill:var(--k-red)}

/* ------------------------------------------------------------------ 4 · route map */
.k-map-host{position:relative;overflow:hidden;border-radius:var(--k-r-lg);background:#0B0A0E;isolation:isolate}
.k-map{position:absolute;inset:0;width:100%;height:100%;display:block}
.k-map-blocks rect{fill:#0D0B10;stroke:rgba(255,240,225,.05)}
.k-map-blocks rect.lt{fill:#120F15}
.k-map-store{fill:#2b1418;stroke:var(--k-hot);stroke-width:1.5}
.k-map-lot rect{fill:#18141A;stroke:rgba(255,240,225,.14);stroke-dasharray:3 3}
.k-map-lot path{stroke:rgba(255,240,225,.3);stroke-width:1.5;stroke-linecap:round}
.k-map-road rect{fill:#332B36;stroke:rgba(255,43,56,.35);stroke-width:1}
.k-map-road .mid{fill:none;stroke:rgba(247,242,234,.34);stroke-width:1.5;stroke-dasharray:10 9}
.k-map-label{font:800 15px var(--k-cond);letter-spacing:.32em;fill:rgba(247,242,234,.86)}
.k-map-route-under{fill:none;stroke:rgba(255,43,56,.28);stroke-width:3;stroke-linecap:round;stroke-dasharray:.1 9}
.k-map-route{fill:none;stroke:var(--k-hot);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2}
.k-map-you circle{fill:var(--k-paper)}
.k-map-you .ring{fill:rgba(247,242,234,.1);stroke:rgba(247,242,234,.45);stroke-width:1.5;transform-box:fill-box;transform-origin:center}
/* finite ambient: the "you" ring pulses twice; the pin's ripples go out three times, 0.8 s apart, then rest */
.k-live .k-map-you .ring{animation:k-ring 2.4s var(--k-ease) 2}
@keyframes k-ring{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.5);opacity:0}}
.k-map-pshadow{fill:#000}
.k-map-rip ellipse{fill:none;stroke:var(--k-hot);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.k-live.is-landed .k-map-rip ellipse{animation:k-rip 2.4s var(--k-ease) both}
@keyframes k-rip{0%{opacity:.95;transform:scale(.3)}100%{opacity:0;transform:scale(3.4)}}
.k-map-card{position:absolute;left:14px;right:14px;bottom:14px;max-width:400px;display:grid;gap:4px;padding:14px 16px;border-radius:var(--k-r);
  background:rgba(11,10,14,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 0 1px rgba(255,240,225,.12),0 20px 50px -20px #000}
.k-map-card b{font:800 22px/1.05 var(--k-display);font-stretch:86%;text-transform:uppercase;color:#fff}
.k-map-card span{font:600 14px/1.35 var(--k-body);color:var(--k-mute)}
.k-map-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:8px}
.k-pchip{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:var(--k-r-pill);background:rgba(255,255,255,.07);font:600 13px/1 var(--k-body);font-style:normal;color:var(--k-paper)}
.k-pchip i{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--k-gloss);box-shadow:var(--k-bevel);font:800 15px/1 var(--k-cond);font-style:normal;color:#fff}
.is-landed .k-pchip i{animation:k-nudge .7s var(--k-ease) .15s}
@keyframes k-nudge{30%{transform:scale(1.22)}}
.k-map-dir{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--k-r-pill);background:var(--k-gloss);box-shadow:var(--k-bevel),0 8px 24px -10px rgba(227,6,19,.8);color:#fff;font:700 15px/1 var(--k-body);text-decoration:none;white-space:nowrap}
.k-map-dir:hover{filter:brightness(1.08)}
.k-map-dir svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

/* ------------------------------------------------------------------ 5 · countdown */
/* the host is a size container, so the cards size from the column, never the viewport */
.k-cd{container-type:inline-size;max-width:560px}
.k-cd-row{--g:clamp(4px,2cqw,12px);--h:min(100px,calc((100cqw - 30px - 6 * var(--g)) / 5.3));display:flex;align-items:flex-start;gap:var(--g)}
.k-cd-g{display:grid;justify-items:center;gap:9px}
.k-cd-g>span{font:700 12px/1 var(--k-cond);letter-spacing:.24em;text-transform:uppercase;color:var(--k-mute)}
.k-cd-cards{display:flex;gap:3px}
.k-flip{position:relative;display:block;width:calc(var(--h)*.66);height:var(--h);perspective:calc(var(--h)*4);font:800 calc(var(--h)*.8)/var(--h) var(--k-cond);color:var(--k-paper);text-align:center;
  border-radius:var(--k-r-sm);box-shadow:0 14px 30px -14px #000,0 0 0 1px rgba(255,240,225,.08)}
.k-flip i{position:absolute;left:0;right:0;height:50%;overflow:hidden;font-style:normal;background:linear-gradient(#2a2430,#1b171f);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.k-flip u{display:block;height:var(--h);text-decoration:none}
.k-flip .up,.k-flip .fu{top:0;border-radius:var(--k-r-sm) var(--k-r-sm) 0 0;transform-origin:50% 100%;box-shadow:inset 0 1.5px 0 rgba(255,255,255,.14)}
.k-flip .dn,.k-flip .fd{bottom:0;border-radius:0 0 var(--k-r-sm) var(--k-r-sm);transform-origin:50% 0;background:linear-gradient(#18141b,#0e0c11)}
.k-flip .dn u,.k-flip .fd u{transform:translateY(-50%)}
.k-flip .fu{z-index:2;transform:rotateX(0)}
.k-flip .fd{z-index:2;transform:rotateX(90deg)}
.k-flip::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:rgba(0,0,0,.65);z-index:3}
/* top flap falls (ease-in); the new bottom half hits a hard stop with a one-sided 6 deg rebound */
.k-flip.go .fu{animation:k-fu .26s var(--k-ease-in) both}
.k-flip.go .fd{animation:k-fd .42s .24s both}
.k-flip.go .dn::after,.k-flip.go .up::after{content:"";position:absolute;inset:0;background:#000;animation:k-shade .55s var(--k-ease) both}
@keyframes k-fu{to{transform:rotateX(-90deg)}}
@keyframes k-fd{
  0%{transform:rotateX(90deg);animation-timing-function:var(--k-ease-in)}
  52%{transform:rotateX(0);animation-timing-function:var(--k-ease)}
  72%{transform:rotateX(6deg);animation-timing-function:var(--k-ease-in)}
  100%{transform:rotateX(0)}}
@keyframes k-shade{0%{opacity:0}40%{opacity:.35}100%{opacity:0}}
.k-cd-s .k-flip{box-shadow:0 14px 34px -12px rgba(227,6,19,.75),0 0 0 1px rgba(255,120,120,.25)}
.k-cd-s .k-flip .up,.k-cd-s .k-flip .fu{background:linear-gradient(var(--k-red-hi),#EE0F1C)}
.k-cd-s .k-flip .dn,.k-cd-s .k-flip .fd{background:linear-gradient(#DB0715,var(--k-deep));box-shadow:inset 0 -2px 0 rgba(61,0,5,.5)}
.k-cd-colon{align-self:flex-start;height:var(--h);width:6px;display:grid;align-content:center;gap:calc(var(--h)*.2)}
.k-cd-colon::before,.k-cd-colon::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--k-hot);box-shadow:0 0 8px var(--k-hot);transition:opacity .45s var(--k-ease)}
.k-cd.k-tick .k-cd-colon::before,.k-cd.k-tick .k-cd-colon::after{opacity:.35}

/* ------------------------------------------------------------------ 6 · scribbles */
.k-mark{position:relative;display:inline-block;white-space:nowrap;isolation:isolate}
.k-mark-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:-1}
.k-mark-svg path{fill:none;stroke:var(--k-mark,var(--k-hot));stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2}

/* ------------------------------------------------------------------ 7 · confetti */
.k-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}

/* ------------------------------------------------------------------ 8 · transitions */
.k-wipe{position:relative}
.k-wipe-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.k-wipe-from,.k-wipe-to{position:absolute;inset:0}
.k-wipe-rim{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:3;filter:drop-shadow(0 0 6px rgba(255,43,56,.95)) drop-shadow(0 0 18px rgba(227,6,19,.55))}
.k-wipe-rim path{fill:none;stroke:var(--k-hot);stroke-width:3;stroke-linejoin:round}
.k-sweep-host{position:relative;overflow:hidden}
.k-seam{position:absolute;left:0;right:0;top:0;height:2px;background:var(--k-red);box-shadow:0 0 18px 2px rgba(227,6,19,.9);transform-origin:0 50%;pointer-events:none;z-index:4;opacity:.4}
.k-sweep{position:absolute;top:-25%;bottom:-25%;left:0;width:46%;pointer-events:none;z-index:3;mix-blend-mode:screen;opacity:0;
  background:linear-gradient(90deg,transparent 0,rgba(227,6,19,0) 18%,rgba(255,43,56,.32) 40%,rgba(255,236,228,.62) 50%,rgba(255,43,56,.32) 60%,transparent 82%);transform:translateX(-120%) skewX(-16deg)}
.k-swept:not(.k-done) .k-seam{animation:k-seam 1.7s var(--k-ease) both}
.k-swept:not(.k-done) .k-sweep{animation:k-sweep 1.6s var(--k-inout) .3s both}
@keyframes k-seam{0%{transform:scaleX(0);opacity:1}45%{transform:scaleX(1);opacity:1}100%{opacity:.4}}
@keyframes k-sweep{0%{transform:translateX(-120%) skewX(-16deg);opacity:1}100%{transform:translateX(330%) skewX(-16deg);opacity:1}}

/* ------------------------------------------------------------------ still: reduced motion, Pause, or v3 html.static */
/* an explicit list of kit roots, so nothing outside the kit (v3's .dock-price, etc.) is touched */
.k-still :is(.k-ico,.k-sticker,.k-stamp,.k-burst,.k-new,.k-tape,.k-ladder,.k-map-host,.k-cd,.k-mark,.k-wipe,.k-sweep-host),
.k-still :is(.k-ico,.k-sticker,.k-stamp,.k-burst,.k-new,.k-tape,.k-ladder,.k-map-host,.k-cd,.k-mark,.k-wipe,.k-sweep-host) *,
.k-still :is(.k-ico,.k-sticker,.k-stamp,.k-burst,.k-new,.k-tape,.k-ladder,.k-map-host,.k-cd,.k-mark,.k-wipe,.k-sweep-host) *::before,
.k-still :is(.k-ico,.k-sticker,.k-stamp,.k-burst,.k-new,.k-tape,.k-ladder,.k-map-host,.k-cd,.k-mark,.k-wipe,.k-sweep-host) *::after{animation:none!important;transition:none!important}
.k-still .k-wipe{height:auto!important}
.k-still .k-cd .k-cd-colon::before,.k-still .k-cd .k-cd-colon::after{opacity:1}
