.tc-reading-categories {
  margin: 12px 0 16px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
}

.tc-reading-categories__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tc-reading-categories__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
}

.tc-reading-categories__chip input[type='checkbox'] {
  margin: 0;
}
/**
 * Tarot Clash Royale — UI premium, tipografia ampla (leggibilità 50+).
 * Font: Source Serif 4 (titoli), DM Sans (UI) — caricati via wp_enqueue_style.
 */

:root {
  --bg: #0c0e14;
  --bg-elevated: #12151f;
  --fg: #f0ecf8;
  --muted: #b8b3c8;
  --accent: #d4af37;
  --accent-dim: #9a7b2c;
  --card-surface: #181c28;
  --border: rgba(212, 175, 55, 0.22);
  --border-strong: #2f3548;
  --err: #e88888;
  --ok: #7bc99a;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
  --shadow-soft: 0 4px 24px rgba(0, 0, 0, 0.35);
  /* Tipografia base grande: minimo ~18px equivalente */
  --text-base: 1.125rem;
  --text-lead: 1.25rem;
  --text-small: 1rem;
  --line-body: 1.65;
  --line-tight: 1.35;
  --space: 1.25rem;
  --font-ui: "DM Sans", system-ui, "Segoe UI", Roboto, sans-serif;
  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --tc-mystic-violet: hsl(278 74% 54%);
  --tc-mystic-cyan: hsl(188 82% 60%);
  --tc-mystic-gold: hsl(45 100% 64%);
  --tc-mystic-pink: hsl(324 88% 62%);
}

/* Light theme override (plugin-defined palette, compatible with Bimber) */
body.tc-theme-light,
body.tc-theme-light .tc-app {
  --bg: #f6f7fb;
  --bg-elevated: #ffffff;
  --fg: #161723;
  --muted: #4c5366;
  --accent: #7a4cc7;
  --accent-dim: #5a3aa0;
  --card-surface: #ffffff;
  --border: rgba(20, 25, 40, 0.12);
  --border-strong: rgba(20, 25, 40, 0.18);
  --shadow: 0 14px 40px rgba(15, 18, 28, 0.12);
  --shadow-soft: 0 6px 24px rgba(15, 18, 28, 0.10);
  --err: #c53535;
  --ok: #177a45;
}

body.tc-theme-light.tarot-clash-royale-php,
body.tc-theme-light.tc-body {
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -20%, rgba(122, 76, 199, 0.10), transparent 55%),
    radial-gradient(ellipse 82% 52% at 100% 100%, rgba(25, 180, 200, 0.10), transparent 52%),
    radial-gradient(ellipse 58% 40% at 15% 70%, rgba(212, 175, 55, 0.10), transparent 46%);
  color: var(--fg);
}

body.tc-theme-light .muted { color: var(--muted) !important; }

@media (min-width: 48rem) {
  :root {
    --text-base: 1.1875rem;
    --text-lead: 1.35rem;
  }
}

* { box-sizing: border-box; }

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  /* Wide ad iframes must not widen the document (clip ≠ hidden: avoids extra scroll quirks on some mobile). */
  overflow-x: clip;
}

/* Desktop CLS guard: keep gutter width stable so vw-based typography does not "shrink" when vertical scrollbar appears. */
@media (min-width: 64rem) {
  html {
    scrollbar-gutter: stable;
    overflow-y: scroll;
  }
}

body.tarot-clash-royale-php,
body.tc-body {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-base);
  line-height: var(--line-body);
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -20%, hsl(45 100% 64% / 0.09), transparent 55%),
    radial-gradient(ellipse 82% 52% at 100% 100%, hsl(278 74% 54% / 0.13), transparent 52%),
    radial-gradient(ellipse 58% 40% at 15% 70%, hsl(188 82% 60% / 0.08), transparent 46%);
  color: var(--fg);
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow-x: clip;
}

.tc-app {
  --tc-header-scale: 1;
  --tc-header-text-scale: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

/* ────────────────────────────────────────────────────────────────────────── */
/* Scoped hardening vs theme CSS (Bimber/others) — ONLY inside tc-app.        */
/* Goal: no horizontal cut, stable blocks, safe long words/URLs, safe ads.    */
/* ────────────────────────────────────────────────────────────────────────── */

.tc-app,
.tc-app * {
  min-width: 0;
}

.tc-app {
  max-width: 100%;
}

/* Neutralize theme nowrap / oversized inline content inside the app */
.tc-app :where(p, li, dd, dt, blockquote, pre, code, a, span, div) {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Media & embeds must never expand the document width (exclude AdSense iframes: height:auto breaks creative sizing) */
.tc-app :where(img, svg, video, canvas, embed, object),
.tc-app iframe:not([id^="google_ads_iframe"]):not([src*="googlesyndication"]):not([src*="doubleclick"]) {
  max-width: 100%;
  height: auto;
}

/* AdSense / Ad Ace: keep slots inside container width (exclude anchor/overlay units — see next block) */
.tc-app :where(ins.adsbygoogle:not(.adsbygoogle-noablate), .adsbygoogle:not(.adsbygoogle-noablate)) {
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box;
}

/*
 * Auto Ads anchor / bottom overlay (class adsbygoogle-noablate): do NOT force width:100%.
 * Otherwise the unit inherits a narrow flex ancestor (.tc-app * { min-width:0 }) and renders as a thin strip.
 */
.tc-app ins.adsbygoogle.adsbygoogle-noablate,
.tc-app .adsbygoogle.adsbygoogle-noablate {
  width: auto !important;
  max-width: none !important;
  box-sizing: border-box;
}

/* If an ad script injects an iframe with an explicit width, clamp it. */
.tc-app iframe[id^="google_ads_iframe"],
.tc-app iframe[src*="googlesyndication"],
.tc-app iframe[src*="doubleclick"] {
  max-width: 100% !important;
}

/* Anchor/overlay: override clamp — nested iframes must not inherit a narrow % width */
.tc-app ins.adsbygoogle.adsbygoogle-noablate iframe[id^="google_ads_iframe"],
.tc-app ins.adsbygoogle.adsbygoogle-noablate iframe[src*="googlesyndication"],
.tc-app ins.adsbygoogle.adsbygoogle-noablate iframe[src*="doubleclick"] {
  max-width: none !important;
}

/* Home spread cards: hard-clamp Auto Ads inside card width */
.tc-spread-grid-wrap .tc-spread-card :where(ins.adsbygoogle, .adsbygoogle) {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  box-sizing: border-box;
}

.tc-spread-grid-wrap .tc-spread-card :where(
  iframe[id^="google_ads_iframe"],
  iframe[src*="googlesyndication"],
  iframe[src*="doubleclick"]
) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

.tc-spread-grid-wrap .tc-spread-card :where(
  [id^="aswift_"],
  .google-auto-placed,
  [data-ad-status]
) {
  max-width: 100% !important;
  box-sizing: border-box;
}

.wrap {
  width: 100%;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 4vw, 1.75rem);
  padding-right: clamp(1rem, 4vw, 1.75rem);
}

@media (min-width: 64rem) {
  .wrap {
    max-width: 80rem;
  }
}

/* Section blocks — consistent vertical rhythm */
.tc-section {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.tc-section--ad {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  margin-block: 0.65rem 0.85rem;
}

/* Acima do header: ficar acima do sticky (.tc-header--app z-index 200) e afastar do header para evitar overlap */
.tc-ad-above-header {
  position: relative;
  z-index: 220;
  margin-block: 0.65rem 1rem;
}

/* Primo blocco sotto il notch: se l’ad è prima dell’header, evita contenuto “sotto” la safe area */
.tc-app > .tc-ad-above-header:first-child {
  padding-top: max(0.75rem, constant(safe-area-inset-top));
  padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
}

/* Header */
.top.tc-header {
  background: linear-gradient(180deg, rgba(22, 25, 37, 0.98), rgba(15, 17, 24, 0.95));
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
  position: sticky;
  top: 0;
  z-index: 100;
  padding-top: max(0.75rem, constant(safe-area-inset-top));
  padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
}

.tc-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.brand {
  color: var(--accent);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.2rem, 2.5vw, 1.45rem);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.brand:hover,
.brand:focus-visible {
  color: #e8c84a;
  outline: none;
}

.tc-topnav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem 0.85rem;
  font-size: var(--text-small);
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.tc-topnav a {
  color: var(--fg);
  text-decoration: none;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  transition: background 0.15s ease, color 0.15s ease;
}

.tc-topnav a:hover,
.tc-topnav a:focus-visible {
  background: rgba(212, 175, 55, 0.12);
  color: var(--accent);
  outline: none;
}

.tc-topnav a.is-current,
.tc-topnav a[aria-current="page"] {
  color: var(--accent);
  font-weight: 600;
  background: rgba(212, 175, 55, 0.1);
}

nav .hi {
  color: var(--muted);
  font-size: var(--text-small);
  padding: 0.4rem 0.25rem;
}

.tc-main {
  flex: 1;
  min-width: 0;
  overflow-x: clip;
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
  padding-bottom: clamp(2rem, 5vw, 3rem);
}

.tc-footer {
  margin: 0 !important;
  color: var(--muted);
  font-size: var(--text-small);
}

footer.foot.tc-footer {
  margin: 0 !important;
  clear: both;
}

.tc-footer.tc-footer--premium {
  position: relative;
  padding: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(1.35rem, 3vw, 2rem);
  border-top: 1px solid hsl(280 35% 22% / 0.55);
  background:
    linear-gradient(180deg, hsl(270 45% 8% / 0.92) 0%, hsl(265 40% 6% / 0.98) 45%, hsl(270 38% 5% / 1) 100%);
  box-shadow:
    inset 0 1px 0 hsl(45 100% 62% / 0.12),
    0 -12px 40px hsl(270 60% 4% / 0.35);
  overflow: hidden;
}

.tc-footer__premium-accent {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 3px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    hsl(320 85% 58% / 0.85) 18%,
    hsl(45 100% 62% / 0.75) 50%,
    hsl(195 80% 52% / 0.55) 82%,
    transparent 100%
  );
  opacity: 0.95;
}

.tc-footer__shell {
  position: relative;
  z-index: 1;
}

.tc-footer__main {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: clamp(1.35rem, 3vw, 2rem);
}

.tc-footer__main--with-ad {
  grid-template-columns: minmax(0, 1fr) minmax(240px, min(100%, 360px));
}

.tc-footer__col--content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.35rem);
}

.tc-footer--premium .tc-footer__brand-cluster {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.65rem 1rem;
}

.tc-footer__kicker {
  margin: 0;
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: hsl(280 18% 58% / 0.95);
  max-width: 28rem;
  line-height: 1.35;
}

.tc-footer__copy {
  display: flex;
  flex-direction: column;
  gap: 0.55rem 0.65rem;
  margin: 0;
  padding: 0;
  max-width: 46rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.tc-footer__line {
  margin: 0;
  font-size: clamp(0.78rem, 1.85vw, 0.9rem);
  line-height: 1.55;
  color: hsl(280 12% 72% / 0.98);
  text-wrap: balance;
}

.tc-footer__col--ad {
  min-width: 0;
  justify-self: stretch;
}

.tc-footer__ad-frame {
  position: relative;
  border-radius: var(--radius-sm, 12px);
  padding: 0.65rem;
  min-height: 5.5rem;
  border: 1px solid hsl(280 30% 24% / 0.65);
  background:
    linear-gradient(145deg, hsl(272 38% 11% / 0.95), hsl(265 36% 8% / 0.98));
  box-shadow:
    inset 0 1px 0 hsl(45 100% 58% / 0.08),
    0 8px 28px hsl(270 55% 4% / 0.45);
}

.tc-footer__ad-frame > * {
  border-radius: calc(var(--radius-sm, 12px) - 4px);
}

body.tc-theme-light .tc-footer.tc-footer--premium {
  border-top-color: hsl(280 20% 82% / 0.55);
  background:
    linear-gradient(180deg, hsl(280 25% 97% / 0.98) 0%, hsl(275 22% 95% / 1) 50%, hsl(270 18% 93% / 1) 100%);
  box-shadow:
    inset 0 1px 0 hsl(45 90% 45% / 0.12),
    0 -8px 32px hsl(270 30% 40% / 0.08);
}

body.tc-theme-light .tc-footer__line {
  color: hsl(270 15% 32% / 0.95);
}

body.tc-theme-light .tc-footer__kicker {
  color: hsl(270 12% 42% / 0.95);
}

body.tc-theme-light .tc-footer__ad-frame {
  border-color: hsl(280 18% 82% / 0.85);
  background: linear-gradient(145deg, hsl(0 0% 100% / 0.92), hsl(275 20% 97% / 1));
  box-shadow:
    inset 0 1px 0 hsl(45 80% 40% / 0.06),
    0 6px 20px hsl(270 25% 50% / 0.08);
}

/* Tipografia pagine */
.tc-page-title,
.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 700;
  line-height: var(--line-tight);
  margin: 0 0 var(--space);
  color: var(--fg);
}

h2,
.tc-section-title {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.8vw, 1.65rem);
  font-weight: 600;
  margin: 1.75rem 0 0.75rem;
  color: var(--fg);
}

h3 {
  font-size: clamp(1.1rem, 2vw, 1.25rem);
  font-weight: 600;
  margin: 1.25rem 0 0.5rem;
  color: var(--muted);
}

.lead {
  color: var(--muted);
  font-size: var(--text-lead);
  line-height: var(--line-body);
  max-width: 42rem;
}

.muted {
  color: var(--muted);
  font-size: var(--text-small);
}

code {
  background: var(--bg-elevated);
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  font-size: 0.92em;
}

/* Hero home */
.tc-hero {
  padding: clamp(1.5rem, 5vw, 2.5rem);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: linear-gradient(145deg, var(--card-surface), rgba(24, 28, 40, 0.85));
  box-shadow: var(--shadow);
  margin-bottom: 2rem;
}

.tc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 1.5rem;
}

.tc-hero__strip {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-strong);
  font-size: var(--text-small);
  color: var(--muted);
}

/* Bottoni — area touch generosa */
.btn {
  display: inline-block;
  background: linear-gradient(180deg, #e4c04a, var(--accent));
  color: #1a1406;
  padding: 0.75rem 1.35rem;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-weight: 600;
  font-size: var(--text-small);
  border: none;
  cursor: pointer;
  line-height: 1.4;
  min-height: 48px;
  box-shadow: 0 2px 12px rgba(212, 175, 55, 0.25);
  transition: filter 0.15s ease, transform 0.1s ease;
}

.btn:hover {
  filter: brightness(1.06);
}

.btn:focus-visible {
  outline: 3px solid rgba(212, 175, 55, 0.55);
  outline-offset: 2px;
}

.btn-secondary {
  background: var(--bg-elevated);
  color: var(--fg);
  border: 1px solid var(--border-strong);
  box-shadow: none;
}

.btn-secondary:hover {
  border-color: var(--accent-dim);
  filter: none;
}

.btn-sm {
  padding: 0.55rem 1rem;
  font-size: 1rem;
  min-height: 44px;
}

button.btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Form lettura */
.card-form label {
  display: block;
  margin-top: 1.25rem;
  font-weight: 600;
  font-size: var(--text-small);
}

.card-form textarea,
.card-form input[type="text"] {
  width: 100%;
  margin-top: 0.45rem;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  background: var(--bg-elevated);
  color: var(--fg);
  font-family: var(--font-ui);
  font-size: var(--text-base);
  line-height: var(--line-body);
  min-height: 48px;
}

.card-form textarea {
  min-height: 7rem;
  resize: vertical;
}

.card-form button {
  margin-top: 1.5rem;
}

.tc-checkbox-row {
  margin: 0 0 0.5rem;
}

.tc-check {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  cursor: pointer;
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.tc-check input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.2rem;
  flex-shrink: 0;
  accent-color: var(--accent);
}

/* Risultato lettura */
.tc-nav-inline {
  font-size: var(--text-small);
  margin-bottom: 1.25rem;
}

.tc-nav-inline a {
  color: var(--accent);
  text-decoration: none;
}

.tc-nav-inline a:hover,
.tc-nav-inline a:focus-visible {
  text-decoration: underline;
  outline: none;
}

.tc-nav-inline__sep {
  margin: 0 0.35rem;
  color: var(--muted);
}

.tc-reading-header {
  margin-bottom: 1rem;
}

/* ─── Premium marca: cartas animadas + glow (páginas, rodapé, header) ─── */
.tc-reading-header--premium {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.35rem;
  margin-bottom: 1.25rem;
  overflow: visible;
}

.tc-reading-header--premium .tc-page-title {
  margin-top: 0.15rem;
}

.tc-footer__brand-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.85rem 1.25rem;
  width: 100%;
}

.tc-footer__brand-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  text-align: center;
}

.tc-brand-motif {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.tc-brand-motif__halo {
  position: absolute;
  width: 140%;
  height: 140%;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(
    ellipse,
    hsl(320 90% 58% / 0.45) 0%,
    hsl(45 100% 55% / 0.22) 42%,
    transparent 70%
  );
  filter: blur(14px);
  animation: tc-motif-halo-pulse 3.2s ease-in-out infinite;
  pointer-events: none;
}

.tc-brand-motif__pulse {
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  border: 1px solid hsl(45 100% 62% / 0.22);
  box-shadow:
    0 0 22px hsl(45 100% 55% / 0.25),
    inset 0 0 20px hsl(320 80% 50% / 0.12);
  animation: tc-motif-ring-spin 14s linear infinite;
  pointer-events: none;
  opacity: 0.85;
}

.tc-brand-motif__cards {
  position: relative;
  display: block;
  width: 7.5rem;
  height: 4.6rem;
}

.tc-brand-motif--footer .tc-brand-motif__cards {
  width: 4.1rem;
  height: 2.55rem;
}

.tc-brand-motif__card {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.38rem;
  font-size: 0.72rem;
  line-height: 1;
  background: linear-gradient(145deg, hsl(268 58% 16%), hsl(268 48% 9%));
  border: 1px solid hsl(45 100% 58% / 0.55);
  box-shadow:
    0 0 18px hsl(45 100% 52% / 0.35),
    0 4px 16px hsl(0 0% 0% / 0.55);
}

.tc-brand-motif--footer .tc-brand-motif__card {
  font-size: 0.42rem;
  border-radius: 0.22rem;
}

.tc-brand-motif__sym {
  text-shadow: 0 0 10px currentcolor;
  filter: drop-shadow(0 0 6px hsl(45 100% 60% / 0.45));
}

.tc-brand-motif__card--left {
  width: 2.15rem;
  height: 3.05rem;
  left: 0;
  top: 0.55rem;
  transform: rotate(-16deg);
  border-color: hsl(45 100% 62% / 0.75);
  color: hsl(45 100% 80%);
  animation: tc-motif-drift-left 3.8s ease-in-out infinite;
}

.tc-brand-motif__card--center {
  width: 2.35rem;
  height: 3.35rem;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  z-index: 2;
  border-color: hsl(320 90% 68% / 0.85);
  color: hsl(320 92% 82%);
  font-size: 0.85rem;
  animation: tc-motif-drift-center 3.2s ease-in-out infinite;
}

.tc-brand-motif--footer .tc-brand-motif__card--center {
  font-size: 0.52rem;
}

.tc-brand-motif__card--right {
  width: 2.15rem;
  height: 3.05rem;
  right: 0;
  top: 0.55rem;
  transform: rotate(16deg);
  border-color: hsl(185 85% 58% / 0.8);
  color: hsl(185 90% 78%);
  animation: tc-motif-drift-right 3.8s ease-in-out infinite;
}

/* Antes do título da jogada: marca + cartas grandes, glow difuso, partículas leves (sem anel/elipse) */
.tc-reading-brand-hero {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0.35rem auto 1.35rem;
  padding: clamp(1.35rem, 5vw, 2.25rem) clamp(0.5rem, 2vw, 1rem) clamp(1.5rem, 4.5vw, 2.5rem);
  max-width: min(100%, 38rem);
  min-height: clamp(10rem, 48vw, 16rem);
  overflow: visible;
}

/* Gradiente místico animado (sem formas pesadas) */
.tc-reading-brand-hero__mist {
  position: absolute;
  inset: -12% -8% -8% -8%;
  pointer-events: none;
  z-index: 0;
  border-radius: 50%;
  background:
    linear-gradient(
      125deg,
      hsl(275 55% 22% / 0.22) 0%,
      hsl(320 48% 28% / 0.18) 28%,
      hsl(200 45% 24% / 0.12) 52%,
      hsl(45 70% 38% / 0.16) 78%,
      hsl(285 50% 20% / 0.14) 100%
    );
  background-size: 220% 220%;
  animation: tc-reading-mist-shift 14s ease-in-out infinite;
  filter: blur(2px);
  opacity: 0.52;
}

@keyframes tc-reading-mist-shift {
  0%, 100% {
    background-position: 0% 40%;
  }
  50% {
    background-position: 100% 60%;
  }
}

.tc-reading-brand-hero__glow {
  position: absolute;
  left: 50%;
  top: 50%;
  pointer-events: none;
  z-index: 0;
  border-radius: 50%;
}

/* Auroras difusas (só bruma + cor, sem contorno) */
.tc-reading-brand-hero__glow--aurora {
  width: min(140%, 34rem);
  height: min(110%, 16rem);
  transform: translate(-50%, -50%);
  background: radial-gradient(
    farthest-side,
    hsl(320 88% 58% / 0.26) 0%,
    hsl(45 100% 58% / 0.12) 42%,
    hsl(195 70% 45% / 0.06) 62%,
    transparent 78%
  );
  filter: blur(48px);
  animation: tc-reading-aurora-breathe 5.5s ease-in-out infinite;
}

.tc-reading-brand-hero__glow--veil {
  display: none;
}

@keyframes tc-reading-aurora-breathe {
  0%, 100% {
    opacity: 0.72;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.06);
  }
}

/* Partículas / estrelinhas leves */
.tc-reading-brand-hero__sparks {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.tc-reading-brand-hero__spark {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: hsl(45 100% 88% / 0.75);
  box-shadow:
    0 0 8px hsl(45 100% 70% / 0.65),
    0 0 16px hsl(320 85% 62% / 0.28);
  animation: tc-reading-spark-drift 5.5s ease-in-out infinite;
}

.tc-reading-brand-hero__spark:nth-child(1) {
  left: 8%;
  top: 18%;
  animation-delay: 0s;
}
.tc-reading-brand-hero__spark:nth-child(2) {
  left: 22%;
  top: 8%;
  animation-delay: -0.4s;
}
.tc-reading-brand-hero__spark:nth-child(3) {
  left: 88%;
  top: 22%;
  animation-delay: -0.9s;
}
.tc-reading-brand-hero__spark:nth-child(4) {
  left: 78%;
  top: 12%;
  animation-delay: -1.2s;
}
.tc-reading-brand-hero__spark:nth-child(5) {
  left: 12%;
  top: 72%;
  animation-delay: -0.6s;
}
.tc-reading-brand-hero__spark:nth-child(6) {
  left: 5%;
  top: 48%;
  animation-delay: -1.8s;
}

@keyframes tc-reading-spark-drift {
  0%, 100% {
    opacity: 0.25;
    transform: translate(0, 0) scale(0.65);
  }
  50% {
    opacity: 0.75;
    transform: translate(3px, -4px) scale(1.05);
  }
}

.tc-reading-brand-hero__link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.75rem, 5.5vw, 2.85rem);
  transform: none;
  padding: clamp(0.85rem, 2.2vw, 1.15rem) clamp(1rem, 3vw, 1.35rem) !important;
  margin: -0.25rem;
  border-radius: 16px;
  text-decoration: none;
  isolation: isolate;
  background: linear-gradient(
    155deg,
    hsl(268 42% 14% / 0.42) 0%,
    hsl(275 38% 10% / 0.32) 45%,
    hsl(260 35% 8% / 0.26) 100%
  );
  border: 1px solid hsl(45 100% 62% / 0.28);
  box-shadow:
    0 0 28px hsl(320 85% 52% / 0.32),
    0 0 64px hsl(45 100% 52% / 0.16),
    0 14px 40px hsl(270 60% 4% / 0.5);
}

/* Alone a stella (8 punte) — blur morbido, non rettangolo */
.tc-reading-brand-hero__link::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 42%;
  width: min(20rem, 155%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: -2;
  clip-path: polygon(
    50% 0%,
    61% 22%,
    88% 15%,
    72% 38%,
    100% 50%,
    72% 62%,
    88% 85%,
    61% 78%,
    50% 100%,
    39% 78%,
    12% 85%,
    28% 62%,
    0% 50%,
    28% 38%,
    12% 15%,
    39% 22%
  );
  background:
    radial-gradient(circle at 50% 48%, hsl(45 100% 70% / 0.42) 0%, transparent 58%),
    radial-gradient(circle at 50% 52%, hsl(320 88% 58% / 0.32) 0%, transparent 62%),
    radial-gradient(circle at 50% 50%, hsl(275 70% 45% / 0.14) 0%, transparent 70%);
  filter: blur(32px);
  opacity: 0.82;
  animation: tc-hero-star-pulse 6.5s ease-in-out infinite;
}

@keyframes tc-hero-star-pulse {
  0%, 100% {
    opacity: 0.68;
    transform: translate(-50%, -50%) scale(0.94);
  }
  50% {
    opacity: 0.9;
    transform: translate(-50%, -50%) scale(1.04);
  }
}

/* Secondo alone stellare più interno, statico (no rotazione) */
.tc-reading-brand-hero__link::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 44%;
  width: min(11rem, 95%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: -1;
  clip-path: polygon(
    50% 6%,
    60% 36%,
    94% 36%,
    68% 58%,
    78% 92%,
    50% 74%,
    22% 92%,
    32% 58%,
    6% 36%,
    40% 36%
  );
  background: linear-gradient(
    145deg,
    hsl(45 100% 62% / 0.14) 0%,
    hsl(320 85% 52% / 0.1) 50%,
    hsl(195 75% 48% / 0.08) 100%
  );
  filter: blur(20px);
  opacity: 0.5;
}

.tc-reading-brand-hero .tc-brand__title-line {
  filter:
    drop-shadow(0 0 12px hsl(45 100% 58% / 0.45))
    drop-shadow(0 0 28px hsl(320 88% 58% / 0.28));
}

/*
 * Hero: ventaglio largo + glifi grandi; stessa “skin” delle carte dell’header.
 * Una sola animazione sul contenitore .tc-brand__mark (respiro).
 */
.tc-reading-brand-hero .tc-brand--premium .tc-brand__mark {
  position: relative;
  width: 5.6rem;
  height: 2.85rem;
  flex-shrink: 0;
  transform: scale(2);
  transform-origin: center center;
  animation: tc-hero-mark-breathe 5.2s ease-in-out infinite;
}

@keyframes tc-hero-mark-breathe {
  0%, 100% {
    transform: scale(2) translateY(0);
  }
  50% {
    transform: scale(2.03) translateY(-2px);
  }
}

.tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card {
  width: 1.48rem;
  height: 2.1rem;
  font-size: clamp(0.92rem, 2.4vw, 1.08rem);
  line-height: 1;
  animation: none;
  box-shadow:
    0 0 20px hsl(45 100% 55% / 0.48),
    0 4px 16px hsl(0 0% 0% / 0.52);
}

.tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--center {
  width: 1.52rem;
  height: 2.14rem;
  z-index: 3;
  transform: translateY(-0.14rem) scale(1.05);
}

.tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--left {
  z-index: 2;
  transform: translateX(-1.18rem) translateY(0.12rem) rotate(-20deg);
}

.tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--right {
  z-index: 2;
  transform: translateX(1.18rem) translateY(0.12rem) rotate(20deg);
}

.tc-reading-brand-hero .tc-brand__title-line {
  text-shadow:
    0 0 14px hsl(45 100% 62% / 0.3),
    0 0 32px hsl(320 90% 58% / 0.18);
}

.tc-reading-brand-hero .tc-brand__title-line--royale {
  text-shadow:
    0 0 18px hsl(320 90% 58% / 0.22),
    0 0 40px hsl(195 85% 58% / 0.14);
}

.tc-header--app .tc-brand--premium,
.tc-footer__brand-cluster .tc-brand--premium {
  gap: calc(1.05rem * var(--tc-header-text-scale, 1));
}

.tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark {
  width: calc(4.15rem * var(--tc-header-text-scale, 1));
  height: calc(3.05rem * var(--tc-header-text-scale, 1));
  flex-shrink: 0;
}

.tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card {
  width: calc(1.72rem * var(--tc-header-text-scale, 1));
  height: calc(2.38rem * var(--tc-header-text-scale, 1));
  font-size: calc(0.96rem * var(--tc-header-text-scale, 1));
  box-shadow:
    0 0 18px hsl(45 100% 55% / 0.45),
    0 3px 14px hsl(0 0% 0% / 0.55);
}

/* Solo toolbar: tre carte grandi; altezza limitata per non “romper” o safe-area (animazione più contenuta sotto). */
.tc-header--app .tc-brand--premium .tc-brand__mark {
  width: calc(5.45rem * var(--tc-header-text-scale, 1));
  height: calc(3.95rem * var(--tc-header-text-scale, 1));
  flex-shrink: 0;
  align-self: center;
}

.tc-header--app .tc-brand--premium .tc-brand__mark-card {
  width: calc(2.22rem * var(--tc-header-text-scale, 1));
  height: calc(3.05rem * var(--tc-header-text-scale, 1));
  font-size: calc(1.02rem * var(--tc-header-text-scale, 1));
  box-shadow:
    0 0 22px hsl(45 100% 55% / 0.5),
    0 4px 18px hsl(0 0% 0% / 0.55);
}

.tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--left {
  animation: tc-brandbar-float-left 3.6s ease-in-out infinite;
}

.tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--center {
  animation: tc-brandbar-float-center 3s ease-in-out infinite;
}

.tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--right {
  animation: tc-brandbar-float-right 3.6s ease-in-out infinite;
}

.tc-header--app .tc-brand--premium .tc-brand__mark-card--left {
  animation: tc-header-brandbar-float-left 3.6s ease-in-out infinite;
}

.tc-header--app .tc-brand--premium .tc-brand__mark-card--center {
  animation: tc-header-brandbar-float-center 3s ease-in-out infinite;
}

.tc-header--app .tc-brand--premium .tc-brand__mark-card--right {
  animation: tc-header-brandbar-float-right 3.6s ease-in-out infinite;
}

@keyframes tc-brandbar-float-left {
  0%, 100% { transform: translateX(-0.74rem) rotate(-15deg) translateY(0); }
  50% { transform: translateX(-0.74rem) rotate(-17deg) translateY(-3px); }
}

@keyframes tc-brandbar-float-center {
  0%, 100% { transform: translateY(-0.08rem) scale(1); }
  50% { transform: translateY(-0.28rem) scale(1.05); }
}

@keyframes tc-brandbar-float-right {
  0%, 100% { transform: translateX(0.74rem) rotate(15deg) translateY(0); }
  50% { transform: translateX(0.74rem) rotate(17deg) translateY(-3px); }
}

@keyframes tc-header-brandbar-float-left {
  0%, 100% { transform: translateX(-1.14rem) rotate(-15deg) translateY(0); }
  50% { transform: translateX(-1.14rem) rotate(-17deg) translateY(-2px); }
}

@keyframes tc-header-brandbar-float-center {
  0%, 100% { transform: translateY(-0.02rem) scale(1); }
  50% { transform: translateY(-0.14rem) scale(1.03); }
}

@keyframes tc-header-brandbar-float-right {
  0%, 100% { transform: translateX(1.14rem) rotate(15deg) translateY(0); }
  50% { transform: translateX(1.14rem) rotate(17deg) translateY(-2px); }
}

.tc-header--app .tc-brand--premium .tc-brand__title-line,
.tc-footer__brand-cluster .tc-brand--premium .tc-brand__title-line {
  filter: drop-shadow(0 0 12px hsl(45 100% 55% / 0.35));
}

.tc-header--app .tc-brand__text-wrap--header {
  gap: 0.12rem;
  align-items: stretch;
  text-align: left;
  width: max-content;
  max-width: min(52vw, 14rem);
  margin-left: 0.35rem;
  padding-left: 0.15rem;
  box-sizing: border-box;
}

/* Mobile HUD lockup: solo «Tarot Clash», una riga, titolo più grande. */
@media (max-width: 42rem) {
  .tc-header--app .tc-brand__text-wrap--header-lockup {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.28rem;
    max-width: min(68vw, 17rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .tc-header--app .tc-brand__text-wrap--header-lockup .tc-brand__title-line {
    display: inline;
    width: auto;
    margin-top: 0;
    font-size: calc(clamp(1.08rem, 5.2vw, 1.32rem) * var(--tc-header-text-scale, 1));
    letter-spacing: 0.06em;
    text-align: left;
  }
}

.tc-footer__brand-cluster .tc-brand__text-wrap--header {
  gap: 0.12rem;
  align-items: stretch;
  text-align: center;
  width: max-content;
  max-width: min(52vw, 14rem);
  margin-left: 0.35rem;
  padding-left: 0.15rem;
  box-sizing: border-box;
}

.tc-header--app .tc-brand__text-wrap--header .tc-brand__title-line {
  font-size: calc(clamp(1.18rem, 3.4vw, 1.42rem) * var(--tc-header-text-scale, 1));
  letter-spacing: 0.06em;
  width: 100%;
}

.tc-footer__brand-cluster .tc-brand__text-wrap--header .tc-brand__title-line {
  font-size: calc(clamp(0.78rem, 2.1vw, 0.98rem) * var(--tc-header-text-scale, 1));
  letter-spacing: 0.1em;
  width: 100%;
}

.tc-footer__brand-cluster .tc-brand__text-wrap--header .tc-brand__title-line--royale {
  font-size: calc(clamp(0.68rem, 1.85vw, 0.88rem) * var(--tc-header-text-scale, 1));
  letter-spacing: clamp(0.34em, 2.4vw, 0.58em);
  margin-top: 0.06rem;
  opacity: 0.95;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.tc-home-hero-cards--premium .tc-home-hero-card {
  box-shadow:
    0 0 22px hsl(45 100% 52% / 0.35),
    0 10px 36px hsl(270 60% 4% / 0.65);
}

.tc-home-hero-cards--premium .tc-home-hero-card__symbol {
  filter: drop-shadow(0 0 14px currentcolor);
}

@keyframes tc-motif-halo-pulse {
  0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.95; transform: translate(-50%, -50%) scale(1.08); }
}

@keyframes tc-motif-ring-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes tc-motif-drift-left {
  0%, 100% { transform: rotate(-16deg) translateY(0); }
  50% { transform: rotate(-19deg) translateY(-4px); }
}

@keyframes tc-motif-drift-center {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-6px) scale(1.04); }
}

@keyframes tc-motif-drift-right {
  0%, 100% { transform: rotate(16deg) translateY(0); }
  50% { transform: rotate(19deg) translateY(-4px); }
}

@media (prefers-reduced-motion: reduce) {
  .tc-brand-motif__halo,
  .tc-brand-motif__pulse,
  .tc-brand-motif__card,
  .tc-header--app .tc-brand--premium .tc-brand__mark-card--left,
  .tc-header--app .tc-brand--premium .tc-brand__mark-card--center,
  .tc-header--app .tc-brand--premium .tc-brand__mark-card--right,
  .tc-header--app .tc-brand--premium .tc-brand__mark-card,
  .tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--left,
  .tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--center,
  .tc-footer__brand-cluster .tc-brand--premium .tc-brand__mark-card--right,
  .tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--left,
  .tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--center,
  .tc-reading-brand-hero .tc-brand--premium .tc-brand__mark-card--right,
  .tc-reading-brand-hero .tc-brand--premium .tc-brand__mark,
  .tc-reading-brand-hero__link::before,
  .tc-reading-brand-hero__mist,
  .tc-reading-brand-hero__glow--aurora,
  .tc-reading-brand-hero__glow--veil,
  .tc-reading-brand-hero__spark,
  .tc-home-hero-cards--premium .tc-home-hero-card {
    animation: none !important;
  }
  .tc-brand-motif__pulse {
    opacity: 0.35;
  }
}

.tc-spread-overview {
  margin: 1.5rem 0;
  padding: 1rem 1.15rem;
  background: var(--bg-elevated);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
}

.tc-position-legend {
  margin: 0.75rem 0 0;
  padding-left: 1.35rem;
  font-size: var(--text-base);
  line-height: var(--line-body);
}

.tc-position-legend__item {
  margin-bottom: 0.85rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-strong);
}

.tc-position-legend__item:last-child {
  border-bottom: none;
}

.tc-position-legend__item.is-current {
  background: rgba(212, 175, 55, 0.08);
  margin-left: -0.5rem;
  margin-right: -0.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  border-radius: 8px;
}

.tc-position-legend__link {
  display: block;
  color: inherit;
  text-decoration: none;
  margin: -0.5rem 0;
  padding: 0.5rem 0;
  border-radius: 8px;
}

.tc-position-legend__link:hover {
  background: rgba(212, 175, 55, 0.06);
}

.tc-position-legend__link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.tc-position-legend__item--ad {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  list-style: none;
}

.tc-position-meaning {
  margin: 0 0 1rem;
  font-size: var(--text-base);
  color: var(--muted);
  line-height: var(--line-body);
  padding: 0.75rem 1rem;
  background: rgba(255, 255, 255, 0.04);
  border-radius: var(--radius-sm);
}

.tc-intent {
  margin: 0 0 1.5rem;
  padding: 1rem 1.15rem;
  background: var(--bg-elevated);
  border-radius: var(--radius-sm);
  border-left: 4px solid var(--accent-dim);
  font-size: var(--text-base);
}

.tc-step-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  padding: 1rem;
  background: var(--card-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
}

.tc-step-progress {
  font-weight: 700;
  font-size: var(--text-lead);
  color: var(--accent);
  min-width: 5ch;
}

.result-card {
  background: var(--card-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(1rem, 3vw, 1.5rem);
  margin-top: 1.25rem;
  box-shadow: var(--shadow-soft);
}

.tc-card-layout {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

@media (min-width: 42rem) {
  .tc-card-layout {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.75rem;
  }
  .tc-card-visual {
    flex: 0 0 auto;
  }
  .tc-card-text {
    flex: 1;
    min-width: 0;
  }
}

.tc-card-visual {
  margin: 0;
  text-align: center;
}

.tc-card-visual--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.125rem, 3.5vw, 1.75rem);
  justify-content: flex-start;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Ad slots injected immediately after the card <img> share this figure; row flex squeezed them → adsbygoogle availableWidth=0 */
.tc-card-visual--center > .adace-slot-wrapper {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.tc-card-visual--center > .adace-slot-wrapper .adace-slot {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/*
 * Ad Ace / AdSense: do not override alignment, margins on ins, or inner iframes — Ad Ace controls placement.
 * Only neutral block sizing so the column has a width (avoids flex collapse); no min-width on slots.
 */
.tc-app .adace-slot-wrapper {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.tc-app .adace-slot-wrapper .adace-slot {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Plugin slot wrapper: vertical spacing only (editorial rhythm); inner HTML untouched for Ad Ace. */
.tc-app .tc-ad-slot {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Admin: modo teste — placeholder / etiqueta (não altera o HTML interno dos anúncios quando desligado) */
.tc-app .tc-ad-debug-placeholder {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;
  border: 1px dashed rgba(255, 255, 255, 0.28);
  border-radius: var(--radius-sm, 8px);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.85rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.75);
}

.tc-app .tc-ad-debug-label {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 0 0.4rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.82);
  background: rgba(120, 90, 200, 0.22);
  border-radius: var(--radius-sm, 6px);
  border: 1px solid rgba(180, 160, 255, 0.35);
}

.tc-app .tc-ad-debug-label__meta {
  opacity: 0.95;
  font-family: ui-monospace, monospace;
  font-size: 0.72rem;
}

/* Annunci in-flow nell'interpretazione (dopo </p>): respiro rispetto al testo.
 * Se in Admin → Tarot imposti margine px sullo slot, lo style inline ha priorità. */
.tc-step-editorial__interp .tc-ad-slot,
.interp .tc-ad-slot {
  margin-top: 1.25rem;
  margin-bottom: 1.35rem;
}

.tc-step-editorial__interp .tc-ad-slot:first-child {
  margin-top: 0;
}

.interp .tc-ad-slot:first-child {
  margin-top: 0.35rem;
}

.tc-card-img {
  display: block;
  max-width: 100%;
  width: min(300px, 100%);
  height: auto;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow);
  border: 1px solid var(--border-strong);
}

.tc-card-img.is-reversed {
  transform: rotate(180deg);
}

.tc-card-visual__placeholder {
  width: min(300px, 100%);
  aspect-ratio: 300 / 518;
  margin: 0 auto;
  border-radius: var(--radius-sm);
  border: 2px dashed var(--border-strong);
  background: linear-gradient(160deg, #252a3a, #151820);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem;
}

.tc-card-visual__glyph {
  font-family: var(--font-display);
  font-size: clamp(3rem, 12vw, 4.5rem);
  color: var(--accent);
  opacity: 0.85;
}

.tc-card-visual__hint {
  font-size: 0.95rem;
  color: var(--muted);
  text-align: center;
  line-height: var(--line-body);
}

.card-name {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3vw, 1.75rem);
  font-weight: 700;
  color: var(--accent);
  margin: 0 0 0.35rem;
}

.card-meta {
  color: var(--muted);
  margin: 0 0 1rem;
  font-size: var(--text-small);
}

.interp {
  margin-top: 0.5rem;
  font-size: var(--text-base);
  line-height: var(--line-body);
  max-width: 52rem;
}

/* Paragrafi nell'interpretazione (pagine risultato / complete senza classe step) */
.interp > p {
  margin: 0 0 1.05rem;
}

.interp > p:last-child {
  margin-bottom: 0;
}

/* AI-generated HTML: dark theme readability (scoped, non-invasive) */
.tc-app .interp {
  color: #dddddd;
  line-height: 1.7;
}

.tc-app .interp p,
.tc-app .interp li,
.tc-app .interp blockquote {
  color: #dddddd;
  line-height: 1.7;
}

.tc-app .interp h1,
.tc-app .interp h2,
.tc-app .interp h3,
.tc-app .interp h4 {
  color: #ffffff !important;
  line-height: 1.3;
  margin-top: 1.25rem;
  margin-bottom: 0.65rem;
}

/* Slight premium hierarchy for headings */
.tc-app .interp h2 {
  color: #f5c542 !important;
}

.tc-app .interp h3 {
  color: #e0e0e0 !important;
}

.tc-app .interp > * + * {
  margin-top: 0.7rem;
}

.pos-label {
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent);
  margin-bottom: 0.65rem;
  font-weight: 600;
}

.tc-reading-results--step-mode .result-card[hidden] {
  display: none;
}

.ok { margin-top: 1.25rem; }

.err { color: var(--err); }

.q { margin: 0.75rem 0 1rem; color: var(--muted); }

.tc-points-box {
  margin-top: 1.5rem;
  border-color: hsl(45 100% 56% / 0.35);
  background: linear-gradient(145deg, hsl(268 45% 12%), hsl(268 35% 8%));
  box-shadow: 0 12px 30px hsl(270 60% 4% / 0.42), inset 0 1px 0 hsl(45 100% 70% / 0.1);
}

.tc-points-box--top {
  margin-top: 0;
  margin-bottom: 1.25rem;
}

.tc-points-box--middle {
  margin-top: 1rem;
  margin-bottom: 1.5rem;
}

.tc-points-box--bottom {
  margin-top: 1.5rem;
}

.tc-points-box__earned {
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.tc-points-box__gain {
  color: hsl(45 100% 80%);
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  text-shadow: 0 0 12px hsl(45 100% 56% / 0.3);
  animation: tc-points-pop 1.7s ease-in-out infinite;
}

@keyframes tc-points-pop {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
}

.tc-points-breakdown {
  margin: 0.5rem 0 0;
  padding-left: 1.35rem;
  font-size: var(--text-small);
}

.tc-ach-list {
  margin: 0.35rem 0 0;
  padding-left: 1.35rem;
}

/* Griglia jogadas */
.spread-grid {
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 36rem) {
  .spread-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 52rem) {
  .spread-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.15rem;
  }
}

.spread-item__row {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.spread-item {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.15rem 1.25rem;
  background: var(--card-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.spread-item:hover {
  border-color: rgba(212, 175, 55, 0.35);
}

.spread-item .spread-body {
  flex: 1;
  min-width: 0;
}

.spread-item > .btn,
.spread-item > .btn-sm {
  align-self: flex-start;
}

.spread-ico {
  font-size: 2rem;
  line-height: 1;
}

.spread-item > div strong {
  font-family: var(--font-display);
  font-size: 1.2rem;
  display: block;
  margin-bottom: 0.25rem;
}

.spread-item > div .muted {
  display: block;
  font-size: var(--text-small);
  margin-top: 0.25rem;
  line-height: var(--line-body);
}

.tag {
  display: inline-block;
  margin-top: 0.45rem;
  padding: 0.25rem 0.6rem;
  border-radius: 8px;
  font-size: 0.95rem;
  background: rgba(212, 175, 55, 0.12);
  color: var(--accent);
  border: 1px solid rgba(212, 175, 55, 0.25);
}

/* Tabelle dashboard */
.tarot-cr-stats {
  width: 100%;
  font-size: var(--text-small);
  border-collapse: collapse;
}

.tarot-cr-stats th,
.tarot-cr-stats td {
  padding: 0.5rem 0.35rem;
  border-bottom: 1px solid var(--border-strong);
}

.tarot-cr-stats th {
  text-align: left;
  color: var(--muted);
  font-weight: 600;
}

/* Storico */
.hist-list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

.hist-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border-strong);
  font-size: var(--text-base);
}

.hist-list li:last-child {
  border-bottom: none;
}

/* Profilo locked */
.tc-locked-panel {
  padding: 1.25rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--card-surface);
}

/* Progress bar */
.tc-progress {
  height: 12px;
  background: var(--border-strong);
  border-radius: 8px;
  overflow: hidden;
  margin-top: 0.5rem;
}

.tc-progress__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent-dim), var(--accent));
  border-radius: 8px;
  transition: width 0.35s ease;
}

/* Texto só para leitores de ecrã (alinhado ao core WordPress) */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ─── Shell app (parità React: AppHeader, Home, SpreadSelector) ─── */
.tc-header--app {
  position: sticky;
  top: 0;
  z-index: 200;
  /* ~12px min + safe-area iPhone (viewport-fit=cover nel layout) */
  padding-top: max(0.75rem, constant(safe-area-inset-top));
  padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
  background: hsl(270 55% 4% / 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(290 50% 22% / 0.5);
  box-shadow:
    0 0 0 1px hsl(45 100% 55% / 0.04),
    0 4px 32px hsl(270 60% 3% / 0.9),
    0 1px 0 hsl(320 80% 55% / 0.08);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
  will-change: transform;
}

.tc-header--app.is-hidden-scroll {
  transform: translateY(-100%);
  pointer-events: none;
}

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

.tc-header__glowline {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, hsl(320 90% 60% / 0.5) 30%, hsl(45 100% 60% / 0.5) 70%, transparent 100%);
}

.tc-header--app .tc-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(0.5rem * var(--tc-header-scale, 1)) calc(1rem * var(--tc-header-scale, 1));
  padding-top: calc(0.5rem * var(--tc-header-scale, 1));
  padding-bottom: calc(0.5rem * var(--tc-header-scale, 1));
  max-width: 80rem;
}

/* Saldo EE — “jewel tray”: desktop a destra del menu; mobile affiancato al brand (prima fila) */
.tc-header-wallet {
  --tc-wallet-gold: hsl(45 96% 58%);
  --tc-wallet-gold-dim: hsl(38 55% 42%);
  --tc-wallet-ice: hsl(195 95% 78%);
  --tc-wallet-ice-dim: hsl(205 55% 45%);
  display: inline-flex;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 0.32rem;
  flex: 0 0 auto;
  margin-left: auto;
  align-self: center;
  padding: 0.2rem 0.28rem;
  border-radius: 14px;
  background:
    linear-gradient(155deg, hsl(280 22% 18% / 0.55), hsl(265 38% 8% / 0.92)) padding-box,
    linear-gradient(125deg, hsl(45 90% 52% / 0.45), hsl(310 70% 48% / 0.35), hsl(200 85% 50% / 0.4)) border-box;
  border: 1px solid transparent;
  background-clip: padding-box, border-box;
  box-shadow:
    0 0 0 1px hsl(45 80% 50% / 0.12),
    0 4px 20px hsl(270 65% 4% / 0.65),
    inset 0 1px 0 hsl(0 0% 100% / 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.tc-header-wallet__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0.32rem;
  min-height: 2.25rem;
  padding: 0.32rem 0.62rem 0.32rem 0.48rem;
  border-radius: 11px;
  text-decoration: none;
  font-size: calc(0.74rem * var(--tc-header-text-scale, 1));
  line-height: 1.12;
  white-space: nowrap;
  border: 1px solid hsl(290 28% 22% / 0.9);
  background: radial-gradient(120% 180% at 20% 0%, hsl(280 30% 22% / 0.55) 0%, transparent 55%),
    linear-gradient(168deg, hsl(275 40% 12% / 0.98), hsl(258 42% 7% / 0.99));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.07),
    0 2px 8px hsl(270 70% 3% / 0.5);
  color: hsl(280 14% 94%);
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
  max-width: 11rem;
}

.tc-header-wallet__chip:hover,
.tc-header-wallet__chip:focus-visible {
  border-color: hsl(45 75% 48% / 0.55);
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.1),
    0 0 0 1px hsl(45 90% 55% / 0.15),
    0 6px 18px hsl(270 60% 5% / 0.55);
  transform: translateY(-1px);
  outline: none;
}

.tc-header-wallet__chip:active {
  transform: translateY(0);
}

.tc-header-wallet__chip--credits {
  border-color: hsl(38 62% 38% / 0.75);
  box-shadow:
    inset 0 1px 0 hsl(45 100% 70% / 0.08),
    inset 0 -1px 0 hsl(30 80% 20% / 0.35),
    0 2px 8px hsl(270 70% 3% / 0.5);
}

.tc-header-wallet__chip--diamonds {
  border-color: hsl(205 55% 38% / 0.75);
  box-shadow:
    inset 0 1px 0 hsl(195 100% 85% / 0.07),
    inset 0 -1px 0 hsl(220 60% 15% / 0.35),
    0 2px 8px hsl(270 70% 3% / 0.5);
}

.tc-header-wallet__ico {
  font-size: 1.12em;
  line-height: 1;
  filter: drop-shadow(0 1px 3px hsl(270 80% 4% / 0.85));
}

.tc-header-wallet__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.06rem;
  min-width: 0;
}

.tc-header-wallet__label {
  font-size: 0.58em;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  opacity: 0.78;
  font-weight: 700;
  color: hsl(280 12% 78%);
}

.tc-header-wallet__val {
  font-family: var(--font-display, inherit);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
  font-size: 1.05em;
  line-height: 1.1;
  white-space: nowrap;
  color: var(--tc-wallet-gold);
  text-shadow: 0 0 12px hsl(45 100% 50% / 0.22);
}

.tc-header-wallet__chip--diamonds .tc-header-wallet__val {
  color: var(--tc-wallet-ice);
  text-shadow: 0 0 14px hsl(195 100% 60% / 0.25);
}

/*
 * Wallet toolbar app — jewelled pill único: ícone + número (rótulos só para leitores de ecrã).
 * Sem “duas caixas” competindo; divisor luminoso suave.
 */
.tc-header--app .tc-header-wallet {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  padding: 0.16rem 0.22rem;
  border-radius: 999px;
  background:
    radial-gradient(130% 160% at 50% -40%, hsl(45 90% 58% / 0.14), transparent 52%),
    linear-gradient(168deg, hsl(276 36% 14% / 0.96), hsl(258 44% 7% / 0.99));
  border: 1px solid hsl(45 55% 48% / 0.32);
  box-shadow:
    0 0 0 1px hsl(320 55% 45% / 0.12),
    0 10px 32px hsl(270 78% 4% / 0.58),
    inset 0 1px 0 hsl(0 0% 100% / 0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.tc-header--app .tc-header-wallet__chip {
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0.34rem 0.52rem;
  border-radius: 999px;
  gap: 0.38rem;
  min-height: 0;
}

.tc-header--app .tc-header-wallet__chip:hover,
.tc-header--app .tc-header-wallet__chip:focus-visible {
  border: none !important;
  box-shadow: none !important;
  transform: none;
  outline: none;
  background: hsl(0 0% 100% / 0.06) !important;
}

.tc-header--app .tc-header-wallet__chip--credits {
  padding-right: 0.44rem;
}

.tc-header--app .tc-header-wallet__chip--diamonds {
  border-left: 1px solid hsl(195 70% 72% / 0.22) !important;
  padding-left: 0.44rem;
}

.tc-header--app .tc-header-wallet__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.tc-header--app .tc-header-wallet__meta {
  flex-direction: row;
  align-items: center;
  gap: 0.32rem;
}

.tc-header--app .tc-header-wallet__ico {
  font-size: 1.22rem;
  line-height: 1;
  filter: drop-shadow(0 1px 4px hsl(270 85% 5% / 0.65));
}

.tc-header--app .tc-header-wallet__val {
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.tc-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: hsl(45 100% 72%);
  font-family: var(--font-display);
  font-weight: 900;
  padding: 0.35rem 0.5rem;
  margin: -0.35rem;
  border-radius: 10px;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.tc-brand:hover,
.tc-brand:focus-visible {
  opacity: 0.88;
  transform: translateY(-1px);
  outline: none;
}

.tc-brand__mark {
  position: relative;
  width: 2.2rem;
  height: 1.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tc-brand__mark-card {
  position: absolute;
  width: 1.08rem;
  height: 1.52rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.32rem;
  font-size: 0.64rem;
  line-height: 1;
  background: linear-gradient(145deg, hsl(268 55% 14%), hsl(268 50% 8%));
  border: 1px solid hsl(45 100% 60% / 0.5);
  box-shadow: 0 0 12px hsl(45 100% 55% / 0.24), 0 3px 12px #0009;
}

.tc-brand__mark-card--left {
  transform: translateX(-0.56rem) rotate(-15deg);
  border-color: hsl(45 100% 60% / 0.65);
  color: hsl(45 100% 76%);
}

.tc-brand__mark-card--center {
  z-index: 1;
  transform: translateY(-0.08rem);
  border-color: hsl(320 90% 68% / 0.72);
  color: hsl(320 90% 78%);
}

.tc-brand__mark-card--right {
  transform: translateX(0.56rem) rotate(15deg);
  border-color: hsl(185 80% 58% / 0.72);
  color: hsl(185 80% 72%);
}

.tc-brand__text-wrap {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  align-items: center;
  gap: 0.15rem;
}

.tc-brand__text,
.tc-brand__title-line {
  display: block;
  font-size: clamp(1rem, 2.2vw, 1.24rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: linear-gradient(135deg, hsl(45 100% 78%) 0%, hsl(45 100% 88%) 40%, hsl(320 90% 72%) 70%, hsl(280 80% 75%) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 8px hsl(45 100% 55% / 0.3));
}

.tc-brand__title-line--royale {
  font-size: clamp(0.88rem, 2vw, 1.08rem);
  letter-spacing: 0.26em;
  margin-top: 0.12rem;
  background: linear-gradient(135deg, hsl(45 100% 82%) 0%, hsl(320 88% 76%) 55%, hsl(195 75% 72%) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.tc-reading-brand-hero .tc-brand__text-wrap {
  gap: clamp(0.12rem, 1vw, 0.28rem);
}

.tc-reading-brand-hero .tc-brand__title-line {
  font-size: clamp(1.35rem, 5.2vw, 2.05rem);
  letter-spacing: 0.14em;
}

.tc-reading-brand-hero .tc-brand__title-line--royale {
  font-size: clamp(1.05rem, 4vw, 1.65rem);
  letter-spacing: 0.32em;
  margin-top: clamp(0.08rem, 0.8vw, 0.2rem);
}

/* Legacy: subtítulo antigo (Oracle · Arcana) — removido do markup principal */
.tc-brand__sub {
  display: none;
}

.tc-header-points {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.28rem 0.52rem;
  border-radius: 999px;
  text-decoration: none;
  background: linear-gradient(135deg, hsl(160 58% 19% / 0.5), hsl(260 48% 16% / 0.5));
  border: 1px solid hsl(160 70% 55% / 0.45);
  box-shadow: 0 0 14px hsl(160 70% 55% / 0.18);
}

.tc-header-points__ico {
  font-size: 0.74rem;
}

.tc-header-points__n {
  font-size: 0.73rem;
  font-weight: 800;
  color: hsl(45 100% 82%);
  font-variant-numeric: tabular-nums;
}

.tc-header-points__lbl {
  font-size: 0.62rem;
  font-weight: 700;
  color: hsl(280 20% 70%);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.tc-header--app .tc-topnav {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: calc(0.45rem * var(--tc-header-text-scale, 1)) calc(0.65rem * var(--tc-header-text-scale, 1));
  column-gap: calc(0.65rem * var(--tc-header-text-scale, 1));
  row-gap: calc(0.45rem * var(--tc-header-text-scale, 1));
  font-size: calc(0.7rem * var(--tc-header-text-scale, 1));
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.tc-header--app .tc-topnav a {
  flex: 0 0 auto;
  flex-shrink: 0;
  padding: calc(0.45rem * var(--tc-header-text-scale, 1)) calc(0.6rem * var(--tc-header-text-scale, 1));
  border-radius: 999px;
  color: hsl(280 18% 72%);
}

.tc-header--app .tc-topnav a:hover,
.tc-header--app .tc-topnav a:focus-visible {
  background: hsl(280 50% 18% / 0.6);
  color: hsl(45 100% 75%);
}

.tc-nav-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.15rem;
  line-height: 1;
  opacity: 0.95;
}

.tc-header__right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
}

.tc-header-level-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.3rem 0.58rem;
  border-radius: 999px;
  text-decoration: none;
  background: linear-gradient(135deg, hsl(280 42% 16% / 0.7), hsl(250 46% 14% / 0.68));
  border: 1px solid hsl(45 100% 55% / 0.35);
  box-shadow: 0 0 12px hsl(45 100% 55% / 0.14);
}

.tc-header-level-pill__ico {
  font-size: 0.8rem;
  line-height: 1;
}

.tc-header-level-pill__name {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: hsl(45 100% 80%);
  line-height: 1;
}

.tc-streak-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  text-decoration: none;
  background: hsl(25 90% 50% / 0.14);
  border: 1px solid hsl(25 90% 55% / 0.4);
  font-size: 0.65rem;
  font-weight: 700;
  color: hsl(35 100% 72%);
}

.tc-streak-pill__ico {
  font-size: 0.75rem;
}

.tc-header-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: hsl(280 50% 18% / 0.7);
  border: 1px solid hsl(280 50% 35% / 0.5);
  color: hsl(280 30% 65%);
}

.tc-header-avatar:hover {
  opacity: 0.88;
}

.tc-header__session {
  font-size: 0.65rem;
  color: hsl(280 15% 45%);
}

.tc-header__logout,
.tc-header__login,
.tc-header__reg {
  font-size: 0.7rem;
  font-weight: 600;
  text-decoration: none;
  color: hsl(45 90% 65%);
  padding: 0.35rem 0.5rem;
}

.tc-header-strip {
  display: none;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  padding: 0.5rem 1rem;
  text-decoration: none;
  background: hsl(275 45% 6% / 0.92);
  border-top: 1px solid hsl(290 40% 14% / 0.6);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
}

@media (max-width: 639px) {
  .tc-header-points {
    display: none;
  }

  .tc-header-level-pill {
    padding: 0.24rem 0.5rem;
  }

  .tc-header-level-pill__name {
    font-size: 0.68rem;
  }

  .tc-header-strip {
    display: flex;
  }
  .tc-header--app .tc-topnav {
    order: 10;
    width: 100%;
    justify-content: flex-start;
  }
}

.tc-header-strip__lvl {
  color: hsl(45 100% 65%);
  font-weight: 700;
}

.tc-header-strip__pts {
  color: hsl(45 100% 78%);
  font-weight: 700;
  text-shadow: 0 0 10px hsl(45 100% 55% / 0.24);
}

.tc-header-strip__sep {
  color: hsl(280 20% 40%);
}

.tc-header-strip__bar {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: hsl(280 35% 12%);
  overflow: hidden;
  min-width: 3rem;
}

.tc-header-strip__fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, hsl(320 90% 55%), hsl(45 100% 60%));
}

.tc-header-strip__pct {
  color: hsl(280 20% 45%);
  font-variant-numeric: tabular-nums;
}

/* Estimated reading reward — compact strip below header */
.tc-reading-points-preview {
  width: 100%;
  border-bottom: 1px solid hsl(45 70% 42% / 0.22);
  background: linear-gradient(
    90deg,
    hsl(275 38% 10% / 0.97) 0%,
    hsl(42 35% 14% / 0.55) 45%,
    hsl(275 38% 10% / 0.97) 100%
  );
  box-shadow: inset 0 1px 0 hsl(45 90% 70% / 0.12);
}
.tc-reading-points-preview__inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.28rem 0.45rem;
  padding: 0.28rem 0.75rem;
  min-height: 1.65rem;
  font-size: 0.62rem;
  letter-spacing: 0.03em;
  position: relative;
  overflow: hidden;
}
.tc-reading-points-preview__glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 120% 180% at 15% 50%, hsl(45 100% 58% / 0.14), transparent 55%);
  pointer-events: none;
}
.tc-reading-points-preview__icon {
  color: hsl(45 95% 62%);
  font-size: 0.75rem;
  line-height: 1;
  filter: drop-shadow(0 0 6px hsl(45 100% 50% / 0.35));
}
.tc-reading-points-preview__label {
  color: hsl(280 12% 72%);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.58rem;
}
.tc-reading-points-preview__value {
  color: hsl(45 100% 72%);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  font-size: 0.78rem;
  text-shadow: 0 0 12px hsl(45 100% 50% / 0.35);
}
.tc-reading-points-preview__unit {
  color: hsl(45 85% 58%);
  font-weight: 700;
  font-size: 0.62rem;
}
.tc-reading-points-preview__hint {
  color: hsl(280 15% 55%);
  font-weight: 500;
  font-size: 0.58rem;
  margin-left: 0.1rem;
}
body.tc-theme-light .tc-reading-points-preview {
  border-bottom-color: hsl(42 60% 38% / 0.28);
  background: linear-gradient(
    90deg,
    hsl(45 100% 97%) 0%,
    hsl(42 90% 94%) 50%,
    hsl(45 100% 97%) 100%
  );
  box-shadow: inset 0 1px 0 hsl(42 80% 45% / 0.15);
}
body.tc-theme-light .tc-reading-points-preview__glow {
  background: radial-gradient(ellipse 120% 180% at 15% 50%, hsl(42 95% 55% / 0.12), transparent 55%);
}
body.tc-theme-light .tc-reading-points-preview__label {
  color: hsl(280 12% 38%);
}
body.tc-theme-light .tc-reading-points-preview__value {
  color: hsl(32 95% 32%);
  text-shadow: none;
}
body.tc-theme-light .tc-reading-points-preview__unit {
  color: hsl(32 90% 36%);
}
body.tc-theme-light .tc-reading-points-preview__hint {
  color: hsl(280 10% 42%);
}
body.tc-theme-light .tc-reading-points-preview__icon {
  color: hsl(42 90% 40%);
  filter: none;
}

.tc-footer__tag {
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: hsl(280 15% 42%);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.tc-footer__legal-wrap {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid hsl(280 18% 18% / 0.45);
  width: 100%;
}

.tc-footer--premium .tc-footer__legal-wrap {
  margin-top: clamp(1.1rem, 2.5vw, 1.5rem);
  padding-top: clamp(1rem, 2.2vw, 1.35rem);
  border-top-color: hsl(280 28% 22% / 0.5);
}

body.tc-theme-light .tc-footer--premium .tc-footer__legal-wrap {
  border-top-color: hsl(280 16% 78% / 0.65);
}

.tc-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.tc-footer__legal-sep {
  color: hsl(280 12% 38%);
  user-select: none;
}

a.tc-footer__legal-link {
  color: hsl(280 45% 72%);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

a.tc-footer__legal-link:hover,
a.tc-footer__legal-link:focus-visible {
  color: hsl(45 90% 70%);
}

.tc-footer__publisher {
  margin: 0.65rem 0 0;
  padding: 0;
  text-align: center;
  font-size: 0.72rem;
  line-height: 1.45;
  color: hsl(280 12% 58%);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.tc-footer__legal + .tc-footer__publisher {
  margin-top: 0.5rem;
}

@media (max-width: 52rem) {
  .tc-footer__main--with-ad {
    grid-template-columns: 1fr;
  }

  .tc-footer__col--ad {
    justify-self: center;
    width: min(100%, 360px);
  }
}

@media (max-width: 42rem) {
  footer.foot.tc-footer,
  .tc-footer__shell {
    max-width: 100%;
  }
}

/* Sfondo home (simile ParticleBackground) */
.tc-mystic-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 52% at 50% -10%, hsl(324 88% 62% / 0.14), transparent 56%),
    radial-gradient(ellipse 60% 42% at 100% 80%, hsl(45 100% 64% / 0.08), transparent 52%),
    radial-gradient(circle at 20% 60%, hsl(278 74% 54% / 0.1) 0%, transparent 42%);
  animation: tc-mystic-shift 18s ease-in-out infinite alternate;
}

.tc-mystic-bg::before,
.tc-mystic-bg::after {
  content: "";
  position: absolute;
  inset: -10%;
  pointer-events: none;
}

.tc-mystic-bg::before {
  opacity: 0.52;
  background-image:
    radial-gradient(circle at 14% 20%, hsl(45 100% 78% / 0.42) 0 1px, transparent 1.7px),
    radial-gradient(circle at 28% 64%, hsl(188 82% 76% / 0.3) 0 1px, transparent 1.7px),
    radial-gradient(circle at 62% 30%, hsl(324 88% 72% / 0.36) 0 1px, transparent 1.8px),
    radial-gradient(circle at 82% 72%, hsl(278 74% 74% / 0.34) 0 1px, transparent 1.8px),
    radial-gradient(circle at 52% 84%, hsl(45 100% 80% / 0.28) 0 1px, transparent 1.8px);
  animation: tc-stars-drift 32s linear infinite;
}

.tc-mystic-bg::after {
  opacity: 0.3;
  background:
    linear-gradient(112deg, transparent 20%, hsl(188 82% 78% / 0.18) 50%, transparent 80%) 0 0 / 60% 60% no-repeat,
    linear-gradient(145deg, transparent 18%, hsl(278 74% 74% / 0.16) 52%, transparent 82%) 100% 100% / 62% 62% no-repeat;
  filter: blur(0.4px);
  animation: tc-constellation-pulse 12s ease-in-out infinite;
}

@keyframes tc-mystic-shift {
  from { opacity: 0.85; filter: saturate(1); }
  to { opacity: 1; filter: saturate(1.08); }
}

@keyframes tc-stars-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(-1.2%, -1.8%, 0) scale(1.02); }
  to { transform: translate3d(1.4%, 1.6%, 0) scale(1); }
}

@keyframes tc-constellation-pulse {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.38; }
}

.tc-main {
  position: relative;
  z-index: 1;
}

.tc-home-hero {
  text-align: center;
  padding: clamp(1rem, 4vw, 2rem) 0 1.5rem;
  position: relative;
}

.tc-home-streak {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 1rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  background: linear-gradient(135deg, hsl(45 100% 62% / 0.22), hsl(320 95% 60% / 0.15));
  border: 1.5px solid hsl(45 100% 62% / 0.55);
  box-shadow: 0 0 28px hsl(45 100% 62% / 0.35), inset 0 1px 0 hsl(45 100% 70% / 0.25);
  color: hsl(45 100% 90%);
}

.tc-home-streak__ico {
  font-size: 1rem;
}

.tc-home-hero__icon {
  margin: 0 auto 0.85rem;
  width: min(13.5rem, 82vw);
  height: min(8.2rem, 48vw);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tc-home-hero__glow {
  position: absolute;
  width: min(8rem, 58vw);
  height: min(5.2rem, 38vw);
  border-radius: 999px;
  background: radial-gradient(ellipse, hsl(295 85% 55% / 0.4) 0%, hsl(45 100% 50% / 0.2) 52%, transparent 82%);
  filter: blur(17px);
  animation: tc-hero-glow 4s ease-in-out infinite;
}

.tc-home-hero__image {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 10px 24px hsl(270 60% 3% / 0.65));
}

.tc-home-hero-cards {
  position: relative;
  width: 12rem;
  height: 7.2rem;
  display: block;
}

.tc-home-hero-card {
  position: absolute;
  width: 4.5rem;
  height: 7rem;
  border-radius: 0.62rem;
  background: linear-gradient(145deg, hsl(268 60% 14%), hsl(268 50% 8%));
  border: 2px solid hsl(45 100% 60% / 0.7);
  box-shadow: 0 0 16px hsl(45 100% 50% / 0.25), 0 8px 30px #000a;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tc-home-hero-card::before {
  content: '';
  position: absolute;
  inset: 0.24rem;
  border-radius: 0.45rem;
  border: 1px solid hsl(45 100% 62% / 0.25);
}

.tc-home-hero-card__symbol {
  font-size: 1.7rem;
  line-height: 1;
  text-shadow: 0 0 12px currentColor;
}

.tc-home-hero-card--left {
  left: 0;
  top: 0.42rem;
  transform: rotate(-22deg) scale(0.88);
  border-color: hsl(45 100% 60% / 0.75);
  color: hsl(45 100% 76%);
  animation: tc-hero-card-left 4s ease-in-out infinite;
}

.tc-home-hero-card--center {
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  z-index: 2;
  border-color: hsl(320 90% 68% / 0.75);
  color: hsl(320 90% 78%);
  animation: tc-hero-card-center 3s ease-in-out infinite;
}

.tc-home-hero-card--right {
  right: 0;
  top: 0.42rem;
  transform: rotate(22deg) scale(0.88);
  border-color: hsl(185 80% 58% / 0.75);
  color: hsl(185 80% 72%);
  animation: tc-hero-card-right 4s ease-in-out infinite;
}

@keyframes tc-hero-glow {
  0%, 100% { opacity: 0.32; transform: scale(1); }
  50% { opacity: 0.62; transform: scale(1.12); }
}

@keyframes tc-hero-card-center {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-8px) scale(1.05); }
}

@keyframes tc-hero-card-left {
  0%, 100% { transform: rotate(-22deg) scale(0.88); }
  50% { transform: rotate(-25deg) scale(0.9); }
}

@keyframes tc-hero-card-right {
  0%, 100% { transform: rotate(22deg) scale(0.88); }
  50% { transform: rotate(25deg) scale(0.9); }
}

/* Home hero: logo + título + frases num só bloco (menos “gaps” para Auto Ads) */
.tc-home-hero-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  contain: layout style;
  isolation: isolate;
}

.tc-home-hero-brand .tc-hero-phrase-root,
.tc-home-hero-brand .tc-phrase-board {
  align-self: stretch;
  width: 100%;
}

.tc-home-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.05;
  /* gradientes nos filhos .tc-home-title__line */
}

.tc-home-v2__shell--hero-title-reveal-on .tc-home-title {
  opacity: 0;
  transform: translateY(4px) scale(0.985);
  animation: tc-home-title-reveal 460ms cubic-bezier(0.2, 0.75, 0.2, 1) 60ms both;
}

.tc-home-title__line {
  display: block;
}

.tc-home-title__line--primary {
  font-size: clamp(2rem, 7vw, 3.75rem);
  letter-spacing: 0.14em;
  background: linear-gradient(135deg, hsl(45 100% 70%) 0%, hsl(45 100% 88%) 28%, hsl(320 95% 72%) 65%, hsl(280 75% 78%) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 22px hsl(45 100% 62% / 0.35));
}

.tc-home-title--with-royale .tc-home-title__line--primary {
  margin-bottom: 0.02rem;
}

.tc-home-title__line--royale {
  font-size: clamp(1.05rem, 4.5vw, 1.85rem);
  font-weight: 800;
  letter-spacing: 0.32em;
  line-height: 1.1;
  background: linear-gradient(135deg, hsl(45 100% 82%) 0%, hsl(320 88% 76%) 55%, hsl(195 75% 72%) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 16px hsl(45 100% 58% / 0.32));
}

.tc-home-v2__shell--hero-title-large-on .tc-home-title__line--primary {
  font-size: clamp(2.18rem, 7.8vw, 4.15rem);
  letter-spacing: 0.13em;
}

.tc-home-v2__shell--hero-title-large-on .tc-home-title__line--royale {
  font-size: clamp(1.12rem, 4.9vw, 2.05rem);
  letter-spacing: 0.28em;
}

@keyframes tc-home-title-reveal {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.972);
    filter: saturate(0.92);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: saturate(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-home-v2__shell--hero-title-reveal-on .tc-home-title {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* ------------------------------------------------------------------------- */
/* Home hero variants (admin option: tarot_cr_home_hero_variant)              */
/* Default remains unchanged; these apply only when body has variant class.   */
/* ------------------------------------------------------------------------- */

body.tc-home-hero-variant-love .tc-home-hero__glow{
  background: radial-gradient(ellipse, hsl(350 92% 58% / 0.44) 0%, hsl(320 95% 60% / 0.22) 52%, transparent 82%);
}
body.tc-home-hero-variant-love .tc-home-hero-card--left{ border-color: hsl(350 92% 62% / 0.8); color: hsl(350 92% 76%); }
body.tc-home-hero-variant-love .tc-home-hero-card--center{ border-color: hsl(320 95% 70% / 0.8); color: hsl(320 95% 82%); }
body.tc-home-hero-variant-love .tc-home-hero-card--right{ border-color: hsl(12 92% 62% / 0.8); color: hsl(12 92% 78%); }
body.tc-home-hero-variant-love .tc-home-title__line--primary{
  background: linear-gradient(135deg, hsl(8 95% 70%) 0%, hsl(350 92% 78%) 40%, hsl(320 95% 74%) 75%, hsl(280 70% 78%) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter: drop-shadow(0 0 22px hsl(350 92% 60% / 0.33));
}
body.tc-home-hero-variant-love .tc-home-title__line--royale{
  background: linear-gradient(135deg, hsl(350 92% 78%) 0%, hsl(320 95% 74%) 60%, hsl(195 78% 74%) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

body.tc-home-hero-variant-money .tc-home-hero__glow{
  background: radial-gradient(ellipse, hsl(152 85% 46% / 0.38) 0%, hsl(45 100% 55% / 0.18) 52%, transparent 82%);
}
body.tc-home-hero-variant-money .tc-home-hero-card--left{ border-color: hsl(152 85% 52% / 0.78); color: hsl(152 85% 72%); }
body.tc-home-hero-variant-money .tc-home-hero-card--center{ border-color: hsl(45 100% 62% / 0.78); color: hsl(45 100% 78%); }
body.tc-home-hero-variant-money .tc-home-hero-card--right{ border-color: hsl(185 85% 58% / 0.78); color: hsl(185 85% 76%); }
body.tc-home-hero-variant-money .tc-home-title__line--primary{
  background: linear-gradient(135deg, hsl(152 85% 52%) 0%, hsl(45 100% 74%) 35%, hsl(185 85% 70%) 70%, hsl(280 70% 78%) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter: drop-shadow(0 0 22px hsl(152 85% 44% / 0.32));
}

body.tc-home-hero-variant-luck .tc-home-hero__glow{
  background: radial-gradient(ellipse, hsl(45 100% 62% / 0.36) 0%, hsl(195 85% 58% / 0.18) 52%, transparent 82%);
}
body.tc-home-hero-variant-luck .tc-home-hero-card--left{ border-color: hsl(45 100% 64% / 0.82); color: hsl(45 100% 82%); }
body.tc-home-hero-variant-luck .tc-home-hero-card--center{ border-color: hsl(195 85% 62% / 0.82); color: hsl(195 85% 78%); }
body.tc-home-hero-variant-luck .tc-home-hero-card--right{ border-color: hsl(280 75% 72% / 0.82); color: hsl(280 75% 82%); }
body.tc-home-hero-variant-luck .tc-home-title__line--primary{
  background: linear-gradient(135deg, hsl(45 100% 74%) 0%, hsl(195 85% 72%) 45%, hsl(280 75% 78%) 85%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter: drop-shadow(0 0 22px hsl(45 100% 62% / 0.28));
}

.tc-home-sub {
  margin: 0 0 1rem;
  font-size: 0.52rem;
  letter-spacing: 0.45em;
  text-transform: uppercase;
  color: hsl(280 25% 48%);
}

@keyframes tc-home-phrase-glow {
  0%,
  100% {
    filter:
      drop-shadow(0 0 10px hsl(45 100% 58% / 0.42))
      drop-shadow(0 0 26px hsl(320 88% 58% / 0.2));
  }
  50% {
    filter:
      drop-shadow(0 0 18px hsl(45 100% 68% / 0.62))
      drop-shadow(0 0 38px hsl(320 92% 62% / 0.38));
  }
}

/* CLS-safe typewriter: reveal text without changing layout each tick. */
@keyframes tc-home-typewriter-reveal {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}

.tc-home-hero-brand .tc-home-phrase {
  max-width: 100%;
}

.tc-home-phrase {
  position: relative;
  /* Reserve space for up to 2 lines to prevent CLS when the phrase wraps. */
  min-height: calc(2 * 1.45em + 1rem);
  max-width: 32rem;
  margin: 0 auto 1.4rem;
  padding: 0.5rem 1rem;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 3.5vw, 1.3rem);
  font-weight: 600;
  font-style: italic;
  letter-spacing: 0.04em;
  line-height: 1.45;
  text-align: center;
  background: linear-gradient(
    118deg,
    hsl(45 100% 86%) 0%,
    hsl(48 100% 76%) 24%,
    hsl(320 92% 78%) 58%,
    hsl(200 78% 74%) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: tc-home-phrase-glow 4.5s ease-in-out infinite;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

/* Premium “chalkboard” container for phrases (hero + mantra). */
.tc-phrase-board {
  --tc-board-radius: 14px;
  --tc-board-pad-block: 0.8rem;
  --tc-board-pad-inline: 0.95rem;
  --tc-board-line-height: 1.45;
  --tc-board-lines: 2;
  --tc-board-maxw: 40rem;
  --tc-board-minh: calc(var(--tc-board-lines) * var(--tc-board-line-height) * 1em + var(--tc-board-pad-block) * 2);
  position: relative;
  width: 100%;
  max-width: var(--tc-board-maxw);
  margin: 0 auto 1.05rem;
  padding: var(--tc-board-pad-block) var(--tc-board-pad-inline);
  border-radius: var(--tc-board-radius);
  border: 1px solid rgba(170, 150, 230, 0.22);
  background:
    linear-gradient(180deg, rgba(10, 12, 22, 0.92), rgba(6, 7, 14, 0.96)),
    radial-gradient(120% 90% at 50% 0%, rgba(186, 140, 255, 0.14), transparent 58%),
    radial-gradient(120% 120% at 50% 120%, rgba(255, 210, 120, 0.1), transparent 62%);
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.03) inset;
  min-height: var(--tc-board-minh);
  display: flex;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
}

.tc-phrase-board::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow:
    0 0 0 1px rgba(186, 140, 255, 0.22) inset,
    0 0 22px rgba(186, 140, 255, 0.12),
    0 0 34px rgba(255, 210, 120, 0.08);
  opacity: 0.9;
}

body.tc-theme-light .tc-phrase-board {
  border-color: rgba(100, 110, 140, 0.22);
  background:
    linear-gradient(180deg, rgba(246, 246, 252, 0.96), rgba(238, 240, 248, 0.98)),
    radial-gradient(120% 90% at 50% 0%, rgba(120, 140, 220, 0.09), transparent 58%),
    radial-gradient(120% 120% at 50% 120%, rgba(200, 150, 240, 0.08), transparent 62%);
  box-shadow: 0 10px 26px rgba(20, 30, 60, 0.08);
}

body.tc-theme-light .tc-phrase-board::after {
  box-shadow:
    0 0 0 1px rgba(90, 110, 200, 0.16) inset,
    0 0 18px rgba(120, 140, 220, 0.08),
    0 0 26px rgba(200, 150, 240, 0.06);
  opacity: 0.8;
}

.tc-phrase-board::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.05) 0,
      rgba(255, 255, 255, 0.05) 1px,
      rgba(255, 255, 255, 0) 6px,
      rgba(255, 255, 255, 0) 10px
    );
  opacity: 0.1;
  pointer-events: none;
}

.tc-phrase-board::after {
  content: '';
  position: absolute;
  inset: -40% -30%;
  background: radial-gradient(circle at 20% 20%, rgba(186, 140, 255, 0.18), transparent 40%),
    radial-gradient(circle at 80% 40%, rgba(255, 210, 120, 0.14), transparent 42%),
    radial-gradient(circle at 50% 85%, rgba(120, 220, 255, 0.1), transparent 45%);
  opacity: 0.75;
  filter: blur(18px);
  pointer-events: none;
}

.tc-phrase-board__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 34rem;
  text-align: center;
  box-sizing: border-box;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: var(--tc-board-minh);
}

/* Inside the board, the phrase should not add its own spacing/background. */
.tc-phrase-board .tc-home-phrase {
  min-height: 0;
  margin: 0;
  padding: 0;
  max-width: none;
  line-height: var(--tc-board-line-height);
  /* Restore original premium gradient + glow animation (as in old-refs). */
  background: linear-gradient(
    118deg,
    hsl(45 100% 86%) 0%,
    hsl(48 100% 76%) 24%,
    hsl(320 92% 78%) 58%,
    hsl(200 78% 74%) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: tc-home-phrase-glow 4.5s ease-in-out infinite;
}

body.tc-theme-light .tc-phrase-board .tc-home-phrase {
  background: linear-gradient(
    118deg,
    hsl(270 45% 18%) 0%,
    hsl(320 48% 22%) 45%,
    hsl(200 40% 20%) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
}

@media (max-width: 781px) {
  .tc-phrase-board {
    --tc-board-lines: 4;
    margin-bottom: 0.95rem;
  }
}

/* Mantra: slightly tighter board by default (uses existing glow presets around widget). */
.tc-phrase-board--mantra {
  --tc-board-maxw: 46rem;
}

/* Hero: allow a bit more width to avoid wraps, keep premium feel. */
.tc-phrase-board--hero {
  --tc-board-maxw: 48rem;
}

@media (prefers-reduced-motion: reduce) {
  .tc-home-phrase {
    animation: none;
    filter: drop-shadow(0 0 12px hsl(45 100% 58% / 0.45));
  }
}

body.tc-theme-light .tc-home-phrase {
  background: linear-gradient(
    118deg,
    hsl(270 45% 18%) 0%,
    hsl(320 48% 22%) 45%,
    hsl(200 40% 20%) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
}

.tc-home-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.55rem 0.75rem;
  margin-bottom: 1.25rem;
  font-size: 0.76rem;
}

.tc-home-stats__lvl {
  font-weight: 800;
  color: hsl(45 100% 72%);
  background: hsl(280 40% 13% / 0.65);
  border: 1px solid hsl(45 100% 62% / 0.35);
  border-radius: 999px;
  padding: 0.28rem 0.6rem;
}

.tc-home-stats__pts {
  color: hsl(160 80% 72%);
  font-weight: 800;
  background: linear-gradient(135deg, hsl(160 60% 20% / 0.58), hsl(260 45% 16% / 0.58));
  border: 1px solid hsl(160 70% 55% / 0.45);
  border-radius: 999px;
  padding: 0.28rem 0.64rem;
  box-shadow: 0 0 12px hsl(160 70% 55% / 0.16);
}

.tc-home-stats__bar {
  width: min(100%, 12rem);
  height: 6px;
  border-radius: 999px;
  background: hsl(280 35% 12%);
  overflow: hidden;
}

.tc-home-stats__fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, hsl(320 90% 55%), hsl(45 100% 60%));
}

.tc-home-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}

.tc-home-footnote {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border-strong);
  font-size: var(--text-small);
  color: var(--muted);
  text-align: center;
}

/* Home: três jogadas rápidas + convites */
.tc-home-quick {
  max-width: 48rem;
  margin: 0 auto 1.5rem;
  padding: 0 clamp(1rem, 4vw, 1.75rem);
}

.tc-home-quick__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.8vw, 1.45rem);
  font-weight: 800;
  text-align: center;
  color: var(--fg);
}

.tc-home-quick__invites {
  margin: 0 auto 1rem;
  max-width: 40rem;
  text-align: center;
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.tc-home-quick__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.75rem;
}

.tc-home-quick__item {
  margin: 0;
}

.tc-home-quick__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.35rem;
  height: 100%;
  padding: 1rem 0.85rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: linear-gradient(165deg, hsl(268 38% 13% / 0.96), hsl(275 36% 9% / 0.94));
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.tc-home-quick__card:hover,
.tc-home-quick__card:focus-visible {
  transform: translateY(-2px);
  border-color: hsl(45 100% 55% / 0.35);
  box-shadow: 0 8px 28px hsl(270 55% 5% / 0.55);
  outline: none;
}

.tc-home-quick__icon {
  font-size: 1.75rem;
  line-height: 1;
}

.tc-home-quick__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--fg);
}

.tc-home-quick__desc {
  font-size: 0.8rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tc-home-quick__cta {
  margin-top: 0.25rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(45 100% 62%);
}

/* Home: recomendado + missões (paridade app React) */
.tc-home-reco {
  max-width: 42rem;
  margin: 0 auto 1.25rem;
  padding: 0 clamp(1rem, 4vw, 1.75rem);
}

.tc-home-reco__card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.1rem 1.25rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: linear-gradient(145deg, hsl(268 40% 14% / 0.95), hsl(220 35% 10% / 0.92));
  box-shadow: var(--shadow-soft);
}

.tc-home-reco__icon {
  flex-shrink: 0;
  font-size: 2rem;
  line-height: 1;
}

.tc-home-reco__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-dim);
}

.tc-home-reco__name {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  font-weight: 600;
  color: var(--fg);
}

.tc-home-reco__desc {
  margin: 0 0 0.85rem;
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.tc-home-reco__cta {
  display: inline-flex;
}

.tc-home-missions {
  max-width: 42rem;
  margin: 0 auto 1.5rem;
  padding: 0 clamp(1rem, 4vw, 1.75rem);
}

.tc-home-missions__heading {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  font-weight: 600;
  color: var(--fg);
}

.tc-home-missions__empty {
  margin: 0;
  font-size: var(--text-small);
}

.tc-home-missions__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.tc-home-missions__item {
  --tc-mission-shine: hsl(45 100% 72% / 0.14);
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
  padding: 0.75rem 0.9rem;
  border-radius: var(--radius-sm);
  isolation: isolate;
  overflow: hidden;
  border: 1px solid hsl(45 100% 55% / 0.2);
  background:
    linear-gradient(145deg, hsl(272 38% 12% / 0.96), hsl(268 34% 7% / 0.99)),
    radial-gradient(ellipse 95% 85% at 88% -5%, hsl(320 65% 48% / 0.22), transparent 52%),
    radial-gradient(ellipse 75% 70% at 5% 105%, hsl(188 45% 42% / 0.14), transparent 48%);
  box-shadow:
    0 0 0 1px hsl(280 45% 55% / 0.1),
    0 10px 32px hsl(270 58% 4% / 0.48),
    0 0 36px hsl(300 55% 45% / 0.14);
}

@media (prefers-reduced-motion: no-preference) {
  .tc-home-missions__item::before {
    content: '';
    position: absolute;
    inset: -40% -30%;
    background: linear-gradient(
      115deg,
      transparent 36%,
      var(--tc-mission-shine) 48%,
      hsl(320 85% 70% / 0.12) 52%,
      transparent 64%
    );
    transform: translateX(-18%) rotate(6deg);
    animation: tc-home-mission-shine 5.2s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
  }
}

@keyframes tc-home-mission-shine {
  0%,
  100% {
    opacity: 0.35;
    transform: translateX(-28%) rotate(6deg);
  }
  50% {
    opacity: 0.85;
    transform: translateX(18%) rotate(6deg);
  }
}

.tc-home-missions__item > * {
  position: relative;
  z-index: 1;
}

.tc-home-missions__item.is-done {
  opacity: 0.9;
  border-color: hsl(160 55% 42% / 0.45);
  box-shadow:
    0 0 0 1px hsl(160 50% 38% / 0.12),
    0 8px 28px hsl(270 58% 4% / 0.4);
}

@media (prefers-reduced-motion: no-preference) {
  .tc-home-missions__item.is-done::before {
    animation-duration: 7s;
    opacity: 0.5;
  }
}

.tc-home-missions__ico {
  flex-shrink: 0;
  font-size: 1.35rem;
  line-height: 1;
}

.tc-home-missions__text {
  flex: 1 1 12rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.tc-home-missions__name {
  font-weight: 600;
  color: var(--fg);
}

.tc-home-missions__meta {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.tc-home-missions__desc {
  font-size: var(--text-small);
  color: var(--muted);
  line-height: var(--line-tight);
}

.tc-home-missions__badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ok);
  background: hsl(160 50% 16% / 0.65);
  border: 1px solid hsl(160 50% 40% / 0.4);
  border-radius: 999px;
  padding: 0.12rem 0.44rem;
}

.tc-home-missions__reward {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.66rem;
  font-weight: 800;
  color: hsl(45 100% 80%);
  background: hsl(280 45% 12% / 0.72);
  border: 1px solid hsl(45 100% 60% / 0.35);
  border-radius: 999px;
  padding: 0.12rem 0.44rem;
}

.tc-home-missions__link {
  flex-shrink: 0;
  margin-left: auto;
}

/* CTA missioni + jogadas (griglia spread): gradiente magico in linea con tesori / palette mistica. */
.tc-home-missions__link.btn,
.tc-spread-card__cta.btn:not(.btn-secondary) {
  background: linear-gradient(
    135deg,
    hsl(45 100% 62%) 0%,
    hsl(324 82% 56%) 42%,
    hsl(278 72% 46%) 100%
  );
  color: hsl(270 45% 8%);
  border: 1px solid hsl(45 100% 78% / 0.42);
  box-shadow:
    0 0 20px hsl(45 100% 52% / 0.32),
    0 4px 16px hsl(310 65% 28% / 0.38),
    inset 0 1px 0 hsl(0 0% 100% / 0.24);
  text-shadow: 0 1px 0 hsl(45 100% 92% / 0.2);
  font-weight: 800;
}

.tc-home-missions__link.btn:hover,
.tc-spread-card__cta.btn:not(.btn-secondary):hover {
  filter: brightness(1.07) saturate(1.06);
}

.tc-home-missions__link.btn:focus-visible,
.tc-spread-card__cta.btn:not(.btn-secondary):focus-visible {
  outline-color: hsl(320 90% 62% / 0.55);
}

@media (max-width: 30rem) {
  .tc-home-missions__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.48rem 0.62rem;
    align-items: start;
    padding: 0.62rem 0.68rem;
  }

  .tc-home-missions__ico {
    grid-column: 1;
    grid-row: 1 / span 2;
    font-size: 1.18rem;
    margin-top: 0.08rem;
  }

  .tc-home-missions__text {
    grid-column: 2;
    gap: 0.16rem;
  }

  .tc-home-missions__name {
    font-size: 0.95rem;
    line-height: 1.2;
  }

  .tc-home-missions__desc {
    font-size: 0.84rem;
    line-height: 1.3;
  }

  .tc-home-missions__link {
    grid-column: 2;
    margin-left: 0;
    width: auto;
    justify-self: start;
    min-width: 5.2rem;
    text-align: center;
    padding-inline: 0.68rem;
  }
}

/* Filtri categoria (Home.jsx) */
.tc-cat-wrap {
  position: relative;
  margin: 0 0 1.5rem;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.tc-cat-fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2rem;
  z-index: 2;
  pointer-events: none;
}

.tc-cat-fade--l {
  left: 0;
  background: linear-gradient(to right, hsl(270 50% 4%), transparent);
}

.tc-cat-fade--r {
  right: 0;
  background: linear-gradient(to left, hsl(270 50% 4%), transparent);
}

.tc-cat-scroll {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding: 0.25rem 0.5rem 0.65rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.tc-cat-scroll::-webkit-scrollbar {
  display: none;
}

.tc-cat-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  border: 1px solid hsl(290 35% 18% / 0.75);
  background: hsl(268 45% 9% / 0.95);
  color: hsl(280 18% 48%);
  transition: box-shadow 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.tc-cat-pill__ico {
  font-size: 0.9rem;
  line-height: 1;
}

.tc-cat-pill.is-active {
  color: hsl(280 80% 72%);
  border-color: hsl(280 80% 60% / 0.55);
  background: linear-gradient(135deg, hsl(280 80% 60% / 0.22), hsl(280 80% 60% / 0.1));
  box-shadow: 0 0 16px hsl(280 80% 60% / 0.25), inset 0 1px 0 hsl(280 80% 60% / 0.15);
}

/* Mobile legibility: category pills were too small/low-contrast. */
@media (max-width: 42rem) {
  .tc-cat-scroll {
    gap: 0.6rem;
    padding: 0.35rem 0.65rem 0.75rem;
  }

  .tc-cat-pill {
    padding: 0.58rem 1.05rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    border-color: hsl(290 35% 24% / 0.85);
    background: hsl(268 48% 10% / 0.98);
    color: hsl(45 85% 90% / 0.82);
    box-shadow: inset 0 1px 0 hsl(280 80% 70% / 0.08);
  }

  .tc-cat-pill__ico {
    font-size: 1.02rem;
  }

  .tc-cat-pill.is-active {
    color: hsl(45 95% 92%);
    border-color: hsl(280 90% 68% / 0.7);
    background: linear-gradient(135deg, hsl(280 85% 60% / 0.34), hsl(280 85% 60% / 0.14));
    box-shadow:
      0 0 18px hsl(280 90% 65% / 0.28),
      inset 0 1px 0 hsl(45 90% 88% / 0.14);
  }

  .tc-cat-pill:focus-visible {
    outline: 2px solid hsl(45 90% 78% / 0.75);
    outline-offset: 2px;
  }
}

/* Griglia spread (SpreadSelector) */
.tc-spread-grid-wrap {
  display: grid;
  grid-template-columns: 1fr;
  --tc-spread-grid-cols-md: 1;
  --tc-spread-grid-cols-lg: 2;
  --tc-spread-grid-cols-xl: 3;
  gap: 1rem;
}

@media (min-width: 36rem) {
  .tc-spread-grid-wrap {
    grid-template-columns: repeat(var(--tc-spread-grid-cols-md, 1), minmax(0, 1fr));
  }
}

@media (min-width: 56rem) {
  .tc-spread-grid-wrap {
    grid-template-columns: repeat(var(--tc-spread-grid-cols-lg, 2), minmax(0, 1fr));
  }
}

@media (min-width: 74rem) {
  .tc-spread-grid-wrap {
    grid-template-columns: repeat(var(--tc-spread-grid-cols-xl, 3), minmax(0, 1fr));
  }
}

.tc-spread-card {
  position: relative;
  isolation: isolate;
  text-align: left;
  padding: 1.1rem 1.15rem 1rem;
  overflow: hidden;
  border-radius: 1.15rem;
  border: 1.5px solid color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 42%, transparent);
  background:
    linear-gradient(180deg, hsl(275 42% 8% / 0.98), hsl(270 38% 6% / 0.98)),
    radial-gradient(circle at 85% -20%, hsl(320 90% 55% / 0.22), transparent 42%),
    radial-gradient(ellipse 92% 85% at 8% 105%, color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 22%, transparent) 0%, transparent 52%),
    hsl(275 40% 6% / 0.98);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 14%, transparent),
    0 8px 32px hsl(270 58% 4% / 0.55),
    0 0 44px color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 18%, transparent);
  transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

/* Jogadas widget: glow/brilho is optional and disabled by default. */
.tc-spread-grid-wrap:not(.tc-spread-grid-wrap--glow) .tc-spread-card {
  background:
    linear-gradient(180deg, hsl(275 42% 8% / 0.98), hsl(270 38% 6% / 0.98)),
    hsl(275 40% 6% / 0.98);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 10%, transparent),
    0 6px 22px hsl(270 58% 4% / 0.42);
}

@media (prefers-reduced-motion: no-preference) {
  .tc-spread-card::before {
    content: '';
    position: absolute;
    inset: -42% -32%;
    background: linear-gradient(
      115deg,
      transparent 34%,
      color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 40%, hsl(45 100% 72% / 0.16)) 48%,
      hsl(320 85% 70% / 0.12) 52%,
      transparent 64%
    );
    transform: translateX(-18%) rotate(6deg);
    animation: tc-home-mission-shine 5.4s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    opacity: 0.75;
  }

  .tc-spread-grid-wrap:not(.tc-spread-grid-wrap--glow) .tc-spread-card::before {
    content: none;
    animation: none;
  }
}

.tc-spread-card > * {
  position: relative;
  z-index: 1;
}

.tc-spread-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--tc-accent) 58%, hsl(45 100% 55% / 0.35));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tc-accent) 22%, transparent),
    0 16px 52px color-mix(in srgb, var(--tc-accent) 26%, transparent),
    0 0 56px color-mix(in srgb, var(--tc-accent) 20%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--tc-accent) 14%, transparent);
}

.tc-spread-grid-wrap:not(.tc-spread-grid-wrap--glow) .tc-spread-card:hover {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tc-accent, hsl(280 75% 65%)) 18%, transparent),
    0 10px 26px hsl(270 58% 4% / 0.5);
}

.tc-spread-card--locked {
  opacity: 0.72;
  border-color: hsl(320 90% 50% / 0.28);
}

.tc-spread-card--locked:hover {
  transform: none;
}

@media (prefers-reduced-motion: no-preference) {
  .tc-spread-card--locked::before {
    opacity: 0.38;
    animation-duration: 7s;
  }
}

.tc-spread-card__badge {
  position: static;
  display: inline-block;
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  background: hsl(45 100% 55% / 0.2);
  border: 1px solid hsl(45 100% 55% / 0.45);
  color: hsl(45 100% 85%);
}

.tc-spread-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.tc-spread-card__head-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.3rem;
  flex-shrink: 0;
  text-align: right;
}

.tc-spread-card__icon {
  font-size: 1.75rem;
  line-height: 1;
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--tc-accent) 40%, transparent));
}

.tc-spread-card__pts {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  font-size: 0.7rem;
  font-weight: 800;
  color: hsl(45 100% 80%);
  background: linear-gradient(135deg, hsl(160 55% 22% / 0.62), hsl(260 50% 17% / 0.62));
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  border: 1px solid hsl(160 70% 55% / 0.35);
  box-shadow: 0 0 12px hsl(160 70% 55% / 0.16);
}

.tc-spread-card__pts-ico {
  font-size: 0.78rem;
  line-height: 1;
}

.tc-spread-card__title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.35rem;
  color: var(--fg);
  line-height: var(--line-tight);
}

.tc-spread-card__meta {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  color: hsl(280 18% 52%);
}

.tc-spread-card__cat {
  color: hsl(280 25% 62%);
}

.tc-spread-card__desc {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: hsl(280 15% 55%);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tc-spread-card__lock-msg {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  color: hsl(320 50% 65%);
}

.tc-spread-card__cta {
  width: 100%;
  text-align: center;
  margin-top: 0.25rem;
}

.tc-page-hero__sub {
  margin: 0.35rem 0 0;
  font-size: var(--text-small);
}

.tc-page-hero__points {
  color: hsl(45 100% 72%);
  font-weight: 700;
}

/* Dashboard — pannelli tipo card */
.tc-dash-hero {
  padding: 1.25rem 1.35rem;
  border-radius: var(--radius);
  border: 1px solid hsl(320 70% 45% / 0.25);
  background: linear-gradient(145deg, hsl(275 42% 8%), hsl(275 35% 6%));
  box-shadow: 0 8px 40px hsl(270 60% 4% / 0.55);
  margin-bottom: 1.75rem;
}

.tc-dash-hero__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 1rem;
}

/* Anchor target under sticky app header */
#tc-dash-missions.tc-dash-missions-section {
  scroll-margin-top: 6.75rem;
}

.tc-dash-mission {
  border-radius: var(--radius-sm);
  border: 1px solid hsl(290 40% 22% / 0.7);
  background: hsl(275 38% 7% / 0.95);
  padding: 1rem 1.1rem;
  margin-bottom: 0.75rem;
}

.tc-dash-mission.is-done {
  border-color: hsl(160 45% 35% / 0.45);
  background: hsl(160 20% 10% / 0.5);
}

.tc-dash-mission__meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.32rem;
  margin-top: 0.22rem;
}

.tc-dash-mission__reward {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.66rem;
  font-weight: 800;
  color: hsl(45 100% 80%);
  background: hsl(280 45% 12% / 0.72);
  border: 1px solid hsl(45 100% 60% / 0.35);
  border-radius: 999px;
  padding: 0.12rem 0.44rem;
}

@media (max-width: 34rem) {
  .tc-dash-mission {
    padding: 0.75rem 0.82rem;
    margin-bottom: 0.52rem;
  }

  .tc-dash-mission .spread-item__row {
    gap: 0.58rem;
  }

  .tc-dash-mission .spread-ico {
    font-size: 1.2rem;
  }

  .tc-dash-mission .spread-body > strong {
    font-size: 0.89rem;
    line-height: 1.2;
  }

  .tc-dash-mission .spread-body .muted {
    font-size: 0.73rem;
    line-height: 1.32;
  }
}

/* Dashboard — KPI strip & análise (mini barras) */
.tc-dash-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}

@media (max-width: 28rem) {
  .tc-dash-kpis {
    grid-template-columns: 1fr;
  }
}

.tc-dash-kpis__card {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid hsl(290 40% 22% / 0.7);
  background: hsl(275 38% 7% / 0.95);
  box-shadow: 0 4px 20px hsl(270 60% 4% / 0.45);
}

.tc-dash-kpis__label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(280 18% 58%);
}

.tc-dash-kpis__value {
  margin: 0.35rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 3vw, 1.6rem);
  font-weight: 700;
  color: hsl(45 100% 78%);
  line-height: 1.15;
}

.tc-dash-kpis__unit {
  font-size: 0.85rem;
  font-weight: 600;
  color: hsl(280 18% 62%);
}

.tc-dash-points-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.tc-dash-points-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-weight: 800;
  color: hsl(45 100% 82%);
  background: linear-gradient(135deg, hsl(160 55% 22% / 0.55), hsl(260 50% 18% / 0.55));
  border: 1px solid hsl(160 70% 55% / 0.35);
  border-radius: 999px;
  padding: 0.2rem 0.56rem;
}

.tc-dash-analysis {
  margin-bottom: 1.75rem;
}

.tc-mini-bars {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.tc-mini-bars__row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 1fr) minmax(0, 3fr) auto;
  align-items: center;
  gap: 0.5rem 0.65rem;
  font-size: var(--text-small);
}

.tc-mini-bars__label {
  color: var(--muted);
  min-width: 0;
  word-break: break-word;
}

.tc-mini-bars__track {
  display: block;
  height: 8px;
  border-radius: 999px;
  background: var(--border-strong);
  overflow: hidden;
}

.tc-mini-bars__fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent-dim), var(--accent));
  transition: width 0.35s ease;
}

.tc-mini-bars__num {
  font-variant-numeric: tabular-nums;
  color: var(--fg);
  min-width: 2ch;
  text-align: right;
}

/* Perfil — grelha de conquistas */
.tc-profile-hero__progress {
  margin-top: 0.5rem;
}

.tc-ach-grid {
  list-style: none;
  margin: 0.5rem 0 1.25rem;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
}

@media (min-width: 30rem) {
  .tc-ach-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.tc-ach-grid__item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--card-surface);
  box-shadow: var(--shadow-soft);
}

.tc-ach-grid__ico {
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
}

.tc-ach-grid__name {
  font-size: var(--text-small);
  line-height: var(--line-body);
  color: var(--fg);
}

/* Deck picker (arco tipo React DeckPicker) */
.tc-deck-pick-counter {
  font-family: var(--font-display);
  font-size: var(--text-small);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.35rem;
}

.tc-pick-slots-wrap {
  margin: 1rem 0;
}

/* Pick positions: one framed block when ad-shield is on (discourages in-feed ads between slot <li>). */
.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-pick-slots-wrap--shield {
  position: relative;
  isolation: isolate;
  contain: layout;
  overflow: hidden;
  border-radius: 0.95rem;
  padding: 0.55rem 0.65rem 0.75rem;
  margin: 0.85rem 0 1rem;
  background:
    linear-gradient(180deg, hsl(270 58% 10% / 0.88), hsl(270 52% 8% / 0.55) 28%, transparent 55%),
    radial-gradient(circle at 50% -10%, hsl(45 100% 62% / 0.12), transparent 52%);
  border: 1px solid hsl(290 35% 28% / 0.48);
}

body.tc-theme-ad-safe .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-pick-slots-wrap--shield {
  border-color: hsl(220 14% 22% / 0.42);
  background:
    linear-gradient(180deg, hsl(220 16% 12% / 0.9), hsl(220 14% 10% / 0.55) 30%, transparent 55%),
    radial-gradient(circle at 50% -10%, hsl(200 80% 55% / 0.08), transparent 52%);
}

.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-pick-positions-widget .tc-section-title {
  margin-top: 0;
}

.tc-spread-visual-cards-legend__deck-num {
  font-size: 0.72rem;
  font-weight: 700;
  color: hsl(45 90% 72%);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

body.tc-theme-ad-safe .tc-spread-visual-cards-legend__deck-num {
  color: hsl(200 75% 72%);
}

.tc-pick-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tc-pick-slot {
  flex: 1 1 8rem;
  min-width: 6rem;
  padding: 0.5rem 0.65rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  background: rgba(24, 28, 40, 0.65);
}

.tc-pick-slot.is-active {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.2);
}

.tc-pick-slot.is-filled {
  border-color: rgba(139, 90, 160, 0.35);
}

.tc-pick-slot__label {
  display: block;
  font-size: var(--text-small);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.tc-pick-slot__card-name {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.76rem;
  line-height: 1.35;
  color: hsl(45 100% 88%);
  opacity: 1;
  font-weight: 600;
}

.tc-pick-slot__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 3.5rem;
  border-radius: 8px;
  background: linear-gradient(160deg, hsl(295 65% 16%), hsl(270 55% 9%));
  border: 1px solid hsl(320 70% 48% / 0.45);
}

.tc-pick-slot__spark {
  font-size: 1rem;
  color: hsl(320 80% 68%);
  opacity: 0.85;
}

.tc-pick-slot__empty {
  color: var(--muted);
  font-size: var(--text-small);
}

.tc-deck-pick-progress-block {
  margin: 1rem 0;
}

.tc-deck-pick-phase {
  margin: 0 0 0.35rem;
  text-align: center;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(45 100% 72%);
  font-weight: 700;
}

.tc-deck-pick-hintline {
  text-align: center;
  font-size: var(--text-small);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(280 18% 58%);
  margin: 0 0 0.35rem;
}

.tc-deck-pick-progress__fill {
  background: linear-gradient(90deg, hsl(320 90% 55%), hsl(280 80% 60%), hsl(45 100% 62%));
  box-shadow: 0 0 8px hsl(320 90% 55% / 0.35);
}

.tc-deck-pick-position-hint {
  margin-top: 0.65rem;
  padding: 0.6rem 0.85rem;
  border-radius: var(--radius-sm);
  background: hsl(320 90% 55% / 0.12);
  border: 1px solid hsl(320 90% 55% / 0.28);
  text-align: center;
}

.tc-deck-pick-position-hint__title {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: hsl(320 90% 70%);
}

.tc-deck-pick-position-hint__title strong {
  display: block;
  margin-top: 0.25rem;
  font-family: var(--font-display);
  font-size: var(--text-lead);
  letter-spacing: normal;
  text-transform: none;
  color: var(--accent);
}

.tc-deck-pick-position-hint .is-hidden {
  display: none;
}

.tc-deck-pick-feedback {
  margin: 0.65rem auto 0;
  max-width: 36rem;
  text-align: center;
  font-size: 0.85rem;
  color: hsl(160 60% 72%);
}

.tc-deck-pick-feedback.is-error {
  color: hsl(5 75% 72%);
}

.tc-deck-pick-undo {
  text-align: center;
  margin: 0.75rem 0;
}

.tc-deck-arc-wrap {
  position: relative;
  width: 100%;
  min-height: 8.5rem;
  display: flex;
  justify-content: center;
  overflow: hidden;
  margin: 1.25rem 0 0.5rem;
}

.tc-deck-arc-wrap.is-hidden {
  display: none;
}

.tc-deck-arc-glow {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 16rem;
  height: 4rem;
  border-radius: 999px;
  background: radial-gradient(ellipse, hsl(320 90% 40% / 0.18), transparent 70%);
  filter: blur(12px);
  pointer-events: none;
}

.tc-deck-arc {
  position: relative;
  list-style: none;
  margin: 0 auto;
  padding: 0;
  width: min(100%, 22.5rem);
  height: 7.5rem;
}

.tc-deck-arc__item {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 3.5rem;
  margin-left: -1.75rem;
  transform: translateX(var(--tc-x, 0px)) translateY(var(--tc-y, 0px)) rotate(var(--tc-rot, 0deg));
  transform-origin: center bottom;
}

.tc-deck-arc__link {
  display: block;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.tc-deck-pick-card-form {
  display: contents;
  margin: 0;
}

button.tc-deck-arc__link {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.tc-deck-pick-undo-form {
  display: inline-block;
  margin: 0;
}

.tc-deck-arc__link:hover .tc-deck-card-back,
.tc-deck-arc__link:focus-visible .tc-deck-card-back {
  transform: translateY(-1.35rem) scale(1.08);
}

.tc-deck-card-back {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 5.375rem;
  border-radius: 0.75rem;
  background: linear-gradient(160deg, hsl(295 65% 16%), hsl(270 55% 9%), hsl(310 60% 14%));
  border: 1.5px solid hsl(320 70% 48% / 0.55);
  box-shadow:
    0 6px 20px hsl(290 70% 5% / 0.75),
    0 2px 4px hsl(320 90% 40% / 0.2),
    inset 0 1px 0 hsl(320 80% 60% / 0.15);
  transition: transform 0.2s ease;
}

.tc-deck-card-back__inner {
  position: absolute;
  inset: 0.25rem;
  border-radius: 0.5rem;
  border: 1px solid hsl(320 60% 40% / 0.32);
  pointer-events: none;
}

.tc-deck-card-back__spark {
  position: relative;
  font-size: 1.15rem;
  color: hsl(320 80% 68%);
  filter: drop-shadow(0 0 4px hsl(320 80% 65% / 0.45));
  animation: tc-deck-spark 2.8s ease-in-out infinite;
}

.tc-deck-arc__item:nth-child(2n) .tc-deck-card-back__spark {
  animation-delay: 0.15s;
}

.tc-deck-arc__item:nth-child(3n) .tc-deck-card-back__spark {
  animation-delay: 0.28s;
}

@keyframes tc-deck-spark {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.92);
  }
  50% {
    opacity: 0.85;
    transform: scale(1.04);
  }
}

.tc-deck-pick-note {
  font-size: var(--text-small);
  text-align: center;
  margin-top: 0.5rem;
}

.tc-deck-pick-complete-cta {
  position: relative;
  z-index: 20;
  isolation: isolate;
  margin: 1rem auto 0.2rem;
  max-width: 32rem;
  padding: 0.95rem 1rem 1.1rem;
  border-radius: var(--radius);
  border: 1px solid color-mix(in srgb, var(--accent) 38%, transparent);
  background: linear-gradient(145deg, hsl(278 56% 12% / 0.95), hsl(244 40% 10% / 0.95));
  text-align: center;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.36);
}

.tc-deck-pick-complete-cta.is-hidden {
  display: none;
}

.tc-deck-pick-complete-cta__title {
  margin: 0 0 0.7rem;
  font-family: var(--font-display);
  color: hsl(45 100% 80%);
  font-size: clamp(1rem, 2.4vw, 1.15rem);
}

.tc-deck-pick-complete-cta__btn {
  min-width: min(100%, 20rem);
  font-size: 1.02rem;
}

/* Accessibilità */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .tc-card-img.is-reversed {
    transform: rotate(180deg);
  }
}

:focus-visible {
  outline: 3px solid rgba(212, 175, 55, 0.55);
  outline-offset: 2px;
}

/* Shortcode helper */
.tarot-cr-shortcode-wrap {
  font-size: var(--text-base);
  padding: 1rem;
  border-radius: var(--radius-sm);
  background: var(--card-surface);
  border: 1px solid var(--border-strong);
}

/* Spread visual layout (absolute slots from catalog x/y) */
.tc-spread-visual-wrap {
  margin: 1.25rem 0 1.75rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Optional mobile-focused spread map (Reading & UI — spread position map layout) */
.tc-spread-visual-wrap--variant-mobile .tc-spread-visual {
  max-width: 100%;
  min-height: 22rem;
  aspect-ratio: 3 / 4;
  --tc-spread-slot-width: clamp(2.55rem, 9vw, 4rem);
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual__img,
.tc-spread-visual-wrap--variant-mobile .tc-spread-visual__placeholder {
  transform: scale(0.9);
  transform-origin: center center;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual-cards-legend {
  max-width: 100%;
  margin-top: 1.15rem;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual-cards-legend__list {
  gap: 0.5rem;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual-cards-legend__name {
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual-cards-legend__item {
  padding: 0.55rem 0.72rem;
  min-height: 2.75rem;
  align-items: center;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual__label {
  font-size: 0.72rem;
  max-width: 9.5rem;
  line-height: 1.25;
}

.tc-spread-visual-wrap--variant-mobile .tc-spread-visual__desc {
  font-size: 0.66rem;
  line-height: 1.35;
  max-width: 10rem;
}

.tc-spread-visual-cards-legend {
  margin: 0.8rem auto 0;
  max-width: 36rem;
}

.tc-spread-visual-cards-legend.is-hidden {
  display: none;
}

.tc-spread-visual-cards-legend__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.38rem;
}

.tc-spread-visual-cards-legend__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  padding: 0.35rem 0.55rem;
  border-radius: 0.6rem;
  background: rgba(24, 28, 40, 0.5);
  border: 1px solid rgba(184, 179, 200, 0.18);
}

.tc-spread-visual-cards-legend__slot {
  font-size: 0.7rem;
  color: var(--muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tc-spread-visual-cards-legend__name {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--fg);
}

.tc-spread-visual-cards-legend__ori {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tc-spread-visual-cards-legend__ori.is-upright {
  color: hsl(160 55% 72%);
}

.tc-spread-visual-cards-legend__ori.is-reversed {
  color: hsl(12 85% 72%);
}

.tc-spread-visual-cards-legend__item--anchor-left {
  justify-content: flex-start;
}

.tc-spread-visual-cards-legend__item--anchor-right {
  justify-content: flex-end;
}

.tc-spread-visual-cards-legend__item--anchor-full {
  grid-column: 1 / -1;
}

.tc-spread-visual-cards-legend__item--anchor-top {
  order: -1;
}

.tc-spread-visual-cards-legend__item--anchor-bottom {
  order: 9;
}

.tc-spread-visual {
  --tc-spread-slot-width: clamp(3.45rem, 11.2vw, 5.35rem);
  --tc-spread-card-ratio: 300 / 518;
  --tc-spread-card-radius: 0.58rem;
  position: relative;
  width: 100%;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  min-height: 14rem;
  aspect-ratio: 10 / 7;
  border-radius: var(--radius);
  border: 1px solid var(--border-strong);
  background:
    radial-gradient(ellipse 90% 70% at 50% 40%, rgba(212, 175, 55, 0.06), transparent 55%),
    linear-gradient(165deg, rgba(24, 28, 40, 0.95), rgba(12, 14, 20, 0.98));
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.tc-spread-visual__slot {
  position: absolute;
  z-index: 1;
  transform: translate(-50%, -50%);
  width: var(--tc-spread-slot-width);
  max-width: none;
  text-align: center;
  transition: transform 0.2s ease, opacity 0.18s ease, filter 0.2s ease;
}

.tc-spread-visual__slot.is-current {
  z-index: 4;
  transform: translate(-50%, -50%) scale(1.09);
}

.tc-spread-visual__slot.is-revealed {
  z-index: 3;
  filter: saturate(1.04);
}

.tc-spread-visual__slot.is-revealed:not(.is-current) {
  transform: translate(-50%, -50%) scale(0.95);
}

.tc-spread-visual__slot.is-pending {
  z-index: 1;
  opacity: 0.66;
  filter: saturate(0.9);
}

/* Pick view: avoid current empty slot covering revealed cards underneath */
.tc-deck-pick-root .tc-spread-visual__slot.is-current:not(.is-revealed) {
  z-index: 2;
}

.tc-deck-pick-root .tc-spread-visual__slot.is-revealed {
  z-index: 3;
}

.tc-deck-pick-root .tc-spread-visual__slot.is-current:not(.is-revealed) .tc-spread-visual__empty {
  background: linear-gradient(165deg, rgba(20, 24, 35, 0.28), rgba(13, 16, 24, 0.4));
  border-color: rgba(212, 175, 55, 0.38);
}

.tc-spread-visual__card-shell {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: var(--tc-spread-card-ratio);
  border-radius: var(--tc-spread-card-radius);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--border-strong) 82%, transparent);
  background: linear-gradient(165deg, rgba(22, 26, 38, 0.95), rgba(10, 12, 18, 0.98));
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.42);
  line-height: 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tc-spread-visual__card-shell--crossed {
  transform: rotate(90deg);
}

.tc-spread-visual__slot-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  transform: scale(1);
  transform-origin: center top;
  transition: transform 0.2s ease;
}

.tc-spread-visual__slot.is-revealed:not(.is-current) .tc-spread-visual__slot-inner {
  transform: scale(0.88);
}

.tc-spread-visual__slot.is-current.is-revealed .tc-spread-visual__slot-inner {
  transform: scale(1.14);
}

.tc-spread-visual__slot > a.tc-spread-visual__slot-hit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  width: 100%;
  max-width: 100%;
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
}

.tc-spread-visual__slot > a.tc-spread-visual__slot-hit:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--tc-spread-card-radius);
}

.tc-spread-visual__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--tc-spread-card-radius);
  border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.38);
}

.tc-spread-visual--fit-uniform .tc-spread-visual__img {
  object-fit: contain;
  background: linear-gradient(165deg, rgba(18, 21, 31, 0.92), rgba(10, 12, 18, 0.96));
}

.tc-spread-visual__img.is-reversed {
  transform: rotate(180deg);
}

.tc-spread-visual__placeholder {
  width: 100%;
  aspect-ratio: var(--tc-spread-card-ratio);
  border-radius: var(--tc-spread-card-radius);
  border: 1px dashed color-mix(in srgb, var(--border-strong) 88%, transparent);
  background: rgba(24, 28, 40, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.tc-spread-visual__placeholder--revealed {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.3rem 0.2rem;
  background: linear-gradient(165deg, rgba(34, 26, 52, 0.9), rgba(18, 16, 34, 0.92));
  border-color: color-mix(in srgb, var(--accent) 36%, transparent);
}

.tc-spread-visual__glyph {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.9vw, 1.35rem);
  font-weight: 700;
  color: var(--accent);
}

.tc-spread-visual__missing-label {
  display: block;
  width: 100%;
  max-width: 98%;
  text-align: center;
  font-size: clamp(0.38rem, 0.5vw + 0.28rem, 0.55rem);
  line-height: 1.2;
  color: hsl(45 90% 78%);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tc-spread-visual__empty {
  width: 100%;
  aspect-ratio: var(--tc-spread-card-ratio);
  border-radius: var(--tc-spread-card-radius);
  border: 1px dashed rgba(212, 175, 55, 0.22);
  background: linear-gradient(165deg, rgba(20, 24, 35, 0.72), rgba(13, 16, 24, 0.85));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.tc-spread-visual__empty-mark {
  font-size: clamp(0.95rem, 1.7vw, 1.25rem);
  color: var(--muted);
  opacity: 0.55;
}

.tc-spread-visual__slot.is-crossed .tc-spread-visual__empty,
.tc-spread-visual__slot.is-crossed .tc-spread-visual__placeholder {
  transform: rotate(90deg);
}

.tc-spread-visual__label {
  display: block;
  font-size: clamp(0.66rem, 0.78vw + 0.46rem, 0.84rem);
  line-height: 1.25;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
  max-width: 7.25rem;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: manual;
}

.tc-spread-visual__desc {
  display: block;
  font-size: clamp(0.52rem, 0.58vw + 0.38rem, 0.66rem);
  line-height: 1.3;
  max-width: 8.2rem;
}

.tc-spread-visual__slot.is-current .tc-spread-visual__label {
  color: var(--accent);
  font-weight: 700;
}

.tc-spread-visual__slot.is-current .tc-spread-visual__img,
.tc-spread-visual__slot.is-current .tc-spread-visual__placeholder,
.tc-spread-visual__slot.is-current .tc-spread-visual__empty {
  box-shadow:
    0 0 0 2px rgba(212, 175, 55, 0.55),
    0 8px 22px rgba(212, 175, 55, 0.16);
}

/* Classic spread map — wide viewports only: legíveis, compactas, texto quebra no slot (variant mobile intocado) */
@media (min-width: 43rem) {
  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual {
    padding-bottom: 0.5rem;
    box-sizing: border-box;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual__label {
    font-size: 0.58rem;
    line-height: 1.28;
    letter-spacing: 0.02em;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: manual;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual__desc {
    font-size: 0.52rem;
    line-height: 1.34;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend {
    max-width: min(42rem, 100%);
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__list {
    gap: 0.32rem;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__item {
    align-items: flex-start;
    padding: 0.3rem 0.55rem;
    gap: 0.3rem 0.5rem;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__name {
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.38;
    flex: 1 1 10rem;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__slot {
    font-size: 0.6rem;
    flex-shrink: 0;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__deck-num {
    font-size: 0.6rem;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .tc-spread-visual-wrap:not(.tc-spread-visual-wrap--variant-mobile) .tc-spread-visual-cards-legend__ori {
    font-size: 0.6rem;
    margin-left: auto;
    flex-shrink: 0;
    align-self: flex-start;
  }
}

/* Pick page only: stable base size + micro-adjust on very small screens */
@media (max-width: 42rem) {
  .tc-deck-pick-root .tc-spread-visual {
    --tc-spread-slot-width: clamp(3.15rem, 15.3vw, 4.5rem);
    max-width: 32rem;
    min-height: 12.75rem;
  }

  .tc-deck-pick-root .tc-spread-visual__slot.is-current {
    transform: translate(-50%, -50%) scale(1.015);
  }

  .tc-deck-pick-root .tc-spread-visual__label {
    font-size: clamp(0.68rem, 2.2vw, 0.82rem);
  }

  .tc-spread-visual-cards-legend {
    max-width: 100%;
  }

  .tc-spread-visual-cards-legend__item {
    padding: 0.4rem 0.5rem;
  }

  .tc-spread-visual-cards-legend__name {
    flex: 1 1 100%;
    font-size: 0.92rem;
  }

  .tc-spread-visual-cards-legend__ori {
    margin-left: 0;
    font-size: 0.78rem;
  }
}

.tc-step-card-meta-inline {
  margin: 0.62rem 0 0.85rem;
  text-align: center;
  font-size: 0.95rem;
  color: var(--fg);
}

.tc-step-card-meta-inline strong {
  display: inline-block;
  margin-right: 0.4rem;
}

.tc-step-card-meta-inline__ori {
  display: inline-flex;
  align-items: center;
  gap: 0.26rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tc-step-card-meta-inline__ori.is-upright {
  color: hsl(160 55% 72%);
}

.tc-step-card-meta-inline__ori.is-reversed {
  color: hsl(12 85% 72%);
}

/* Play step legend chips */
.tc-position-legend__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
}

.tc-legend-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid var(--border-strong);
  background: rgba(24, 28, 40, 0.75);
  color: var(--muted);
}

.tc-legend-chip--revealed,
.tc-legend-status--revealed {
  border-color: rgba(123, 201, 154, 0.45);
  color: hsl(160 55% 72%);
  background: rgba(123, 201, 154, 0.1);
}

.tc-legend-chip--current,
.tc-legend-status--current {
  border-color: rgba(212, 175, 55, 0.55);
  color: var(--accent);
  background: rgba(212, 175, 55, 0.12);
}

.tc-legend-chip--pending,
.tc-legend-status--pending {
  border-color: rgba(184, 179, 200, 0.25);
  color: var(--muted);
}

/* Final reading long-form */
.tc-final-hero__badge {
  display: inline-block;
  margin: 0 0 0.35rem;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(160 55% 72%);
  border: 1px solid rgba(123, 201, 154, 0.35);
  background: rgba(123, 201, 154, 0.08);
}

.tc-final-hero__title {
  margin-bottom: 0.35rem;
}

.tc-final-hero__lead {
  margin-top: 0.25rem;
}

.tc-final-legend {
  margin-bottom: 1.5rem;
}

.tc-final-card-block {
  margin-bottom: 2rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid var(--border-strong);
}

.tc-final-card-block__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.tc-final-card-block:last-of-type {
  border-bottom: none;
}

.tc-final-card-block__pos {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.35rem);
  margin: 0 0 0.35rem;
  color: var(--accent);
}

.tc-final-card-block__name {
  margin-top: 0.5rem;
  color: var(--fg);
}

.tc-final-synthesis__lead {
  margin-top: 0.5rem;
}

.tc-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

/* Deck picker: micro-animation before navigation (see tarot-cr-ui.js) */
@keyframes tc-deck-pick-flip {
  0% {
    transform: translateY(0) scale(1);
  }
  55% {
    transform: translateY(-0.65rem) scale(1.08);
  }
  100% {
    transform: translateY(-0.2rem) scale(1.02);
  }
}

.tc-deck-arc__link.tc-deck-card--pick-animate .tc-deck-card-back {
  animation: tc-deck-pick-flip 0.22s ease-out forwards;
}

.tc-deck-arc__link.tc-deck-card--pick-animate--cinematic_flip .tc-deck-card-back {
  animation: tc-deck-pick-flip 0.32s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  box-shadow: 0 0 18px hsl(45 100% 70% / 0.28);
}

.tc-deck-arc__link.tc-deck-card--pick-animate--energy_burst .tc-deck-card-back {
  animation: tc-deck-pick-flip 0.28s ease-out forwards;
  box-shadow:
    0 0 0 1px hsl(188 95% 70% / 0.45),
    0 0 18px hsl(188 95% 65% / 0.28);
}

.tc-deck-arc__link.tc-deck-card--pick-animate--slot_snap .tc-deck-card-back {
  animation: tc-deck-pick-flip 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.tc-deck-arc__link.tc-deck-card--pick-animate--minimal_lux .tc-deck-card-back {
  animation: tc-deck-pick-flip 0.18s ease-out forwards;
}

.tc-deck-arc__link.tc-deck-card--pick-animate--low_end_fallback .tc-deck-card-back {
  animation: none;
  transform: translateY(-0.08rem) scale(1.01);
}

.tc-deck-pick-fly {
  box-shadow:
    0 8px 30px hsl(290 70% 5% / 0.75),
    0 2px 6px hsl(320 90% 40% / 0.25);
  border-radius: 0.75rem;
  will-change: transform, opacity;
}

/* Pick reveal: staging + flip 3D (ou crossfade se reduced-motion) + voo ao slot (tarot-cr-ui.js) */
.tc-deck-pick-reveal__backdrop {
  position: fixed;
  inset: 0;
  z-index: 10048;
  display: block;
  pointer-events: none;
  overflow: visible;
  padding: max(0.65rem, env(safe-area-inset-top)) max(0.65rem, env(safe-area-inset-right))
    max(0.65rem, env(safe-area-inset-bottom)) max(0.65rem, env(safe-area-inset-left));
  background: hsl(270 58% 5% / 0.42);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.tc-deck-pick-reveal__backdrop--lite {
  background: hsl(270 58% 5% / 0.3);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Sem contain:paint — transforms podem ultrapassar a caixa do wrap. */
.tc-deck-pick-reveal {
  contain: layout style;
  overflow: visible;
}

.tc-deck-pick-reveal__persp {
  width: 100%;
  height: 100%;
  perspective: 1100px;
  perspective-origin: 50% 50%;
}

/* Crossfade 2D: sem perspectiva (reduced-motion) */
.tc-deck-pick-reveal__persp--flat {
  perspective: none;
}

.tc-deck-pick-reveal--flip3d .tc-deck-pick-reveal__persp:not(.tc-deck-pick-reveal__persp--flat) {
  perspective-origin: 50% 45%;
}

.tc-deck-pick-reveal__flip {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  border-radius: 0.75rem;
}

.tc-deck-pick-reveal__flip--soft {
  transform-style: flat;
}

.tc-deck-pick-reveal__flip--soft .tc-deck-pick-reveal__face--back {
  transform: none !important;
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
}

.tc-deck-pick-reveal__flip--soft .tc-deck-pick-reveal__face--front {
  transform: none !important;
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
}

.tc-deck-pick-reveal__face {
  position: absolute;
  inset: 0;
  border-radius: 0.75rem;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  overflow: hidden;
  box-shadow:
    0 10px 36px hsl(290 70% 5% / 0.85),
    0 0 24px hsl(320 90% 45% / 0.35);
}

.tc-deck-pick-reveal--lite .tc-deck-pick-reveal__face {
  box-shadow:
    0 6px 22px hsl(290 70% 5% / 0.72),
    0 0 16px hsl(320 90% 45% / 0.28);
}

.tc-deck-pick-reveal--anim-cinematic_flip .tc-deck-pick-reveal__face {
  box-shadow:
    0 10px 34px hsl(290 70% 5% / 0.8),
    0 0 26px hsl(45 100% 66% / 0.36);
}

.tc-deck-pick-reveal--anim-energy_burst .tc-deck-pick-reveal__face {
  box-shadow:
    0 10px 34px hsl(290 70% 5% / 0.8),
    0 0 24px hsl(188 95% 66% / 0.34);
}

.tc-deck-pick-reveal--anim-slot_snap .tc-deck-pick-reveal__face {
  box-shadow:
    0 7px 20px hsl(290 70% 5% / 0.72),
    0 0 10px hsl(320 90% 45% / 0.2);
}

.tc-deck-pick-reveal--anim-minimal_lux .tc-deck-pick-reveal__face {
  box-shadow:
    0 6px 18px hsl(290 70% 5% / 0.64),
    0 0 8px hsl(45 100% 66% / 0.16);
}

.tc-deck-pick-reveal--anim-low_end_fallback .tc-deck-pick-reveal__face {
  box-shadow: 0 4px 10px hsl(290 70% 5% / 0.45);
}

.tc-deck-pick-reveal__pulse {
  position: fixed;
  z-index: 10049;
  left: 50%;
  top: 48%;
  width: clamp(9rem, 34vw, 16rem);
  height: clamp(9rem, 34vw, 16rem);
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: 1px solid hsl(188 95% 66% / 0.55);
  box-shadow:
    0 0 24px hsl(188 95% 66% / 0.34),
    inset 0 0 24px hsl(188 95% 66% / 0.2);
  animation: tc-pick-energy-pulse 760ms ease-out 1;
  pointer-events: none;
}

@keyframes tc-pick-energy-pulse {
  0% {
    opacity: 0.75;
    transform: translate(-50%, -50%) scale(0.52);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.25);
  }
}

.tc-deck-pick-reveal__face--back {
  transform: rotateY(0deg);
}

.tc-deck-pick-reveal__face--front {
  transform: rotateY(180deg);
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  background: linear-gradient(155deg, hsl(268 48% 12%), hsl(275 42% 8%));
  border: 1px solid hsl(45 100% 58% / 0.35);
}

.tc-deck-pick-reveal__front-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.tc-deck-pick-reveal__media {
  position: relative;
  flex: 1;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tc-deck-pick-reveal__titlebar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.45rem 0.5rem 0.5rem;
  background: linear-gradient(
    to top,
    hsl(270 58% 5% / 0.92) 0%,
    hsl(270 50% 10% / 0.55) 55%,
    transparent 100%
  );
  pointer-events: none;
  z-index: 2;
}

.tc-deck-pick-reveal__title {
  font-family: var(--font-display, ui-serif, Georgia, serif);
  font-size: clamp(0.68rem, 2.8vw, 0.88rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.25;
  color: hsl(45 100% 88%);
  text-shadow: 0 1px 8px hsl(290 70% 5% / 0.85);
}

.tc-deck-pick-reveal__meta {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(220 85% 72%);
}

.tc-deck-pick-reveal__position {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.64rem;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: hsl(45 80% 80%);
  text-transform: none;
}

/* Nome por baixo da carta (predefinido no admin): mais legível que o gradiente sobre a arte */
.tc-deck-pick-reveal--name-below .tc-deck-pick-reveal__face--back {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
  padding-top: 0.2rem;
}

.tc-deck-pick-reveal--name-below .tc-deck-pick-reveal__front-inner {
  min-height: 0;
}

.tc-deck-pick-reveal--name-below .tc-deck-pick-reveal__media {
  flex: 1 1 auto;
  min-height: 0;
}

.tc-deck-pick-reveal__caption--below {
  flex: 0 0 auto;
  width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.35rem 0.15rem;
  text-align: center;
  background: linear-gradient(180deg, transparent 0%, hsl(270 58% 7% / 0.65) 35%, hsl(270 52% 9% / 0.92) 100%);
  border-top: 1px solid hsl(45 100% 58% / 0.2);
}

/* Caption floated under the card (keeps media proportions intact) */
.tc-deck-pick-reveal__caption--float {
  flex: none !important;
  pointer-events: none;
  opacity: 1;
  transition: opacity 160ms ease;
}

.tc-deck-pick-reveal__title--below {
  font-family: var(--font-display, ui-serif, Georgia, serif);
  font-size: clamp(0.78rem, 3.2vw, 1.05rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: hsl(45 100% 94%);
  text-shadow:
    0 1px 2px hsl(290 70% 5% / 0.9),
    0 0 20px hsl(320 90% 45% / 0.25);
}

.tc-deck-pick-reveal__meta--below {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: hsl(220 85% 78%);
}

.tc-deck-pick-reveal__position--below {
  margin-top: 0.18rem;
  font-size: 0.72rem;
  color: hsl(45 90% 84%);
}

.tc-deck-pick-reveal__cta-bar {
  position: fixed;
  z-index: 10050;
  left: 50%;
  bottom: max(1rem, env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(22rem, calc(100vw - 2rem));
  pointer-events: auto;
  display: flex;
  justify-content: center;
}

/*
 * Durante a revelação: esconder o baralho real por baixo do overlay.
 * Sem isto, backdrop-filter + glow do arco duplicam o “baralho desfocado” no mobile.
 */
body.tc-deck-pick-reveal--open .tc-deck-pick-root .tc-deck-arc-wrap,
body.tc-deck-pick-reveal--open .tc-deck-pick-root .tc-deck-wrapper {
  visibility: hidden;
  pointer-events: none;
}

/* Mobile: overlay mais opaco, sem blur do conteúdo por baixo (evita artefactos / faixa dupla). */
@media (max-width: 42rem) {
  body.tc-deck-pick-reveal--open .tc-deck-pick-reveal__backdrop,
  body.tc-deck-pick-reveal--open .tc-deck-pick-reveal__backdrop--lite {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: hsl(270 58% 5% / 0.92);
  }

  /* “Continuar”: top/left em tarot-cr-ui.js (positionRevealCtaBar) — por baixo da carta+legenda */
}

.tc-deck-pick-reveal__cta {
  appearance: none;
  -webkit-appearance: none;
  min-height: 48px;
  padding: 0.65rem 1.75rem;
  border-radius: 0.65rem;
  font-family: var(--font-display, ui-serif, Georgia, serif);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  cursor: pointer;
  border: 1px solid hsl(45 100% 58% / 0.45);
  color: hsl(45 100% 96%);
  background: linear-gradient(135deg, hsl(320 88% 42%), hsl(280 75% 38%));
  box-shadow:
    0 4px 20px hsl(290 70% 5% / 0.55),
    0 0 18px hsl(320 90% 45% / 0.35);
  touch-action: manipulation;
}

.tc-deck-pick-reveal__cta:hover {
  filter: brightness(1.06);
}

.tc-deck-pick-reveal__cta:focus-visible {
  outline: 2px solid hsl(45 100% 60%);
  outline-offset: 3px;
}

.tc-deck-pick-reveal__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.tc-deck-pick-reveal__img.is-reversed {
  transform: rotate(180deg);
}

.tc-deck-pick-reveal__glyph {
  font-family: var(--font-display, ui-serif, Georgia, serif);
  font-size: clamp(2rem, 8vw, 2.75rem);
  color: hsl(45 100% 72%);
  text-shadow: 0 0 18px hsl(320 90% 55% / 0.55);
}

.tc-spread-visual__img.tc-spread-visual__img--loading {
  opacity: 0.2;
  transition: opacity 0.35s ease;
}

.tc-spread-visual__img.is-loaded {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .tc-deck-arc__link.tc-deck-card--pick-animate .tc-deck-card-back {
    animation: none;
  }

  .tc-deck-pick-reveal__backdrop {
    background: hsl(270 58% 5% / 0.28);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  .tc-deck-pick-reveal__backdrop--lite {
    background: hsl(270 58% 5% / 0.22);
  }

  .tc-deck-pick-reveal,
  .tc-deck-pick-reveal__flip {
    animation: none !important;
  }
}

@media (max-width: 42rem) {
  .tc-deck-pick-complete-cta {
    padding: 0.85rem 0.85rem 1rem;
  }

  .tc-deck-pick-complete-cta__btn {
    width: 100%;
  }
}

/* ─── Play step: editorial block (step monetization / long-form UX) ─── */
.tc-step-editorial-card {
  margin-top: 1rem;
}

.tc-card-text--editorial {
  min-width: 0;
}

.tc-card-text--stacked {
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

.tc-step-editorial {
  max-width: 52rem;
}

.tc-step-editorial__header {
  margin-bottom: 0.85rem;
  padding-bottom: 0.35rem;
  border-bottom: 0;
}

.tc-step-editorial__title {
  margin: 0 0 0.35rem;
}

/* Ensure step reveal headings stay visible on dark themes */
.tc-app .tc-step-editorial__title,
.tc-app .tc-step-editorial__title.card-name,
.tc-app .tc-step-editorial-card h2,
.tc-app .tc-step-inline-section__heading {
  color: #ffffff !important;
}

.tc-step-editorial__position-sub {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  font-weight: 600;
  color: var(--accent);
  line-height: var(--line-tight);
}

.tc-step-editorial__meta {
  margin: 0;
}

.tc-step-editorial__intro {
  margin: 0 0 1rem;
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

.tc-step-editorial__interp {
  margin: 0 0 1.25rem;
}

.tc-step-editorial__interp-p {
  margin: 0 0 1.05rem;
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

.tc-step-editorial__interp-p:last-child {
  margin-bottom: 0;
}

.tc-step-inline-section {
  margin: 0 0 1rem;
  padding-top: 0.15rem;
  border-top: 0;
}

.tc-step-inline-section:last-child {
  margin-bottom: 0;
}

.tc-step-inline-section__heading {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1rem, 2vw, 1.15rem);
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tc-step-inline-section__body {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

.tc-step-inline-section__body--muted {
  color: var(--muted);
  font-style: italic;
}

.tc-step-inline-section .tc-position-meaning {
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

@media (max-width: 42rem) {
  .tc-step-editorial {
    line-height: 1.72;
  }

  .tc-step-editorial .tc-step-editorial__intro,
  .tc-step-editorial .tc-step-editorial__interp-p,
  .tc-step-editorial .tc-step-inline-section__body {
    line-height: 1.72;
  }

  .tc-step-editorial .tc-step-editorial__interp-p + .tc-step-editorial__interp-p {
    margin-top: 0.85rem;
  }

  .tc-step-inline-section {
    padding-top: 0.7rem;
  }
}

/* Leitura ampliada (JSON 78 cartas) — camada extra, não substitui interpretação principal */
.tc-rw78-wrap {
  margin: 0 0 1.25rem;
}

.tc-rw78-extra {
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--card-surface);
  box-shadow: var(--shadow-soft);
}

.tc-rw78-extra__head {
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--border-strong);
}

.tc-rw78-extra__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  font-weight: 700;
  color: var(--fg);
}

.tc-rw78-extra__note {
  margin: 0;
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.tc-rw78-extra__ori {
  margin: 0 0 0.75rem;
  font-size: var(--text-small);
}

.tc-rw78-extra__sec {
  margin: 0 0 1rem;
}

.tc-rw78-extra__sec:last-child {
  margin-bottom: 0;
}

.tc-rw78-extra__h {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.02em;
}

.tc-rw78-extra__body {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

.tc-rw78-extra__conselho {
  margin: 0.65rem 0 0;
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

.tc-rw78-extra__sec--thread {
  padding-top: 0.5rem;
  border-top: 1px dashed var(--border-strong);
}

body.tc-theme-light .tc-rw78-extra {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}

.tc-ai-interp-wrap {
  margin-top: 1.25rem;
}

.tc-ai-interp {
  padding: 1rem 1.1rem;
  border-radius: 12px;
  border: 1px solid var(--border-strong);
  background: hsl(275 35% 12% / 0.55);
}

.tc-ai-interp__title {
  margin: 0 0 0.35rem;
  font-size: var(--text-lead);
}

.tc-ai-interp__note {
  margin: 0 0 0.75rem;
  font-size: var(--text-sm);
}

.tc-ai-interp__body {
  font-size: var(--text-base);
  line-height: var(--line-body);
  color: var(--fg);
}

body.tc-theme-light .tc-ai-interp {
  background: #f6f4fb;
  border-color: rgba(0, 0, 0, 0.1);
}

/* ─── Premium UI Full Pass (React+) overrides ─── */
:root {
  --tc-premium-glass: hsl(270 55% 4% / 0.92);
  --tc-premium-card: hsl(268 42% 9% / 0.96);
  --tc-premium-card-2: hsl(275 38% 7% / 0.94);
  --tc-premium-gold: hsl(45 100% 72%);
  --tc-premium-violet: hsl(280 70% 66%);
  --tc-premium-cyan: hsl(185 85% 66%);
  --tc-premium-mint: hsl(160 82% 68%);
}

.tc-header--app {
  border-bottom-color: hsl(290 50% 26% / 0.62);
  background:
    linear-gradient(180deg, hsl(274 44% 10% / 0.94), hsl(264 42% 8% / 0.92)),
    radial-gradient(circle at 85% -35%, hsl(45 100% 64% / 0.1), transparent 46%);
  box-shadow:
    0 0 0 1px hsl(45 100% 55% / 0.06),
    0 8px 44px hsl(270 60% 3% / 0.92),
    0 1px 0 hsl(320 80% 55% / 0.12);
}

.tc-header--app .tc-topnav a {
  border: 1px solid transparent;
}

.tc-header--app .tc-topnav a:hover,
.tc-header--app .tc-topnav a:focus-visible {
  border-color: hsl(45 100% 55% / 0.25);
  box-shadow: 0 0 10px hsl(45 100% 55% / 0.12);
}

.tc-header--app .tc-topnav a.is-current,
.tc-header--app .tc-topnav a[aria-current="page"] {
  border-color: hsl(45 100% 55% / 0.28);
  box-shadow: inset 0 1px 0 hsl(45 100% 72% / 0.12);
}

.tc-streak-pill {
  box-shadow: 0 0 12px hsl(25 90% 55% / 0.22);
}

.tc-header-points {
  box-shadow:
    0 0 18px hsl(160 70% 55% / 0.2),
    inset 0 1px 0 hsl(160 90% 80% / 0.12);
}

.tc-header-points__n {
  min-width: 2ch;
  text-align: right;
}

.tc-header-strip {
  gap: 0.45rem;
}

.tc-header-strip__lvl {
  background: hsl(280 45% 13% / 0.82);
  border: 1px solid hsl(45 100% 55% / 0.22);
  border-radius: 999px;
  padding: 0.12rem 0.5rem;
}

.tc-header-strip__pts {
  background: hsl(160 45% 15% / 0.7);
  border: 1px solid hsl(160 70% 55% / 0.32);
  border-radius: 999px;
  padding: 0.12rem 0.5rem;
}

.tc-home-hero {
  padding-top: clamp(1.2rem, 4.5vw, 2.2rem);
  text-shadow: 0 0 14px hsl(278 74% 54% / 0.12);
}

.tc-home-stats__bar {
  border: 1px solid hsl(280 35% 24% / 0.58);
}

.tc-dash-mission {
  box-shadow: 0 6px 22px hsl(270 60% 4% / 0.38);
}

.tc-dash-mission:hover {
  border-color: hsl(45 100% 55% / 0.24);
}

.tc-home-missions__item:hover {
  border-color: hsl(45 100% 58% / 0.38);
  box-shadow:
    0 0 0 1px hsl(300 50% 55% / 0.16),
    0 12px 36px hsl(270 58% 4% / 0.52),
    0 0 44px hsl(320 60% 50% / 0.2);
}

.tc-home-missions__link.btn,
.tc-dash-mission .btn.btn-sm {
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tc-home-missions__reward,
.tc-dash-mission__reward {
  box-shadow: 0 0 10px hsl(45 100% 55% / 0.14);
}

.tc-spread-card__title {
  letter-spacing: 0.01em;
}

.tc-spread-card__cta.btn {
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tc-dash-kpis__card {
  background:
    linear-gradient(180deg, hsl(272 40% 10%), hsl(272 36% 7%)),
    radial-gradient(circle at 100% -25%, hsl(45 100% 55% / 0.12), transparent 44%);
}

.tc-dash-kpis__value {
  text-shadow: 0 0 14px hsl(45 100% 55% / 0.18);
}

.tc-dash-hero {
  background:
    linear-gradient(145deg, hsl(275 44% 10%), hsl(272 35% 7%)),
    radial-gradient(circle at 100% 0, hsl(320 85% 55% / 0.14), transparent 42%);
}

.tc-deck-pick-root .tc-reading-header,
.tc-step-editorial-card,
.tc-final-hero,
.tc-final-card-block,
.tc-final-legend {
  background:
    linear-gradient(180deg, hsl(272 42% 10% / 0.94), hsl(272 38% 7% / 0.94));
  border: 1px solid hsl(290 35% 20% / 0.72);
  border-radius: var(--radius);
  box-shadow: 0 8px 30px hsl(270 60% 4% / 0.35);
}

.tc-deck-pick-root .tc-reading-header,
.tc-final-hero {
  padding: 1.1rem 1.2rem;
}

.tc-step-editorial-card,
.tc-final-card-block,
.tc-final-legend {
  padding: 1rem;
}

.tc-deck-pick-complete-cta__btn,
.tc-final-actions .btn:first-child {
  box-shadow: 0 0 14px hsl(45 100% 55% / 0.2);
}

@media (max-width: 42rem) {
  /* Non nascondere #wpadminbar: la toolbar deve restare visibile come sulle altre route (anche home expanded). */

  .tc-header--app {
    position: sticky;
    top: 0;
  }

  .tc-header--app .tc-header__inner {
    gap: 0.32rem 0.5rem;
    padding-top: 0.36rem;
    padding-bottom: 0.36rem;
  }

  .tc-header--app .tc-brand,
  .tc-footer__brand-cluster .tc-brand {
    gap: 0.78rem;
    padding: 0.4rem 0.55rem;
  }

  .tc-header--app:not(.tc-header--premium) .tc-brand__mark,
  .tc-footer__brand-cluster .tc-brand__mark {
    width: 2.5rem;
    height: 1.9rem;
  }

  .tc-header--app:not(.tc-header--premium) .tc-brand__mark-card,
  .tc-footer__brand-cluster .tc-brand__mark-card {
    width: 1.22rem;
    height: 1.74rem;
    font-size: 0.72rem;
  }

  .tc-header--app:not(.tc-header--premium) .tc-brand__mark-card--left,
  .tc-footer__brand-cluster .tc-brand__mark-card--left {
    transform: translateX(-0.64rem) rotate(-15deg);
  }

  .tc-header--app:not(.tc-header--premium) .tc-brand__mark-card--right,
  .tc-footer__brand-cluster .tc-brand__mark-card--right {
    transform: translateX(0.64rem) rotate(15deg);
  }

  .tc-footer__brand-cluster .tc-brand__text,
  .tc-footer__brand-cluster .tc-brand__title-line {
    font-size: clamp(1.12rem, 3.8vw, 1.36rem);
    letter-spacing: 0.1em;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav {
    overflow-x: auto;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    padding-bottom: 0;
    scrollbar-width: thin;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.22rem;
    font-size: 0.78rem;
    line-height: 1.1;
    text-align: center;
    min-height: 40px;
    padding: 0.36rem 0.52rem;
  }

  .tc-header-level-pill__name {
    font-size: 0.74rem;
  }

  .tc-home-hero-cards {
    width: min(11.2rem, 74vw);
  }

  .tc-home-hero-card {
    width: min(4.05rem, 27vw);
    height: min(6.2rem, 41vw);
  }

  .tc-home-missions__item {
    border-radius: 0.78rem;
  }

  .tc-dash-kpis {
    gap: 0.5rem;
  }

  .tc-deck-pick-root .tc-reading-header,
  .tc-step-editorial-card,
  .tc-final-hero,
  .tc-final-card-block,
  .tc-final-legend {
    padding: 0.82rem;
  }
}

/* ─── Editorial interpretation layout (no boxed text blocks) ─── */
.tc-step-editorial-card,
.tc-final-card-block,
.tc-final-hero,
.tc-final-legend,
.tc-final-synthesis {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.tc-step-editorial-card,
.tc-final-card-block,
.tc-final-legend,
.tc-final-synthesis {
  padding: 0;
}

.tc-final-hero {
  padding: 0 0 0.25rem;
}

.tc-final-card-block .tc-position-meaning {
  margin: 0.2rem 0 0.65rem;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

/* ─── Mobile-first hardening pass (P0/P1/P2) ─── */
:root {
  --tc-touch-target: 46px;
  --tc-touch-target-sm: 42px;
  --tc-mobile-gap: 0.62rem;
}

.btn,
.tc-topnav a,
.tc-home-missions__link,
.tc-dash-mission .btn.btn-sm,
.tc-spread-card__cta.btn,
.tc-deck-arc__link,
.tc-cat-pill,
.tc-header__login,
.tc-header__logout,
.tc-header__reg {
  min-height: var(--tc-touch-target);
  -webkit-tap-highlight-color: transparent;
}

.tc-deck-arc__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tc-between-widget-ads {
  display: block;
  margin-block: clamp(1rem, 3vw, 1.5rem);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.tc-spread-visual-wrap .tc-between-widget-ads {
  width: 100%;
  max-width: 100%;
}

/* Unified pick play surface: single DOM subtree for positions → deck (layout containment) */
.tc-pick-play-surface {
  position: relative;
  isolation: isolate;
  contain: layout style;
  min-width: 0;
  border-radius: 0.65rem;
  border: 1px solid hsl(290 35% 28% / 0.35);
}

body.tc-theme-ad-safe .tc-pick-play-surface {
  border-color: hsl(220 14% 22% / 0.45);
}

/* Deck Shield + superfície unificada: os estilos .tc-deck-pick-root--ad-shield aplicam-se a .tc-deck-arc-wrap
   mesmo dentro de .tc-pick-play-surface (descendentes do root). Suavizar a moldura exterior para não competir
   com o bloco já emoldurado do baralho. */
.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-pick-play-surface {
  border-color: hsl(290 35% 28% / 0.22);
}

body.tc-theme-ad-safe .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-pick-play-surface {
  border-color: hsl(220 14% 22% / 0.28);
}

/* Deck pick: full-width column only; Ad Ace owns inner layout */
.tc-deck-pick-root .adace-slot-wrapper {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-section--ad {
  position: relative;
  z-index: 4;
}

.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-wrapper,
.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc-wrap {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 0.95rem;
  z-index: 2;
}

.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc-wrap {
  margin-top: 0.42rem;
  padding-top: 0.65rem;
  min-height: 9.75rem;
  background:
    linear-gradient(180deg, hsl(270 58% 8% / 0.9), hsl(270 52% 7% / 0.52) 22%, transparent 45%),
    radial-gradient(circle at 50% -8%, hsl(45 100% 62% / 0.16), transparent 50%);
  border: 1px solid hsl(290 35% 28% / 0.5);
}

.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1.25rem;
  pointer-events: none;
  background: linear-gradient(180deg, hsl(270 58% 8% / 0.86), transparent);
  z-index: 3;
}

/* Più spazio verticale per le carte ruotate; overflow:hidden sul wrap resta (stacking vs ads invariato). */
.tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc {
  height: 8.35rem;
}

@media (min-width: 43rem) {
  .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc-wrap {
    min-height: 10.35rem;
    padding-top: 0.78rem;
  }

  .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc {
    height: 8.9rem;
  }
}

.tc-home-cta .btn {
  font-weight: 800;
  letter-spacing: 0.05em;
}

.tc-flow-primary-cta {
  box-shadow:
    0 10px 24px rgba(212, 175, 55, 0.28),
    0 0 0 1px rgba(212, 175, 55, 0.18) inset;
}

/* Partilhar jogada (step): micro-botão + dialog */
.tc-step-share {
  margin-top: 1.25rem;
  margin-bottom: 0.35rem;
}

.tc-step-share__btn {
  font-size: 0.8125rem;
  padding: 0.4rem 0.75rem;
  line-height: 1.25;
}

.tc-step-share__dialog {
  max-width: min(26rem, 92vw);
  padding: 1rem 1.15rem;
  border: 1px solid hsl(290 40% 28% / 0.6);
  border-radius: 12px;
  background: hsl(275 42% 10%);
  color: hsl(45 90% 88%);
}

.tc-step-share__dialog::backdrop {
  background: hsl(270 60% 3% / 0.65);
}

.tc-step-share__field {
  box-sizing: border-box;
  width: 100%;
  margin: 0.5rem 0;
  padding: 0.45rem 0.55rem;
  font-size: 0.8rem;
  border-radius: 8px;
  border: 1px solid hsl(290 35% 35% / 0.5);
  background: hsl(275 38% 8%);
  color: inherit;
}

.tc-step-share__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.65rem;
  align-items: center;
}

/* Fluxo PHP /play/.../carta-N: CTAs por cima de iframes e com toque fiável */
.tc-step-actions-shell {
  position: relative;
  z-index: 10;
  isolation: isolate;
}

.tc-step-actions .btn {
  position: relative;
  z-index: 1;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  font: inherit;
  text-align: center;
}

@media (max-width: 42rem) {
  /*
   * CTAs no fluxo da página (sem barra fixed) para não cobrir rodapé / política de privacidade.
   * Classe tc-view-reading-play-step vem do layout quando a view é reading_play_step.
   */
  .tc-view-reading-play-step .tc-step-actions-shell {
    position: relative;
    z-index: 10;
    margin-top: 1.25rem;
    padding: 1rem 0 calc(1.25rem + env(safe-area-inset-bottom, 0px));
    background: transparent;
    border-top: 1px solid hsl(290 40% 22% / 0.35);
    box-shadow: none;
    pointer-events: auto;
  }

  .tc-step-actions-shell .tc-step-actions {
    margin-top: 0 !important;
  }

  .tc-step-actions-shell .tc-step-actions .btn {
    -webkit-user-select: none;
    user-select: none;
  }
}

.tc-install-app-banner {
  position: fixed;
  left: 50%;
  bottom: max(0.8rem, env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(94vw, 32rem);
  max-width: calc(100% - 1.35rem);
  z-index: 10020;
  padding: 0.72rem 2.5rem 0.72rem 0.76rem;
  border-radius: 0.92rem;
  border: 1px solid rgba(212, 175, 55, 0.36);
  background: linear-gradient(145deg, rgba(22, 18, 35, 0.96), rgba(12, 10, 24, 0.97));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(5px);
}

.tc-install-app-banner__close-x {
  position: absolute;
  top: 0.35rem;
  right: max(0.35rem, env(safe-area-inset-right, 0px));
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.08);
  color: hsl(280 18% 88%);
  font-size: 1.45rem;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.tc-install-app-banner__close-x:hover,
.tc-install-app-banner__close-x:focus-visible {
  background: rgba(212, 175, 55, 0.2);
  color: hsl(45 100% 72%);
  outline: 2px solid rgba(212, 175, 55, 0.45);
  outline-offset: 1px;
}

.tc-install-app-banner.is-hidden {
  display: none !important;
}

.tc-install-app-banner__text {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.35;
  color: hsl(280 18% 84%);
}

.tc-install-app-banner__actions {
  margin-top: 0.62rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.46rem;
}

.tc-install-app-banner__btn,
.tc-install-app-banner__dismiss {
  width: 100%;
}

.tc-final-actions {
  gap: var(--tc-mobile-gap);
}

@media (max-width: 42rem) {
  :root {
    --tc-touch-target: 48px;
  }

  .tc-main {
    padding-top: 1rem;
    padding-bottom: 1.5rem;
  }

  .tc-header--app .tc-header__inner {
    row-gap: 0.48rem;
    column-gap: 0.4rem;
    align-items: center;
  }

  /* Prima fila: brand + wallet (HUD); seconda: menu scroll — solo Tier2 strip */
  .tc-header--app.tc-mobile-nav--strip .tc-brand {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 11.8rem);
  }

  .tc-header--app.tc-mobile-nav--strip .tc-header-wallet {
    order: 2;
    margin-left: 0;
    width: auto;
    max-width: min(11.6rem, 54vw);
    flex: 0 0 auto;
    align-self: center;
    padding: 0.22rem 0.38rem;
    gap: 0.42rem;
    border-radius: 12px;
  }

  .tc-header--app.tc-mobile-nav--drawer .tc-header-wallet {
    margin-left: 0;
    width: auto;
    max-width: min(11.6rem, 54vw);
    flex: 0 0 auto;
    align-self: center;
    padding: 0.22rem 0.38rem;
    gap: 0.42rem;
    border-radius: 12px;
  }

  .tc-header-wallet__chip {
    min-height: 42px;
    padding: 0.24rem 0.42rem;
    max-width: none;
    font-size: 0.76rem;
    border-radius: 10px;
    flex: 0 1 auto;
    min-width: min-content;
  }

  .tc-header-wallet__label {
    display: none;
  }

  .tc-header-wallet__meta {
    flex-direction: row;
    align-items: center;
    gap: 0.2rem;
    flex-wrap: nowrap;
    white-space: nowrap;
  }

  .tc-header-wallet__val {
    font-size: 1.08em;
  }

  .tc-header--app .tc-header-wallet__chip {
    min-height: 40px;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav {
    order: 3;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    white-space: nowrap;
    justify-content: flex-start;
    gap: 0.45rem 0.55rem;
    column-gap: 0.55rem;
    padding: 0.05rem 0.05rem 0.35rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav a {
    flex: 0 0 auto;
    flex-shrink: 0;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.22rem;
    font-size: 0.8rem;
    line-height: 1.1;
    text-align: center;
    padding: 0.38rem 0.58rem;
    scroll-snap-align: start;
  }

  .tc-header-level-pill,
  .tc-header-points,
  .tc-header-avatar {
    display: none;
  }

  .tc-header-strip {
    display: flex;
    gap: 0.18rem;
    padding: 0.34rem 0.58rem;
    font-size: 0.58rem;
    letter-spacing: 0.02em;
    border-top-color: hsl(290 35% 15% / 0.55);
    background: hsl(275 45% 7% / 0.94);
    min-height: 28px;
  }

  .tc-header-strip__lvl,
  .tc-header-strip__pts {
    font-size: 0.62rem;
    line-height: 1.1;
    padding: 0.08rem 0.34rem;
  }

  .tc-header-strip__pct {
    display: none;
  }

  .tc-header-strip__bar {
    height: 3px;
    min-width: 2.6rem;
  }

  .tc-home-hero {
    padding-top: 0.85rem;
  }

  .tc-home-cta {
    width: 100%;
    display: grid;
    gap: 0.48rem;
  }

  .tc-home-cta .btn {
    width: 100%;
    justify-content: center;
  }

  .tc-home-missions {
    padding-left: 0;
    padding-right: 0;
  }

  .tc-home-missions__item,
  .tc-dash-mission {
    border-radius: 0.72rem;
  }

  .tc-spread-card__title {
    font-size: 1.02rem;
    line-height: 1.25;
  }

  .tc-spread-card__meta {
    font-size: 0.84rem;
  }

  .tc-spread-card__desc {
    font-size: 0.92rem;
    line-height: 1.42;
  }

  .tc-home-missions__link,
  .tc-dash-mission .btn.btn-sm {
    min-height: var(--tc-touch-target-sm);
  }

  .tc-spread-card__cta.btn {
    min-height: var(--tc-touch-target);
  }

  .tc-deck-pick-position-hint {
    padding: 0.56rem 0.62rem;
  }

  .tc-deck-pick-feedback {
    font-size: 0.8rem;
    line-height: 1.35;
  }

  .tc-deck-arc-wrap {
    min-height: 7.6rem;
    margin-top: 0.92rem;
  }

  .tc-deck-arc {
    width: min(100%, 20.5rem);
    height: 6.7rem;
  }

  .tc-deck-arc__item {
    width: 3.05rem;
    margin-left: -1.525rem;
  }

  .tc-deck-card-back {
    width: 3.05rem;
    height: 4.85rem;
    border-radius: 0.62rem;
  }

  .tc-deck-pick-complete-cta {
    margin-top: 0.72rem;
    padding: 0.72rem 0.7rem 0.82rem;
  }

  .tc-deck-pick-complete-cta__btn {
    width: 100%;
  }

  .tc-spread-visual-cards-legend__item {
    padding: 0.46rem 0.56rem;
  }

  .tc-spread-visual-cards-legend__name {
    font-size: 0.95rem;
  }

  .tc-spread-visual-cards-legend__slot,
  .tc-spread-visual-cards-legend__ori {
    font-size: 0.8rem;
  }

  .tc-spread-visual-cards-legend__ori {
    margin-left: 0;
  }

  .tc-step-card-meta-inline {
    margin-top: 0.52rem;
  }

  .tc-final-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .tc-final-actions .btn {
    width: 100%;
  }

  .tc-install-app-banner {
    left: max(0.55rem, env(safe-area-inset-left, 0px));
    right: max(0.55rem, env(safe-area-inset-right, 0px));
    transform: none;
    width: auto;
    max-width: none;
    box-sizing: border-box;
    padding: 0.62rem 2.45rem 0.62rem 0.62rem;
  }

  .tc-install-app-banner__close-x {
    top: 0.4rem;
    right: 0.4rem;
    width: 2.5rem;
    height: 2.5rem;
    min-width: var(--tc-touch-target, 44px);
    min-height: var(--tc-touch-target, 44px);
  }

  .tc-install-app-banner__text {
    font-size: 0.8rem;
  }

  .tc-install-app-banner__actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 23rem) {
  .tc-header--app .tc-topnav a {
    font-size: 0.76rem;
    line-height: 1.08;
    text-align: center;
    padding: 0.34rem 0.48rem;
  }

  .tc-home-title__line--primary {
    letter-spacing: 0.08em;
    font-size: clamp(1.7rem, 8.2vw, 2.2rem);
  }

  .tc-home-sub {
    letter-spacing: 0.22em;
  }

  .tc-home-phrase {
    font-size: clamp(0.98rem, 4.2vw, 1.12rem);
    padding: 0.45rem 0.65rem;
  }

  .tc-brand__text,
  .tc-brand__title-line {
    font-size: clamp(1.02rem, 5vw, 1.18rem);
  }

  .tc-deck-arc {
    width: min(100%, 18.4rem);
  }
}

/* ─── Premium mobile buttons + mission readability final pass ─── */
@media (max-width: 42rem) {
  .tc-home-cta .btn,
  .tc-home-missions__link.btn,
  .tc-dash-mission .btn.btn-sm,
  .tc-spread-card__cta.btn,
  .tc-deck-pick-complete-cta__btn,
  .tc-deck-pick-undo .btn,
  .tc-step-actions .btn,
  .tc-final-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    padding: 0.82rem 1rem;
    border-radius: 0.88rem;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-align: center;
  }

  .tc-home-cta .btn,
  .tc-spread-card__cta.btn:not(.btn-secondary),
  .tc-step-actions .btn,
  .tc-deck-pick-complete-cta__btn,
  .tc-final-actions .btn:first-child {
    box-shadow:
      0 0 20px hsl(45 100% 52% / 0.28),
      0 6px 18px hsl(310 65% 28% / 0.32),
      0 12px 24px rgba(212, 175, 55, 0.2),
      inset 0 1px 0 hsl(0 0% 100% / 0.22);
  }

  .tc-home-missions__name {
    font-size: 1rem;
    line-height: 1.24;
  }

  .tc-home-missions__desc {
    font-size: 0.9rem;
    line-height: 1.36;
  }

  .tc-home-missions__reward {
    font-size: 0.74rem;
  }

  .tc-step-actions,
  .tc-final-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.62rem;
    width: 100%;
  }

  .tc-step-actions .btn,
  .tc-final-actions .btn {
    margin: 0;
  }
}

/* ─── Smart sticky header (mobile): compact on scroll ─── */
.tc-header--app,
.tc-header--app .tc-header__inner,
.tc-header--app .tc-topnav,
.tc-header--app .tc-topnav a,
.tc-header--app .tc-header-strip {
  transition:
    padding 0.18s ease,
    min-height 0.18s ease,
    font-size 0.18s ease,
    gap 0.18s ease,
    box-shadow 0.2s ease,
    opacity 0.18s ease;
}

@media (max-width: 42rem) {
  .tc-header--app.is-compact {
    box-shadow:
      0 0 0 1px hsl(45 100% 55% / 0.05),
      0 5px 20px hsl(270 60% 3% / 0.55),
      0 1px 0 hsl(320 80% 55% / 0.1);
  }

  .tc-header--app.is-compact .tc-header__inner {
    padding-top: 0.14rem !important;
    padding-bottom: 0.14rem !important;
    gap: 0.14rem 0.32rem !important;
  }

  .tc-header--app.is-compact .tc-brand {
    transform: scale(0.95);
    transform-origin: left center;
  }

  .tc-header--app.tc-mobile-nav--strip.is-compact .tc-topnav {
    gap: 0.22rem;
    padding-bottom: 0 !important;
  }

  .tc-header--app.tc-mobile-nav--strip.is-compact .tc-topnav a {
    min-height: 34px !important;
    font-size: 0.74rem !important;
    line-height: 1.06 !important;
    padding: 0.24rem 0.4rem !important;
  }

  .tc-header--app.is-compact .tc-header-strip {
    padding: 0.18rem 0.46rem !important;
    min-height: 22px !important;
    opacity: 0.96;
  }

  .tc-header--app.is-compact .tc-header-strip__lvl,
  .tc-header--app.is-compact .tc-header-strip__pts {
    font-size: 0.55rem !important;
    padding: 0.05rem 0.24rem !important;
  }

  .tc-header--app.is-compact .tc-header-strip__bar {
    height: 2px !important;
  }
}

/* ─── App header: desktop row vs mobile strip / drawer (Tier 2) ─── */
/*
 * Density map (mobile, orientativo): Tier1 lockup breve; Tier2 nav ~10–14 chars/etichetta prima dello scroll.
 * Budget altezza: T1 ~52–64px + safe-area; strip ~44–48px; strip nível sotto.
 */

@media (min-width: 43rem) {
  .tc-header--app .tc-header__inner {
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0.4rem 0.7rem;
  }

  .tc-header--app .tc-brand {
    flex: 0 0 auto;
  }

  .tc-header--app .tc-topnav {
    flex: 1 1 auto;
    width: auto;
    order: 0;
    justify-content: flex-end;
    flex-wrap: wrap;
    position: static !important;
    transform: none !important;
    visibility: visible !important;
    overflow: visible !important;
    min-height: 0 !important;
    max-height: none !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  .tc-header--app .tc-header-wallet {
    flex: 0 0 auto;
    margin-left: auto;
  }

  .tc-header-nav-drawer-toggle,
  .tc-header-drawer-backdrop {
    display: none !important;
  }
}

.tc-header-nav-drawer-toggle {
  display: none;
}

.tc-header-drawer-backdrop {
  display: none;
}

@media (max-width: 42rem) {
  .tc-header-nav-drawer-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border-radius: 12px;
    border: 1px solid hsl(45 80% 48% / 0.35);
    background: linear-gradient(145deg, hsl(274 36% 22% / 0.95), hsl(262 31% 14% / 0.98));
    color: hsl(45 100% 82%);
    cursor: pointer;
    flex: 0 0 auto;
    -webkit-tap-highlight-color: transparent;
    box-shadow:
      inset 0 1px 0 hsl(45 100% 70% / 0.12),
      0 6px 16px hsl(270 70% 4% / 0.45);
  }

  .tc-header-nav-drawer-toggle:focus-visible {
    outline: 2px solid hsl(45 100% 62% / 0.55);
    outline-offset: 2px;
  }

  .tc-header-nav-drawer-toggle__bars {
    display: block;
    width: 1.15rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    box-shadow:
      0 -6px 0 currentColor,
      0 6px 0 currentColor;
  }

  .tc-mobile-nav--drawer .tc-header-nav-drawer-toggle {
    display: inline-flex;
    order: 2;
  }

  .tc-mobile-nav--drawer .tc-header__inner {
    flex-wrap: nowrap !important;
    align-items: center;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
    gap: 0.28rem 0.42rem !important;
  }

  .tc-mobile-nav--drawer .tc-brand {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    gap: 0.56rem;
    padding: 0.28rem 0.38rem;
  }

  .tc-mobile-nav--drawer .tc-header-wallet {
    order: 3;
  }

  .tc-mobile-nav--drawer .tc-topnav {
    order: 4;
    position: fixed;
    left: 0;
    top: var(--tc-drawer-panel-top, 5.25rem);
    bottom: 0;
    width: min(20.5rem, 86vw);
    max-width: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.45rem;
    padding: 0.85rem 0.75rem max(1rem, env(safe-area-inset-bottom, 0px));
    margin: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    white-space: normal;
    background:
      linear-gradient(180deg, hsl(274 48% 11% / 0.98), hsl(258 42% 8% / 0.99)),
      radial-gradient(circle at 0% 0%, hsl(45 100% 55% / 0.08), transparent 52%);
    border-right: 1px solid hsl(45 90% 55% / 0.18);
    box-shadow: 16px 0 42px hsl(0 0% 0% / 0.55);
    z-index: 165;
    transform: translate3d(-105%, 0, 0);
    visibility: hidden;
    transition:
      transform 0.22s ease,
      visibility 0.22s ease;
  }

  @media (prefers-reduced-motion: reduce) {
    .tc-mobile-nav--drawer .tc-topnav {
      transition: none;
    }
  }

  .tc-header--app.tc-header--nav-drawer-open.tc-mobile-nav--drawer .tc-topnav {
    transform: translate3d(0, 0, 0);
    visibility: visible;
  }

  .tc-mobile-nav--drawer .tc-topnav a {
    justify-content: flex-start;
    width: 100%;
    min-height: 44px;
    padding: 0.45rem 0.65rem;
    border-radius: 10px;
    font-size: 0.88rem;
    white-space: normal;
    text-align: left;
  }

  .tc-mobile-nav--drawer .tc-topnav details {
    width: 100%;
  }

  .tc-mobile-nav--drawer .tc-topnav details summary {
    min-height: 44px;
    padding: 0.45rem 0.65rem;
    box-sizing: border-box;
  }

  .tc-mobile-nav--drawer .tc-topnav__future-profile {
    display: none !important;
  }

  .tc-header-drawer-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 155;
    background: hsl(270 60% 4% / 0.52);
    backdrop-filter: blur(2px);
  }

  .tc-header--app.tc-header--nav-drawer-open .tc-header-drawer-backdrop:not([hidden]) {
    display: block;
  }

  .tc-mobile-nav--strip .tc-header__inner {
    flex-wrap: wrap !important;
    align-items: center;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
    gap: 0.35rem 0.55rem !important;
  }

  .tc-mobile-nav--strip .tc-brand {
    gap: 0.56rem !important;
    padding: 0.28rem 0.38rem !important;
    flex-shrink: 1;
  }

  .tc-mobile-nav--strip .tc-topnav {
    align-items: center;
    gap: 0.42rem 0.5rem !important;
    column-gap: 0.5rem !important;
    padding-right: 0.55rem !important;
    padding-bottom: 0 !important;
  }

  .tc-mobile-nav--strip .tc-topnav a {
    flex-shrink: 0 !important;
    min-height: 41px !important;
    padding: 0.36rem 0.52rem !important;
    font-size: 0.78rem !important;
    line-height: 1.08 !important;
  }

  .tc-footer__brand-cluster .tc-brand {
    gap: 0.68rem !important;
    padding: 0.3rem 0.44rem !important;
    flex-shrink: 0;
  }

  .tc-footer__brand-cluster .tc-brand__mark {
    width: 2.68rem !important;
    height: 1.96rem !important;
  }

  .tc-footer__brand-cluster .tc-brand__mark-card {
    width: 1.24rem !important;
    height: 1.74rem !important;
    font-size: 0.76rem !important;
  }

  .tc-footer__brand-cluster .tc-brand__text,
  .tc-footer__brand-cluster .tc-brand__title-line {
    font-size: clamp(1.08rem, 3.8vw, 1.32rem) !important;
    letter-spacing: 0.085em !important;
  }

  .tc-footer__brand-cluster .tc-brand__text-wrap--header .tc-brand__title-line--royale {
    font-size: clamp(0.95rem, 3.6vw, 1.12rem) !important;
    letter-spacing: 0.2em !important;
  }

  .tc-footer__brand-cluster .tc-brand--premium .tc-brand__text-wrap--header .tc-brand__title-line--royale {
    letter-spacing: clamp(0.26em, 2.2vw, 0.48em) !important;
  }

  .tc-header--app .tc-brand__text-wrap--header-lockup .tc-brand__title-line {
    font-size: calc(clamp(1.02rem, 4.8vw, 1.26rem) * var(--tc-header-text-scale, 1)) !important;
    letter-spacing: 0.055em !important;
  }

  /* Placeholder riservato per icona profilo: visibility:hidden lasciava ~41px nel flex → ultima voce strip tagliata. */
  .tc-mobile-nav--strip .tc-topnav__future-profile {
    display: none !important;
  }
}

/* Premium HUD expand (mobile-collapsible Tier 2b) */
.tc-header-expand {
  margin-top: 0.2rem;
  width: 100%;
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 4vw, 1.75rem);
  padding-right: clamp(1rem, 4vw, 1.75rem);
  box-sizing: border-box;
}

.tc-header-expand__toggle {
  display: none;
}

@media (max-width: 42rem) {
  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    gap: 0.55rem;
    margin: 0.15rem 0 0.4rem;
    padding: 0.55rem 0.72rem;
    min-height: 3.1rem;
    border-radius: 14px;
    border: 1px solid hsl(45 85% 58% / 0.38);
    background:
      linear-gradient(135deg, hsl(45 100% 62% / 0.12), transparent 42%),
      linear-gradient(155deg, hsl(274 42% 17% / 0.96), hsl(258 38% 10% / 0.98));
    color: hsl(45 100% 90%);
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    box-shadow:
      inset 0 1px 0 hsl(45 100% 75% / 0.14),
      0 0 0 1px hsl(320 65% 48% / 0.15),
      0 14px 34px hsl(0 0% 0% / 0.42);
    position: relative;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle::before {
    content: "";
    position: absolute;
    left: 0.65rem;
    top: 0.55rem;
    bottom: 0.55rem;
    width: 3px;
    border-radius: 3px;
    background: linear-gradient(180deg, hsl(45 100% 62%), hsl(320 85% 58%));
    opacity: 0.95;
    pointer-events: none;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle-lead {
    flex-shrink: 0;
    font-size: 1.18rem;
    line-height: 1;
    filter: drop-shadow(0 0 12px hsl(45 100% 55% / 0.45));
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    flex: 1;
    min-width: 0;
    text-align: left;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle-label {
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: hsl(45 100% 88%);
    line-height: 1.15;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle-hint {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.2;
    color: hsl(280 18% 78%);
    opacity: 0.95;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle .tc-header-expand__chev {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 0.85rem;
    opacity: 0.95;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle:focus-visible {
    outline: 2px solid hsl(45 100% 62% / 0.55);
    outline-offset: 2px;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle[aria-expanded="true"] .tc-header-expand__chev {
    transform: rotate(180deg);
  }

  .tc-header-expand__chev {
    display: inline-block;
    transition: transform 0.18s ease;
    opacity: 0.85;
    font-size: 0.65rem;
  }

  .tc-header-expand__panel[hidden] {
    display: none !important;
  }

  .tc-header-expand__panel:not([hidden]) {
    display: block !important;
  }
}

@media (min-width: 43rem) {
  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__toggle {
    display: none !important;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__panel {
    display: block !important;
  }

  .tc-header-expand[data-tc-header-expand="1"] .tc-header-expand__panel[hidden] {
    display: block !important;
  }
}

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

body.tc-header--has-wallet .tc-home-hero .tc-exp-wallet,
body.tc-header--has-wallet .tc-home-v2__widget-wrap--hero .tc-exp-wallet {
  display: none !important;
}

/* ─── React palette parity: fuchsia CTA on reading steps ─── */
.tc-deck-pick-root .tc-flow-primary-cta,
.tc-deck-pick-root .tc-deck-pick-complete-cta__btn,
.tc-step-actions .tc-flow-primary-cta,
.tc-final-actions .btn:first-child {
  background: linear-gradient(135deg, hsl(320 90% 50%), hsl(280 80% 46%)) !important;
  color: hsl(0 0% 100%) !important;
  border: 1px solid hsl(320 90% 62% / 0.34) !important;
  box-shadow:
    0 12px 24px hsl(320 90% 50% / 0.3),
    0 0 0 1px hsl(320 90% 62% / 0.18) inset !important;
}

.tc-deck-pick-root .tc-flow-primary-cta:hover,
.tc-deck-pick-root .tc-deck-pick-complete-cta__btn:hover,
.tc-step-actions .tc-flow-primary-cta:hover,
.tc-final-actions .btn:first-child:hover {
  filter: brightness(1.06) saturate(1.04);
}

/* ─── Bigger mobile cards (pick + spread visual) ─── */
@media (max-width: 42rem) {
  .tc-deck-pick-root .tc-spread-visual {
    --tc-spread-slot-width: clamp(3.35rem, 16.3vw, 4.8rem) !important;
    min-height: 13.5rem !important;
  }

  .tc-deck-arc-wrap {
    min-height: 8.2rem !important;
  }

  .tc-deck-arc {
    width: min(100%, 21.4rem) !important;
    height: 7.15rem !important;
  }

  .tc-deck-arc__item {
    width: 3.3rem !important;
    margin-left: -1.65rem !important;
  }

  .tc-deck-card-back {
    width: 3.3rem !important;
    height: 5.2rem !important;
  }
}

/* Deck Shield su mobile: dopo le regole sopra (con !important), extra altezza solo col root --ad-shield */
@media (max-width: 42rem) {
  .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc-wrap {
    min-height: 9rem !important;
  }

  .tc-deck-pick-root.tc-deck-pick-root--ad-shield .tc-deck-arc {
    height: 7.5rem !important;
  }
}

/* ─── Premium thin level strip (mobile game feel) ─── */
@media (max-width: 42rem) {
  .tc-header--app .tc-header-strip {
    display: flex !important;
    align-items: center;
    gap: 0.26rem;
    min-height: 27px;
    padding: 0.3rem 0.56rem;
    border-top: 1px solid hsl(290 45% 20% / 0.48);
    background:
      linear-gradient(180deg, hsl(274 54% 8% / 0.92), hsl(266 46% 7% / 0.9)),
      radial-gradient(circle at 88% 0, hsl(45 100% 64% / 0.12), transparent 52%);
    box-shadow:
      inset 0 1px 0 hsl(45 100% 75% / 0.08),
      0 0 14px hsl(278 74% 54% / 0.14);
  }

  .tc-header--app .tc-header-strip__label {
    font-size: 0.6rem;
    line-height: 1.05;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: hsl(278 24% 72%);
    text-transform: uppercase;
    white-space: nowrap;
  }

  .tc-header--app .tc-header-strip__lvl,
  .tc-header--app .tc-header-strip__pts {
    font-size: 0.64rem;
    line-height: 1.05;
    font-weight: 800;
    border-radius: 999px;
    padding: 0.08rem 0.28rem;
  }

  .tc-header--app .tc-header-strip__lvl {
    color: hsl(45 100% 80%);
    background: hsl(278 58% 14% / 0.7);
    border: 1px solid hsl(45 100% 64% / 0.32);
  }

  .tc-header--app .tc-header-strip__pts {
    color: hsl(188 84% 82%);
    background: hsl(188 52% 14% / 0.54);
    border: 1px solid hsl(188 82% 60% / 0.24);
  }

  .tc-header--app .tc-header-strip__sep {
    color: hsl(278 25% 52%);
    font-size: 0.54rem;
    line-height: 1;
  }

  .tc-header--app .tc-header-strip__bar {
    height: 5px;
    min-width: 4rem;
    border-radius: 999px;
    background: hsl(278 36% 18%);
    box-shadow:
      inset 0 0 0 1px hsl(278 34% 30% / 0.55),
      0 0 8px hsl(278 74% 54% / 0.16);
  }

  .tc-header--app .tc-header-strip__fill {
    background: linear-gradient(90deg, hsl(324 88% 62%), hsl(45 100% 64%), hsl(188 82% 60%));
    box-shadow: 0 0 8px hsl(45 100% 64% / 0.3);
  }
}

/* Bloco editorial (textos longos por fase da leitura) */
.tc-reading-editorial,
.tc-reading-editorial-seo {
  display: block;
  visibility: visible;
  opacity: 1;
  position: relative;
  z-index: 1;
  max-height: none;
  overflow: visible;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(1.02rem, 0.35vw + 0.95rem, 1.15rem);
  line-height: 1.65;
}

.tc-reading-editorial h2,
.tc-reading-editorial-seo h2 {
  font-size: clamp(1.15rem, 0.5vw + 1.05rem, 1.35rem);
  line-height: 1.35;
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* Tema escuro do app: garantir títulos e ênfase legíveis (tema WP ou HTML colado pode forçar cores escuras). */
.tc-app .tc-reading-editorial :where(h1, h2, h3),
.tc-app .tc-reading-editorial-seo :where(h1, h2, h3),
.tc-app .result-card :where(h1, h2, h3),
.tc-app .tc-full-ai-teaser :where(h1, h2, h3) {
  color: var(--fg) !important;
}

.tc-app .tc-reading-editorial strong,
.tc-app .tc-reading-editorial-seo strong {
  color: var(--fg);
}

.tc-app .tc-reading-editorial a:not(.btn),
.tc-app .tc-reading-editorial-seo a:not(.btn) {
  color: var(--accent);
}

.tc-reading-editorial p,
.tc-reading-editorial-seo p {
  margin-bottom: 0.9rem;
}

/* Lista de posições ({positions_list}): bloco delimitado, coerente com cartões do painel */
.tc-reading-editorial .tc-editorial-positions,
.tc-reading-editorial-seo .tc-editorial-positions {
  margin: 0.75rem 0 1.1rem;
  padding: 0.85rem 1rem 0.85rem 1.75rem;
  border-radius: var(--radius-sm);
  border: 1px solid hsl(290 40% 22% / 0.7);
  background: hsl(275 38% 7% / 0.95);
  box-shadow: 0 4px 20px hsl(270 60% 4% / 0.35);
  list-style: disc;
}

.tc-reading-editorial .tc-editorial-positions li,
.tc-reading-editorial-seo .tc-editorial-positions li {
  margin: 0.4rem 0;
}

/* Slots de anúncio entre parágrafos no editorial (wrapper externo só; não tocar iframe/ins). */
.tc-app .tc-reading-editorial .tc-ad-slot,
.tc-app .tc-reading-editorial--final-intro .tc-ad-slot {
  margin-top: 1.25rem;
  margin-bottom: 1.35rem;
}

.tc-app .tc-reading-editorial .tc-ad-slot:first-child,
.tc-app .tc-reading-editorial--final-intro .tc-ad-slot:first-child {
  margin-top: 0;
}

.tc-app .tc-reading-editorial p + .tc-ad-slot,
.tc-app .tc-reading-editorial--final-intro p + .tc-ad-slot {
  margin-top: 1.15rem;
}

.tc-app .tc-reading-editorial .tc-ad-slot + p,
.tc-app .tc-reading-editorial--final-intro .tc-ad-slot + p {
  margin-top: 1rem;
}

/* --- Top 10 artigo (CPT single, tema + plugin) --- */
.tc-top10-article {
  max-width: 46rem;
  margin: 0 auto 3rem;
  padding: 0 1rem 2rem;
  font-family: var(--font-body, "DM Sans", system-ui, sans-serif);
  color: hsl(278 18% 94%);
}

.tc-top10-hero {
  margin-bottom: 2rem;
  border-radius: 1.25rem;
  overflow: hidden;
  background: linear-gradient(160deg, hsl(278 42% 18%), hsl(258 38% 12%));
  border: 1px solid hsl(278 34% 32% / 0.55);
  box-shadow: 0 24px 48px hsl(0 0% 0% / 0.35);
}

.tc-top10-hero__media {
  max-height: 280px;
  overflow: hidden;
}

.tc-top10-hero__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.tc-top10-hero__text {
  padding: 1.5rem 1.35rem 1.75rem;
}

.tc-top10-hero__topic {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: hsl(45 90% 72%);
  margin: 0 0 0.5rem;
  font-weight: 700;
}

.tc-top10-hero__title {
  font-family: var(--font-display, "Source Serif 4", Georgia, serif);
  font-size: clamp(1.65rem, 2.5vw + 1rem, 2.35rem);
  line-height: 1.2;
  margin: 0 0 0.75rem;
  text-wrap: balance;
}

.tc-top10-hero__excerpt {
  margin: 0;
  color: hsl(278 12% 82%);
  line-height: 1.55;
}

.tc-top10-toc {
  margin: 1.5rem 0 2rem;
  padding: 1rem 1.25rem;
  border-radius: 0.85rem;
  background: hsl(278 28% 14% / 0.65);
  border: 1px solid hsl(278 30% 28% / 0.5);
}

.tc-top10-toc__h {
  font-size: 1rem;
  margin: 0 0 0.75rem;
  font-family: var(--font-display, "Source Serif 4", Georgia, serif);
}

.tc-top10-toc__list {
  margin: 0;
  padding-left: 1.25rem;
}

.tc-top10-toc__item {
  margin: 0.35rem 0;
}

.tc-top10-toc__item a {
  color: hsl(188 82% 78%);
  text-decoration: none;
}

.tc-top10-toc__item a:hover {
  text-decoration: underline;
}

.tc-top10-intro {
  margin-bottom: 2rem;
  line-height: 1.65;
}

.tc-top10-item {
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid hsl(278 24% 24% / 0.6);
  scroll-margin-top: 1.25rem;
}

.tc-top10-item:last-child {
  border-bottom: none;
}

.tc-top10-item__title {
  font-family: var(--font-display, "Source Serif 4", Georgia, serif);
  font-size: clamp(1.25rem, 1vw + 1.05rem, 1.55rem);
  margin: 0 0 0.35rem;
}

.tc-top10-item__kw {
  font-size: 0.85rem;
  margin: 0 0 0.75rem;
}

.tc-top10-item__body {
  line-height: 1.65;
}

.tc-top10-item__link .button {
  display: inline-block;
  margin-top: 0.75rem;
}

/* Widget Top 10 na página final da jogada */
.tc-top10-widget {
  max-width: 42rem;
  margin: 2rem auto;
  padding: 1.25rem 1.35rem;
  border-radius: 1rem;
  background: linear-gradient(165deg, hsl(278 36% 16%), hsl(258 32% 12%));
  border: 1px solid hsl(278 34% 30% / 0.55);
  box-shadow: 0 12px 32px hsl(0 0% 0% / 0.28);
}

.tc-top10-widget__title {
  font-family: var(--font-display, "Source Serif 4", Georgia, serif);
  font-size: clamp(1.1rem, 0.8vw + 0.95rem, 1.35rem);
  margin: 0 0 0.35rem;
  line-height: 1.25;
  color: #f5f0ff !important;
}

.tc-top10-widget__lede {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  color: #ddd6f3 !important;
}

.tc-top10-widget__cta {
  color: hsl(45 95% 70%);
  font-weight: 600;
  text-decoration: none;
}

.tc-top10-widget__cta:hover {
  text-decoration: underline;
}

.tc-top10-widget__list {
  margin: 0;
  padding-left: 1.35rem;
}

.tc-top10-widget__item {
  margin: 0.65rem 0;
  line-height: 1.45;
}

.tc-top10-widget__item-title {
  font-weight: 700;
  color: #f5f0ff !important;
}

.tc-top10-widget__kw {
  font-size: 0.78rem;
  opacity: 0.85;
}

.tc-top10-widget__blurb {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  color: hsl(278 10% 86%);
}

.tc-top10-widget--expanded .tc-top10-widget__blurb {
  font-size: 0.92rem;
}

.tc-top10-widget__play {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}

.tc-top10-widget__play a {
  color: hsl(188 78% 72%);
}

.tc-top10-widget--ctx-middle {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.tc-top10-widget--ctx-after {
  margin-top: 2rem;
}

/* Top10 CPT + widget + CMS: titoli h1–h6 leggibili (tema WP / blocchi possono forzare colori scuri) */
body.tc-theme-dark.tarot-clash-royale-php .tc-top10-hero__title,
body.tc-theme-dark.tarot-clash-royale-php .tc-top10-toc__h,
body.tc-theme-dark.tarot-clash-royale-php .tc-top10-item__title {
  color: hsl(278 18% 96%) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-top10-hero__title,
body.tc-theme-light.tarot-clash-royale-php .tc-top10-toc__h,
body.tc-theme-light.tarot-clash-royale-php .tc-top10-item__title {
  color: var(--fg) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-top10-article .entry-content :where(h1, h2, h3, h4, h5, h6),
body.tc-theme-dark.tarot-clash-royale-php .tc-top10-article .entry-content :where(.wp-block-heading) {
  color: hsl(278 18% 96%) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-top10-article .entry-content :where(h3, h4, h5, h6) {
  color: hsl(278 14% 88%) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-top10-article .entry-content :where(h1, h2, h3, h4, h5, h6),
body.tc-theme-light.tarot-clash-royale-php .tc-top10-article .entry-content :where(.wp-block-heading) {
  color: var(--fg) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-top10-article .entry-content :where(h3, h4, h5, h6) {
  color: var(--muted) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-top10-article .entry-content a {
  color: hsl(188 82% 78%) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-top10-article .entry-content a {
  color: var(--accent) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(h1, h2, h3, h4, h5, h6),
body.tc-theme-dark.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(.wp-block-heading) {
  color: var(--fg) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(h3, h4, h5, h6) {
  color: var(--muted) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(h1, h2, h3, h4, h5, h6),
body.tc-theme-light.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(.wp-block-heading) {
  color: var(--fg) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-app .tc-cms-extra-block :where(h3, h4, h5, h6) {
  color: var(--muted) !important;
}

body.tc-theme-dark.tarot-clash-royale-php .tc-app .tc-top10-widget__kw.muted,
body.tc-theme-dark.tarot-clash-royale-php .tc-app .tc-top10-widget__kw {
  color: hsl(278 12% 82%) !important;
}

body.tc-theme-light.tarot-clash-royale-php .tc-app .tc-top10-widget__kw.muted,
body.tc-theme-light.tarot-clash-royale-php .tc-app .tc-top10-widget__kw {
  color: var(--muted) !important;
}

/* Upsell shortcodes (remove ads / credits) must stay readable on dark themes */
.tc-app .tc-upsell {
  background: linear-gradient(165deg, hsl(278 30% 16%), hsl(258 28% 12%));
  border: 1px solid hsl(278 34% 30% / 0.55);
  border-radius: 0.95rem;
  box-shadow: 0 10px 28px hsl(0 0% 0% / 0.25);
  color: #ddd6f3;
  padding: 1rem 1.1rem;
}

.tc-app .tc-upsell__title {
  color: #ffffff !important;
  margin: 0 0 0.45rem;
}

.tc-app .tc-upsell__lead,
.tc-app .tc-upsell__meta {
  color: #ddd6f3 !important;
}

/* Pick — optional “Nuova UI baralho (beta)” (admin toggle). Scoped to root; default layout unchanged without --ui-beta. */
.tc-app .tc-deck-pick-root--ui-beta .tc-deck-wrapper--beta {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  margin-top: 0;
  box-shadow:
    0 0 20px rgba(255, 0, 255, 0.1),
    inset 0 0 20px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.tc-app .tc-deck-pick-root--ui-beta .tc-deck-wrapper--beta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 48px;
  background: linear-gradient(to bottom, #0b0f1a 0%, rgba(11, 15, 26, 0) 100%);
  z-index: 5;
  pointer-events: none;
}

.tc-app .tc-deck-pick-root--ui-beta .tc-deck-wrapper--beta .tc-deck-arc {
  margin-top: 24px;
}

/* Header premium variant: keeps existing logo/cards and adds A+C+D structure. */
.tc-header--app.tc-header--premium {
  --tc-premium-panel-bg: linear-gradient(145deg, hsl(274 52% 12% / 0.96), hsl(258 45% 9% / 0.96));
  --tc-premium-panel-border: hsl(45 95% 68% / 0.24);
  --tc-premium-panel-glow: hsl(281 88% 62% / 0.24);
}

.tc-header--app.tc-header--premium .tc-header__inner {
  padding-top: clamp(0.85rem, calc(0.8rem * var(--tc-header-scale, 1.25)), 1.5rem);
  padding-bottom: clamp(0.75rem, calc(0.75rem * var(--tc-header-scale, 1.2)), 1.3rem);
}

.tc-header--app.tc-header--premium .tc-topnav {
  gap: clamp(0.3rem, 0.55vw, 0.62rem);
}

.tc-header-premium-tools {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 0.75rem;
  margin-top: 0.45rem;
  margin-bottom: 0.25rem;
  padding-bottom: 0.55rem;
}

.tc-header-premium-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tc-header-premium-action {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
  border-radius: 999px;
  padding: 0.38rem 0.72rem;
  font-size: clamp(0.78rem, calc(0.76rem * var(--tc-header-text-scale, 1)), 0.93rem);
  line-height: 1;
  color: hsl(273 40% 95%);
  border: 1px solid hsl(278 52% 42% / 0.44);
  background: linear-gradient(145deg, hsl(274 36% 20% / 0.92), hsl(262 31% 16% / 0.92));
  box-shadow:
    inset 0 1px 0 hsl(45 100% 70% / 0.14),
    0 8px 18px hsl(0 0% 0% / 0.22);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.tc-header-premium-action:hover,
.tc-header-premium-action:focus-visible {
  transform: translateY(-1px);
  border-color: var(--tc-premium-panel-border);
  box-shadow:
    inset 0 1px 0 hsl(45 100% 70% / 0.2),
    0 10px 22px hsl(0 0% 0% / 0.3),
    0 0 12px var(--tc-premium-panel-glow);
}

.tc-header-premium-action__icon {
  font-size: 0.95em;
}

.tc-header-premium-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.tc-header-premium-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.14rem;
  border-radius: 0.7rem;
  padding: 0.42rem 0.55rem;
  border: 1px solid var(--tc-premium-panel-border);
  background: var(--tc-premium-panel-bg);
  box-shadow:
    inset 0 1px 0 hsl(45 100% 75% / 0.08),
    0 8px 20px hsl(0 0% 0% / 0.22);
}

.tc-header-premium-stat__k {
  font-size: 0.62rem;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: hsl(281 28% 76%);
}

.tc-header-premium-stat__v {
  font-size: clamp(0.74rem, calc(0.72rem * var(--tc-header-text-scale, 1)), 0.9rem);
  line-height: 1.15;
  font-weight: 800;
  color: hsl(45 100% 78%);
  white-space: nowrap;
}

@media (max-width: 64rem) {
  .tc-header-premium-tools {
    grid-template-columns: 1fr;
  }

  .tc-header-premium-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 42rem) {
  .tc-header--app.tc-header--premium .tc-header__inner {
    padding-top: 0.95rem;
    padding-bottom: 0.62rem;
    align-items: center;
  }

  .tc-header-premium-tools {
    gap: 0.52rem;
    margin-top: 0.25rem;
  }

  .tc-header-premium-actions {
    gap: 0.38rem;
    overflow-x: auto;
    padding-bottom: 0.1rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .tc-header-premium-action {
    flex: 0 0 auto;
    font-size: 0.77rem;
    padding: 0.34rem 0.6rem;
  }

  .tc-header-premium-stats {
    grid-template-columns: 1fr;
  }

  .tc-header-premium-stat {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    padding: 0.35rem 0.5rem;
  }
}

/* Chatbot widget: lead + engagement + monetization helper (non divinazione). */
.tc-chatbot {
  position: fixed;
  right: clamp(0.7rem, 2vw, 1rem);
  bottom: clamp(0.7rem, 2vw, 1.2rem);
  z-index: 130;
  width: min(24rem, calc(100vw - 1.4rem));
}

.tc-chatbot__fab {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid hsl(292 45% 32% / 0.85);
  border-radius: 999px;
  background: linear-gradient(135deg, hsl(282 58% 14%), hsl(260 54% 10%));
  color: hsl(45 100% 84%);
  font-weight: 700;
  padding: 0.52rem 0.9rem;
  cursor: pointer;
  box-shadow: 0 12px 24px hsl(270 70% 3% / 0.48);
}

.tc-chatbot__panel {
  margin-top: 0.55rem;
  border: 1px solid hsl(290 34% 25% / 0.85);
  border-radius: 1rem;
  background: linear-gradient(180deg, hsl(278 45% 10% / 0.98), hsl(264 40% 8% / 0.98));
  box-shadow: 0 26px 44px hsl(0 0% 0% / 0.45);
  overflow: hidden;
}

.tc-chatbot__panel.is-hidden {
  display: none;
}

.tc-chatbot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.58rem 0.68rem;
  border-bottom: 1px solid hsl(285 28% 23% / 0.9);
}

.tc-chatbot__close {
  border: 1px solid hsl(285 30% 28%);
  background: hsl(272 36% 14%);
  color: hsl(279 20% 88%);
  border-radius: 0.55rem;
  padding: 0.18rem 0.52rem;
  cursor: pointer;
}

.tc-chatbot__messages {
  max-height: min(46vh, 21rem);
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.52rem;
  padding: 0.68rem;
}

.tc-chatbot__bubble {
  font-size: 0.92rem;
  line-height: 1.42;
  border-radius: 0.7rem;
  padding: 0.5rem 0.64rem;
}

.tc-chatbot__bubble--assistant {
  background: hsl(270 24% 17% / 0.96);
  border: 1px solid hsl(278 20% 28% / 0.85);
  color: hsl(275 28% 93%);
}

.tc-chatbot__bubble--user {
  align-self: flex-end;
  background: hsl(45 88% 58%);
  border: 1px solid hsl(43 76% 42%);
  color: hsl(220 30% 14%);
}

.tc-chatbot__quick {
  padding: 0 0.68rem 0.55rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
}

.tc-chatbot__quick button {
  border: 1px solid hsl(280 32% 30%);
  background: hsl(272 34% 14%);
  color: hsl(276 22% 92%);
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  cursor: pointer;
}

.tc-chatbot__composer,
.tc-chatbot__lead {
  border-top: 1px solid hsl(285 28% 23% / 0.9);
  padding: 0.58rem 0.68rem;
  display: grid;
  gap: 0.45rem;
}

.tc-chatbot__composer {
  grid-template-columns: 1fr auto;
}

.tc-chatbot__composer input,
.tc-chatbot__lead input[type="email"] {
  width: 100%;
  min-width: 0;
  border-radius: 0.55rem;
  border: 1px solid hsl(280 25% 28%);
  background: hsl(270 34% 12%);
  color: hsl(278 30% 95%);
  padding: 0.42rem 0.55rem;
}

.tc-chatbot__composer button,
.tc-chatbot__lead button {
  border: 1px solid hsl(46 62% 44%);
  border-radius: 0.55rem;
  background: hsl(45 89% 57%);
  color: hsl(220 32% 16%);
  font-weight: 700;
  padding: 0.4rem 0.62rem;
  cursor: pointer;
}

.tc-chatbot__lead {
  padding-top: 0.48rem;
}

.tc-chatbot__lead label {
  font-size: 0.73rem;
  color: hsl(278 18% 84%);
}

.tc-chatbot__lead-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.36rem;
}

.tc-chatbot__lead-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
}

@media (max-width: 42rem) {
  .tc-chatbot {
    right: 0.55rem;
    left: 0.55rem;
    width: auto;
    bottom: 0.5rem;
  }
}

/* Opzione admin: riduce animazioni decorative hero (default: animazioni attive) */
body.tc-hero-decor-off.tarot-clash-royale-php .tc-home-hero__glow {
  animation: none !important;
}

body.tc-hero-decor-off.tarot-clash-royale-php .tc-home-hero-card {
  animation: none !important;
}

body.tc-hero-decor-off.tarot-clash-royale-php .tc-home-hero-card::before {
  animation: none !important;
}

/* Mobile readability guardrail for legacy home */
@media (max-width: 52rem) {
  .tc-app {
    font-size: 16px !important;
    --tc-header-text-scale: 1 !important;
  }

  /* Non applicare a .tc-header--app: eredita/em e strip troppo “grasse”; lockup HUD ha clamp dedicati. */
  .tc-header:not(.tc-header--app),
  .tc-header:not(.tc-header--app) .tc-topnav,
  .tc-header:not(.tc-header--app) .tc-topnav a {
    font-size: 0.98rem !important;
  }

  .tc-footer__brand-cluster .tc-brand__title-line,
  .tc-footer__brand-cluster .tc-brand__title-line--royale {
    font-size: 0.98rem !important;
  }

  .tc-home-hero,
  .tc-home-quick,
  .tc-home-reco,
  .tc-home-missions,
  .tc-home-footnote {
    font-size: 16px;
    line-height: 1.45;
  }

  .tc-home-sub {
    font-size: 0.88rem !important;
    line-height: 1.4;
  }

  .tc-home-streak,
  .tc-home-stats,
  .tc-home-quick__desc,
  .tc-home-reco__title,
  .tc-home-missions__badge,
  .tc-home-missions__reward,
  .tc-home-missions__desc {
    font-size: 0.92rem !important;
    line-height: 1.35;
  }

  .tc-home-quick__name,
  .tc-home-reco__name,
  .tc-home-missions__name {
    font-size: 1.02rem !important;
    line-height: 1.3;
  }

  .tc-home-cta .btn,
  .tc-home-quick__cta,
  .tc-home-reco__cta,
  .tc-home-missions__link {
    min-height: 44px;
    font-size: 0.98rem !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Mapa da leitura V2 (opt-in via admin — não altera regras acima)            */
/* -------------------------------------------------------------------------- */

@media (min-width: 781px) {
  .tc-spread-visual-wrap--v2-layout:not(.tc-spread-visual-wrap--variant-mobile):not(.tc-spread-visual-wrap--variant-mobile-hardened)
    .tc-spread-visual__slot.is-current {
    transform: translate(-50%, -50%) scale(1.18);
  }

  .tc-spread-visual-wrap--v2-layout:not(.tc-spread-visual-wrap--variant-mobile):not(.tc-spread-visual-wrap--variant-mobile-hardened)
    .tc-spread-visual__slot.is-current.is-revealed
    .tc-spread-visual__slot-inner {
    transform: scale(1.24);
  }
}

.tc-spread-visual-wrap--v2-highlight-fix
  .tc-spread-visual__slot.is-revealed:not(.is-current) {
  transform: translate(-50%, -50%) scale(0.95);
}

.tc-spread-visual-wrap--v2-highlight-fix
  .tc-spread-visual__slot.is-revealed:not(.is-current)
  .tc-spread-visual__slot-inner {
  transform: scale(0.88);
}

.tc-spread-visual-wrap--v2-highlight-fix
  .tc-spread-visual__slot.is-revealed:not(.is-current) .tc-spread-visual__img,
.tc-spread-visual-wrap--v2-highlight-fix
  .tc-spread-visual__slot.is-revealed:not(.is-current) .tc-spread-visual__placeholder {
  box-shadow: none;
}

/* -------------------------------------------------------------------------- */
/* Header HUD: viewport stretti (≤24rem, ~384px e sotto — es. 362×676)        */
/* Wallet compatto + lockup una riga solo «Tarot Clash». */
/* -------------------------------------------------------------------------- */

@media (max-width: 24rem) {
  /* Brand prende tutto lo spazio rimasto dopo wallet (evita lockup ~86px). */
  .tc-header--app.tc-mobile-nav--strip .tc-brand {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    gap: 0.32rem !important;
    padding: 0.14rem 0.2rem !important;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-header-wallet {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: min(7.15rem, 40vw) !important;
    gap: 0.32rem !important;
    padding: 0.2rem 0.3rem !important;
  }

  .tc-header--app.tc-mobile-nav--drawer .tc-header-wallet {
    max-width: min(7.15rem, 40vw) !important;
    gap: 0.32rem !important;
    padding: 0.2rem 0.3rem !important;
  }

  .tc-header--app.tc-mobile-nav--drawer .tc-brand {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    gap: 0.32rem !important;
    padding: 0.14rem 0.2rem !important;
  }

  .tc-header-wallet__chip {
    min-height: 38px !important;
    padding: 0.14rem 0.22rem 0.14rem 0.2rem !important;
    font-size: 0.65rem !important;
    border-radius: 9px !important;
  }

  /* Viewport stretti: mark ancora grande ma compatto vs wallet. */
  .tc-header--app .tc-brand--premium .tc-brand__mark {
    width: 4.35rem !important;
    height: 3.28rem !important;
    flex-shrink: 0;
  }

  .tc-header--app .tc-brand--premium .tc-brand__mark-card {
    width: 1.85rem !important;
    height: 2.55rem !important;
    font-size: 0.88rem !important;
  }

  .tc-header--app .tc-brand__text-wrap--header-lockup {
    flex: 1 1 0 !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.22rem !important;
    min-width: 0 !important;
    min-height: 1.48rem !important;
    max-width: none !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .tc-header--app .tc-brand__text-wrap--header-lockup .tc-brand__title-line {
    display: inline !important;
    width: auto !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    max-width: none !important;
    font-size: calc(clamp(1rem, 4vw, 1.14rem) * var(--tc-header-text-scale, 1)) !important;
    letter-spacing: 0.06em !important;
    line-height: 1.15 !important;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav {
    padding-inline: 0.15rem 1.1rem !important;
    scrollbar-width: thin;
  }

  .tc-header--app.tc-mobile-nav--strip .tc-topnav a {
    font-size: 0.69rem !important;
    padding: 0.22rem 0.34rem !important;
    min-height: 36px !important;
  }
}

.tc-home-debug-widget-label {
  margin: 0 0 0.35rem;
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.4rem;
  border-radius: 999px;
  border: 1px dashed rgba(212, 175, 55, 0.45);
  background: rgba(12, 14, 20, 0.55);
  backdrop-filter: blur(6px);
  font-size: 12px;
  line-height: 1.2;
  opacity: 0.85;
}

.tc-home-debug-widget-label code {
  color: rgba(212, 175, 55, 0.95);
  font-weight: 700;
}
