/* ══════════════════════════════════════════════════════════
   Corazón A La Carta · portada v2 (basada en el mock de marketing
   HOMEPAGE.md v4 — docs/2026_08_21/.../mock/styles.css, casi verbatim).
   Solo esta página (homepage.blade.php) carga este fichero, junto con
   homepage-mockup.css (widget de juego, nav-dots, sticky CTA, formularios).
   Clases sin prefijo "calac-" a propósito: aisladas a esta página, no
   colisionan con el resto del sitio.
   ══════════════════════════════════════════════════════════ */
:root{
  /* Tokens tomados literalmente de corazonalacarta.es (variables --color-*) */
  --ink:#1a002d;            /* --color-violet-deep  */
  --ink-2:#2e004f;          /* --color-violet       */
  --ink-3:#3d0f5c;          /* --color-violet-elevated */
  --surface:#4a1a6b;        /* --color-violet-surface  */
  --violet-border:#6b4a8c;  /* --color-violet-border   */
  --magenta:#ff007f;        /* --color-magenta      ← acento principal */
  --magenta-hover:#ff3399;
  --magenta-pressed:#cc0066;
  --cyan:#00e5ff;           /* --color-cyan         ← acento secundario */
  --cyan-hover:#66f0ff;
  --rose:#f8bbd0;           /* --color-rose         */
  --rose-light:#fce4ec;
  --txt:#f5f0fa;            /* --text-primary       */
  --txt-soft:#c9b8d9;       /* --text-secondary     */
  --txt-dim:#7a6b8a;        /* --text-disabled      */
  /* RETIRADOS a propósito: --color-gold #ffd700 y --color-success #39ff14
     (oro = monedas/jackpot, verde neón = tragaperras). Chocan con las cinco
     promesas: "nunca gacha, nunca cajas de suerte". */
  --paper:#20063a;          /* fondo de página */
  --pink:var(--magenta);
  --coral:var(--magenta);
  --amber:var(--magenta-hover);
  --sky:var(--cyan);
  --line:rgba(245,240,250,.14);
  --grad:linear-gradient(100deg,#ff007f,#ff3399);          /* CTA, monocromo magenta */
  --grad-cool:linear-gradient(100deg,var(--cyan),#7a5cff);
  --grad-neon:linear-gradient(100deg,#ff007f,#00e5ff);     /* solo texto de acento */
  --r:22px;
  --shadow:0 18px 50px -22px rgba(0,0,0,.65);
  --glow:0 0 24px rgba(255,0,127,.45);                     /* ÚNICO glow del sitio */
  --f-head:'Baloo 2',system-ui,sans-serif;
  --f-body:'Inter',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%}
body{margin:0;font-family:var(--f-body);color:var(--txt);background:var(--paper);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--f-head);margin:0;line-height:1.05;letter-spacing:-.01em}
em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.wrap{width:min(1160px,92vw);margin-inline:auto}
.wrap.narrow{width:min(780px,92vw)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}

/* ── botones ───────────────────────────── */
.btn,.ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--f-head);font-weight:700;text-decoration:none;border:0;cursor:pointer;
  border-radius:999px;padding:.7rem 1.35rem;font-size:1rem;transition:.18s}
.btn{background:var(--grad);color:#fff;box-shadow:0 10px 26px -10px rgba(255,107,107,.75)}
.btn:hover{transform:translateY(-2px);filter:saturate(1.1)}
.ghost{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.ghost:hover{background:rgba(255,255,255,.25)}
.btn.lg,.ghost.lg{padding:.95rem 1.9rem;font-size:1.1rem}
.btn.sm,.ghost.sm{padding:.5rem 1rem;font-size:.9rem}
.hero-cta{position:relative;overflow:hidden;isolation:isolate;
  animation:calacCtaPulse 3.4s ease-in-out infinite}
.hero-cta__label{position:relative;z-index:1}
.hero-cta::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);
  background-repeat:no-repeat;background-size:300% 300%;background-position:200% 0%;
  animation:calacCtaShine 3.4s ease-in-out infinite}
@keyframes calacCtaShine{
  0%,40%{background-position:200% 0%}
  70%,100%{background-position:-100% 0%}
}
@keyframes calacCtaPulse{
  0%,50%{transform:scale(1)}
  68%{transform:scale(1.07)}
  86%,100%{transform:scale(1)}
}
.lnk{font-weight:600;color:var(--pink);text-decoration:none;font-size:.95rem}
.lnk:hover{text-decoration:underline}

/* ── nav ───────────────────────────────── */
.nav{position:sticky;top:0;z-index:40;background:rgba(26,0,45,.88);
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:.6rem 0}
.brand{order:2;justify-self:center}
.brand img{height:38px;width:auto}
.nav-links{order:1;justify-self:start;display:flex;gap:1.4rem;font-size:.95rem;font-weight:500}
.nav-links a{color:rgba(255,255,255,.82);text-decoration:none}
.nav-links a:hover{color:#fff}
.nav-cta{order:3;justify-self:end;display:flex;gap:.6rem;align-items:center}

/* ── hero ──────────────────────────────── */
.hero{position:relative;background:
    radial-gradient(1100px 520px at 80% -10%,rgba(255,143,177,.35),transparent 60%),
    radial-gradient(900px 600px at 5% 110%,rgba(47,182,245,.28),transparent 60%),
    linear-gradient(165deg,var(--ink),var(--ink-3) 60%,#5b2180);
  color:#fff;padding:1.2rem 0 3.2rem;overflow:hidden}
.hero-glow{position:absolute;inset:auto 0 -60% 40%;height:70%;
  background:radial-gradient(closest-side,rgba(255,180,61,.28),transparent);pointer-events:none;
  animation:calacHeroGlow 7s ease-in-out infinite alternate}
@keyframes calacHeroGlow{
  0%{transform:translate(0,0) scale(1);opacity:.8}
  100%{transform:translate(10%,-8%) scale(1.35);opacity:1}
}

/* ── dos manchas de fondo del hero, estáticas (sin órbita) ── */
.hero-orbit{position:absolute;inset:-10%;pointer-events:none}
.hero-orb{position:absolute;width:62%;height:62%;border-radius:50%;
  transform:translate(-50%,-50%);pointer-events:none;opacity:.8}
.hero-orb--lilac{top:15%;left:78%;
  background:radial-gradient(closest-side,rgba(255,0,127,.4),transparent 70%)}
.hero-orb--blue{top:85%;left:22%;
  background:radial-gradient(closest-side,rgba(0,229,255,.3),transparent 70%)}

.caption{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);
  border-radius:999px;padding:.45rem .9rem;font-size:.86rem;margin:.4rem 0 2rem;width:fit-content}
.cap-tag{font-family:var(--f-head);font-weight:700;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.02em}
.cap-txt{color:rgba(255,255,255,.85)}
.caption .cap-txt[data-state="live"]{display:none}
.caption.is-live .cap-txt[data-state="evergreen"]{display:none}
.caption.is-live .cap-txt[data-state="live"]{display:inline-flex;align-items:center;gap:.4rem;color:#fff}
.dot{width:8px;height:8px;border-radius:50%;background:#ff3b5c;box-shadow:0 0 0 0 rgba(255,59,92,.7);
  animation:pulse 1.6s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(255,59,92,0)}100%{box-shadow:0 0 0 0 rgba(255,59,92,0)}}
.cap-swap{background:none;border:0;color:rgba(255,255,255,.45);font-size:.72rem;cursor:pointer;
  text-decoration:underline;font-family:var(--f-body)}

.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}
.kicker{font-family:var(--f-head);font-weight:800;font-size:clamp(1.15rem,2vw,1.6rem);
  margin:1.25rem 0 .5rem;background:linear-gradient(100deg,var(--rose),var(--amber));
  -webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.01em;
  line-height:1.18;max-width:30ch}
.kicker a{color:#fff;text-decoration:underline;text-underline-offset:.15em}
.kicker a:hover{color:var(--rose)}
.hero-copy h1{font-size:clamp(1.95rem,4.1vw,3.15rem);font-weight:800;max-width:22ch}
.hero-copy h1 .accent{color:#fff}
.sub strong{color:#fff;font-weight:700}
.hero-copy h1 em{background:linear-gradient(100deg,var(--rose),var(--amber));
  -webkit-background-clip:text;background-clip:text}
.sub{font-size:clamp(1rem,1.45vw,1.18rem);color:rgba(255,255,255,.85);max-width:46ch;margin:1rem 0 1.6rem;line-height:1.5}
.cta-row{display:flex;gap:.8rem;flex-wrap:wrap}
.micro{margin:.9rem 0 0;font-size:.85rem;color:rgba(255,255,255,.6);letter-spacing:.01em}
.hero-art{justify-self:center;max-width:330px;position:relative;padding:10px;border-radius:26px;
  background:linear-gradient(160deg,#ffe9a8,#ffb43d 40%,#e8177f);transform:rotate(2.5deg);
  box-shadow:0 34px 60px -24px rgba(0,0,0,.7);animation:calacHeroArtFloat 5s ease-in-out infinite}
.hero-art::after{content:"♥";position:absolute;top:16px;left:18px;color:var(--pink);font-size:1.4rem}
.hero-art img{border-radius:18px;background:#fff;height:auto}
@keyframes calacHeroArtFloat{
  0%,100%{transform:translateY(0) rotate(2.5deg)}
  50%{transform:translateY(-16px) rotate(2.5deg)}
}

/* rutas */
.rutas{margin-top:2.6rem}
.rutas-head{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.rutas-head h2{font-size:1.5rem}
.hint{font-size:.9rem;color:rgba(255,255,255,.55)}
.ruta-list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:.9rem}
.ruta{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:3/4;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.18);cursor:pointer;transition:.22s}
.ruta:hover{transform:translateY(-6px);border-color:rgba(255,180,61,.75)}
.ruta img{width:100%;height:100%;object-fit:cover;transform:scale(1.28);transition:.35s}
.ruta:hover img{transform:scale(1.36)}
.ruta.amalia{outline:2px solid rgba(0,229,255,.55);outline-offset:-2px}
/* encuadres calibrados por sprite (720×1280, anclados abajo) */
.p-amalia{object-position:46% 28%}
.p-valentin{object-position:62% 37%}
.p-samuel{object-position:68% 49%}
.p-maxi{object-position:62% 43%}
.p-asra{object-position:58% 15%}
.ruta-meta{position:absolute;inset:auto 0 0 0;padding:.7rem .8rem;
  background:linear-gradient(transparent,rgba(20,0,35,.92) 55%);display:grid}
.ruta-meta b{font-family:var(--f-head);font-size:1.02rem}
.ruta-meta span{font-size:.76rem;color:rgba(255,255,255,.7);line-height:1.25}
.ruta-tag{position:absolute;top:.55rem;left:.55rem;background:var(--grad);color:#fff;
  font-size:.64rem;font-weight:700;padding:.2rem .5rem;border-radius:999px;letter-spacing:.03em;
  text-transform:uppercase}
.ruta-tag.alt{background:var(--grad-cool)}

/* claims */
.claims{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;
  grid-template-columns:repeat(3,1fr);gap:1rem}
.claims li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  gap:.15rem 1rem;align-items:center;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:1rem 1.2rem}
.claims .ic{grid-row:1/3;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
  background:var(--grad);font-size:1.25rem;font-weight:700}
.claims b{font-family:var(--f-head);font-size:1.05rem}
.claims span:not(.ic){font-size:.85rem;color:rgba(255,255,255,.66)}

/* ── tira de promesas ──────────────────── */
.promesas{background:var(--ink-2);color:#fff;position:relative}
.promesas-in{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;padding:.9rem 0}
.pr-lead{font-family:var(--f-head);font-weight:700;font-size:.9rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.promesas ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0;padding:0;
  font-size:.86rem;color:rgba(255,255,255,.78)}
.promesas li{position:relative;padding-left:1rem}
.promesas li::before{content:"✕";position:absolute;left:0;color:var(--coral);font-size:.72rem;top:.15rem}

/* ── secciones ─────────────────────────── */
.section{padding:4.5rem 0;position:relative}
.section.alt{background:#fff}
.sec-head{max-width:70ch;margin-bottom:2.4rem}
.sec-head h2{font-size:clamp(1.9rem,3.4vw,2.9rem)}
.sec-head p{color:var(--txt-soft);font-size:1.05rem;line-height:1.6;margin:.9rem 0 0}
.sec-cta{margin-top:2.4rem;text-align:center}

/* cards de "cómo se juega" */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:1.1rem;box-shadow:var(--shadow)}
.section.alt .card{background:#fffdfe}
.card h3{font-size:1.3rem;margin:1rem 0 .5rem}
.card p{margin:0 0 .7rem;color:var(--txt-soft);font-size:.95rem;line-height:1.55}
.card-art{position:relative;aspect-ratio:4/3.1;border-radius:16px;overflow:hidden;
  background:var(--ink-3)}
.card-art>img{width:100%;height:100%;object-fit:cover}

.art-feed{background:linear-gradient(160deg,#3d1560,#7a2b8f);display:grid;place-items:center}
.swipe{position:absolute;width:64%;aspect-ratio:3/4.1;border-radius:16px;overflow:hidden;
  background:#fff;box-shadow:0 14px 30px -12px rgba(0,0,0,.6)}
.deck3{transform:rotate(-8deg) translateY(6px) scale(.94);opacity:.45}
.deck2{transform:rotate(5deg) translateY(3px) scale(.97);opacity:.7}
.deck1{transform:rotate(-1.5deg)}
.deck1 img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.badges{position:absolute;top:.4rem;right:.4rem;display:grid;gap:.3rem}
.badges img{width:26px;height:26px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.swipe-meta{position:absolute;inset:auto 0 0 0;padding:.5rem .6rem;
  background:linear-gradient(transparent,rgba(20,0,35,.9));color:#fff;display:grid}
.swipe-meta b{font-family:var(--f-head);font-size:.9rem}
.swipe-meta span{font-size:.68rem;color:rgba(255,255,255,.75)}
.swipe-actions{position:absolute;bottom:.5rem;left:0;right:0;display:flex;justify-content:center;
  gap:3.2rem;z-index:3}
.swipe-actions span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#fff;font-weight:700;box-shadow:0 6px 14px rgba(0,0,0,.35)}
.swipe-actions .no{color:#8b8b95}
.swipe-actions .yes{color:#fff;background:var(--pink)}

.art-outfit{background:linear-gradient(160deg,#2a0a45,#b6417f)}
.art-outfit .selfie{object-position:50% 22%}
.detect{position:absolute;inset:0}
.scan{position:absolute;left:8%;right:8%;top:34%;height:2px;background:linear-gradient(90deg,transparent,#ffb43d,transparent);
  box-shadow:0 0 14px #ffb43d;animation:scan 2.6s ease-in-out infinite}
@keyframes scan{0%,100%{top:26%}50%{top:66%}}
.chip{position:absolute;left:.6rem;bottom:2.4rem;background:rgba(20,0,35,.82);color:#fff;
  font-size:.7rem;padding:.28rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.2)}
.chip.ok{bottom:.7rem;background:rgba(255,180,61,.95);color:#2b1435;font-weight:700;border-color:transparent}

/* ── delicias ──────────────────────────── */
.delicias{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:1rem}
.d-card{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/4;
  box-shadow:var(--shadow);background:var(--ink-3);transition:.22s;cursor:pointer}
.d-card:hover{transform:translateY(-5px)}
.d-card img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.d-card.featured{grid-row:span 2;grid-column:span 2;aspect-ratio:auto}
.d-card.featured img{object-position:50% 24%}
.d-meta{position:absolute;inset:auto 0 0 0;padding:.7rem .8rem;color:#fff;
  background:linear-gradient(transparent,rgba(20,0,35,.92) 60%);display:grid}
.d-meta b{font-family:var(--f-head);font-size:1.02rem}
.d-meta span{font-size:.74rem;color:rgba(255,255,255,.72)}
.d-flag{position:absolute;top:.6rem;left:.6rem;background:var(--grad);color:#fff;
  font-family:var(--f-head);font-weight:700;font-size:.78rem;padding:.3rem .7rem;border-radius:999px}

/* Delicia destacada con embed de Instagram: el iframe manda su alto, no el aspect-ratio de .d-card */
.d-card.featured.d-embed{aspect-ratio:auto;overflow:visible;cursor:default;
  display:flex;flex-direction:column;gap:.6rem;padding:.7rem;border:1px solid var(--violet-border)}
.d-card.featured.d-embed:hover{transform:none}
.d-card.featured.d-embed .d-flag{position:static;align-self:flex-start}
.d-embed-frame{flex:1 1 auto;display:flex;align-items:flex-start;justify-content:center;min-width:0}
.d-embed-frame .instagram-media{min-width:0!important;max-width:100%!important;width:100%!important;
  margin:0!important;border-radius:12px!important}
.d-embed-slot{width:100%;min-width:0}
/* Placeholder mientras no hay consentimiento para embeds (categoría "embeds" del banner). */
.d-embed-ph{position:relative;width:100%;min-height:260px;border-radius:12px;overflow:hidden;
  display:flex;align-items:flex-end;background:var(--ink-3)}
.d-embed-ph[hidden]{display:none}
.d-embed-ph>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 24%;filter:blur(6px) saturate(.8);opacity:.45}
.d-embed-ph__body{position:relative;display:grid;gap:.5rem;justify-items:start;padding:1rem;
  width:100%;color:#fff;background:linear-gradient(transparent,rgba(20,0,35,.92) 55%)}
.d-embed-ph__body b{font-family:var(--f-head);font-size:1.02rem}
.d-embed-ph__body>span{font-size:.78rem;color:rgba(255,255,255,.78);max-width:44ch}
.d-embed-ph__links{font-size:.74rem;color:rgba(255,255,255,.6)}
.d-embed-ph__links a{color:rgba(255,255,255,.85);text-decoration:underline}

/* reseñas */
.quote{position:relative;margin:2.4rem 0 0;background:linear-gradient(120deg,#fff,#fff6fa);
  border:1px solid var(--line);border-left:4px solid var(--pink);border-radius:18px;padding:1.6rem 1.8rem}
.quote blockquote{margin:0;font-family:var(--f-head);font-size:1.25rem;line-height:1.4}
.quote figcaption{display:flex;align-items:center;gap:.8rem;margin-top:1.1rem}
.quote figcaption img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:50% 18%}
.quote figcaption b{font-size:.95rem}
.quote figcaption span{display:block;font-size:.8rem;color:var(--txt-soft)}
.quote figcaption a{color:var(--pink);text-decoration:none}

.soft-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:1.6rem;padding:1rem 1.3rem;border:1px dashed var(--line);border-radius:16px;
  background:rgba(232,23,127,.04);font-size:.95rem;color:var(--txt-soft)}

/* ── artistas ──────────────────────────── */
.flag-ia{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;
  background:var(--ink);color:#fff;border-radius:999px;padding:.42rem .9rem;font-size:.82rem}
.flag-ia b{font-family:var(--f-head);background:var(--grad);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.ocs-title{font-family:var(--f-head);font-weight:800;font-size:clamp(1.3rem,2.4vw,1.7rem);
  max-width:50ch;margin:1.5rem 0 0;line-height:1.3;letter-spacing:-.01em;color:var(--txt)}
.rarity{display:flex;align-items:center;gap:.6rem;margin-top:1.4rem;font-size:.85rem;
  color:var(--txt-soft)}
.rarity img{width:30px;height:30px}

/* ── faq ───────────────────────────────── */
.faq{display:grid;gap:.6rem}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:.9rem 1.1rem}
.faq summary{cursor:pointer;font-family:var(--f-head);font-weight:700;font-size:1.05rem;
  list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--pink);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq p{margin:.7rem 0 0;color:var(--txt-soft);line-height:1.6;font-size:.95rem}

/* ── final ─────────────────────────────── */
.final{background:linear-gradient(160deg,var(--ink),#6b1f6b);color:#fff;padding:4rem 0 2.4rem}
.final-in{display:grid;grid-template-columns:1.1fr .9fr;gap:2.4rem;align-items:center}
.final h2{font-size:clamp(1.8rem,3.2vw,2.6rem)}
.final p{color:rgba(255,255,255,.8);margin:.8rem 0 1.5rem}
.news{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r);padding:1.4rem}
.news b{font-family:var(--f-head);font-size:1.2rem}
.news p{font-size:.88rem;margin:.5rem 0 1rem}
.news-row{display:flex;gap:.5rem}
.news-row input{flex:1;border-radius:999px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.1);color:#fff;padding:.7rem 1rem;font-family:inherit}
.news-row input::placeholder{color:rgba(255,255,255,.5)}
.community-strip{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;margin-top:2.4rem;
  padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;
  color:rgba(255,255,255,.65)}
.community-strip a{color:#fff;text-decoration:none;font-weight:600}

/* ── seo + footer ──────────────────────── */
.seo{background:#fff;padding:3rem 0;position:relative}
.seo h2{font-size:1.35rem}
.seo p{color:var(--txt-soft);line-height:1.65;margin:.8rem 0 1.2rem;font-size:.95rem}
.foot{background:var(--ink);color:rgba(255,255,255,.72);padding:2.8rem 0 1.4rem;font-size:.9rem}
.foot-in{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:1.6rem}
.foot-in div{display:grid;gap:.4rem;align-content:start}
.foot-in b{color:#fff;font-family:var(--f-head);margin-bottom:.2rem}
.foot-in a{text-decoration:none;display:inline-block;padding:.35rem 0;min-height:24px}
.foot-in a:hover{color:#fff}
.foot-brand img{height:44px;width:auto;margin-bottom:.6rem}
.foot-brand p{margin:0;font-size:.85rem}
.foot-brand .foot-social{display:flex;gap:.6rem;margin-top:.9rem}
.foot-brand .foot-social a{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.72);transition:.2s}
.foot-brand .foot-social a:hover{background:var(--grad);color:#fff}
.foot-brand .foot-social svg{width:16px;height:16px;fill:currentColor}
.age{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;
  border:2px solid var(--coral);color:var(--coral);font-family:var(--f-head);font-weight:800;margin-top:.6rem}
.copy a{color:var(--txt-soft)}
.copy a:hover{color:#fff}
.copy{margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.1);
  font-size:.78rem;color:rgba(255,255,255,.60)}

/* ── sticky cta móvil ──────────────────── */
.sticky-cta{position:fixed;left:50%;bottom:14px;z-index:50;
  opacity:0;pointer-events:none;transform:translateX(-50%) translateY(14px);transition:opacity .25s,transform .25s;
  background:var(--grad);color:#fff;font-family:var(--f-head);font-weight:700;
  text-decoration:none;padding:.85rem 2.4rem;border-radius:999px;
  box-shadow:0 12px 30px -8px rgba(255,107,107,.8)}
.sticky-cta.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}

/* ── notas de spec ─────────────────────── */
.notes-toggle{position:fixed;right:14px;bottom:14px;z-index:60;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:.55rem 1rem;font-size:.8rem;cursor:pointer;box-shadow:var(--shadow);
  font-family:var(--f-body)}
.note{display:none}
body.show-notes .note{display:block;position:absolute;top:10px;right:10px;z-index:30}
body.show-notes .note-bubble{display:block;max-width:300px;background:#fffbe6;color:#5c4a00;
  border:1px solid #f0d98a;border-radius:14px;padding:.7rem .85rem;font-size:.78rem;line-height:1.45;
  box-shadow:var(--shadow)}
body.show-notes .section,body.show-notes .hero,body.show-notes .promesas,body.show-notes .seo{
  outline:2px dashed rgba(232,23,127,.35);outline-offset:-6px}

/* ── responsive ────────────────────────── */
@media(max-width:1000px){
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{order:2}
  .hero-art{order:1;max-width:220px;margin-bottom:.4rem;transform:rotate(1.5deg)}
  .ruta-list{grid-template-columns:repeat(3,1fr)}
  .claims,.cards3{grid-template-columns:1fr 1fr}
  .delicias{grid-template-columns:repeat(3,1fr)}
  .d-card.featured{grid-column:span 3;grid-row:auto;aspect-ratio:16/9}
  .d-card.featured.d-embed{aspect-ratio:auto}
  .final-in{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  body{padding-bottom:72px}
}
@media(max-width:640px){
  .hero-copy h1{font-size:1.8rem}
  .kicker{font-size:1.3rem}
  .caption{width:100%;border-radius:16px}
  .nav-links{display:none}
  .nav-in{grid-template-columns:1fr auto 1fr;gap:.5rem}
  .nav-cta .ghost{padding:.42rem .8rem;font-size:.82rem;white-space:nowrap}
  .brand img{height:32px}
  .hero{padding-bottom:2.2rem}
  .ruta-list{grid-template-columns:1fr 1fr}
  .claims,.cards3{grid-template-columns:1fr}
  .delicias{grid-template-columns:1fr 1fr}
  .d-card.featured{grid-column:span 2}
  .section{padding:3rem 0}
  .promesas ul{font-size:.8rem;gap:.4rem 1rem}
  .quote{padding:1.2rem}
  .quote blockquote{font-size:1.08rem}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ══════════════════════════════════════════════════════════════════
   NEÓN DEPURADO · el sitio es oscuro de extremo a extremo, como el
   juego (theme_color #1a002d) y como corazonalacarta.es hoy.
   Glow reservado al CTA principal.
   ══════════════════════════════════════════════════════════════════ */
body{background:var(--paper);color:var(--txt)}
.btn{box-shadow:var(--glow)}
.btn:hover{box-shadow:0 0 32px rgba(255,0,127,.6)}
.kicker{background:linear-gradient(100deg,#ff007f,#f8bbd0);-webkit-background-clip:text;background-clip:text}
.hero{background:
  radial-gradient(1100px 520px at 80% -10%,rgba(255,0,127,.28),transparent 60%),
  radial-gradient(900px 600px at 5% 110%,rgba(0,229,255,.16),transparent 60%),
  linear-gradient(165deg,var(--ink),var(--ink-2) 55%,var(--ink-3))}
.hero-glow{background:radial-gradient(closest-side,rgba(255,0,127,.2),transparent)}
.hero-art{background:linear-gradient(160deg,var(--cyan),var(--magenta) 55%,var(--magenta-pressed))}
.hero-art::after{color:var(--magenta)}
.ruta{background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
  border-color:var(--violet-border)}
.ruta:hover{border-color:var(--magenta)}
.ruta.amalia{outline-color:rgba(255,0,127,.65)}
.ruta-tag.alt{background:var(--grad-cool);color:var(--ink)}
.claims li{background:rgba(255,255,255,.05);border-color:var(--violet-border)}
.promesas{background:var(--ink)}
.promesas li::before{color:var(--magenta)}
.section{background:var(--paper)}
.section.alt{background:var(--ink-2)}
.card{background:rgba(255,255,255,.05);border-color:var(--violet-border)}
.section.alt .card{background:rgba(255,255,255,.06)}
.chip.ok{background:var(--magenta);color:#fff}
.d-card{background:var(--ink-3);border-color:var(--violet-border)}
.d-flag{box-shadow:var(--glow)}
.quote{background:linear-gradient(120deg,rgba(255,255,255,.06),rgba(255,0,127,.06));
  border-color:var(--violet-border);border-left-color:var(--magenta)}
.quote figcaption a{color:var(--magenta-hover)}
.soft-cta{background:rgba(255,0,127,.07);border-color:var(--violet-border);color:var(--txt-soft)}
.flag-ia{background:rgba(0,229,255,.1);border:1px solid rgba(0,229,255,.4)}
.faq details{background:rgba(255,255,255,.05);border-color:var(--violet-border)}
.faq summary::after{color:var(--magenta)}
.seo{background:var(--ink-2)}
.final{background:linear-gradient(160deg,var(--ink),var(--ink-3))}
.age{border-color:var(--magenta);color:var(--magenta)}
.lnk{color:var(--magenta-hover)}
.notes-toggle{background:var(--ink-3);color:var(--txt);border-color:var(--violet-border)}
.sticky-cta{box-shadow:var(--glow)}
/* el diálogo y las tarjetas del FEED siguen claras: son UI del juego */


/* ── minijuego (embudo de producción) ─────────────────────── */
#amalia-juego-inicio.mini{background:linear-gradient(160deg,var(--ink-2),var(--ink-3));padding:3.4rem 0;position:relative}
.mini-in{display:grid;grid-template-columns:1fr;justify-items:center}
.mini-demo{position:relative;width:100%}
.mini-hint{display:block;margin-top:.7rem;font-size:.8rem;color:var(--txt-dim);text-align:center}

/* ── bloque SEO: texto original + arte 1:1 ────────────────── */
.seo-lead{font-family:var(--f-head);font-weight:700;font-size:1.12rem;color:var(--txt)!important;
  line-height:1.4}
.seo-lead strong{background:var(--grad);-webkit-background-clip:text;background-clip:text;
  color:transparent}
.seo-art{margin:1.6rem 0;display:grid;justify-items:center;gap:.7rem}
.seo-art img{width:min(220px,60vw);aspect-ratio:1/1;object-fit:contain;background:var(--ink);
  border:1px dashed var(--violet-border);border-radius:18px;padding:1.4rem}
.seo-art figcaption{max-width:60ch;text-align:center;font-size:.72rem;line-height:1.5;
  color:var(--txt-dim)}
.seo-art figcaption b{color:var(--magenta-hover)}

@media(max-width:1000px){.mini-in{grid-template-columns:1fr}}

.d-card a{display:block;height:100%}
.d-card a img{width:100%;height:100%;object-fit:cover;object-position:50% 24%}
