/* AI with Lucia opt-in pages (/aiwithlucia/<slug>): the sales sections around the email form.
   Built by build_optins.py from optins_content.py. Sits on top of style.css. */
.gate{background:#fffdf9;border:2px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--accent);padding:28px}
.gate h2{font-size:clamp(2rem,4.5vw,2.8rem);margin:.6rem 0 .3rem}
.gate .sub{margin:0 0 1.2rem}
.gate form{display:grid;gap:12px}
.gate .row{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}
.gate label{display:block;font-family:'DM Mono',monospace;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.gate input[type=text],.gate input[type=email]{width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink)}
.gate input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.gate button{justify-self:start;font:inherit;font-weight:700;cursor:pointer}
.gate button[disabled]{opacity:.6;cursor:wait}
.gate .err{color:var(--accent);font-weight:700;margin:0;min-height:1.2em}
.gate .fine{font-size:.88rem;color:var(--muted);margin:0}
.unlocked .gate-only{display:none!important}

/* hero */
.ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none}
.btn.ghost:hover{box-shadow:4px 4px 0 var(--accent)}
.trust{font-size:.92rem;color:var(--muted);margin:1rem 0 0}

/* ticker */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;border-block:2px solid var(--ink);padding:14px 0}
.ticker .track{display:flex;width:max-content;animation:tick 38s linear infinite}
.ticker span{font-family:'DM Mono',monospace;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding:0 22px}
.ticker i{font-style:normal;color:var(--salmon)}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker .track{animation:none;flex-wrap:wrap;width:auto}}

/* sections */
.sec{padding:80px 0 8px;scroll-margin-top:20px}
.sec .eyebrow{color:var(--accent)}
.sec h2{font-size:clamp(2.2rem,5vw,3.4rem);margin:.4rem 0 .5rem}
.sec .sub{max-width:60ch}

/* the gift + form */
.giftwrap{padding:64px 0 8px;scroll-margin-top:20px}
.gift{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.gets{list-style:none;padding:0;margin:0 0 1.4rem;display:grid;gap:10px}
.gets li{position:relative;padding-left:36px}
.gets li::before{content:"✓";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:.8rem;font-weight:900;display:grid;place-items:center}

/* what's inside */
.inside{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 22px;margin-top:2rem}
.item{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:#fffdf9;border:2px solid var(--ink);border-radius:16px;padding:16px 20px}
.item b{font-weight:900;font-size:2rem;line-height:1;color:var(--salmon);letter-spacing:-.04em;min-width:2.2ch}
.item .t{font-weight:700;margin:0}
.item .tag{font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.06em;color:var(--accent)}
.item p{margin:.15rem 0 0;color:var(--muted);font-size:.98rem}
.group{grid-column:1/-1;font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.8rem}
.peek{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:2.4rem}
.peek figure{margin:0;background:#fff;padding:8px;box-shadow:0 10px 24px rgba(31,26,26,.14)}
.peek figure:nth-child(odd){transform:rotate(-1.5deg)}.peek figure:nth-child(even){transform:rotate(1.5deg)}
.peek img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 0}

/* who it's for */
.who{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:2rem}
.who .card p{color:var(--ink)}

/* why I made it */
.why{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.why .polaroid{max-width:340px;transform:rotate(-2deg)}
.why p{max-width:58ch}
.why .sign{font-family:'Caveat',cursive;font-size:2.2rem;color:var(--note);margin-top:.4rem}

/* FAQ */
.faq{max-width:760px;margin-top:1.6rem;display:grid;gap:12px}
.faq details{background:#fffdf9;border:2px solid var(--ink);border-radius:14px;padding:0 20px}
.faq summary{cursor:pointer;font-weight:700;padding:16px 28px 16px 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:12px;font-size:1.5rem;color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 16px;color:var(--muted)}

/* closing band */
.close{margin-top:80px;background:var(--ink);color:var(--paper);padding:72px 0;text-align:center}
.close h2{font-size:clamp(2.2rem,5vw,3.6rem);margin:0 0 .6rem}
.close p{max-width:52ch;margin:0 auto 1.8rem;color:#d8ebe7}
.close .btn{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:6px 6px 0 var(--salmon)}
.close + footer.end{margin-top:0}

/* sticky phone button: shows once the form is off screen */
.stick{position:fixed;left:12px;right:16px;bottom:12px;z-index:20;display:none;justify-content:center;transform:translateY(140%);transition:transform .25s}
.stick .btn{width:100%;justify-content:center;box-shadow:4px 4px 0 var(--accent)}
.stick.on{transform:none}

@media (max-width:820px){
  .hero .polaroid{display:none}
  .gift,.why{grid-template-columns:1fr;gap:28px}
  .why .polaroid{max-width:240px;margin:0 auto}
  .inside,.who{grid-template-columns:1fr}
  .peek{grid-template-columns:1fr 1fr}
  .stick{display:flex}
  .sec{padding-top:64px}
}
@media (max-width:600px){.gate .row{grid-template-columns:1fr}.gate{padding:22px}}
@media (prefers-reduced-motion:reduce){.stick{transition:none}}

/* video hero (ANIMATE): keep it on phones, it's the point of the page */
.polaroid video{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;background:#ddd}
@media (max-width:820px){.hero .polaroid.vid{display:block;max-width:240px}}
