/* Ink — hand-drawn pen marks. Pair with /assets/ink-anim.js.
   The host keeps its text; the pen strokes are SVG children fitted to the measured text box.
   Every delay is offset by --t0, set on the host when the mark plays. */
[data-ink]{position:relative;isolation:isolate;white-space:nowrap}
[data-ink-wrap],h1[data-ink],h2[data-ink],h3[data-ink],p[data-ink],div[data-ink]{white-space:inherit}
.ik-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.ik-svg.back{z-index:-1}
/* every pen mark sits at 69% so the type underneath stays legible: strokes, highlighter blocks, the wordmark "!"
   and any page-drawn mark tagged .ik-ink (e.g. the wordmark underline). Text and buttons are never faded. */
.ik-svg,.ik-wipe .ik-blk,.ik-ink{opacity:.69}
.ik.ik-ghost{color:transparent}
.ik.ik-still *{animation-duration:0s!important;animation-delay:0s!important;transition:none!important}

/* dash pattern 1 / 1.5 with the offset parked just past the start, so the round cap never peeks out before the pen lands */
.ik-draw{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1.5;stroke-dashoffset:var(--so,1.06)}
.ik-on .ik-draw{animation:ik-draw var(--d,.5s) var(--e,cubic-bezier(.32,.72,.18,1)) var(--dl,0s) forwards}
@keyframes ik-draw{from{stroke-dashoffset:var(--so,1.06)}to{stroke-dashoffset:0}}
.ik-march{fill:none;stroke-linecap:round}
.ik-on .ik-march{animation:ik-march var(--ms,1.1s) linear infinite}
@keyframes ik-march{to{stroke-dashoffset:var(--mv,-.4)}}
.ik-ring{opacity:0;fill:none;transform-box:fill-box;transform-origin:center}
.ik-on .ik-ring{animation:ik-ring 1.2s cubic-bezier(.2,.6,.3,1) var(--dl) 2 forwards}
@keyframes ik-ring{0%{transform:scale(1);opacity:.85}100%{transform:scale(1.32,1.45);opacity:0}}
.ik-hwt{font-family:var(--f,ui-rounded,"SF Pro Rounded",system-ui,sans-serif);font-weight:800;letter-spacing:-.035em;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;paint-order:stroke}
.ik-hw{fill:transparent}
.ik-on .ik-hw{animation:ik-hw var(--d) linear var(--dl) forwards,ik-hwfill .4s ease var(--df) forwards}
@keyframes ik-hw{to{stroke-dashoffset:0}}
@keyframes ik-hwfill{to{fill:var(--fc,#F4F1EA)}}
.ik-fx-type .ik-ch{opacity:0}
.ik-fx-type.ik-on .ik-ch{animation:ik-chin .01s steps(1,end) calc(var(--i)*.075s + .12s + var(--t0,0s)) forwards}
@keyframes ik-chin{to{opacity:1}}
.ik-fx-type::after{content:"";display:inline-block;width:.07em;height:.82em;background:var(--c,var(--nx,currentColor));margin-left:.06em;vertical-align:-.06em;border-radius:2px;opacity:0}
.ik-fx-type.ik-on::after{animation:ik-blink .55s steps(1,end) var(--t0,0s) infinite,ik-caretoff .01s calc(var(--tn)*.075s + .3s + var(--t0,0s)) forwards}
@keyframes ik-blink{0%{opacity:1}50%{opacity:0}}
@keyframes ik-caretoff{to{opacity:0;width:0;margin:0}}
.ik-scrib{stroke-dasharray:1 1.5;stroke-dashoffset:1.06;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ik-on .ik-scrib{animation:ik-scrib 1.7s cubic-bezier(.4,.2,.3,1) var(--t0,0s) forwards}
@keyframes ik-scrib{0%{stroke-dashoffset:1.06}44%{stroke-dashoffset:0}56%{stroke-dashoffset:0}100%{stroke-dashoffset:-1.06}}
.ik-fx-scrib{color:transparent;transition:color .45s ease calc(1s + var(--t0,0s))}
.ik-fx-scrib.ik-on{color:inherit}
.ik-wipe{position:absolute;inset:0;display:flex;align-items:center;z-index:3;clip-path:inset(0 100% 0 0);pointer-events:none;white-space:nowrap}
.ik-on .ik-wipe{animation:ik-wipe .6s cubic-bezier(.3,.8,.15,1) calc(.08s + var(--t0,0s)) forwards}
@keyframes ik-wipe{to{clip-path:inset(0 -1% 0 0)}}
.ik-wipe .ik-blk{position:absolute;border-radius:5px;transform:rotate(-1.2deg)}
.ik-wipe .ik-dup{position:relative;color:var(--bg,#0B0B0E)}
.ik-note{opacity:0;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 7px 9px rgba(0,0,0,.55))}
.ik-on .ik-note{animation:ik-pop .6s cubic-bezier(.2,1.55,.35,1) var(--dl) forwards}
@keyframes ik-pop{0%{opacity:0;transform:scale(.15) rotate(-28deg)}25%{opacity:1}100%{opacity:1;transform:scale(1) rotate(-6deg)}}
.ik-nt{font-family:var(--f,ui-rounded,"SF Pro Rounded",system-ui,sans-serif);font-weight:800;fill:var(--bg,#0B0B0E);letter-spacing:-.02em}
.ik-on .ik-glow{animation:ik-draw var(--d) var(--e,cubic-bezier(.32,.72,.18,1)) var(--dl) forwards,ik-glowp 1.5s ease-in-out var(--dl2) infinite}
@keyframes ik-glowp{0%,100%{opacity:.45}50%{opacity:1}}
.ik-fx-neon.ik-on{animation:ik-tglow .7s ease var(--g,1s) forwards}
@keyframes ik-tglow{to{text-shadow:0 0 14px color-mix(in srgb,var(--gc,#FF2D8A) 55%,transparent),0 0 2px rgba(255,255,255,.5)}}
.ik-trail{stroke-dasharray:.18 1.2;stroke-dashoffset:.2;stroke-linecap:round;fill:none;opacity:.9}
.ik-on .ik-trail{animation:ik-comet 1.8s linear calc(.1s + var(--t0,0s)) forwards}
@keyframes ik-comet{from{stroke-dashoffset:.2}to{stroke-dashoffset:-1}}
.ik-dot{opacity:0;stroke:#fff;stroke-width:1.2;offset-distance:0%;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 3px var(--gc,#FF2D8A)) drop-shadow(0 0 9px var(--gc,#FF2D8A))}
.ik-on .ik-dot{animation:ik-dot 1.8s linear calc(.1s + var(--t0,0s)) forwards,ik-dotrest 1.2s ease-in-out calc(2s + var(--t0,0s)) infinite}
@keyframes ik-dot{0%{offset-distance:0%;opacity:0}3%{opacity:1}84%{offset-distance:100%;opacity:1}100%{offset-distance:100%;opacity:1}}
@keyframes ik-dotrest{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.ik-drop{opacity:0;transform:translateY(-110px)}
.ik-on .ik-drop{animation:ik-fall .5s cubic-bezier(.55,0,1,.7) calc(.05s + var(--t0,0s)) forwards}
@keyframes ik-fall{0%{opacity:1;transform:translateY(-110px)}88%{opacity:1}100%{opacity:0;transform:translateY(0)}}
.ik-splat{opacity:0;transform-box:fill-box;transform-origin:center}
.ik-on .ik-splat{animation:ik-splat .6s cubic-bezier(.2,1.5,.4,1) calc(.5s + var(--t0,0s)) forwards}
@keyframes ik-splat{0%{opacity:1;transform:scale(0)}100%{opacity:1;transform:scale(1)}}
.ik-spl{opacity:0;transform-box:fill-box;transform-origin:center}
.ik-on .ik-spl{animation:ik-spl .7s cubic-bezier(.1,.8,.3,1) calc(.5s + var(--i)*.025s + var(--t0,0s)) forwards}
@keyframes ik-spl{0%{opacity:1;transform:translate(0,0) scale(.3)}100%{opacity:.95;transform:translate(var(--dx),var(--dy)) scale(1)}}
.ik-fx-drop.ik-on{animation:ik-tint .5s ease calc(.55s + var(--t0,0s)) forwards}
@keyframes ik-tint{to{color:var(--tint,#fff)}}
/* wordmark exclamation mark */
.ik-bang-s{opacity:0;transform-box:fill-box;transform-origin:50% 100%}
.ik-on .ik-bang-s{animation:ik-bangs .5s linear var(--dl) forwards}
@keyframes ik-bangs{0%{opacity:0;transform:translateY(-150%) scale(.92,1.18);animation-timing-function:cubic-bezier(.5,0,.95,.55)}
 28%{opacity:1}64%{transform:translateY(0) scale(1.08,.9);animation-timing-function:ease-out}82%{transform:translateY(0) scale(.98,1.03)}100%{opacity:1;transform:none}}
.ik-bang-d{opacity:0;transform-box:fill-box;transform-origin:50% 100%}
.ik-on .ik-bang-d{animation:ik-bangd .75s linear var(--dl) forwards}
@keyframes ik-bangd{0%{opacity:0;transform:translateY(-120%) scale(.6);animation-timing-function:cubic-bezier(.5,0,1,.6)}
 38%{opacity:1;transform:translateY(0) scale(1.22,.74);animation-timing-function:ease-out}
 58%{transform:translateY(-38%) scale(.94,1.06);animation-timing-function:ease-in}
 76%{transform:translateY(0) scale(1.07,.93);animation-timing-function:ease-out}100%{opacity:1;transform:none}}

/* reduced motion: the finished strokes, no motion */
@media(prefers-reduced-motion:reduce){
 .ik *{animation-duration:0s!important;animation-delay:0s!important;transition:none!important}
 .ik-draw,.ik-hw,.ik-scrib{stroke-dashoffset:0!important;animation:none!important}
 .ik-scrib{stroke-dashoffset:-1.06!important}
 .ik-march,.ik-glow,.ik-ring,.ik-trail,.ik-dot,.ik-fx-type::after,.ik-fx-neon,.ik-fx-drop,.ik-bang-s,.ik-bang-d{animation:none!important}
 .ik-glow{opacity:1}.ik-ring,.ik-trail{display:none}.ik-dot{opacity:1;offset-distance:100%}
 .ik-fx-type::after{display:none}.ik-fx-type .ik-ch{opacity:1}
 .ik-hw{fill:var(--fc,#F4F1EA)}
 .ik-fx-scrib{color:inherit}
 .ik-wipe{clip-path:inset(0 -1% 0 0)}
 .ik-note,.ik-splat,.ik-spl{opacity:1;transform:none}.ik-spl{transform:translate(var(--dx),var(--dy))}.ik-drop{display:none}
 .ik-bang-s,.ik-bang-d{opacity:1;transform:none}
}

/* pencil cursor (ink-hero-ad.js): its own overlay so the pencil stays solid while the ink under it sits at 69% */
.ik-pensvg{opacity:1;z-index:2}
.ik-pen{opacity:0;transition:opacity .16s ease}
.ik-pen.on{opacity:1}
.ik-pen .pb{fill:#F4F1EA}.ik-pen .pc{fill:#D9D5CC}.ik-pen .pt{fill:#2A2A30}.ik-pen .pl{fill:#FF6A1A}
