/* ============================================================
   SwipeSmart — magenta + gold theme. Mobile-width layout, NO device frame:
   a clean centered column on a flat backdrop, normal document scroll.
   Bricolage Grotesque / Manrope / IBM Plex Mono · signature credit-card score card
   ============================================================ */
:root{
  --ink:#241a30; --ink-2:#4d4060; --muted:#766a85;
  --bg:#f8f4f7; --surface:#ffffff; --surface-2:#f4ecf2;
  --line:#ecdfe8; --line-2:#ddc9d6;
  --primary:#db2777; --primary-d:#be185d; --primary-soft:#fce5f0;
  --accent:#e6a91e; --accent-d:#c98c10; --accent-soft:#fcefcf;
  --ok:#16a34a; --ok-soft:#e3f6ea; --bad:#e0556a; --bad-soft:#fbe7eb;
  --warn:#e6a91e;
  --shadow:0 6px 20px rgba(36,26,48,.08); --shadow-lg:0 16px 44px rgba(36,26,48,.16);
  --r:14px; --r-lg:22px; --r-pill:999px;
  --maxw:460px; --pad:clamp(16px,5vw,22px);
  --disp:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Manrope",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{ background:#eee6ec; -webkit-text-size-adjust:100%; }   /* flat gutter, not a phone frame */
body{
  max-width:var(--maxw); margin:0 auto; min-height:100vh;
  background:var(--bg); color:var(--ink);
  font-family:var(--body); font-size:16px; line-height:1.55;
  overflow-x:clip; -webkit-font-smoothing:antialiased;
}
@media (min-width:480px){ body{border-inline:1px solid var(--line-2);} }

img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3{font-family:var(--disp); line-height:1.12; letter-spacing:-.01em; margin:0}
.wrap{padding-inline:var(--pad)}
.skip{position:absolute; left:-999px}
.skip:focus{left:8px; top:8px; background:#fff; padding:8px 12px; border-radius:8px; z-index:50}
:focus-visible{outline:3px solid var(--primary); outline-offset:2px; border-radius:6px}

/* nav */
.nav{position:sticky; top:0; z-index:30; background:rgba(255,255,255,.93); backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; justify-content:space-between; padding:12px var(--pad)}
.brand{display:flex; align-items:center; gap:8px; font-family:var(--disp); font-weight:700; font-size:1.16rem; color:var(--ink)}
.brand-mark{width:28px; height:21px; color:var(--primary)}
.menu-btn{font-size:1.4rem; background:none; border:0; color:var(--ink); cursor:pointer; line-height:1; padding:4px}
.nav-links{position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--line);
  flex-direction:column; gap:2px; padding:8px var(--pad) 14px; display:none; box-shadow:var(--shadow)}
.nav-links.open{display:flex}
.nav-links a{padding:11px 6px; border-radius:10px; font-weight:600; color:var(--ink-2)}
.nav-links a:hover{background:var(--surface-2); color:var(--ink)}
.nav-cta{background:var(--primary); color:#fff!important; text-align:center; margin-top:6px}
.nav-cta:hover{background:var(--primary-d)}

/* buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--disp);
  font-weight:600; font-size:.98rem; cursor:pointer; border:0; border-radius:var(--r-pill); padding:13px 22px; transition:.16s}
.btn-primary{background:var(--primary); color:#fff; box-shadow:0 8px 18px rgba(219,39,119,.26)}
.btn-primary:hover{background:var(--primary-d); transform:translateY(-1px)}
.btn-ghost{background:#fff; color:var(--ink); border:1.5px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary)}
.btn.big{font-size:1.06rem; padding:15px 26px}
.btn.wide{display:flex; width:100%}

/* hero */
.hero{position:relative; padding:26px var(--pad) 12px; overflow:clip}
.hero::before{content:""; position:absolute; inset:-45% -20% auto -20%; height:330px; z-index:-1;
  width:min(140%,100%); background:radial-gradient(closest-side,#db277722,transparent 70%)}
.hero-top{display:flex; align-items:center; gap:10px; margin-bottom:14px}
.hero-mark{width:42px; height:31px; color:var(--primary)}
.kicker{font-family:var(--disp); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; color:var(--primary)}
.hero h1{font-size:clamp(2rem,9vw,2.55rem); font-weight:700; margin-bottom:10px}
.hero .hl{color:var(--accent-d)}
.lede{color:var(--ink-2); font-size:1.04rem; margin:0 0 16px}
.trust{display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--muted); font-size:.82rem; font-weight:600; margin-bottom:18px}
.micro{font-size:.76rem; color:var(--muted); margin:10px 0 0}

/* sections */
.section{padding:30px var(--pad)}
.section.narrow{padding-top:24px}
.eyebrow{font-family:var(--disp); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent-d)}
.section h2{font-size:clamp(1.5rem,6.5vw,1.85rem); font-weight:700; margin:.3rem 0 .5rem}
.section .sub{color:var(--ink-2); margin:0 0 18px}
.h3{font-family:var(--disp); font-size:1.16rem; font-weight:600; margin:22px 0 12px}

/* category chips */
.cchips{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.cchip{display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:13px 14px; font-weight:600; font-size:.92rem; color:var(--ink); box-shadow:var(--shadow); transition:.16s}
.cchip:hover{border-color:var(--primary); transform:translateY(-2px)}
.cchip-i{font-size:1.22rem; line-height:1}

/* guide cards */
.gcards{display:grid; gap:16px}
.gcard{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); transition:.18s; display:block}
.gcard:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.gcard-img{aspect-ratio:16/9}
.gcard-b{padding:16px 17px 18px}
.tag{display:inline-block; font-family:var(--disp); font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em;
  color:var(--primary); background:var(--primary-soft); padding:3px 9px; border-radius:var(--r-pill); margin-bottom:9px}
.gcard h3{font-size:1.1rem; margin-bottom:6px}
.gcard p{color:var(--ink-2); font-size:.91rem; margin:0 0 10px}
.readmore{font-family:var(--disp); font-weight:600; font-size:.9rem; color:var(--primary)}

/* image fallback */
.ph{position:relative; background-size:cover; background-position:center; overflow:hidden}
.ph img{width:100%; height:100%; object-fit:cover}

/* quiz console */
.console{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden}
.quiz{padding:0}
.quiz-inner{padding:20px 18px 22px}
.q-progress{display:flex; gap:5px; padding:14px 18px 0}
.q-progress .seg{height:5px; flex:1; border-radius:99px; background:var(--line-2)}
.q-progress .seg.done{background:var(--primary)}
.q-progress .seg.on{background:var(--accent)}
.q-count{font-family:var(--mono); font-size:.74rem; color:var(--muted); margin:14px 0 4px; display:block}
.quiz h3{font-size:1.18rem; font-weight:600; margin:2px 0 14px; line-height:1.28}
.opts{display:grid; gap:10px}
.opt{display:flex; align-items:center; gap:11px; text-align:left; width:100%; background:var(--surface-2);
  border:1.5px solid var(--line); border-radius:var(--r); padding:13px 14px; font-family:var(--body);
  font-size:.95rem; font-weight:500; color:var(--ink); cursor:pointer; transition:.14s}
.opt:hover:not(:disabled){border-color:var(--primary); background:#fff}
.opt .mark{flex:none; width:22px; height:22px; border-radius:50%; border:2px solid var(--line-2); display:grid;
  place-items:center; font-size:.74rem; color:#fff; font-weight:700}
.opt.correct{border-color:var(--ok); background:var(--ok-soft)}
.opt.correct .mark{background:var(--ok); border-color:var(--ok)}
.opt.wrong{border-color:var(--bad); background:var(--bad-soft)}
.opt.wrong .mark{background:var(--bad); border-color:var(--bad)}
.opt:disabled{cursor:default}
.explain{margin:14px 0 0; padding:13px 14px; background:var(--primary-soft); border-radius:var(--r); font-size:.89rem;
  color:var(--ink-2); border-left:3px solid var(--primary)}
.explain.bad{background:var(--bad-soft); border-left-color:var(--bad)}
.quiz-nav{display:flex; justify-content:space-between; gap:10px; margin-top:16px}

/* focus picker */
.focus-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:9px}
.focus{display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; background:var(--surface-2);
  border:1.5px solid var(--line); border-radius:var(--r); padding:12px 13px; cursor:pointer; transition:.14s; font-family:var(--body); color:var(--ink)}
.focus:hover{border-color:var(--primary); background:#fff}
.focus.sel{border-color:var(--primary); background:var(--primary-soft)}
.focus b{font-family:var(--disp); font-size:.95rem}
.focus span{font-size:1.18rem}

/* ---------- credit-card "score card" result (signature) ---------- */
.result{padding:22px 18px 24px; text-align:center}
.scorecard{position:relative; width:100%; max-width:320px; margin:0 auto 16px; aspect-ratio:1.586/1;
  border-radius:16px; padding:18px 18px 16px; color:#fff; text-align:left; overflow:hidden;
  box-shadow:var(--shadow-lg); display:flex; flex-direction:column; justify-content:space-between}
.scorecard::after{content:""; position:absolute; right:-40px; top:-40px; width:180px; height:180px; border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,255,255,.22),transparent 70%)}
.scorecard .sc-stripe{position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--primary)}
.sc-top{display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1}
.sc-brand{font-family:var(--disp); font-weight:700; letter-spacing:.04em; font-size:.92rem}
.sc-chip{width:34px; height:25px; border-radius:6px; background:linear-gradient(135deg,#f4d479,#caa436);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.sc-score{font-family:var(--mono); font-weight:600; font-size:2.5rem; line-height:1; position:relative; z-index:1}
.sc-score small{font-size:1rem; opacity:.8}
.sc-bottom{display:flex; align-items:flex-end; justify-content:space-between; position:relative; z-index:1}
.sc-tier{font-family:var(--disp); font-weight:700; font-size:1.2rem; letter-spacing:.06em; text-transform:uppercase}
.sc-cap{font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; opacity:.75}
/* tier gradients */
.scorecard.tier-0{background:linear-gradient(135deg,#6b6275,#403a4d)}
.scorecard.tier-1{background:linear-gradient(135deg,#e6b34a,#b07d18)}
.scorecard.tier-2{background:linear-gradient(135deg,#9aa6b8,#5f6b7e)}
.scorecard.tier-3{background:linear-gradient(135deg,#2a2233,#120d18)}
.scorecard.tier-3::after{background:radial-gradient(closest-side,rgba(219,39,119,.45),transparent 70%)}

.tier-blurb{color:var(--ink-2); font-size:.95rem; margin:0 auto 16px; max-width:32ch}
.next-steps{display:grid; gap:9px; text-align:left; margin:6px 0 14px}
.next-steps a{display:flex; align-items:center; gap:10px; background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:12px 14px; font-weight:500; color:var(--ink)}
.next-steps a:hover{border-color:var(--primary); background:#fff}

/* checks / terms / callout */
.checks{list-style:none; padding:0; margin:0; display:grid; gap:9px}
.checks li{position:relative; padding-left:28px; color:var(--ink-2)}
.checks li::before{content:"✓"; position:absolute; left:0; top:1px; width:19px; height:19px; background:var(--primary);
  color:#fff; border-radius:50%; display:grid; place-items:center; font-size:.7rem; font-weight:700}
.terms{display:grid; gap:10px}
.term{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:12px 14px}
.term b{font-family:var(--disp); display:block; margin-bottom:2px}
.term span{color:var(--muted); font-size:.9rem}
.callout{background:#fdf6ea; border:1px solid #f3e2bd; border-left:3px solid var(--warn); border-radius:var(--r);
  padding:13px 15px; color:var(--ink-2); font-size:.92rem; margin:16px 0}
.cat-hero,.guide-hero{aspect-ratio:16/10; border-radius:var(--r-lg); margin:4px 0 18px; box-shadow:var(--shadow)}

/* calculator */
.calc{padding:18px; display:grid; gap:12px; margin-bottom:16px}
.calc-field{display:grid; gap:5px}
.calc-field label{font-size:.84rem; font-weight:600; color:var(--ink-2)}
.calc-field input{font-family:var(--mono); font-size:1rem; padding:11px 13px; border:1.5px solid var(--line);
  border-radius:var(--r); background:var(--surface-2); color:var(--ink)}
.calc-field input:focus{border-color:var(--primary); background:#fff; outline:none}
.calc-result{padding:20px 18px}
.calc-head{font-family:var(--disp); font-weight:600; color:var(--muted); font-size:.84rem; text-transform:uppercase; letter-spacing:.08em}
.calc-big{font-family:var(--mono); font-size:2.2rem; font-weight:600; color:var(--primary); margin:4px 0 14px}
.calc-rows{display:grid; gap:7px; border-top:1px solid var(--line); padding-top:13px}
.calc-rows div{display:flex; justify-content:space-between; font-size:.92rem; color:var(--ink-2)}
.calc-rows b{font-family:var(--mono); color:var(--ink); font-weight:500}
.warn-note{margin:12px 0 0; padding:11px 13px; background:var(--bad-soft); border-left:3px solid var(--bad);
  border-radius:var(--r); color:#9a2c3c; font-size:.86rem}

/* prose / legal */
.prose p{margin:0 0 14px; color:var(--ink-2)}
.prose b{color:var(--ink)}
.prose a,.legal a{color:var(--primary); font-weight:600}
.legal p{color:var(--ink-2); margin:0 0 13px}
.legal h2{margin-bottom:14px}
.contact-form{display:grid; gap:6px; margin-top:10px}
.contact-form label{font-size:.84rem; font-weight:600; color:var(--ink-2); margin-top:6px}
.contact-form input,.contact-form textarea{font-family:var(--body); padding:11px 13px; border:1.5px solid var(--line);
  border-radius:var(--r); background:var(--surface-2)}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--primary); background:#fff; outline:none}
.contact-form button{margin-top:12px}

/* ads */
.ad-slot{margin:8px var(--pad) 4px; min-height:280px; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg,#f3ecf1,#f3ecf1 12px,#ece1ea 12px,#ece1ea 24px);
  border:1px dashed var(--line-2); border-radius:var(--r); text-align:center}
.ad-slot[data-ad="top"]{margin-top:12px}
.ad-label{font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:#a294a0; font-weight:600}
.ad-note{font-size:.86rem; color:#b6a8b3; margin-top:2px}

/* footer */
.foot{background:var(--ink); color:#cbbfd6; margin-top:24px; padding:26px var(--pad) 32px}
.foot-cats{display:flex; flex-wrap:wrap; gap:8px 14px; margin-bottom:16px; font-weight:600; font-size:.9rem}
.foot-cats a{color:#e2d6ea}
.foot-cats a:hover{color:var(--accent)}
.foot .disc{font-size:.78rem; line-height:1.6; color:#998aa6; margin:0 0 14px}
.foot .disc b{color:#cbbfd6}
.foot-links{font-size:.82rem; line-height:2; color:#b6a8b3}
.foot-links a:hover{color:#fff}
.copy{font-size:.78rem; color:#897a96; margin:12px 0 0}

/* toast */
.toast{position:fixed; left:50%; bottom:20px; transform:translateX(-50%) translateY(20px); background:var(--ink); color:#fff;
  padding:12px 18px; border-radius:var(--r-pill); font-size:.9rem; font-weight:500; box-shadow:var(--shadow-lg);
  opacity:0; pointer-events:none; transition:.25s; z-index:60; max-width:90%}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

.fade-in{animation:fade .32s ease both}
@keyframes fade{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important} .btn-primary:hover,.gcard:hover,.cchip:hover{transform:none} }
