/* ===== Mailing list: "Free AI prompts & images" ===== */
.prompt-signup { margin-top: clamp(3rem, 8vw, 6rem); margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.prompt-signup-card {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem; align-items: center;
  padding: clamp(1.4rem, 4vw, 2.6rem); overflow: hidden;
  border: 1px solid rgba(255,255,255,.12); border-radius: 26px;
  background: radial-gradient(90% 120% at 0% 0%, rgba(255,37,135,.2), transparent 55%), radial-gradient(70% 90% at 100% 100%, rgba(255,37,135,.1), transparent 60%), #0e0e12;
  color: #fff; box-shadow: 0 30px 80px rgba(0,0,0,.35);
}
@media (min-width: 800px) { .prompt-signup-card { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2.6rem; } }
.prompt-signup-fan { position: relative; height: clamp(170px, 34vw, 260px); }
.prompt-signup-fan img {
  position: absolute; top: 50%; left: 50%; width: 62%; aspect-ratio: 16 / 10; object-fit: cover;
  border: 3px solid #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.55);
  transform: translate(-50%, -50%) rotate(calc((var(--i) - 1) * 9deg)) translateX(calc((var(--i) - 1) * 26%));
  transition: transform .6s cubic-bezier(.16,1,.3,1);
}
.prompt-signup-fan img:nth-child(2) { z-index: 2; }
.prompt-signup-card:hover .prompt-signup-fan img { transform: translate(-50%, -50%) rotate(calc((var(--i) - 1) * 13deg)) translateX(calc((var(--i) - 1) * 38%)) translateY(calc(var(--i) * -2px)); }
.prompt-signup-text .eyebrow { margin: 0 0 .5rem; color: var(--accent, #ff2587); }
.prompt-signup-text h2 { margin: 0 0 .6rem; font-size: clamp(1.7rem, 4.6vw, 2.6rem); line-height: 1.02; letter-spacing: -.02em; }
.prompt-signup-text > p { margin: 0 0 1.1rem; color: #c9c9d1; line-height: 1.55; max-width: 34rem; }
.prompt-signup-form { display: flex; flex-wrap: wrap; gap: .55rem; max-width: 34rem; }
.prompt-signup-form input[type=email] {
  flex: 1 1 14rem; min-width: 0; min-height: 52px; padding: 0 1.1rem; box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.22); border-radius: 99px; background: #050507; color: #fff; font: inherit; font-size: 16px;
}
.prompt-signup-form input[type=email]:focus { outline: none; border-color: var(--accent, #ff2587); box-shadow: 0 0 0 4px rgba(255,37,135,.22); }
.prompt-signup-form .button { flex: 0 0 auto; min-height: 52px; border-radius: 99px; white-space: nowrap; }
.prompt-signup-trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.prompt-signup .prompt-signup-note { margin: .7rem 0 0; font-size: .78rem; color: #9d9ea8; }
.prompt-signup-note a { color: inherit; }
.prompt-signup.is-error .prompt-signup-note { color: #ffb4c8; }
.prompt-signup.is-sent .prompt-signup-note {
  display: flex; align-items: center; gap: .7rem; padding: .9rem 1.1rem; border-radius: 16px;
  background: rgba(255,37,135,.12); border: 1px solid rgba(255,37,135,.4); color: #fff; font-size: .95rem; animation: prompt-pop .55s cubic-bezier(.16,1,.3,1);
}
.prompt-signup.is-sent .prompt-signup-note::before { content: '✓'; display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--accent, #ff2587); font-weight: 700; }
@keyframes prompt-pop { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: none; } }
.prompt-signup-member { margin: 0; }

/* ===== free-prompts.php ===== */
.prompt-signup-inline { margin-top: 0; }
.prompt-grid { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 1.2rem; }
.prompt-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: #0f0f13; animation: prompt-pop .6s cubic-bezier(.16,1,.3,1) both; animation-delay: calc(var(--i) * .06s); }
.prompt-card figure { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #1a1a20; }
.prompt-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.prompt-card:hover img { transform: scale(1.04); }
.prompt-card-body { display: flex; flex-direction: column; gap: .6rem; padding: 1.1rem 1.15rem 1.25rem; flex: 1; }
.prompt-card h2 { margin: 0; font-size: 1.15rem; }
.prompt-tool { margin: -.3rem 0 0; font-size: .75rem; color: #9d9ea8; text-transform: none; }
.prompt-words { margin: 0; padding: .85rem .95rem; border-radius: 12px; background: #07070a; border: 1px solid rgba(255,255,255,.08); font: .85rem/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; color: #e4e4ea; overflow-wrap: anywhere; flex: 1; }
.prompt-words.is-hidden span { filter: blur(5px); opacity: .6; user-select: none; }
.prompt-actions { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; }
.prompt-actions .button { min-height: 44px; border-radius: 99px; }
.prompt-actions .button.is-copied { background: #1f9d5a; border-color: #1f9d5a; }
.prompt-download, .prompt-unlock { color: var(--accent, #ff2587); font-weight: 700; font-size: .85rem; min-height: 44px; display: inline-flex; align-items: center; }
.prompt-leave { margin: 2rem 0 0; font-size: .8rem; color: #9d9ea8; }
.prompt-leave a { color: inherit; }
.list-message { padding-top: clamp(3rem, 10vw, 7rem); padding-bottom: 3rem; }
.list-leave { display: flex; align-items: center; gap: 1rem; margin-top: 1.4rem; }
@media (prefers-reduced-motion: reduce) {
  .prompt-card, .prompt-signup.is-sent .prompt-signup-note { animation: none; }
  .prompt-signup-fan img, .prompt-card img { transition: none; }
}
[data-prompt-signup] [hidden] { display: none !important; }

/* ===== Animated deck of what people get (images and films) ===== */
.prompt-deck { position: relative; height: clamp(230px, 50vw, 330px); perspective: 1200px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.prompt-deck-card {
  position: absolute; left: 50%; top: 50%; width: min(80%, 380px); aspect-ratio: 16 / 10; margin: 0;
  overflow: hidden; border: 3px solid #fff; border-radius: 16px; background: #15151b;
  box-shadow: 0 22px 50px rgba(0,0,0,.55);
  --x: calc(var(--pos) * 20px); --y: calc(var(--pos) * -13px);
  transform: translate(-50%, -50%) translate(var(--x), var(--y)) rotate(calc(var(--pos) * 3.6deg)) scale(calc(1 - var(--pos) * .07));
  z-index: calc(20 - var(--pos)); opacity: calc(1 - var(--pos) * .26); filter: brightness(calc(1 - var(--pos) * .14));
  transition: transform .75s cubic-bezier(.16,1,.3,1), opacity .5s ease, filter .5s ease;
  will-change: transform;
}
.prompt-deck-card img, .prompt-deck-card video { display: block; width: 100%; height: 100%; object-fit: cover; }
.prompt-deck-tag {
  position: absolute; left: .6rem; bottom: .6rem; padding: .3rem .65rem; border-radius: 99px;
  background: rgba(0,0,0,.72); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .02em;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: 0; transform: translateY(6px); transition: opacity .35s ease .25s, transform .45s cubic-bezier(.16,1,.3,1) .25s;
}
.prompt-deck-card.is-front .prompt-deck-tag { opacity: 1; transform: none; }
.prompt-deck-card.is-video .prompt-deck-tag { background: var(--accent-fill, #e0106c); }
/* Before it scrolls into view the cards wait below, then they're dealt in one by one. */
.prompt-deck:not(.is-dealt) .prompt-deck-card { transform: translate(-50%, 10%) rotate(-8deg) scale(.8); opacity: 0; }
.prompt-deck.is-dealt .prompt-deck-card { transition-delay: calc(var(--deal, 0) * 90ms); }
.prompt-deck.is-running .prompt-deck-card { transition-delay: 0ms; }
/* The front card flies off, then slides in at the back. */
.prompt-deck-card.is-leaving { animation: prompt-deck-out .62s cubic-bezier(.55,0,.7,.3) forwards; }
@keyframes prompt-deck-out {
  0% { transform: translate(-50%, -50%) rotate(0); }
  45% { transform: translate(-115%, -62%) rotate(-14deg) scale(1.02); opacity: 1; }
  100% { transform: translate(-50%, -50%) translate(60px, -40px) rotate(10deg) scale(.78); opacity: 0; }
}
.prompt-deck-badge {
  position: absolute; z-index: 30; right: 4%; top: 2%; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  background: var(--accent-fill, #e0106c); color: #fff; font-weight: 800; font-size: .9rem; letter-spacing: .04em; text-transform: uppercase;
  box-shadow: 0 10px 26px rgba(224,16,108,.5); transform: rotate(-12deg); animation: prompt-badge 3.2s ease-in-out infinite;
}
@keyframes prompt-badge { 0%, 100% { transform: rotate(-12deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.08); } }
.prompt-signup.is-sent .prompt-deck-card.is-front { animation: prompt-deck-cheer .8s cubic-bezier(.16,1,.3,1); }
@keyframes prompt-deck-cheer { 40% { transform: translate(-50%, -58%) rotate(-3deg) scale(1.06); } }
@media (prefers-reduced-motion: reduce) {
  .prompt-deck-card, .prompt-deck-tag { transition: none; }
  .prompt-deck:not(.is-dealt) .prompt-deck-card { transform: translate(-50%, -50%) translate(var(--x), var(--y)) rotate(calc(var(--pos) * 3.6deg)) scale(calc(1 - var(--pos) * .07)); opacity: calc(1 - var(--pos) * .26); }
  .prompt-deck-badge, .prompt-deck-card.is-leaving { animation: none; }
}
.prompt-card figure { position: relative; }
.prompt-card video { width: 100%; height: 100%; object-fit: cover; display: block; }
.prompt-film-tag { position: absolute; left: .6rem; top: .6rem; padding: .25rem .6rem; border-radius: 99px; background: var(--accent-fill, #e0106c); color: #fff; font-size: .68rem; font-weight: 700; }

/* What members get */
.prompt-perks { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: .55rem; max-width: 34rem; }
.prompt-perks li { display: flex; align-items: flex-start; gap: .7rem; line-height: 1.35; transition: opacity .5s ease, transform .6s cubic-bezier(.16,1,.3,1); transition-delay: calc(.25s + var(--i) * .12s); }
@media (scripting: enabled) { .prompt-signup:not(.is-seen) .prompt-perks li { opacity: 0; transform: translateX(-10px); } }
.prompt-perk-icon { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,37,135,.16); border: 1px solid rgba(255,37,135,.45); color: var(--accent, #ff2587); font-size: .85rem; font-weight: 700; }
.prompt-perks strong { color: #fff; font-size: .95rem; }
.prompt-perks small { display: block; margin-top: .1rem; color: #a9aab4; font-size: .8rem; }
@media (prefers-reduced-motion: reduce) { .prompt-perks li { opacity: 1; transform: none; transition: none; } }

/* Members' page: ask Mark a free question */
.prompt-ask { display: grid; gap: 1rem; align-items: center; margin: 1.6rem 0 0; padding: clamp(1.1rem, 3vw, 1.6rem); border: 1px solid rgba(255,37,135,.4); border-radius: 22px; background: radial-gradient(120% 140% at 0 0, rgba(255,37,135,.18), transparent 60%), #0f0f13; }
@media (min-width: 800px) { .prompt-ask { grid-template-columns: minmax(0, 1fr) auto; } }
.prompt-ask .eyebrow { margin: 0 0 .3rem; color: var(--accent, #ff2587); }
.prompt-ask h2 { margin: 0 0 .3rem; font-size: clamp(1.3rem, 3.4vw, 1.8rem); }
.prompt-ask p { margin: 0; color: #c9c9d1; }
.prompt-ask-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.prompt-ask-button { display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: 0 1.1rem; border-radius: 99px; font-weight: 700; font-size: .9rem; color: #fff; text-decoration: none; border: 1px solid rgba(255,255,255,.2); transition: transform .3s cubic-bezier(.16,1,.3,1), filter .2s; }
.prompt-ask-button svg { width: 20px; height: 20px; flex: none; }
.prompt-ask-button:hover { transform: translateY(-2px); filter: brightness(1.1); }
.prompt-ask-button.is-whatsapp { background: #1f9d57; border-color: #1f9d57; }
.prompt-ask-button.is-imessage { background: #1a7cf5; border-color: #1a7cf5; }
.prompt-ask-button.is-email { background: transparent; }

/* ===== Analytics consent card ===== */
.consent-card {
  position: fixed; z-index: 70; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: min(380px, calc(100vw - 32px)); box-sizing: border-box;
  padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(12,12,16,.96); color: #fff;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 20px 50px rgba(0,0,0,.55);
  opacity: 0; transform: translateY(16px); transition: opacity .3s ease, transform .45s cubic-bezier(.16,1,.3,1);
}
.consent-card.is-shown { opacity: 1; transform: none; }
.consent-card p { margin: 0 0 .8rem; font-size: .85rem; line-height: 1.5; color: #d4d4db; }
.consent-card strong { color: #fff; }
.consent-card a { color: inherit; }
.consent-buttons { display: flex; gap: .5rem; }
.consent-buttons button { flex: 1; min-height: 44px; border-radius: 99px; font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.consent-yes { border: 0; background: var(--accent-fill, #e0106c); color: #fff; }
.consent-no { border: 1px solid rgba(255,255,255,.22); background: transparent; color: #fff; }
.consent-buttons button:focus-visible { outline: 3px solid var(--accent, #ff2587); outline-offset: 2px; }
/* On phones the card sits where Mike's button is, so Mike waits until it's answered. */
@media (max-width: 699px) { html.consent-open .mike:not(.is-open) { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .consent-card { transition: none; } }
