/* ══════════════════════════════════════════════════════════════════════════
   v3/adopt.css — Legacy-Bewegung in das v3-Bewegungssystem uebernehmen
   (25.09.2026)

   Die ~30 Legacy-Sheets bringen 36 eigene Keyframes mit, davon vier
   identische Spinner, fuenf gleiche Blenden und ein Dutzend Dauerpulse.
   Statt jedes Sheet anzufassen (und damit auch die eingefrorene Legacy-Shell
   zu veraendern), bildet diese Datei die Legacy-Selektoren NUR in v3 auf die
   claw-*-Primitive aus v3/motion.css ab. Dazu:
     - Dauerpulse laufen nur bei voller Bewegung (ruhig/aus: stehen still),
     - Hover-Lifts und Press-Scales entfallen (Apple: Toenung statt Heben),
     - zwei Legacy-Namen bleiben als Alias erlaubt: msgFadeIn (inline an
       #chat-tool-indicator, definiert in phase-z.css) und voidPulse (inline im
       Curiosity-Tile "The Void" - fehlte in v3 bisher ganz).

   Normale Deklarationen im Layer panels schlagen jede Legacy-Regel. Nur was
   ein UNGELAYERTES Sheet setzt (godseye-panel.css wird zusaetzlich direkt
   verlinkt), braucht den trump-Block am Ende.
   ══════════════════════════════════════════════════════════════════════════ */

@keyframes voidPulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

@layer panels {

/* ── Ladeanzeigen: ein Spinner ─────────────────────────────────────────────
   Einzige Endlos-Animation, die auch bei "aus" laeuft (Fortschritt ist
   Information, keine Dekoration) - Ausnahme im trump-Block. */
.factory-btn .spin,
.x-reels-action-btn.is-busy::before,
.arch-loading svg {
  animation: claw-spin .8s linear infinite;
}

/* ── Blenden und Auftritte ─────────────────────────────────────────────── */
.dreaming-modal-backdrop,
.sticker-egg-backdrop {
  animation: claw-fade-in var(--dur-2) var(--ease-out) backwards;
}
.sticker-egg-detail,
.wb-section {
  animation: claw-rise var(--dur-3) var(--spring-gentle) backwards;
}
.sticky.sn-new {
  --cc-rise-y: 0px; --cc-rise-scale: .94;
  animation: claw-rise var(--dur-3) var(--spring-snappy) backwards;
}
.akh-pet-panel {
  --cc-rise-y: 6px; --cc-rise-scale: .98;
  transform-origin: 100% 100%;
  animation: claw-rise var(--dur-3) var(--spring-snappy) backwards;
}
.wb-tab.is-active::after {
  transform-origin: 50% 50%;
  animation: claw-underline var(--dur-3) var(--spring-gentle) backwards;
}

/* ── Statuspunkte: "alles ok" steht still ─────────────────────────────────
   Ein Dutzend dauerhaft pulsierender Ok-Punkte (Kanaele, MCP, Header) ist das
   Gegenteil von ruhig. Ok ist der Normalzustand und bewegt sich nicht. */
:is(.v-dot-ok, .mcp-dot-connected, .events-ticker-dot) { animation: none; }

/* ── Dauerpulse nur fuer echte Aktivitaet, und nur bei voller Bewegung ───── */
:root[data-motion="full"] :is(
  .dreaming-pill.on .dreaming-pill-dot,
  .factory-boss-pill.is-planning .dot, .factory-boss-pill.is-reviewing .dot,
  .factory-boss-pill.is-executing .dot,
  .x-reels-hero-meta .lr-dot,
  .akh-pet[data-state="running"] .akh-pet-status-dot,
  .akh-pet[data-state="review"] .akh-pet-status-dot,
  .akh-pet[data-state="waiting"] .akh-pet-status-dot,
  .voice-pulse.connecting, .voice-pulse.thinking, .voice-pulse.speak
) {
  animation: claw-breathe 2.4s var(--ease-standard) infinite;
}
:root[data-motion="full"] .factory-agent-status.is-building::before {
  animation: claw-breathe 2.4s var(--ease-standard) infinite;
}
:root[data-motion="full"] .voice-wave i {
  transform-origin: 50% 100%;
  animation: claw-wave 1.1s var(--ease-standard) infinite;
}
:root[data-motion="full"] .polish-skeleton {
  animation: claw-shimmer 1.6s linear infinite;
}
:root:not([data-motion="full"]) :is(
  .dreaming-pill.on .dreaming-pill-dot,
  .factory-boss-pill .dot,
  .x-reels-hero-meta .lr-dot,
  .akh-pet .akh-pet-status-dot,
  .voice-pulse, .voice-wave i, .polish-skeleton
),
:root:not([data-motion="full"]) .factory-agent-status.is-building::before {
  animation: none;
}

/* ── Keine Lifts: Toenung statt Heben ─────────────────────────────────────
   v3 hatte nur box-shadow/background der Karten zurueckgesetzt; das
   translateY der Legacy-Hover lief in einem Dutzend Komponenten weiter. */
.stat-card:hover, .memory-hi-item:hover, .tk-card:hover,
.x-reels-card:hover, .x-reels-pill:hover, .trading-bot-card:hover,
.factory-task:hover, .dreaming-phase:hover, .sticker-egg-item:hover,
.sticker-egg-item:hover img, .ov-margin-action:hover,
.voice-action:active, .voice-mute:active, .wb-btn:active,
.sticky-swatch:hover, #sticky-fab:hover, #sticky-fab:active {
  transform: none;
}
.x-reels-card:hover, .trading-bot-card:hover, .dreaming-phase:hover,
.sticker-egg-item:hover, .factory-task:hover,
[data-theme="dark"] .x-reels-card:hover,
:is([data-theme="dark"], [data-theme="narr"]) .trading-bot-card:hover {
  box-shadow: none;
}
#header-sparkle-trigger:hover, #header-sparkle-static:hover {
  transform: none;
  filter: none;
}

/* ── Signet-Modus (v3, __SHELL_AKHILIUS='mark') ──────────────────────────────
   Linus-Entscheidung 25.09.2026: Akhilius nur noch als Signet im Header.
   Illustrationen verschwinden aus der Standardansicht - display:none heisst
   auch: das Bild wird gar nicht erst geladen. akhilius-imagery.js/.css laedt
   v3 nicht mehr; hier stehen die Reste aus anderen Sheets. */
.factory-hero::before, [data-theme="dark"] .factory-hero::before,
.factory-empty::before, .wb-hero-img {
  display: none;
}
/* Portraet vor den Kennzahlen der Uebersicht (identity-ui.js) */
#ov-avatar-mini { display: none; }
/* Im Header nur die Strahlen - die gemalte Marotte waere bei 22 px ein
   Farbklecks. */
#header .header-sparkle-live .ns-marotte { display: none; }

/* Leerzustaende (58 Stellen): ruhige Tray-Glyphe statt Sparkle-Bild, eine
   Zeile in der Sekundaerfarbe, gerade statt kursiv. Nur CSS - die
   vorhandenen Aktionen darin bleiben. */
.empty-state {
  font-family: var(--font-sans);
  font-style: normal;
  font-size: var(--fs-sm);
  color: var(--text-3);
  line-height: var(--lh-sm);
  padding: var(--sp-8) var(--sp-4);
}
.empty-state::before {
  width: 22px;
  height: 22px;
  margin: 0 auto var(--sp-2);
  background: currentColor;
  background-image: none;
  opacity: .55;
  filter: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2.5-7.2A2 2 0 0 1 7.4 4.5h9.2a2 2 0 0 1 1.9 1.3L21 13'/%3E%3Cpath d='M3 13v4.5A2.5 2.5 0 0 0 5.5 20h13a2.5 2.5 0 0 0 2.5-2.5V13h-5l-1.5 2.5h-5L8 13z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2.5-7.2A2 2 0 0 1 7.4 4.5h9.2a2 2 0 0 1 1.9 1.3L21 13'/%3E%3Cpath d='M3 13v4.5A2.5 2.5 0 0 0 5.5 20h13a2.5 2.5 0 0 0 2.5-2.5V13h-5l-1.5 2.5h-5L8 13z'/%3E%3C/svg%3E") center / contain no-repeat;
}
span.empty-state::before, .empty-state.no-mark::before { display: none; }

} /* @layer panels */

@layer trump {
  /* godseye-panel.css ist zusaetzlich UNGELAYERT verlinkt (index.html) - nur
     !important aus dem ersten Layer schlaegt das. */
  #godseye-mount .godseye-spin { animation: claw-spin .8s linear infinite !important; }
  /* Fortschritt bleibt sichtbar, auch bei Bewegung "aus". */
  :root[data-motion="off"] :is(.factory-btn .spin, .arch-loading svg, #godseye-mount .godseye-spin),
  :root[data-motion="off"] .x-reels-action-btn.is-busy::before {
    animation-duration: .8s !important;
    animation-iteration-count: infinite !important;
  }
}
