/* GrowAudio — widget storefrontowy (RWD + Storefront). Presety A/B/C wg tokenów z HANDOFF.
   Bez cookies, bez @import, bez obrazków i data: URI; dziedziczy font i --accent z szablonu.
   Układ zależy od szerokości bloku (container queries), nie ekranu: wąska kolumna karty
   produktu na komputerze dostaje ten sam układ co telefon. Ruch tylko transform/opacity. */

/* ── tokeny ───────────────────────────────────────────────────────────── */
.growaudio{
  /* tokeny presetów (HANDOFF) */
  --ga-accent:var(--accent,#111);
  --ga-wave-h:64px;
  --ga-wave-played:currentColor;
  --ga-btn-size:48px;
  --ga-radius:12px;
  --ga-row-h:48px;
  --ga-font:500 14px inherit; /* dokumentacyjny: skrót z „inherit” jest nieważny w CSS, stąd --ga-fw/--ga-fs */
  --ga-bg:#f6f6f8;
  --ga-mini-h:64px;
  /* tokeny semantyczne */
  --ga-fw:500;
  --ga-fs:14px;
  --ga-on-accent:#fff;          /* ikona na akcencie: w.js dobiera #fff albo #111 (≥ 3:1) */
  --ga-color:#1c1917;
  --ga-muted:#5f5a55;           /* 6,3:1 na #f6f6f8, 6,9:1 na #fff */
  --ga-line:rgba(28,25,23,.11);
  --ga-line-strong:rgba(28,25,23,.22);
  --ga-hover:rgba(28,25,23,.05);
  --ga-tint:rgba(28,25,23,.06);
  --ga-wave-base:rgba(28,25,23,.2);
  --ga-focus:#1c1917;
  --ga-dur:180ms;
  --ga-ease:cubic-bezier(.2,.7,.2,1);
  container-type:inline-size;
  display:block;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  margin:0;
  font-family:inherit;
  font-size:var(--ga-fs);
  font-weight:var(--ga-fw);
  line-height:1.4;
  letter-spacing:normal;
  text-align:left;
  color:var(--ga-color);
  background:var(--ga-bg);
  border-radius:var(--ga-radius);
  -webkit-tap-highlight-color:transparent;
}
@supports (color:color-mix(in srgb,red,blue)){
  .growaudio{--ga-tint:color-mix(in srgb,var(--ga-accent) 10%,transparent)}
}
.growaudio[data-preset="a"]{--ga-accent:var(--accent,#111);--ga-wave-h:64px;--ga-wave-played:linear-gradient(90deg,#7b2ff7,#f107a3);--ga-btn-size:48px;--ga-radius:12px;--ga-font:500 14px inherit;--ga-bg:#f6f6f8;--ga-mini-h:64px;--ga-row-h:48px;--ga-fw:500;--ga-fs:14px}
.growaudio[data-preset="b"]{--ga-accent:var(--accent,#15803d); /* batch8: #15803d = 5.01:1 na bieli (było #1db954 2.59:1, #169c46 3.57:1) */--ga-wave-h:0;--ga-btn-size:32px;--ga-radius:6px;--ga-font:400 14px inherit;--ga-bg:transparent;--ga-mini-h:64px;--ga-row-h:48px;--ga-fw:400;--ga-fs:14px;--ga-color:inherit}
.growaudio[data-preset="c"]{--ga-accent:var(--accent,#111);--ga-wave-h:24px;--ga-wave-played:currentColor;--ga-btn-size:32px;--ga-radius:999px;--ga-font:500 12px inherit;--ga-bg:#fff;--ga-mini-h:56px;--ga-row-h:40px;--ga-fw:500;--ga-fs:12px;--ga-wave-base:rgba(28,25,23,.18)}
@supports (color:color-mix(in srgb,red,blue)){
  /* B leży na tle sklepu i dziedziczy kolor tekstu: wyciszenia liczymy od currentColor */
  .growaudio[data-preset="b"]{--ga-muted:color-mix(in srgb,currentColor 72%,transparent);--ga-line:color-mix(in srgb,currentColor 12%,transparent);--ga-line-strong:color-mix(in srgb,currentColor 28%,transparent);--ga-hover:color-mix(in srgb,currentColor 5%,transparent);--ga-focus:currentColor}
}

/* ── reset w obrębie widgetu (motywy stylują button/ol/li globalnie) ─────── */
.growaudio *,.growaudio *::before,.growaudio *::after{box-sizing:border-box}
.growaudio button{
  -webkit-appearance:none;appearance:none;margin:0;min-width:0;min-height:0;
  font:inherit;letter-spacing:normal;text-transform:none;text-shadow:none;line-height:1.2;
  box-shadow:none;cursor:pointer;
}
.growaudio :focus{outline:none}
.growaudio :focus-visible{outline:2px solid var(--ga-focus);outline-offset:2px}

/* slot wstawiany po przycisku koszyka: w kolumnie bierze całą szerokość, w rzędzie flex dzieli miejsce,
   w zawijanym rzędzie przechodzi do nowej linii, zamiast kurczyć się do szerokości treści */
.growaudio-slot{display:block;flex:1 1 340px;min-width:min(100%,260px);max-width:100%;margin-top:16px}

/* ── przycisk ▶ (wspólny) ─────────────────────────────────────────────── */
.growaudio .ga-btn{
  position:relative;flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;
  width:var(--ga-btn-size);height:var(--ga-btn-size);padding:0;
  border:0;border-radius:50%;
  background:var(--ga-accent);color:var(--ga-on-accent);
  transition:transform var(--ga-dur) var(--ga-ease);
}
.growaudio .ga-btn svg{display:block;width:42%;height:42%;fill:currentColor}
.growaudio .ga-btn:not([aria-pressed="true"]) svg{transform:translateX(6%)} /* optyczny środek trójkąta */
.growaudio .ga-btn:active{transform:scale(.94)}
@media (hover:hover){
  .growaudio .ga-btn:hover{transform:scale(1.06)}
  .growaudio .ga-btn:active{transform:scale(.94)}
}
.growaudio .ga-btn.is-buffering svg{opacity:0}
.growaudio .ga-btn.is-buffering::after{
  content:"";position:absolute;inset:0;margin:auto;width:40%;height:40%;border-radius:50%;
  border:2px solid currentColor;border-right-color:transparent;border-bottom-color:transparent;
  animation:ga-spin .8s linear infinite;
}

/* ▶ w wierszach listy: obrysowany, wypełnia się na aktywnym wierszu */
.growaudio .ga-row .ga-btn{
  width:32px;height:32px;
  background:transparent;color:var(--ga-color);
  box-shadow:inset 0 0 0 1.5px var(--ga-line-strong);
}
.growaudio .ga-row .ga-btn svg{width:40%;height:40%}
.growaudio .ga-row.is-active .ga-btn{background:var(--ga-accent);color:var(--ga-on-accent);box-shadow:none}
@media (hover:hover){
  .growaudio .ga-row .ga-btn:hover{box-shadow:inset 0 0 0 1.5px var(--ga-color)}
  .growaudio .ga-row.is-active .ga-btn:hover{box-shadow:none}
}

/* ── nagłówek odtwarzacza ─────────────────────────────────────────────── */
.growaudio .ga-head{display:flex;align-items:center;gap:12px;padding:16px 18px;min-width:0}
.growaudio .ga-wave{
  position:relative;flex:1 1 auto;min-width:60px;height:var(--ga-wave-h);
  border-radius:6px;cursor:pointer;touch-action:manipulation;
}
.growaudio .ga-wave canvas{display:block;width:100%;height:100%}
.growaudio .ga-wave .ga-wave-tip{
  position:absolute;top:-34px;left:0;z-index:2;transform:translateX(-50%);
  padding:5px 8px;border-radius:6px;background:#1c1917;color:#fff;
  font-size:12px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;
  pointer-events:none;opacity:0;transition:opacity 100ms linear;
}
.growaudio .ga-wave .ga-wave-tip::after{
  content:"";position:absolute;left:50%;bottom:-4px;width:8px;height:8px;margin-left:-4px;
  background:inherit;transform:rotate(45deg);border-radius:1px;
}
.growaudio .ga-wave:hover .ga-wave-tip,.growaudio .ga-wave:focus-visible .ga-wave-tip{opacity:1}
.growaudio .ga-times{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ga-muted)}
.growaudio .ga-times .ga-cur{font-weight:600;color:var(--ga-color)}

/* prędkość (audiobook) */
.growaudio .ga-speed{display:flex;gap:2px;flex:0 0 auto;padding:2px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--ga-line-strong)}
.growaudio .ga-speed button{
  min-width:40px;height:28px;padding:0 8px;border:0;border-radius:999px;
  background:transparent;color:var(--ga-color);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;
}
.growaudio .ga-speed button[aria-pressed="true"]{background:var(--ga-accent-ink,color-mix(in srgb,var(--ga-accent) 60%,#000));color:#fff} /* tekst: ink ≥ 4.5:1 (ContrastTest) */
@media (hover:hover){.growaudio .ga-speed button[aria-pressed="false"]:hover{background:var(--ga-hover)}}

/* ── zakładki (clean / crunch / lead) ──────────────────────────────────── */
.growaudio .ga-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 12px}
.growaudio .ga-tabs button{
  height:32px;padding:0 14px;border:0;border-radius:999px;
  background:transparent;color:var(--ga-color);box-shadow:inset 0 0 0 1px var(--ga-line-strong);
  font-size:13px;font-weight:600;
}
.growaudio .ga-tabs button[aria-selected="true"]{background:var(--ga-accent-ink,color-mix(in srgb,var(--ga-accent) 60%,#000));color:#fff;box-shadow:none}
@media (hover:hover){.growaudio .ga-tabs button[aria-selected="false"]:hover{background:var(--ga-hover)}}

/* ── lista utworów ────────────────────────────────────────────────────── */
.growaudio .ga-list{list-style:none;margin:0;padding:6px 8px 10px;display:flex;flex-direction:column;gap:2px}
.growaudio .ga-row{
  position:relative;display:flex;align-items:center;gap:12px;
  min-height:var(--ga-row-h);margin:0;padding:6px 10px;border-radius:8px;cursor:pointer;
}
.growaudio .ga-row::marker{content:none}
.growaudio .ga-nr{flex:0 0 18px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ga-muted)}
.growaudio .ga-title{
  flex:1 1 auto;min-width:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  overflow-wrap:anywhere;text-wrap:pretty;
}
.growaudio .ga-time{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ga-muted)}
.growaudio .ga-rowbar{position:absolute;left:10px;right:10px;bottom:3px;height:2px;border-radius:2px;background:transparent;overflow:hidden}
.growaudio .ga-row.is-active{background:var(--ga-tint)}
.growaudio .ga-row.is-active .ga-title{font-weight:600}
.growaudio .ga-row.is-active .ga-rowbar{background:var(--ga-line)}
.growaudio .ga-row.is-active .ga-rowbar i{display:block;height:100%;width:0;background:var(--ga-accent)}
.growaudio .ga-row[hidden]{display:none}
@media (hover:hover){
  .growaudio .ga-row:not(.is-active):hover{background:var(--ga-hover)}
  .growaudio[data-preset="b"] .ga-row:not(.is-active):hover .ga-btn{background:var(--ga-accent);color:var(--ga-on-accent);box-shadow:none}
}

/* błąd odtwarzania */
.growaudio .ga-error{
  display:flex;align-items:flex-start;gap:8px;
  margin:4px 18px 16px;padding:10px 12px;border-radius:10px;
  background:#fdf0ee;color:#a3271c;font-size:13px;font-weight:500;line-height:1.4;
}
.growaudio .ga-error::before{
  content:"!";flex:0 0 18px;height:18px;border-radius:50%;
  background:#a3271c;color:#fff;font-size:12px;font-weight:700;line-height:18px;text-align:center;
}
.growaudio .ga-error[hidden]{display:none}

/* ── Preset A „Waveform”: karta, duży ▶, fala z czasami pod końcami ──────── */
.growaudio[data-preset="a"] .ga-head{
  display:grid;grid-template-columns:var(--ga-btn-size) minmax(0,1fr) auto;
  grid-template-areas:"btn wave speed" "btn times speed";
  align-items:center;column-gap:0;row-gap:0;padding:18px 20px 14px;
  font-size:0; /* tekst „ / ” z .ga-times staje się anonimowym elementem siatki: bez wysokości linii */
}
.growaudio[data-preset="a"] .ga-head > .ga-btn{grid-area:btn;box-shadow:0 6px 16px -6px rgba(28,25,23,.45)}
.growaudio[data-preset="a"] .ga-wave{grid-area:wave;margin-left:16px}
.growaudio[data-preset="a"] .ga-times{display:contents;font-size:0}
.growaudio[data-preset="a"] .ga-cur,.growaudio[data-preset="a"] .ga-total{grid-area:times;margin-top:8px;font-size:12px;line-height:1}
.growaudio[data-preset="a"] .ga-cur{justify-self:start;margin-left:16px}
.growaudio[data-preset="a"] .ga-total{justify-self:end;color:var(--ga-muted)}
.growaudio[data-preset="a"] .ga-speed{grid-area:speed;margin-left:16px}
.growaudio[data-preset="a"] .ga-list{border-top:1px solid var(--ga-line);margin:0 12px;padding:6px 0 10px}
.growaudio[data-preset="a"] .ga-row[aria-current="true"]{box-shadow:inset 3px 0 0 var(--ga-accent)}
.growaudio[data-preset="a"] .ga-tabs{padding:0 20px 12px}

/* ── Preset B „Lista utworów”: tabela nr · tytuł · czas · ▶ na tle sklepu ─── */
.growaudio[data-preset="b"] .ga-head{display:none}
.growaudio[data-preset="b"] .ga-head:has(.ga-speed){display:flex;justify-content:flex-end;padding:0 0 10px}
.growaudio[data-preset="b"] .ga-head > :not(.ga-speed){display:none}
.growaudio[data-preset="b"] .ga-wave,.growaudio[data-preset="b"] canvas{display:none}
.growaudio[data-preset="b"] .ga-tabs{padding:0 0 12px}
.growaudio[data-preset="b"] .ga-list{padding:0;gap:0;border-top:1px solid var(--ga-line)}
.growaudio[data-preset="b"] .ga-row{border-radius:0;padding:6px 6px 6px 10px;border-bottom:1px solid var(--ga-line)}
.growaudio[data-preset="b"] .ga-nr{order:1;flex-basis:22px;text-align:left}
.growaudio[data-preset="b"] .ga-title{order:2}
.growaudio[data-preset="b"] .ga-time{order:3}
.growaudio[data-preset="b"] .ga-row .ga-btn{order:4;width:var(--ga-btn-size);height:var(--ga-btn-size)}
.growaudio[data-preset="b"] .ga-row.is-active{box-shadow:inset 3px 0 0 var(--ga-accent)}
.growaudio[data-preset="b"] .ga-row.is-active .ga-nr{color:inherit;font-weight:600}
.growaudio[data-preset="b"] .ga-rowbar{left:0;right:0;bottom:-1px}
.growaudio[data-preset="b"] .ga-error{margin:10px 0 0}

/* ── Preset C „Kompakt”: pigułka 40 px (▶ · pasek · czas), lista drobnym drukiem ── */
.growaudio[data-preset="c"]{background:transparent;border-radius:0}
.growaudio[data-preset="c"] .ga-head{
  height:var(--ga-row-h);min-height:0;gap:10px;padding:0 14px 0 4px;
  background:var(--ga-bg);border-radius:var(--ga-radius);box-shadow:inset 0 0 0 1px var(--ga-line-strong);
}
.growaudio[data-preset="c"] .ga-head > .ga-btn{width:32px;height:32px}
.growaudio[data-preset="c"] .ga-speed{box-shadow:none;padding:0}
.growaudio[data-preset="c"] .ga-speed button{min-width:34px;height:26px;padding:0 6px}
.growaudio[data-preset="c"] .ga-tabs{padding:10px 0 0}
.growaudio[data-preset="c"] .ga-tabs button{height:28px;padding:0 12px;font-size:12px}
.growaudio[data-preset="c"] .ga-list{padding:6px 0 0;gap:0}
.growaudio[data-preset="c"] .ga-row{gap:10px;padding:4px 10px 4px 4px;border-radius:999px}
.growaudio[data-preset="c"] .ga-row .ga-btn{width:28px;height:28px}
.growaudio[data-preset="c"] .ga-rowbar{left:44px;right:14px;bottom:2px}
.growaudio[data-preset="c"] .ga-error{margin:8px 0 0;font-size:12px}

/* ── wąski blok (telefon albo wąska kolumna karty produktu) ──────────────── */
@container (max-width:480px){
  .growaudio[data-preset="a"] .ga-wave{height:40px} /* kontener nie może stylować sam siebie: wysokość na potomku */
  .growaudio[data-preset="a"] .ga-head{padding:14px 14px 12px;grid-template-areas:"btn wave" "btn times";grid-template-columns:var(--ga-btn-size) minmax(0,1fr)}
  .growaudio[data-preset="a"] .ga-head:has(.ga-speed){grid-template-areas:"btn wave" "btn times" "speed speed"}
  .growaudio[data-preset="a"] .ga-wave,.growaudio[data-preset="a"] .ga-cur{margin-left:12px}
  .growaudio[data-preset="a"] .ga-speed{margin:12px 0 0;justify-self:start}
  .growaudio[data-preset="a"] .ga-list{margin:0 6px}
  .growaudio[data-preset="a"] .ga-tabs{padding:0 14px 12px}
  .growaudio .ga-row{gap:10px;padding:6px 8px}
  .growaudio[data-preset="c"] .ga-head{height:52px;padding:0 14px 0 4px}
  .growaudio[data-preset="c"] .ga-head > .ga-btn{width:44px;height:44px}
  .growaudio[data-preset="c"] .ga-row{min-height:44px}
}
@media (pointer:coarse){
  .growaudio[data-preset="a"] .ga-head > .ga-btn,.growaudio[data-preset="c"] .ga-head > .ga-btn{min-width:44px;min-height:44px}
  .growaudio .ga-row{min-height:max(var(--ga-row-h),44px)}
  .growaudio .ga-tabs button,.growaudio .ga-speed button{min-height:36px}
}

/* ── mini-player (globalny, poza blokiem) ─────────────────────────────── */
.ga-mini{
  --ga-accent:var(--accent,#111);--ga-on-accent:#fff;--ga-color:#1c1917;--ga-muted:#5f5a55;
  --ga-line:rgba(28,25,23,.12);--ga-focus:#1c1917;--ga-btn-size:44px;--ga-dur:180ms;--ga-ease:cubic-bezier(.2,.7,.2,1);
  position:fixed;z-index:2147483000;
  left:max(8px,calc(50% - 400px));right:max(8px,calc(50% - 400px));bottom:calc(8px + env(safe-area-inset-bottom,0px));
  box-sizing:border-box;height:var(--ga-mini-h,64px);
  display:flex;align-items:center;gap:12px;padding:0 8px 0 10px;
  border-radius:16px;background:#fff;color:var(--ga-color);
  box-shadow:0 0 0 1px var(--ga-line),0 12px 32px -8px rgba(28,25,23,.32);
  font-family:inherit;font-size:13px;font-weight:500;line-height:1.25;letter-spacing:normal;text-align:left;
  animation:ga-mini-in 220ms var(--ga-ease);
}
.ga-mini *,.ga-mini *::before,.ga-mini *::after{box-sizing:border-box}
.ga-mini[hidden]{display:none}
.ga-mini button{-webkit-appearance:none;appearance:none;margin:0;font:inherit;letter-spacing:normal;text-transform:none;box-shadow:none;cursor:pointer;min-width:0;min-height:0}
.ga-mini :focus{outline:none}
.ga-mini :focus-visible{outline:2px solid var(--ga-focus);outline-offset:2px}
.ga-mini .ga-btn{
  position:relative;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;
  background:var(--ga-accent);color:var(--ga-on-accent);transition:transform var(--ga-dur) var(--ga-ease);
}
.ga-mini .ga-btn svg{display:block;width:42%;height:42%;fill:currentColor}
.ga-mini .ga-btn:not([aria-pressed="true"]) svg{transform:translateX(6%)}
@media (hover:hover){.ga-mini .ga-btn:hover{transform:scale(1.06)}}
.ga-mini .ga-btn:active{transform:scale(.94)}
.ga-mini-fig{flex:0 1 280px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ga-mini-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ga-mini-product{font-size:12px;font-weight:400;color:var(--ga-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ga-mini-progress{position:relative;flex:1 1 auto;min-width:40px;height:20px;cursor:pointer}
.ga-mini-progress::before{content:"";position:absolute;left:0;right:0;top:8px;height:4px;border-radius:2px;background:var(--ga-line)}
.ga-mini-progress i{position:absolute;left:0;top:8px;display:block;height:4px;width:0;border-radius:2px;background:var(--ga-accent)}
.ga-mini-time{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ga-muted)}
.ga-mini-atc{
  flex:0 0 auto;height:36px;padding:0 16px;border:0;border-radius:999px;
  background:var(--ga-accent-ink,color-mix(in srgb,var(--ga-accent) 60%,#000));color:#fff;font-size:13px;font-weight:600;white-space:nowrap;
}
.ga-mini-close{
  position:relative;flex:0 0 auto;width:36px;height:36px;padding:0;border:0;border-radius:50%;
  background:transparent;color:var(--ga-muted);font-size:0;
}
.ga-mini-close::before,.ga-mini-close::after{
  content:"";position:absolute;left:50%;top:50%;width:14px;height:1.75px;margin:-1px 0 0 -7px;
  border-radius:1px;background:currentColor;transform:rotate(45deg);
}
.ga-mini-close::after{transform:rotate(-45deg)}
@media (hover:hover){.ga-mini-close:hover{background:rgba(28,25,23,.06);color:var(--ga-color)}}
@media (max-width:600px){
  .ga-mini{gap:10px;padding:0 6px 0 8px}
  .ga-mini-fig{flex:1 1 auto}
  .ga-mini-progress{position:absolute;left:16px;right:16px;bottom:0;height:10px;min-width:0}
  .ga-mini-progress::before,.ga-mini-progress i{top:auto;bottom:5px;height:3px}
  .ga-mini-time{display:none}
  .ga-mini-atc{height:36px;padding:0 12px}
}
@media (max-width:360px){
  .ga-mini{gap:8px}
  .ga-mini .ga-btn{width:44px;height:44px}
  .ga-mini-atc{padding:0 10px;font-size:12px}
  .ga-mini-close{width:32px}
}

/* ── ▶ na kafelku listingu: hostem jest kontener kafelka, nie `<a>` produktu (batch8) ── */
.ga-tile-btn{
  --ga-accent:var(--accent,#111);
  position:absolute;top:10px;right:10px;z-index:5;
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;
  -webkit-appearance:none;appearance:none;cursor:pointer;
  background:#111;color:#fff;
  box-shadow:0 0 0 2px rgba(255,255,255,.9),0 6px 16px -4px rgba(0,0,0,.4);
  transition:transform 180ms cubic-bezier(.2,.7,.2,1);
}
.ga-tile-btn svg{display:block;width:40%;height:40%;fill:currentColor;transform:translateX(6%)}
@media (hover:hover){.ga-tile-btn:hover{transform:scale(1.08)}}
.ga-tile-btn:active{transform:scale(.94)}
.ga-tile-btn:focus{outline:none}
.ga-tile-btn:focus-visible{outline:2px solid #111;outline-offset:3px}
.ga-tile-btn.is-active{background:#fff;color:#111;box-shadow:0 0 0 3px var(--ga-accent),0 6px 16px -4px rgba(0,0,0,.4)}
.growaudio-tile{position:relative}

/* ── ruch, kontrast wymuszony ─────────────────────────────────────────── */
@keyframes ga-spin{to{transform:rotate(360deg)}}
@keyframes ga-mini-in{from{opacity:0;transform:translateY(12px)}}
@media (prefers-reduced-motion:reduce){
  .growaudio *,.growaudio *::before,.growaudio *::after,.ga-mini,.ga-mini *,.ga-tile-btn{transition:none !important;animation:none !important}
  .growaudio .ga-btn:hover,.ga-mini .ga-btn:hover,.ga-tile-btn:hover{transform:none}
}
@media (forced-colors:active){
  .growaudio .ga-btn,.ga-mini .ga-btn,.ga-tile-btn,.growaudio .ga-tabs button,.growaudio .ga-speed button{border:1px solid ButtonText}
  .growaudio .ga-row.is-active{outline:2px solid Highlight}
}
