/* Generated by scripts/build-brand.mjs. Do not edit - edit the drawing. */
.mk{transform-origin:32px 32px;transition:transform var(--dur-micro) var(--ease-exit)}
a:hover .mk,a:focus-visible .mk{transform:scale(1.06);transition:transform var(--dur-micro) var(--ease)}
/* THE GATE NEVER MOVES AND NEVER FADES. It is drawn at first paint and stays, because
   a logo that fades in from nothing is a brand that is briefly absent, and because the
   first screen is the one place the animation reference says not to animate. Only the
   block arrives - which is also what makes it legible: one moving element instead of
   two, on a mark whose travel is 24 units, about 7.5px at header size.
   It waits var(--dur-slow) before starting, which is 400ms - past the 300ms floor the
   animation reference puts on anything that moves on the first screen - so it lands on
   a settled page instead of competing with first paint. And it runs for var(--dur-slow)
   rather than the 240ms it used to, because 24 units of travel at that speed is
   about 31px per second at header size, which reads as a flicker. */
.mk .blk{animation:mk-seat var(--dur-slow) var(--ease) var(--dur-slow) both}
@keyframes mk-seat{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
/* REDUCED MOTION REMOVES THIS ONE, AND THAT IS THE CORRECT ANSWER HERE. The house
   rule is swap-do-not-delete, and it is right about motion that CARRIES something -
   a loading state, a focus move, a confirmation. This reveal carries brand, not
   information: the gate is already drawn and the block is already at its seat, so a
   reader who asked for less motion loses a flourish and nothing else. The tokens
   collapse to .01ms and the block simply is where it belongs.
   Said out loud because the alternative was tried first: a 120ms cross-fade needs a
   duration that survives the collapse, and buying one means a token deliberately
   exempted from the reduced-motion block - an end-run around the scale, for a
   flourish. Not worth it. */
