/* ==========================================================================
   drapii.social — neon edition
   A blacklight room: dark UV-violet ambience, things that "react to UV" glow.
   Palette is taken from Drapii's fursuit: cyan hair streak, pink nose, orange fur.
   ========================================================================== */

@font-face {
  font-family: "Neonderthaw";
  src: url("data:font/woff2;base64,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") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: block; /* the sign starts dark anyway, so wait for the real tubes */
}

@font-face {
  font-family: "Tilt Neon";
  src: url("data:font/woff2;base64,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") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Tilt Neon for the letters of other Latin-script languages (ą ć ł ő ř ş ț ơ …). The browser only downloads
   these two small files on a page that actually uses such letters. */
@font-face {
  font-family: "Tilt Neon";
  src: url("../fonts/tilt-neon-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Tilt Neon";
  src: url("../fonts/tilt-neon-vietnamese.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

:root {
  color-scheme: dark;

  /* room */
  --blacklight: #0f0a24;
  --blacklight-2: #19113a;
  --haze: #7b4dff;
  --line: rgba(214, 205, 255, 0.16);

  /* UV-reactive paint, straight off the fursuit */
  --streak: #2fe6ff; /* hair streak + eyes */
  --nose: #ff4fb8;   /* nose + ears */
  --fur: #ff9b3d;    /* fur */
  --lime: #c8ff3d;   /* psy accent, used sparingly */

  /* text */
  --ink: #f4f1ff;
  --ink-2: #cdc6ea;
  --ink-3: #9d95bf;

  --font: "Tilt Neon", "Varela Round", "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-sign: "Neonderthaw", "Segoe Script", "Brush Script MT", cursive;

  --col: 720px;
  --col-wide: 980px;
  --gutter: clamp(18px, 5vw, 40px);
  --ease-out: cubic-bezier(.2, .8, .2, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--blacklight);
  color: var(--ink-2);
  font-family: var(--font);
  font-size: 1.125rem;
  line-height: 1.6;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
p { margin: 0; }
button { font: inherit; color: inherit; }

::selection { background: var(--nose); color: #1a0716; }

:focus-visible {
  outline: 2px solid var(--streak);
  outline-offset: 4px;
  border-radius: 10px;
}

.visually-hidden,
.skip-link:not(:focus) {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: fixed;
  top: 12px; left: 12px;
  z-index: 60;
  padding: 10px 16px;
  border-radius: 12px;
  background: var(--streak);
  color: #04131a;
  text-decoration: none;
}

/* ---------- the room: UV haze, grain and floating dust ---------- */

.haze {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(60vmax 45vmax at 50% -12%, rgba(123, 77, 255, 0.38), transparent 70%),
    radial-gradient(42vmax 36vmax at -8% 78%, rgba(255, 79, 184, 0.16), transparent 70%),
    radial-gradient(40vmax 34vmax at 108% 56%, rgba(47, 230, 255, 0.12), transparent 70%),
    linear-gradient(180deg, #120b2c 0%, var(--blacklight) 55%, #0c0820 100%);
}

.haze::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.06;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.4 -0.2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.dust,
.pigs {
  position: fixed;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/* ==========================================================================
   HERO — string-art halo, portrait, neon sign
   ========================================================================== */

.hero {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: clamp(16px, calc(7svh - 20px), 52px) var(--gutter) clamp(84px, 12svh, 120px);
  overflow: hidden;
}

.hero__inner {
  --size: clamp(248px, min(80vw, 46svh), 470px);   /* halo size, shared with the sign below it */
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 900px;
}

/* lasers: two fans from the rig, sweeping slowly */
.lasers {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 97%);
  mask-image: linear-gradient(180deg, #000 50%, transparent 97%);
  animation: appear 2.4s 2.6s ease-out backwards;
}

.lasers::before {
  /* glare where the beams come from */
  content: "";
  position: absolute;
  inset: -20% 0 auto;
  height: 60%;
  background:
    radial-gradient(22% 30% at 12% 20%, rgba(255, 79, 184, 0.16), transparent 70%),
    radial-gradient(22% 30% at 88% 20%, rgba(47, 230, 255, 0.14), transparent 70%);
}

/* neon.js draws the beams on one canvas (same look, a fraction of the work); the CSS fans are the fallback */
.lasers__beams { position: absolute; inset: 0; width: 100%; height: 100%; }
.lasers.is-drawn { -webkit-mask-image: none; mask-image: none; }
.lasers.is-drawn .fan { display: none; }

.fan {
  position: absolute;
  top: -3%;
  width: 0;
  height: 0;
  animation: sweep 13s ease-in-out infinite alternate;
}

.fan--left { left: 10%; --from: -48deg; --to: -14deg; }
.fan--right { left: 90%; --from: 48deg; --to: 14deg; animation-duration: 11s; animation-delay: -4s; }

.fan i {
  position: absolute;
  left: -1px;
  top: 0;
  width: 2px;
  height: 160vmax;
  transform-origin: 50% 0;
  transform: rotate(var(--a));
  background: linear-gradient(180deg,
      color-mix(in srgb, var(--c) 70%, white) 0%,
      color-mix(in srgb, var(--c) 55%, transparent) 22%,
      transparent 62%);
  opacity: 0.5;
  filter: drop-shadow(0 0 4px var(--c));
}

.fan--left i { --c: var(--nose); }
.fan--right i { --c: var(--streak); }
.fan i:nth-child(1) { --a: -9deg; }
.fan i:nth-child(2) { --a: -3deg; }
.fan i:nth-child(3) { --a: 3deg; }
.fan i:nth-child(4) { --a: 9deg; }
.fan i:nth-child(5) { --a: 15deg; opacity: 0.32; }

@keyframes sweep {
  from { transform: rotate(var(--from)); }
  to { transform: rotate(var(--to)); }
}

/* low fog the beams land in (fades out before the hero ends, so there is no seam) */
.hero::after {
  content: "";
  position: absolute;
  inset: auto 0 4% 0;
  height: 42%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(45% 55% at 28% 62%, rgba(123, 77, 255, 0.2), transparent 72%),
    radial-gradient(45% 55% at 74% 62%, rgba(47, 230, 255, 0.09), transparent 72%);
}

/* ---------- halo ---------- */

.halo {
  position: relative;
  width: var(--size);
  height: var(--size);
  flex: none;
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 0.6s var(--ease-out);
}

.halo.is-asleep .hd,
.halo.is-asleep .hd__l,
.halo.is-asleep .hd__hue,
.halo.is-asleep .hd__dye,
.halo.is-asleep .hd__gl,
.hero.is-asleep .fan,
.hero.is-asleep .avatar__body::before,
.hero.is-asleep .rainbow,
.hero.is-asleep .tube,
.hero.is-asleep .scroll-cue::after { animation-play-state: paused !important; }

/* with JavaScript only the designs on show are rendered at all (the others take no work) */
.js .hd { display: none; }
.js .hd.is-on { display: block; visibility: visible; }

/* ---------- psychedelic halo: eight designs that spin, pulse to 145 BPM and merge into each other ----------
   neon.js picks them in random order and drives the slow, swirling cross-fades.
   Without JavaScript, a plain CSS cycle shows them in a fixed order instead. */

.hd {
  position: absolute;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  will-change: transform;
}

/* the designs are blended normally, not as light ("screen"): on the dark background that looks the same,
   and it saves three compositing passes on every frame (phones and slower computers stuttered with them).
   Touch screens can't tilt the halo, so they don't get its 3D transform either. */
@media (hover: none), (pointer: coarse) {
  .halo { transform: none; transition: none; }
}

html:not(.js) .hd {
  animation: hd-cycle 96s linear infinite;
  animation-delay: calc(var(--k) * 12s + 0.2s);
}

.hd__l {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

/* the spinning and pulsing sit on the wrapper <div>, not on the <svg> inside it: browsers can only hand
   them to the graphics chip that way (on the <svg> itself, phones redid every turn and every beat on the
   main thread, and the badge's curved text was re-drawn on every frame) */
.hd__l > svg { width: 100%; height: 100%; overflow: visible; }

/* designs whose layers all change colour together share one colour shift (one compositing pass, not three) */
.hd__hue { position: absolute; inset: 0; }

/* no-JavaScript fallback: 5 s merge in, 7 s on show, 5 s merge out, one design after another */
@keyframes hd-cycle {
  0% { visibility: visible; opacity: 0; transform: scale(0.84) rotate(-18deg); animation-timing-function: ease-in-out; }
  5.208% { visibility: visible; opacity: 1; transform: none; }
  12.5% { visibility: visible; opacity: 1; transform: none; animation-timing-function: ease-in-out; }
  17.708% { visibility: visible; opacity: 0; transform: scale(1.04) rotate(16deg); }
  17.77%, 100% { visibility: hidden; opacity: 0; }
}

@keyframes hd-turn { to { rotate: 360deg; } }
@keyframes hd-turn-back { to { rotate: -360deg; } }
@keyframes hd-hue { to { filter: hue-rotate(360deg); } }

/* a soft thump on every beat (--pump: the music player calms it down in the song's breakdown) */
@keyframes hd-pulse {
  0% { scale: 1; }
  10% { scale: calc(1 + 0.03 * var(--pump, 1)); }
  100% { scale: 1; }
}

/* bass ring: kick, then three rolling bass notes per beat (dimmed while the song's breakdown has no bass) */
.hd--bass { --on: calc(0.3 + 0.7 * var(--pump, 1)); }
@keyframes hd-bass-l { 0%, 7.9% { opacity: var(--on); } 8%, 100% { opacity: 0; } }
@keyframes hd-bass-m {
  0%, 24.9% { opacity: 0; } 25%, 32.9% { opacity: var(--on); } 33%, 49.9% { opacity: 0; }
  50%, 57.9% { opacity: var(--on); } 58%, 74.9% { opacity: 0; } 75%, 82.9% { opacity: var(--on); } 83%, 100% { opacity: 0; }
}
@keyframes hd-bass-s {
  0%, 7.9% { opacity: 0; } 8%, 24.9% { opacity: var(--on); } 25%, 32.9% { opacity: 0; } 33%, 49.9% { opacity: var(--on); }
  50%, 57.9% { opacity: 0; } 58%, 74.9% { opacity: var(--on); } 75%, 82.9% { opacity: 0; } 83%, 100% { opacity: var(--on); }
}
@keyframes hd-kick { 0% { opacity: calc(0.2 + 0.8 * var(--pump, 1)); } 35%, 100% { opacity: 0.2; } }

/* UV string art (the original halo): three threads in the fursuit colours */
.hd__l--streak { --c: var(--streak); }
.hd__l--nose { --c: var(--nose); }
.hd__l--fur { --c: var(--fur); }

/* liquid light: WebGL marbling, with a CSS tie-dye wheel as the fallback */
.hd__gl,
.hd__dye {
  position: absolute;
  inset: -4%;
  width: 108%;
  height: 108%;
  border-radius: 50%;
}

.hd__gl { display: none; }
.has-gl .hd__gl { display: block; }
.has-gl .hd__dye { display: none; }

.hd__dye {
  background: repeating-conic-gradient(from 0deg,
    #ff3df2 0deg 7deg, #12061f 7deg 9deg, #fff23a 9deg 15deg, #12061f 15deg 17deg,
    #2ff3ff 17deg 25deg, #12061f 25deg 27deg, #b6ff3b 27deg 32deg, #12061f 32deg 34deg,
    #ff8a1f 34deg 41deg, #12061f 41deg 43deg, #a25cff 43deg 51deg, #12061f 51deg 53deg);
  -webkit-mask: radial-gradient(closest-side, transparent 58%, #000 63.5%, #000 88%, transparent 94%);
          mask: radial-gradient(closest-side, transparent 58%, #000 63.5%, #000 88%, transparent 94%);
}
@keyframes spin { to { transform: rotate(360deg); } }
/* entrance fades: the element is invisible only until its turn ("backwards"), then the animation lets go.
   ("forwards" kept every finished fade attached, and phones paid for an extra compositing pass per frame) */
@keyframes appear { from { opacity: 0; } }

/* ---------- portrait ---------- */

.avatar {
  position: absolute;
  inset: 21%;
  z-index: 2;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  cursor: pointer;
  animation: avatar-in 1.1s 0.9s var(--ease-out) backwards;
  -webkit-tap-highlight-color: transparent;
}

.avatar__body {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: 50%;
  /* the ring's glow: a round glow looks the same at every angle, so it stays put while the ring turns
     (as a filter on the turning ring, phones had to re-blur it on every frame) */
  box-shadow: 0 0 20px 5px rgba(47, 230, 255, 0.55);   /* = the old drop-shadow(0 0 10px), which blurs twice as wide */
}

.avatar__body::before {
  /* the rotating colour ring */
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  background: conic-gradient(var(--streak), var(--haze), var(--nose), var(--fur), var(--lime), var(--streak));
  animation: spin 8s linear infinite;   /* turning the ring is cheap; re-painting its gradient every frame was not */
  will-change: transform;
}

.avatar__body::after {
  /* dark gap between ring and photo */
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  background: var(--blacklight);
}

.avatar picture,
.avatar img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.avatar img {
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1), 0 0 60px rgba(47, 230, 255, 0.18);
}

.avatar:focus-visible { outline-offset: 10px; border-radius: 50%; }

@keyframes avatar-in {
  from { opacity: 0; transform: scale(0.86); }
}

.avatar.is-popcorning .avatar__body {
  animation: popcorn 0.62s cubic-bezier(.3, .7, .3, 1);
}

@keyframes popcorn {
  0% { transform: translateY(0) scale(1, 1); }
  14% { transform: translateY(2%) scale(1.06, 0.92); }
  45% { transform: translateY(-14%) scale(0.96, 1.05) rotate(-4deg); }
  70% { transform: translateY(0) scale(1.05, 0.95) rotate(2deg); }
  100% { transform: translateY(0) scale(1, 1) rotate(0); }
}

/* purr: a quick, gentle rumble */
.avatar.is-purring .avatar__body {
  animation: purr 1.6s linear;
}

@keyframes purr {
  0%, 100% { transform: none; }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85% { transform: translate(0.6px, -0.5px) rotate(0.5deg) scale(1.01); }
  10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { transform: translate(-0.6px, 0.5px) rotate(-0.5deg) scale(1.01); }
}

/* wheek bubble + veggie confetti (easter egg) */
.wheek {
  position: absolute;
  left: 50%;
  top: 9%;
  z-index: 3;
  margin: 0;
  padding: 6px 16px 8px;
  border: 1.5px solid currentColor;
  border-radius: 999px;
  background: rgba(15, 10, 36, 0.86);
  color: var(--lime);
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.1;
  width: max-content;
  max-width: min(86vw, 440px);
  text-align: center;
  text-shadow: 0 0 10px currentColor;
  box-shadow: 0 0 18px -2px currentColor, inset 0 0 12px -4px currentColor;
  transform: translate(-50%, 0) scale(0.6);
  opacity: 0;
  pointer-events: none;
}

.wheek.is-showing { animation: wheek 1.5s var(--ease-out) forwards; }

@keyframes wheek {
  0% { opacity: 0; transform: translate(-50%, 30%) scale(0.6) rotate(-6deg); }
  18% { opacity: 1; transform: translate(-50%, -30%) scale(1.08) rotate(3deg); }
  30% { transform: translate(-50%, -34%) scale(1) rotate(-2deg); }
  78% { opacity: 1; transform: translate(-50%, -48%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -80%) scale(0.92); }
}

.veggie {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  font-size: clamp(18px, 3vw, 26px);
  line-height: 1;
  pointer-events: none;
  will-change: transform, opacity;
}

/* ---------- title / neon sign ---------- */

.title {
  --sign-size: clamp(92px, min(25vw, 17svh), 196px);
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 400;
}

.title__name {
  --c: var(--nose);
  --lit: #fff4fb;
  --unlit: #3a2348;
  --glow:
    0 0 1px #fff,
    0 0 5px var(--c),
    0 0 12px var(--c),
    0 0 28px var(--c),
    0 0 56px color-mix(in srgb, var(--c) 80%, transparent),
    0 0 110px color-mix(in srgb, var(--c) 55%, transparent);
  display: block;
  /* the halo designs reach a little past the halo box when they pulse and merge:
     the sign keeps clear of them at every screen size (checked with gapcheck.py) */
  margin-top: calc(var(--size) * 0.055 - 0.2em);
  padding: 0 0.12em;
  font-family: var(--font-sign);
  font-size: var(--sign-size);
  line-height: 1.02;
  color: var(--unlit);
  animation: sign-on 1.5s 1.35s linear forwards;
}

.title__name .tube {
  /* the last "i" has a slightly faulty transformer */
  display: inline;
  animation: faulty 9s 6s linear infinite;
}

.title__species {
  display: block;
  margin-top: calc(var(--sign-size) * 0.16); /* clears the descender of the "p" at every size */
  font-size: clamp(17px, 2.3vw, 23px);
  letter-spacing: 0.2em;
  color: #c9fbff;
  text-shadow: 0 0 8px rgba(47, 230, 255, 0.9), 0 0 22px rgba(47, 230, 255, 0.45);
  animation: appear 0.9s 2.25s ease-out backwards;
}

@keyframes sign-on {
  0%, 10% { color: var(--unlit); text-shadow: none; }
  13%, 20% { color: var(--lit); text-shadow: var(--glow); }
  23%, 38% { color: var(--unlit); text-shadow: none; }
  42%, 100% { color: var(--lit); text-shadow: var(--glow); }
}

@keyframes faulty {
  0%, 94%, 95.4%, 96.8%, 100% { opacity: 1; }
  94.6%, 96.2% { opacity: 0.2; }
}

/* ---------- chips + calls to action ---------- */

.chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: clamp(18px, 3svh, 28px);
  max-width: 640px;
}

.chips li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 15px 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(25, 17, 58, 0.74);
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.5;
  max-width: 100%;
  text-wrap: balance;
}

.chips img { width: 20px; height: 15px; border-radius: 3px; }

.chips { row-gap: 24px; }   /* room for the small print under "Super Gay" when the chips wrap */
.chips .chip--gay { position: relative; }

/* the small print, in the colours of the pansexual flag */
.pan {
  position: absolute;
  left: 50%;
  top: calc(100% + 3px);
  transform: translateX(-50%);
  font-size: 0.74rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
  background: linear-gradient(90deg, #ff4fa3, #ffd84a 52%, #3fc0ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.rainbow {
  background: linear-gradient(90deg, #ff4d6d, #ff9b3d, #ffe14d, #6dff7a, #2fe6ff, #8b6bff, #ff4fb8, #ff4d6d);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: rainbow 6s linear infinite;
  filter: drop-shadow(0 0 6px rgba(255, 120, 200, 0.35));
  /* the moving colours are re-drawn on every frame: on a layer of its own that is just these two words
     (before, each frame also re-drew a big piece of the page around them, glowing "Drapii" sign included) */
  display: inline-block;
  will-change: transform;
}

@keyframes rainbow { to { background-position: -200% 0; } }

/* chips and icons rise in after the sign lights up ("backwards" fill keeps hover effects working afterwards) */
.hero .chips li,
.quick__link {
  animation: rise 0.7s var(--ease-out) backwards;
}

.hero .chips li:nth-child(1) { animation-delay: 2.45s; }
.hero .chips li:nth-child(2) { animation-delay: 2.53s; }
.hero .chips li:nth-child(3) { animation-delay: 2.61s; }
.hero .chips li:nth-child(4) { animation-delay: 2.69s; }
.quick__link { animation-delay: calc(2.8s + var(--i, 0) * 45ms); }

@keyframes rise { from { opacity: 0; transform: translateY(10px); } }

/* quick social icons */
.quick {
  --q: 46px;  /* icon size */
  --g: 10px;  /* gap */
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--g);
  max-width: calc(7 * var(--q) + 6 * var(--g)); /* phones and tablets: two even rows of seven */
  margin-top: clamp(20px, 3.4svh, 32px);
}

@media (min-width: 880px) {
  .quick { max-width: calc(14 * var(--q) + 13 * var(--g)); } /* wider screens: one row of fourteen */
}

.quick__link {
  --brand: var(--streak);
  width: var(--q);
  height: var(--q);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1.5px solid color-mix(in srgb, var(--brand) 50%, transparent);
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand) 9%, rgba(15, 10, 36, 0.65));
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--ease-out);
}

.quick__link svg {
  width: 21px;
  height: 21px;
  fill: var(--glyph, var(--brand));
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--brand) 60%, transparent));
}

.quick__link svg.is-wide { width: 25px; height: 25px; } /* wide logos look small at the regular size */

.quick__link:hover,
.quick__link:focus-visible {
  border-color: var(--brand);
  background: color-mix(in srgb, var(--brand) 20%, rgba(15, 10, 36, 0.65));
  box-shadow: 0 0 0 1px var(--brand), 0 0 22px -2px var(--brand), 0 0 50px -14px var(--brand);
  transform: translateY(-3px) scale(1.06);
}

.quick__link:active { transform: scale(0.96); }
.quick__link:focus-visible { outline-color: var(--brand); outline-offset: 3px; border-radius: 50%; }

.btn {
  --c: var(--nose);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 152px;
  padding: 12px 26px 13px;
  border: 1.5px solid var(--c);
  border-radius: 999px;
  background: rgba(15, 10, 36, 0.5);
  color: #fff;
  font-size: 1.125rem;
  line-height: 1.3;
  text-decoration: none;
  text-shadow: 0 0 10px color-mix(in srgb, var(--c) 80%, transparent);
  box-shadow: 0 0 14px -4px var(--c), inset 0 0 12px -6px var(--c);
  transition: box-shadow 0.25s ease, background-color 0.25s ease, transform 0.25s var(--ease-out);
}

.btn:hover,
.btn:focus-visible {
  background: color-mix(in srgb, var(--c) 16%, rgba(15, 10, 36, 0.5));
  box-shadow: 0 0 0 1px var(--c), 0 0 26px -2px var(--c), 0 0 60px -12px var(--c), inset 0 0 18px -6px var(--c);
  transform: translateY(-2px);
}

.btn:active { transform: translateY(0) scale(0.98); }

.btn--lit {
  --c: var(--streak);
  background: var(--streak);
  color: #04131a;
  text-shadow: none;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.4) inset, 0 0 22px -2px var(--streak), 0 0 60px -14px var(--streak);
}

.btn--lit:hover,
.btn--lit:focus-visible {
  background: #7ff1ff;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6) inset, 0 0 32px 0 var(--streak), 0 0 90px -10px var(--streak);
}

/* scroll cue: a thread with a bead sliding down */
.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: clamp(16px, 3svh, 30px);
  z-index: 1;
  width: 28px;
  height: 54px;
  transform: translateX(-50%);
  animation: appear 1s 3.3s ease-out backwards;
}

.scroll-cue::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 4px;
  bottom: 4px;
  width: 1.5px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent, rgba(47, 230, 255, 0.6), transparent);
}

.scroll-cue::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 6px;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  border-radius: 50%;
  background: var(--streak);
  box-shadow: 0 0 10px var(--streak), 0 0 20px var(--streak);
  animation: bead 2.4s 3.6s var(--ease-out) infinite;
}

@keyframes bead {
  0% { transform: translateY(0); opacity: 0; }
  20% { opacity: 1; }
  70% { opacity: 1; }
  100% { transform: translateY(36px); opacity: 0; }
}

/* ==========================================================================
   SECTIONS
   ========================================================================== */

.section {
  position: relative;
  width: min(100% - 2 * var(--gutter), var(--col-wide));
  margin-inline: auto;
  padding-block: clamp(64px, 11vw, 128px) 0;
}

#about { padding-top: clamp(24px, 4vw, 52px); }   /* right under the scroll cue */

.sign {
  --lit: color-mix(in srgb, var(--c) 22%, white);
  --unlit: color-mix(in srgb, var(--c) 16%, #2b2546);
  --glow:
    0 0 1px #fff,
    0 0 4px var(--c),
    0 0 12px var(--c),
    0 0 26px color-mix(in srgb, var(--c) 85%, transparent),
    0 0 54px color-mix(in srgb, var(--c) 55%, transparent);
  margin: 0 0 clamp(22px, 3.4vw, 34px);
  font-size: clamp(2.5rem, 6.4vw, 4rem);
  font-weight: 400;
  line-height: 1.05;
  overflow-wrap: break-word;
  hyphens: auto;
  color: var(--lit);
  text-shadow: var(--glow);
}

.sign--streak { --c: var(--streak); }
.sign--nose { --c: var(--nose); }
.sign--fur { --c: var(--fur); }
.sign--lime { --c: var(--lime); }

.js .sign { color: var(--unlit); text-shadow: none; }
.js .sign.is-lit { animation: sign-on 1.1s linear forwards; }

/* ---------- about ---------- */

.roles {
  margin: calc(-1 * clamp(8px, 1.4vw, 14px)) 0 clamp(16px, 2.4vw, 22px);
  color: #fff;
  font-size: clamp(1.05rem, 2.5vw, 1.3rem);
  letter-spacing: 0.03em;
  text-shadow: 0 0 8px rgba(255, 79, 184, 0.85), 0 0 22px rgba(255, 79, 184, 0.4);
}

.roles span { margin: 0 0.25em; color: var(--nose); }

.lead {
  max-width: 30ch;
  color: var(--ink);
  font-size: clamp(1.45rem, 3.2vw, 1.85rem);
  line-height: 1.35;
}

/* the names in the intro link to WikiFur */
.lead a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(47, 230, 255, 0.5);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.18em;
  transition: color 0.2s ease, text-decoration-color 0.2s ease, text-shadow 0.2s ease;
}

.lead a:hover,
.lead a:focus-visible {
  color: #fff;
  text-decoration-color: var(--streak);
  text-shadow: 0 0 14px rgba(47, 230, 255, 0.7);
}

.lead a:focus-visible { outline: 2px solid var(--streak); outline-offset: 3px; border-radius: 4px; }

.thread-list {
  position: relative;
  max-width: var(--col);
  display: grid;
  gap: 22px;
  margin-top: clamp(28px, 4vw, 40px);
  padding-left: 40px;
}

.thread-list::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 0.55em;
  bottom: 0.55em;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--streak), var(--nose) 30%, var(--fur) 55%, var(--lime) 78%, #a07bff);
  box-shadow: 0 0 10px rgba(255, 79, 184, 0.45);
  transform-origin: 50% 0;
}

.thread-list li {
  --c: var(--streak);
  position: relative;
  max-width: 62ch;   /* wide enough for "…Goa psytrance 🕉️" to stay on one line */
}

.thread-list li:nth-child(2) { --c: var(--nose); }
.thread-list li:nth-child(3) { --c: var(--fur); }
.thread-list li:nth-child(4) { --c: var(--lime); }
.thread-list li:nth-child(5) { --c: #a07bff; }

.thread-list li::before {
  /* bead on the thread */
  content: "";
  position: absolute;
  left: -36px;
  top: 0.42em;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff 0 18%, var(--c) 45%);
  box-shadow: 0 0 10px var(--c), 0 0 22px color-mix(in srgb, var(--c) 60%, transparent);
}

.js .thread-list::before { transform: scaleY(0); transition: transform 1.3s var(--ease-out); }
.js .thread-list li::before { transform: scale(0); transition: transform 0.5s cubic-bezier(.3, 1.6, .5, 1); }
.js .thread-list.is-lit::before { transform: scaleY(1); }
.js .thread-list.is-lit li::before { transform: scale(1); }
.js .thread-list.is-lit li:nth-child(1)::before { transition-delay: 0.15s; }
.js .thread-list.is-lit li:nth-child(2)::before { transition-delay: 0.45s; }
.js .thread-list.is-lit li:nth-child(3)::before { transition-delay: 0.75s; }
.js .thread-list.is-lit li:nth-child(4)::before { transition-delay: 1.05s; }
.js .thread-list.is-lit li:nth-child(5)::before { transition-delay: 1.35s; }

.flags {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  vertical-align: -0.12em;
}

.flags img {
  width: 22px;
  height: 16.5px;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18);
}

/* quick facts: the same four as on the business card */
.facts {
  max-width: var(--col);
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: clamp(30px, 4.5vw, 44px) 0 0;
}

@media (min-width: 640px) {
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.fact {
  padding: 13px 18px 15px;
  border: 1.5px solid color-mix(in srgb, var(--c) 45%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--c) 7%, rgba(15, 10, 36, 0.6));
  box-shadow: 0 0 24px -14px var(--c);
}

.fact dt {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--c);
  font-size: 0.8rem;
  line-height: 1.3;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-shadow: 0 0 8px color-mix(in srgb, var(--c) 60%, transparent);
}

.fact__icon {
  width: 20px;
  height: 20px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fact dd {
  margin: 6px 0 0;
  color: var(--ink);
  font-size: 1.1rem;
  line-height: 1.4;
}

.fact__more { display: inline-block; color: var(--ink-3); }

/* where to meet: con badges and furdance tickets */
.meet {
  max-width: var(--col);
  display: grid;
  gap: 16px;
  margin-top: clamp(34px, 5vw, 48px);
  padding-top: clamp(26px, 4vw, 34px);
  border-top: 1px dashed var(--line);
}

.meet__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
}

.meet__label { min-width: 11.5em; color: var(--ink); }

.badges,
.tickets {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.badges a {
  /* a con badge, complete with lanyard slot */
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 16px 9px 18px;
  border: 1.5px solid color-mix(in srgb, var(--fur) 75%, transparent);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255, 155, 61, 0.12), rgba(255, 155, 61, 0.03));
  color: #ffe1c4;
  font-size: 1.05rem;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 0 16px -6px var(--fur);
  transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--ease-out);
}

.badges img,
.tickets img { width: 18px; height: 13px; border-radius: 2px; }

.badges a:hover,
.badges a:focus-visible {
  border-color: var(--fur);
  box-shadow: 0 0 0 1px var(--fur), 0 0 24px -4px var(--fur);
  transform: translateY(-2px) rotate(-1.5deg);
}

.badges a:focus-visible { outline-color: var(--fur); }

.tickets a {
  /* a dance-night ticket: a stub with a note, a perforation, the name */
  --c: var(--nose);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 11px 20px 11px 11px;
  border: 1.5px solid color-mix(in srgb, var(--c) 75%, transparent);
  border-radius: 9px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--c) 20%, transparent) 0 34px, color-mix(in srgb, var(--c) 6%, transparent) 34px);
  color: color-mix(in srgb, var(--c) 25%, white);
  font-size: 1.05rem;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 0 16px -6px var(--c);
  transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--ease-out);
}

.tickets li:nth-child(2) a { --c: var(--streak); }

.tickets a::after {
  content: "";
  position: absolute;
  left: 34px;
  top: 4px;
  bottom: 4px;
  border-left: 1.5px dashed color-mix(in srgb, var(--c) 70%, transparent);
}

.tickets svg {
  width: 16px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: var(--c);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tickets a:hover,
.tickets a:focus-visible {
  border-color: var(--c);
  box-shadow: 0 0 0 1px var(--c), 0 0 24px -4px var(--c);
  transform: translateY(-2px) rotate(1.5deg);
}

.tickets a:focus-visible { outline-color: var(--c); }

.badges a::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 5px;
  width: 20px;
  height: 5px;
  margin-left: -10px;
  border-radius: 3px;
  background: var(--blacklight);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fur) 55%, transparent);
}

/* ---------- follow links ---------- */

.handle {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 12px;
  margin: calc(-1 * clamp(6px, 1vw, 10px)) 0 clamp(22px, 3vw, 30px);
}

.handle__label {
  color: var(--lime);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-shadow: 0 0 8px rgba(200, 255, 61, 0.6);
}

.handle__name {
  color: #fff;
  font-size: clamp(1.35rem, 3.2vw, 1.7rem);
  line-height: 1.2;
  text-shadow: 0 0 5px rgba(255, 255, 255, 0.8), 0 0 14px rgba(255, 79, 184, 0.9), 0 0 30px rgba(255, 79, 184, 0.5);
}

.links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 640px) {
  .links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
  .links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .links > li:last-child:nth-child(3n + 1) { grid-column: 2; } /* a lone last card sits in the middle */
}

.link {
  --brand: var(--streak);
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  grid-template-areas: "icon name action" "icon handle action";
  align-items: center;
  column-gap: 14px;
  width: 100%;
  min-height: 74px;
  padding: 12px 18px 12px 16px;
  border: 1.5px solid color-mix(in srgb, var(--brand) 42%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--brand) 6%, rgba(15, 10, 36, 0.6));
  color: var(--ink);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--ease-out);
}

.link__icon {
  grid-area: icon;
  width: 30px;
  height: 30px;
  justify-self: center;
  fill: var(--glyph, var(--brand));
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--brand) 55%, transparent));
  transition: filter 0.25s ease, transform 0.35s var(--ease-out);
}

.link__icon.is-wide { width: 36px; height: 36px; }

.link__icon.is-stroke {
  fill: none;
  stroke: var(--brand);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* the email address is long: let it wrap instead of cutting it off */
.link[data-user] .link__handle { white-space: normal; overflow-wrap: anywhere; }

.link__name {
  grid-area: name;
  align-self: end;
  font-size: 1.15rem;
  line-height: 1.2;
}

.link__handle {
  grid-area: handle;
  align-self: start;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink-3);
  font-size: 0.95rem;
  line-height: 1.4;
}

.link__action {
  grid-area: action;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: var(--ink-3);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.2s ease;
}

.link:hover,
.link:focus-visible {
  border-color: var(--brand);
  background: color-mix(in srgb, var(--brand) 14%, rgba(15, 10, 36, 0.6));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--brand) 60%, transparent),
    0 0 22px -4px var(--brand),
    0 0 56px -18px var(--brand),
    inset 0 0 20px -10px var(--brand);
  transform: translateY(-2px);
}

.link:hover .link__icon,
.link:focus-visible .link__icon {
  filter: drop-shadow(0 0 3px var(--brand)) drop-shadow(0 0 12px var(--brand));
  transform: scale(1.08) rotate(-4deg);
}

.link:hover .link__action,
.link:focus-visible .link__action { stroke: var(--ink); }

.link:hover { animation: ignite 0.42s linear; }
.link:active { transform: translateY(0) scale(0.99); }
.link:focus-visible { outline-color: var(--brand); outline-offset: 3px; border-radius: 18px; }

@keyframes ignite {
  0% { border-color: color-mix(in srgb, var(--brand) 42%, transparent); }
  20% { border-color: var(--brand); }
  32% { border-color: color-mix(in srgb, var(--brand) 30%, transparent); }
  55%, 100% { border-color: var(--brand); }
}

/* ---------- say hi ---------- */

.contact__text { max-width: 52ch; color: var(--ink); font-size: 1.25rem; line-height: 1.5; }
.contact__langs { margin-top: 10px; max-width: 56ch; color: var(--ink-2); }
.contact__note { margin-top: 10px; max-width: 52ch; color: var(--ink-3); }

.dm {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: 14px;
  margin-top: clamp(24px, 4vw, 34px);
}

.link--big { min-height: 92px; padding: 16px 22px 16px 18px; border-radius: 22px; }
.link--big .link__icon { width: 36px; height: 36px; }
.link--big .link__name { font-size: 1.35rem; }

/* ---------- gallery slideshow ---------- */

.gallery__intro {
  margin: calc(-1 * clamp(6px, 1vw, 10px)) 0 clamp(20px, 2.8vw, 28px);
  color: var(--ink-2);
  font-size: 1.15rem;
}

.slideshow { --c: var(--streak); }

.slideshow__stage {
  position: relative;
  border: 1.5px solid var(--c);
  border-radius: 24px;
  overflow: hidden;
  background: #08051a;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--c) 35%, transparent),
    0 0 46px -12px var(--c),
    0 30px 60px -36px rgba(0, 0, 0, 0.9);
  transition: border-color 0.6s ease, box-shadow 0.6s ease;
}

.slideshow__track {
  display: flex;
  aspect-ratio: 16 / 10;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  transition: opacity 0.18s ease;
}

.slideshow__track::-webkit-scrollbar { display: none; }
.slideshow__track:focus-visible { outline-offset: -4px; border-radius: 22px; }
.slideshow__track.is-jumping { opacity: 0; }

.slide {
  position: relative;
  flex: 0 0 100%;
  height: 100%;
  overflow: hidden;
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

.slide--streak { --c: var(--streak); }
.slide--nose { --c: var(--nose); }
.slide--fur { --c: var(--fur); }
.slide--lime { --c: var(--lime); }
.slide--haze { --c: #a07bff; }

.slide__link {
  position: absolute;
  inset: 0;
  display: block;
  cursor: zoom-in;
}

.slide__link:focus-visible { outline-offset: -6px; border-radius: 20px; }

/* the photo's own colours, blurred, fill the space around it */
.slide__glow {
  position: absolute;
  inset: -12%;
  width: 124%;
  height: 124%;
  max-width: none;
  object-fit: cover;
  filter: blur(26px) saturate(1.35) brightness(0.5);
}

.slide picture { position: absolute; inset: 0; }

.slide__photo {
  width: 100%;
  height: 100%;
  object-fit: contain; /* whole photo stays visible, watermarks included */
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.55));
}

.slideshow__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin-top: -24px;
  padding: 0;
  border: 1.5px solid color-mix(in srgb, var(--c) 60%, transparent);
  border-radius: 50%;
  background: rgba(10, 6, 28, 0.62);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 0 16px -6px var(--c);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s var(--ease-out), background-color 0.2s ease;
}

.slideshow__arrow--prev { left: 14px; }
.slideshow__arrow--next { right: 14px; }

.slideshow__arrow svg,
.slideshow__toggle svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.slideshow__arrow:hover,
.slideshow__arrow:focus-visible {
  border-color: var(--c);
  background: color-mix(in srgb, var(--c) 18%, rgba(10, 6, 28, 0.62));
  box-shadow: 0 0 0 1px var(--c), 0 0 26px -4px var(--c);
  transform: scale(1.06);
}

.slideshow__arrow:focus-visible { outline-color: var(--c); border-radius: 50%; }
.slideshow__arrow:active { transform: scale(0.96); }

.slideshow__caption {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 6px 14px 7px;
  border: 1px solid color-mix(in srgb, var(--c) 65%, transparent);
  border-radius: 999px;
  background: rgba(10, 6, 28, 0.74);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 1rem;
  line-height: 1.3;
  pointer-events: none;
  transition: border-color 0.6s ease;
}

.slideshow__title { text-shadow: 0 0 10px var(--c); }
.slideshow__count { color: var(--ink-3); font-size: 0.88rem; font-variant-numeric: tabular-nums; }

.slideshow__progress {
  position: relative;
  height: 3px;
  margin: 14px 6px 0;
  border-radius: 3px;
  background: rgba(214, 205, 255, 0.1);
  overflow: hidden;
}

.slideshow__progress span {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--c);
  box-shadow: 0 0 10px var(--c);
  transform-origin: 0 50%;
  transform: scaleX(0);
}

.slideshow.is-running .slideshow__progress span {
  animation: progress var(--interval, 5000ms) linear forwards;
}

.slideshow.is-held .slideshow__progress span { animation-play-state: paused; }

@keyframes progress { to { transform: scaleX(1); } }

.slideshow__bar {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
}

.slideshow__thumbs {
  position: relative;
  flex: 1;
  display: flex;
  gap: 10px;
  min-width: 0;
  padding: 6px 4px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}

.slideshow__thumbs::-webkit-scrollbar { display: none; }

.thumb {
  flex: none;
  width: 62px;
  height: 62px;
  padding: 0;
  border: 1.5px solid rgba(214, 205, 255, 0.18);
  border-radius: 14px;
  overflow: hidden;
  background: var(--blacklight-2);
  cursor: pointer;
  opacity: 0.6;
  scroll-snap-align: center;
  transition: opacity 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s var(--ease-out);
}

.thumb--streak { --c: var(--streak); }
.thumb--nose { --c: var(--nose); }
.thumb--fur { --c: var(--fur); }
.thumb--lime { --c: var(--lime); }
.thumb--haze { --c: #a07bff; }

.thumb img { width: 100%; height: 100%; object-fit: cover; }

.thumb:hover,
.thumb:focus-visible { opacity: 1; border-color: color-mix(in srgb, var(--c) 70%, transparent); transform: translateY(-2px); }

.thumb.is-current {
  opacity: 1;
  border-color: var(--c);
  box-shadow: 0 0 0 1px var(--c), 0 0 16px -2px var(--c);
}

.thumb:focus-visible { outline-color: var(--c); outline-offset: 3px; border-radius: 14px; }

.slideshow__toggle {
  flex: none;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1.5px solid var(--line);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.slideshow__toggle:hover,
.slideshow__toggle:focus-visible { border-color: var(--c); box-shadow: 0 0 18px -4px var(--c); }

.slideshow__toggle .icon-play { display: none; fill: currentColor; stroke: none; }
.slideshow.is-paused .slideshow__toggle .icon-play { display: block; }
.slideshow.is-paused .slideshow__toggle .icon-pause { display: none; }

/* without JavaScript the strip still swipes; the controls only appear with it */
html:not(.js) .slideshow__arrow,
html:not(.js) .slideshow__progress,
html:not(.js) .slideshow__toggle,
html:not(.js) .slideshow__thumbs,
html:not(.js) .slideshow__count,
html:not(.js) .slideshow__caption,
html:not(.js) .music { display: none; }
html:not(.js) .slideshow__track { scrollbar-width: thin; scrollbar-color: var(--c) transparent; }

/* ---------- footer ---------- */

.footer {
  width: min(100% - 2 * var(--gutter), var(--col-wide));
  margin: clamp(80px, 12vw, 140px) auto 0;
  padding: 28px 0 calc(34px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  color: var(--ink-3);
  font-size: 0.95rem;
}

.footer__love { display: block; margin-top: 4px; color: var(--ink-3); font-size: 0.88rem; }

.footer a {
  color: var(--ink-2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease, text-shadow 0.2s ease;
}

.footer a:hover,
.footer a:focus-visible {
  color: #fff;
  border-color: var(--streak);
  text-shadow: 0 0 10px var(--streak);
}

.footer__contact a {
  color: #fff;
  border-color: color-mix(in srgb, var(--nose) 70%, transparent);
  text-shadow: 0 0 10px rgba(255, 79, 184, 0.55);
  overflow-wrap: anywhere;
}

.footer__contact a:hover,
.footer__contact a:focus-visible { border-color: var(--nose); text-shadow: 0 0 14px var(--nose); }

/* ---------- language switch, top left: own language | English | Other (every language) ---------- */

.lang {
  position: absolute;
  top: calc(14px + env(safe-area-inset-top));
  left: calc(14px + env(safe-area-inset-left));
  z-index: 55;                       /* its list opens over the music switch */
  display: flex;
  align-items: stretch;
  gap: 2px;
  padding: 3px;
  border: 1.5px solid rgba(47, 230, 255, 0.38);
  border-radius: 999px;
  background: rgba(15, 10, 36, 0.88);
  box-shadow: 0 0 18px -8px var(--streak), 0 10px 28px -12px rgba(0, 0, 0, 0.75);
  font-size: 0.92rem;
  line-height: 1;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

/* Other | EN | own language from the left edge on every page, right-to-left ones too;
   the list itself follows the page's own direction */
.lang { direction: ltr; }
[dir="rtl"] .lang__menu { direction: rtl; }

.lang:hover,
.lang:focus-within,
.lang.is-open {
  border-color: rgba(47, 230, 255, 0.7);
  box-shadow: 0 0 24px -6px var(--streak), 0 10px 28px -12px rgba(0, 0, 0, 0.75);
}

.lang__opt {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 13px;
  border-radius: 999px;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.lang__opt[hidden] { display: none; }
.lang__opt--other { display: flex; }
.lang__opt--other::-webkit-details-marker { display: none; }

.lang__opt:hover { color: #fff; background: rgba(255, 255, 255, 0.07); }
.lang__opt:focus-visible { outline: 2px solid var(--streak); outline-offset: 2px; }

/* the language on screen: lit up like the "on" side of a switch */
.lang__opt[aria-current="page"],
.lang__opt--other.is-lang {
  color: #fff;
  background: rgba(47, 230, 255, 0.16);
  box-shadow: inset 0 0 0 1px rgba(47, 230, 255, 0.65), 0 0 14px -3px rgba(47, 230, 255, 0.7);
}

.lang__flag {
  flex: none;
  width: 20px;
  height: 15px;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.lang__flag[hidden] { display: none; }
.lang__globe { flex: none; width: 17px; height: 17px; color: var(--streak); }
.lang__opt--other.is-lang .lang__globe { display: none; }
.lang__chev { flex: none; width: 13px; height: 13px; margin-inline-start: -2px; opacity: 0.85; transition: transform 0.2s ease; }
.lang__more[open] .lang__chev { transform: rotate(180deg); }
.lang__code { display: none; }

/* the list behind "Other": every language, scrolls, the page's own one ticked */
.lang__menu {
  position: absolute;
  top: calc(100% + 8px);
  left: -1.5px;
  width: min(320px, calc(100vw - 24px));
  max-height: min(62vh, 470px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border: 1.5px solid rgba(47, 230, 255, 0.5);
  border-radius: 18px;
  background: rgba(15, 10, 36, 0.97);
  box-shadow: 0 0 26px -8px var(--streak), 0 18px 44px -14px rgba(0, 0, 0, 0.9);
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 230, 255, 0.45) transparent;
}

.lang__more[open] .lang__menu { animation: lang-drop 0.18s cubic-bezier(0.2, 0.7, 0.3, 1); }
@keyframes lang-drop { from { opacity: 0; transform: translateY(-6px); } }

.lang__title {
  margin: 6px 12px 8px;
  color: var(--ink-3);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.lang__list { margin: 0; padding: 0; list-style: none; }

.lang__list a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 6px 12px;
  border-radius: 12px;
  color: var(--ink-2);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.lang__list a:hover { color: #fff; background: rgba(47, 230, 255, 0.09); }
.lang__list a:focus-visible { outline: none; color: #fff; background: rgba(47, 230, 255, 0.12); box-shadow: inset 0 0 0 2px var(--streak); }
.lang__list a[aria-current="page"] { color: #fff; background: rgba(47, 230, 255, 0.16); }
.lang__endo { flex: none; color: var(--ink); }

.lang__tr {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--ink-3);
  font-size: 0.84em;
  text-align: end;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lang__check { flex: none; width: 16px; height: 16px; margin-inline-start: auto; color: var(--streak); }
.lang__tr + .lang__check { margin-inline-start: 0; }

@media (prefers-reduced-motion: reduce) {
  .lang__more[open] .lang__menu { animation: none; }
  .lang__chev { transition: none; }
}

/* the two languages show flag + short code (PL · EN); the full names stay for screen readers */
.lang__opt--local .lang__name,
.lang__opt--en .lang__name,
.lang__opt--other.is-lang .lang__name {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.lang__opt--local .lang__code,
.lang__opt--en .lang__code,
.lang__opt--other.is-lang .lang__code { display: inline; }

/* phones and small tablets: a slimmer switch (no globe on "Other"), next to the music switch in the
   other top corner, so both keep clear of the glowing ring */
@media (max-width: 700px) {
  .lang {
    top: calc(12px + env(safe-area-inset-top));
    left: calc(12px + env(safe-area-inset-left));
    padding: 2px;
    font-size: 0.88rem;
  }
  .lang__opt { min-height: 36px; padding: 0 10px; gap: 6px; }
  .lang__opt--other .lang__globe { display: none; }
  .lang__menu { top: calc(100% + 6px); max-height: min(68vh, 470px); }
}

/* the smallest phones: flags only (the names stay for screen readers), "Other" becomes a globe,
   and the three options sit a little closer */
@media (max-width: 374px) {
  .lang__opt { padding: 0 9px; gap: 5px; }
  .lang__opt--local .lang__code,
  .lang__opt--en .lang__code,
  .lang__opt--other.is-lang .lang__code { display: none; }
  .lang__opt--other:not(.is-lang) .lang__name {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .lang__opt--other:not(.is-lang) .lang__globe { display: block; }
}

/* scripts whose letters join up (Arabic, Persian, Urdu) or hang from one line (Hindi, Bengali, Punjabi…):
   spacing the letters apart would break the words */
:is(.title__species, .pan, .roles, .fact dt, .handle__label, .lang__title):is(:lang(ar), :lang(fa), :lang(ur), :lang(hi), :lang(mr), :lang(bn), :lang(pa), :lang(ta), :lang(te), :lang(th)) {
  letter-spacing: normal;
}

/* ---------- visit counter: the very bottom, small and quiet (numbers from visits.php) ---------- */

.visits {
  flex: 1 0 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 9px;
  margin-top: 10px;
  color: var(--ink-3);
  font-size: 0.82rem;
  line-height: 1;
  opacity: 0.78;
  transition: opacity 0.3s ease;
}

.visits[hidden] { display: none; }
.visits:hover { opacity: 1; }

.visits__eye {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: var(--streak);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 3px rgba(47, 230, 255, 0.7));
}

.visits__slash { display: none; }

/* a device opened once with ?me isn't counted: its eye gets a slash */
.visits.is-not-me .visits__eye { stroke: var(--ink-3); filter: none; }
.visits.is-not-me .visits__slash { display: inline; }

.visits__digits { display: inline-flex; gap: 3px; }

.visits__digit {
  display: block;
  width: 1.3em;
  height: 1.75em;
  overflow: hidden;
  border: 1px solid rgba(47, 230, 255, 0.32);
  border-radius: 5px;
  background: rgba(8, 5, 20, 0.6);
  box-shadow: inset 0 0 10px -4px rgba(47, 230, 255, 0.6), 0 0 10px -6px var(--streak);
  color: #fff;
  text-align: center;
}

/* leading zeros stay dark, so the real number stands out */
.visits__digit.is-lead {
  border-color: var(--line);
  box-shadow: none;
  color: var(--ink-3);
  opacity: 0.6;
}

/* each digit is a strip of 0-9 that rolls up into place, like an old odometer */
.visits__strip {
  display: block;
  transform: translateY(calc(var(--d, 0) * -1.75em));
  transition: transform 1.4s var(--ease-out) calc(var(--i, 0) * 80ms);
}

.visits__strip i {
  display: block;
  height: 1.75em;
  line-height: 1.75em;
  font-style: normal;
  text-shadow: 0 0 8px rgba(47, 230, 255, 0.85);
}

.visits__digit.is-lead .visits__strip i { text-shadow: none; }

@media (prefers-reduced-motion: reduce) {
  .visits__strip { transition: none; }
}

/* ---------- toast ---------- */

.toast {
  position: fixed;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom));
  z-index: 50;
  padding: 10px 20px 11px;
  border: 1.5px solid var(--lime);
  border-radius: 999px;
  background: rgba(15, 10, 36, 0.92);
  color: #fff;
  font-size: 1rem;
  text-shadow: 0 0 10px rgba(200, 255, 61, 0.6);
  box-shadow: 0 0 24px -6px var(--lime);
  transform: translate(-50%, 30px);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.35s var(--ease-out), opacity 0.35s ease;
}

.toast.is-showing { transform: translate(-50%, 0); opacity: 1; }

/* ---------- music switch (top right, always at hand) ---------- */

.music {
  position: fixed;
  top: calc(14px + env(safe-area-inset-top));
  right: calc(14px + env(safe-area-inset-right));
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 8px 16px 8px 14px;
  border: 1.5px solid rgba(200, 255, 61, 0.38);
  border-radius: 999px;
  background: rgba(15, 10, 36, 0.88);
  color: var(--ink-2);
  font: inherit;
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 0 18px -8px var(--lime), 0 10px 28px -12px rgba(0, 0, 0, 0.75);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
  -webkit-tap-highlight-color: transparent;
}

.music:hover,
.music:focus-visible {
  border-color: var(--lime);
  color: #fff;
  box-shadow: 0 0 22px -4px var(--lime), 0 10px 28px -12px rgba(0, 0, 0, 0.75);
}

.music.is-on {
  border-color: var(--lime);
  color: #fff;
  box-shadow: 0 0 24px -4px var(--lime), inset 0 0 14px -6px var(--lime), 0 10px 28px -12px rgba(0, 0, 0, 0.75);
}

.music__meter {
  display: inline-flex;
  align-items: flex-end;
  gap: 3px;
  height: 16px;
}

.music__meter i {
  width: 3px;
  height: 100%;
  border-radius: 2px;
  background: var(--lime);
  box-shadow: 0 0 6px rgba(200, 255, 61, 0.8);
  transform-origin: 50% 100%;
  transform: scaleY(0.22);
  transition: transform 0.3s ease;
}

.music__meter i:nth-child(2) { transform: scaleY(0.4); }
.music__meter i:nth-child(3) { transform: scaleY(0.3); }

/* playing: the four bars show the groove: kick, rolling bass, offbeat hat, bass again (synced to the song) */
.music.is-on .music__meter i:nth-child(1) { animation: music-kick 0.41379s linear infinite; }
.music.is-on .music__meter i:nth-child(2) { animation: music-roll 0.41379s linear infinite; }
.music.is-on .music__meter i:nth-child(3) { animation: music-hat 0.41379s linear infinite; }
.music.is-on .music__meter i:nth-child(4) { animation: music-tick 0.41379s linear infinite; }
.music.is-loading .music__meter i { animation: music-wait 0.8s ease-in-out infinite alternate; }
.music.is-loading .music__meter i:nth-child(2) { animation-delay: -0.2s; }
.music.is-loading .music__meter i:nth-child(3) { animation-delay: -0.4s; }
.music.is-loading .music__meter i:nth-child(4) { animation-delay: -0.6s; }

.music__state {
  min-width: 1.5em;
  color: var(--lime);
  text-shadow: 0 0 8px rgba(200, 255, 61, 0.6);
}

@keyframes music-kick { 0% { transform: scaleY(1); } 30%, 100% { transform: scaleY(0.25); } }
@keyframes music-roll {
  0%, 22% { transform: scaleY(0.25); } 25% { transform: scaleY(0.85); } 45% { transform: scaleY(0.35); }
  50% { transform: scaleY(0.8); } 70% { transform: scaleY(0.35); } 75% { transform: scaleY(0.9); } 97%, 100% { transform: scaleY(0.3); }
}
@keyframes music-hat { 0%, 47% { transform: scaleY(0.3); } 50% { transform: scaleY(1); } 72%, 100% { transform: scaleY(0.3); } }
@keyframes music-tick {
  0% { transform: scaleY(0.55); } 15%, 22% { transform: scaleY(0.25); } 25% { transform: scaleY(0.6); } 40%, 47% { transform: scaleY(0.25); }
  50% { transform: scaleY(0.5); } 65%, 72% { transform: scaleY(0.25); } 75% { transform: scaleY(0.65); } 90%, 100% { transform: scaleY(0.25); }
}
@keyframes music-wait { from { transform: scaleY(0.2); } to { transform: scaleY(0.9); } }

/* phones and small tablets: a smaller switch (no "Music" word), a little closer to the corner,
   so it keeps clear of the glowing ring (the language switch has the left corner) */
@media (max-width: 700px) {
  .music {
    top: calc(12px + env(safe-area-inset-top));
    right: calc(12px + env(safe-area-inset-right));
    gap: 7px;
    min-height: 40px;
    padding: 6px 12px 6px 11px;
    font-size: 0.9rem;
  }
  .music__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}

/* ---------- lightbox ---------- */

.lightbox {
  width: min(94vw, 1200px);
  max-width: none;
  max-height: 92vh;
  padding: 0;
  border: 1.5px solid var(--c, var(--streak));
  border-radius: 20px;
  background: var(--blacklight);
  color: var(--ink);
  box-shadow: 0 0 60px -10px var(--c, var(--streak));
  overflow: hidden;
}

.lightbox::backdrop {
  background: rgba(8, 5, 20, 0.86);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.lightbox[open] { animation: pop-in 0.35s var(--ease-out); }

@keyframes pop-in { from { opacity: 0; transform: scale(0.96); } }

.lightbox img {
  width: 100%;
  height: auto;
  max-height: calc(92vh - 56px);
  object-fit: contain;
  background: #07051a;
}

.lightbox__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 8px 10px 8px 20px;
}

.lightbox__caption { flex: 1; text-shadow: 0 0 10px var(--c, var(--streak)); }

.lightbox__nav { display: flex; gap: 8px; }

.lightbox__btn {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.lightbox__btn svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.lightbox__btn:hover,
.lightbox__btn:focus-visible { border-color: var(--c, var(--streak)); box-shadow: 0 0 16px -4px var(--c, var(--streak)); }

.lightbox__counter { color: var(--ink-3); font-size: 0.9rem; margin-right: 6px; align-self: center; }

/* older browsers without small-viewport units */
@supports not (height: 1svh) {
  .hero__inner { --size: clamp(248px, min(80vw, 46vh), 470px); }
  .title { --sign-size: clamp(92px, min(25vw, 17vh), 196px); }
}

/* ==========================================================================
   Responsive tweaks
   ========================================================================== */

@media (max-width: 560px) {
  body { font-size: 1.0625rem; }
  .chips li { font-size: 0.9rem; padding: 4px 12px 5px; }
  .btn { min-width: 138px; padding: 11px 22px 12px; }
  .slideshow__stage { border-radius: 18px; }
  .slideshow__track { aspect-ratio: 5 / 4; }
  .slideshow__arrow { width: 40px; height: 40px; margin-top: -20px; }
  .slideshow__arrow--prev { left: 8px; }
  .slideshow__arrow--next { right: 8px; }
  .slideshow__caption { left: 10px; bottom: 10px; font-size: 0.92rem; }
  .thumb { width: 52px; height: 52px; border-radius: 12px; }
  .thread-list { padding-left: 34px; }
  .thread-list::before { left: 7px; }
  .thread-list li::before { left: -33px; width: 12px; height: 12px; }
}

@media (max-width: 440px) {
  /* seven icons have to fit across a phone: they shrink a little on the narrowest screens */
  .quick { --g: 6px; --q: clamp(38px, calc((100vw - 2 * var(--gutter) - 6 * var(--g)) / 7 - 0.5px), 46px); }
  .quick__link svg { width: 19px; height: 19px; }
  .quick__link svg.is-wide { width: 23px; height: 23px; }
}

@media (min-width: 561px) and (max-width: 860px) {
  .slideshow__track { aspect-ratio: 4 / 3; }
}

@media (hover: none) {
  .link:hover { animation: none; }
}

/* ==========================================================================
   Reduced motion: everything is simply switched on
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .slideshow__track { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  .avatar__body::before,
  .rainbow,
  .title__name .tube,
  .fan,
  .scroll-cue::after { animation: none !important; }

  .lasers { opacity: 0.6; }
  .fan--left { transform: rotate(-30deg); }
  .fan--right { transform: rotate(30deg); }
  .js .sign { color: var(--lit); text-shadow: var(--glow); }
  .scroll-cue { opacity: 1; }
  .scroll-cue::after { opacity: 1; transform: translateY(16px); }
  .halo { transform: none !important; }
  .hd { animation: none !important; }
  .hd--vortex { display: block !important; visibility: visible !important; opacity: 1 !important; }
  .avatar.is-popcorning .avatar__body,
  .avatar.is-purring .avatar__body { animation: none !important; }
}
