:root{
  --bg:#0d0b09; --iron:#1a1714; --iron2:#24201b; --line:#3a3229;
  --bronze:#c09257; --bronze-hi:#e2bb7f; --bronze-lo:#7a5a32;
  --text:#ece3d3; --muted:#a89a85; --red:#a31d24; --ink:#141414;
  --radius:14px; --maxw:680px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--bg) radial-gradient(ellipse at 50% -10%, #2a2118 0%, var(--bg) 60%) no-repeat;
  color:var(--text); font:16px/1.65 Inter,system-ui,sans-serif; min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--bronze-hi)}
button{font:inherit;cursor:pointer}
.topbar{display:flex;align-items:baseline;gap:.6rem;justify-content:center;padding:14px 16px 6px}
.brand{font-family:Cinzel,serif;font-weight:800;letter-spacing:.18em;color:var(--bronze-hi);text-decoration:none;font-size:1.05rem}
.brand-sub{font-family:Oswald,sans-serif;font-size:.7rem;letter-spacing:.3em;color:var(--muted)}
main{max-width:var(--maxw);margin:0 auto;padding:8px 18px 120px}
.foot{text-align:center;color:var(--muted);font-size:.8rem;padding:20px 0 40px}
.foot a{color:var(--muted)}

h1,h2,h3{line-height:1.2;margin:0 0 .5em}
.display{font-family:Cinzel,serif;font-weight:800;letter-spacing:.06em;color:var(--bronze-hi);font-size:clamp(1.9rem,7vw,2.6rem);text-align:center}
.kicker{font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;color:var(--bronze)}
.lead{color:var(--muted);text-align:center;max-width:32ch;margin:0 auto 1.4rem}
.center{text-align:center}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:999px;
  padding:15px 26px;font-family:Oswald,sans-serif;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.95rem;
  background:linear-gradient(180deg,var(--bronze-hi),var(--bronze) 55%,var(--bronze-lo));color:#1b130a;text-decoration:none;
  box-shadow:0 2px 0 #4a361d, 0 8px 24px rgba(192,146,87,.18)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--bronze-hi);box-shadow:inset 0 0 0 1.5px var(--bronze-lo)}
.btn.block{width:100%}
.back{background:none;border:0;color:var(--muted);padding:6px 0;margin:4px 0 10px;font-size:.9rem}

/* Home */
.hero{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:10px}
.back-card{width:min(62vw,250px);aspect-ratio:246/367;border-radius:16px;overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,.6),0 0 0 1px #000;transform:rotate(-3deg);animation:float 6s ease-in-out infinite}
.back-card img{width:100%;height:100%;object-fit:cover;display:block}
@keyframes float{50%{transform:rotate(-1deg) translateY(-6px)}}
.steps{display:grid;gap:10px;margin:26px 0 0;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;background:var(--iron);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 12px 52px;position:relative;color:var(--muted);font-size:.93rem}
.steps li::before{content:counter(s);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:var(--iron2);border:1px solid var(--bronze-lo);color:var(--bronze-hi);font-family:Oswald;font-size:.85rem}
.steps strong{color:var(--text);display:block;font-weight:600}

/* Suit picker */
.suits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.suit{background:linear-gradient(180deg,var(--iron2),var(--iron));border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 10px 18px;color:var(--text);text-align:center;transition:border-color .2s, transform .2s}
.suit:hover,.suit:focus-visible{border-color:var(--bronze);transform:translateY(-2px)}
.suit .pip{font-size:3rem;line-height:1;display:block;margin-bottom:8px}
.suit .name{font-family:Oswald;letter-spacing:.16em;text-transform:uppercase;font-size:1.05rem}
.suit .hint{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.red{color:#d83a40}.blk{color:#e8e1d4}

/* Rank grid */
.ranks{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}
@media(min-width:520px){.ranks{grid-template-columns:repeat(5,1fr)}}
.mini{text-decoration:none;aspect-ratio:246/367;background:#f7f4ee;border-radius:9px;border:0;padding:6px;position:relative;
  box-shadow:0 6px 14px rgba(0,0,0,.5);display:flex;flex-direction:column;justify-content:space-between;color:var(--ink)}
.mini .r{font-family:Oswald;font-weight:600;font-size:1.25rem;line-height:1;text-align:left}
.mini .p{font-size:1.6rem;line-height:1;align-self:center}
.mini .t{font-size:.58rem;line-height:1.2;color:#444;min-height:2.4em}
.mini.is-red .r,.mini.is-red .p{color:var(--red)}
.mini:hover{transform:translateY(-3px)}
.mini{transition:transform .2s}

/* Card face (replica of printed card) */
.flip{perspective:1200px;width:min(68vw,270px);margin:6px auto 22px}
.flip-inner{position:relative;aspect-ratio:246/367;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.flip.go .flip-inner{transform:rotateY(180deg)}
.flip .face,.flip .backside{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;overflow:hidden}
.flip .backside img{width:100%;height:100%;object-fit:cover}
.flip .face{transform:rotateY(180deg)}
.face{background:#fff;color:var(--ink);border:2px solid #222;outline:6px solid #fff;
  box-shadow:0 26px 50px rgba(0,0,0,.6);padding:7% 9% 6%;display:flex;flex-direction:column;align-items:center;text-align:center}
.face .corner{position:absolute;font-family:Oswald;font-weight:600;line-height:.95;display:flex;flex-direction:column;align-items:center;font-size:1.35rem}
.face .corner .cp{font-size:1.25rem}
.face .tl{top:5%;left:5%}.face .br{bottom:5%;right:5%;transform:rotate(180deg)}
.face.is-red .corner{color:var(--red)}
.face .cat{font-family:Oswald;font-weight:600;font-size:1.6rem;letter-spacing:.02em;margin-top:2%;text-transform:uppercase}
.face .rule{width:70%;height:2px;background:#222;margin:2px 0 8px;border-radius:2px}
.face.is-red .rule{background:var(--red)}
.face .msg{font-size:.72rem;line-height:1.35;margin:0 0 6px}
.face .ttl{font-weight:700;font-size:1.02rem;line-height:1.15;margin:2px 0 6px}
.face .stat{font-size:.66rem;line-height:1.35;margin:0 0 6px}
.face .vs{font-family:Lora,Georgia,serif;font-size:.6rem;line-height:1.3;font-weight:700;margin-top:auto;margin-bottom:4%;max-width:78%}

/* Lesson */
.lesson-head{text-align:center;margin-bottom:8px}
.lesson-head h1{font-family:Cinzel,serif;font-weight:800;color:var(--bronze-hi);font-size:clamp(1.6rem,6.4vw,2.2rem);letter-spacing:.03em}
.lesson-head .sub{color:var(--muted);font-style:italic;margin:0}
.sec{background:var(--iron);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 8px;margin:14px 0}
.sec h2{font-family:Oswald;font-weight:500;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;color:var(--bronze);margin-bottom:.8em}
.sec p{margin:0 0 .9em}
.sec .bul{padding-left:1.1em;text-indent:-1.1em}
.believe{font-family:Lora,Georgia,serif;font-style:italic;font-size:1.15rem;line-height:1.5;color:var(--text);
  border-left:3px solid var(--bronze);padding:4px 0 4px 16px;margin:22px 4px}
.verse{font-family:Lora,Georgia,serif;font-style:italic;color:var(--bronze-hi)}
.toc{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none;position:sticky;top:0;z-index:5;
  background:linear-gradient(var(--bg) 75%,transparent)}
.toc::-webkit-scrollbar{display:none}
.toc a{flex:none;font-size:.78rem;padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:var(--muted);text-decoration:none;background:var(--iron)}

/* Week missions */
.mission{border-top:1px solid var(--line);padding:14px 0}
.mission:first-of-type{border-top:0}
.mission label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.mission input{appearance:none;flex:none;width:24px;height:24px;border-radius:7px;border:1.5px solid var(--bronze-lo);margin-top:2px;display:grid;place-items:center;background:var(--iron2)}
.mission input:checked{background:var(--bronze);border-color:var(--bronze)}
.mission input:checked::after{content:"✓";color:#1b130a;font-weight:700;font-size:.9rem}
.mission .day{font-family:Oswald;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--bronze)}
.mission .mt{font-weight:600;display:block;line-height:1.3}
.mission.done .mt{text-decoration:line-through;text-decoration-color:var(--bronze-lo);color:var(--muted)}
.mission details{margin:8px 0 0 36px;color:var(--muted);font-size:.93rem}
.mission summary{color:var(--bronze-hi);font-size:.85rem;cursor:pointer}
.mission .why{margin-top:6px;padding:10px 12px;background:var(--iron2);border-radius:10px}
.progress{height:6px;background:var(--iron2);border-radius:6px;overflow:hidden;margin:4px 0 6px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--bronze-lo),var(--bronze-hi));width:0;transition:width .4s}
.challenge p{font-weight:600;margin:0 0 .35em}

/* Sticky CTA */
.dock{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(transparent,rgba(13,11,9,.94) 30%);z-index:10;display:flex;justify-content:center}
.dock .btn{max-width:var(--maxw);width:100%}

/* Forms / quiz */
.panel{background:var(--iron);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.field{display:block;margin:0 0 12px}
.field span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:4px}
.field input{width:100%;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:var(--iron2);color:var(--text);font:inherit}
.field input:focus{outline:2px solid var(--bronze-lo);border-color:var(--bronze)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--muted);margin:6px 0 16px}
.q-count{color:var(--muted);font-size:.85rem;text-align:center}
.q-text{font-family:Cinzel,serif;font-weight:600;font-size:1.35rem;text-align:center;margin:10px 0 18px;color:var(--text)}
.opts{display:grid;gap:10px}
.opt{text-align:left;padding:15px 16px;border-radius:12px;background:var(--iron);border:1px solid var(--line);color:var(--text)}
.opt:hover,.opt:focus-visible{border-color:var(--bronze)}
.offer{border:1px solid var(--bronze-lo);background:linear-gradient(180deg,#221b13,var(--iron));border-radius:var(--radius);padding:20px;margin:14px 0}
.offer h3{font-family:Cinzel,serif;color:var(--bronze-hi);font-size:1.25rem}
.offer ul{padding-left:1.1em;color:var(--muted);margin:.4em 0 1em}
.note{font-size:.8rem;color:var(--muted)}
.err{color:#ff8a80;font-size:.85rem;min-height:1.2em}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== Landing form ===== */
.hero .display{margin-bottom:0}
.pems{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 6px}
.pems span{font-family:Oswald;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--iron)}
.pems b{margin-right:6px;font-size:.95rem}
.lead strong{color:var(--text)}
#lead{margin-top:22px}
.form-h{font-family:Cinzel,serif;font-weight:600;color:var(--bronze-hi);font-size:1.15rem;margin:4px 0 12px}
.form-h:not(:first-child){margin-top:24px}
.suit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.suit-btn{background:var(--iron2);border:1.5px solid var(--line);border-radius:12px;color:var(--text);padding:12px 2px 9px;
  display:flex;flex-direction:column;align-items:center;gap:2px;font-family:Oswald;letter-spacing:.06em;font-size:.72rem;text-transform:uppercase}
.suit-btn .pip{font-size:1.7rem;line-height:1}
.suit-btn.on{border-color:var(--bronze);background:#2b2218;box-shadow:0 0 0 3px rgba(192,146,87,.18)}
.rank-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}
.rank-row:empty{display:none}
.rank-row .mini{padding:5px;border-radius:7px;box-shadow:0 3px 8px rgba(0,0,0,.5);transition:transform .15s, box-shadow .15s}
.rank-row .mini .r{font-size:1.05rem}
.rank-row .mini .p{font-size:1.25rem;margin-bottom:10%}
.mini.on{box-shadow:0 0 0 3px var(--bronze-hi),0 6px 16px rgba(0,0,0,.6);transform:translateY(-3px)}
.picked{display:flex;gap:12px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:12px;background:#f7f4ee;color:var(--ink);font-size:.92rem;line-height:1.35}
.picked>span:first-child{font-family:Oswald;font-weight:600;font-size:1.5rem;min-width:2.4em;text-align:center}
.picked .red{color:var(--red)}
.forge{display:flex;gap:12px;align-items:flex-start;margin:16px 0 6px;padding:14px;border-radius:12px;border:1px solid var(--bronze-lo);
  background:linear-gradient(180deg,#221b13,var(--iron2));font-size:.9rem;color:var(--muted);cursor:pointer}
.forge strong{color:var(--bronze-hi)}
.forge input,.check input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--bronze)}
.check{font-size:.76rem;line-height:1.45}

/* ===== Home ===== */
.sent{text-align:center;padding:10px 0 6px}
.sent p{color:var(--muted)}
.sent b{color:var(--text)}
.offer.feature{border-color:var(--bronze);box-shadow:0 0 0 1px rgba(192,146,87,.25),0 20px 40px rgba(0,0,0,.4)}
.price{font-family:Oswald;letter-spacing:.06em;font-size:1rem;color:var(--text);margin:.2em 0 .9em}
.btn[aria-disabled=true]{opacity:.55;pointer-events:none}
.hero .back-card{width:min(44vw,180px)}
.hero{gap:14px}

/* Real card picker */
.rank-row{grid-template-columns:repeat(4,1fr);gap:9px}
@media(min-width:560px){.rank-row{grid-template-columns:repeat(5,1fr)}}
.realcard{padding:0;border:0;background:none;border-radius:8px;overflow:hidden;aspect-ratio:246/367;box-shadow:0 4px 10px rgba(0,0,0,.55);
  transition:transform .18s, box-shadow .18s, opacity .18s}
.realcard img{width:100%;height:100%;object-fit:cover;display:block}
.rank-row:has(.on) .realcard:not(.on){opacity:.45}
.realcard.on{transform:translateY(-4px) scale(1.04);box-shadow:0 0 0 3px var(--bronze-hi),0 10px 22px rgba(0,0,0,.7);opacity:1}
.picked{background:var(--iron2);color:var(--text);border:1px solid var(--bronze-lo);align-items:center}
.picked img{width:92px;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.6);flex:none}
.picked b{display:block;font-family:Cinzel,serif;font-size:1.1rem;color:var(--bronze-hi);margin:2px 0}
.picked em{color:var(--muted);font-size:.9rem}
.picked .kicker{display:block}
/* Landing fan */
.fan{position:relative;height:min(58vw,250px);width:100%;max-width:420px;margin:6px auto 4px}
.fan img{position:absolute;left:50%;bottom:0;width:min(30vw,128px);border-radius:9px;box-shadow:0 14px 30px rgba(0,0,0,.65);transform-origin:50% 120%}
.fan img:nth-child(1){transform:translateX(-50%) rotate(-24deg)}
.fan img:nth-child(2){transform:translateX(-50%) rotate(-12deg)}
.fan img:nth-child(3){transform:translateX(-50%) rotate(0deg);z-index:2;width:min(34vw,145px)}
.fan img:nth-child(4){transform:translateX(-50%) rotate(12deg)}
.fan img:nth-child(5){transform:translateX(-50%) rotate(24deg)}
[hidden]{display:none!important}
