/* FanReceipts creator site - shared design system. Two directions via [data-theme]:
   a = Blush Editorial (soft luxe, serif)   b = Neon Pop (sticker / neo-brutalist) */
:root{
  --font-body:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:'DM Mono',ui-monospace,Consolas,monospace;
  --wrap:1160px;
}
[data-theme="a"]{
  --bg:#FBF3EC; --bg2:#F5E4D9; --surface:#FFFFFF; --ink:#2A1220; --muted:#6A5162; --line:rgba(42,18,32,.13);
  --accent:#B0245F; --accent-ink:#FFFFFF; --accent2:#F4A6B8; --accent3:#F7CFA8; --accent4:#6F8F7B;
  --soft:#FCE4EA; --soft2:#FDEBD6; --good:#2F7D5B; --bad:#B23A48; --warn:#C77A1E;
  --paper:#FFFDF8; --paper-ink:#2A1220; --dark:#2A1220; --dark-ink:#FBF3EC;
  --radius:24px; --radius-sm:14px; --bw:1px;
  --shadow:0 22px 44px -22px rgba(120,40,80,.35); --shadow-sm:0 8px 20px -12px rgba(120,40,80,.3);
  --btn-shadow:none;
  --font-display:'Fraunces',Georgia,'Times New Roman',serif; --dw:600; --dls:-0.025em; --dcase:none; --ditalic:italic;
}
[data-theme="b"]{
  --bg:#F3ECFF; --bg2:#E4D6FF; --surface:#FFFFFF; --ink:#1B0B33; --muted:#5E4B80; --line:#1B0B33;
  --accent:#FF2E93; --accent-ink:#1B0B33; --accent2:#7B4DFF; --accent3:#D6FF3F; --accent4:#18D6C4;
  --soft:#FFD9EC; --soft2:#EDFFA6; --good:#08966F; --bad:#E5195B; --warn:#E08A00;
  --paper:#FFFFFF; --paper-ink:#1B0B33; --dark:#1B0B33; --dark-ink:#FFFFFF;
  --radius:20px; --radius-sm:12px; --bw:2px;
  --shadow:6px 6px 0 var(--ink); --shadow-sm:4px 4px 0 var(--ink);
  --btn-shadow:3px 3px 0 var(--ink);
  --font-display:'Bricolage Grotesque','DM Sans',system-ui,sans-serif; --dw:800; --dls:-0.035em; --dcase:none; --ditalic:normal;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
[data-theme="a"] .only-b,[data-theme="b"] .only-a{display:none!important}
.mono{font-family:var(--font-mono)}
.display{font-family:var(--font-display);font-weight:var(--dw);letter-spacing:var(--dls);line-height:1.02}
h1.display{font-size:clamp(44px,6.4vw,84px)}
h2.display{font-size:clamp(32px,4.2vw,54px)}
h3.display{font-size:clamp(22px,2.4vw,30px);line-height:1.1}
.display em{font-style:var(--ditalic);color:var(--accent);font-weight:inherit}
[data-theme="b"] .display em{background:var(--accent3);color:var(--ink);padding:0 .12em;border-radius:.18em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:500}
[data-theme="b"] .eyebrow{color:var(--ink);background:var(--accent3);display:inline-block;padding:3px 10px;border:var(--bw) solid var(--ink);border-radius:99px;letter-spacing:.1em}
.lede{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:56ch}
.muted{color:var(--muted)}
.center{text-align:center}.center .lede{margin-inline:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:600 15px var(--font-body);padding:14px 24px;border-radius:99px;border:var(--bw) solid var(--ink);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--btn-shadow)}
[data-theme="a"] .btn{border-color:var(--line)}
.btn:hover{transform:translate(-1px,-2px)}
[data-theme="b"] .btn:hover{box-shadow:5px 5px 0 var(--ink)}
.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
[data-theme="b"] .btn-primary{border-color:var(--ink)}
[data-theme="a"] .btn-primary{box-shadow:0 12px 24px -10px rgba(176,36,95,.6)}
.btn-dark{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn-lg{padding:18px 32px;font-size:17px}
.btn-sm{padding:9px 16px;font-size:13px}
.chip{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--font-body);padding:5px 12px;border-radius:99px;background:var(--soft);color:var(--accent);border:var(--bw) solid transparent}
[data-theme="b"] .chip{border-color:var(--ink);color:var(--ink)}
.chip.good{background:#DDF3E8;color:var(--good)}[data-theme="b"] .chip.good{background:var(--accent4);color:var(--ink)}
.chip.warn{background:#FFEBCB;color:#9A5B00}[data-theme="b"] .chip.warn{background:var(--accent3);color:var(--ink)}
.chip.violet{background:#EADFFF;color:#5B34D6}[data-theme="a"] .chip.violet{background:#F0E1EC;color:#7B2A5B}
.dot{width:9px;height:9px;border-radius:50%;background:var(--good);display:inline-block}

/* cards */
.card{background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.card.flat{box-shadow:none}
.card.tint{background:var(--soft)}
.card.dark{background:var(--dark);color:var(--dark-ink);border-color:var(--dark)}
[data-theme="b"] .card.dark{border-color:var(--ink)}
.grid{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}.wrap{padding:0 18px}}
section{padding:96px 0}
@media(max-width:640px){section{padding:64px 0}}
.sec-head{margin-bottom:48px;display:grid;gap:16px}

/* nav */
.nav{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:var(--bw) solid var(--line)}
[data-theme="b"] .nav{background:var(--bg)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-display);font-weight:var(--dw);font-size:23px;letter-spacing:var(--dls)}
.logo-mark{width:34px;height:38px;flex:none}
.nav .btn{white-space:nowrap}@media(max-width:640px){.nav .btn:not(.btn-primary){display:none}.logo{font-size:20px}}
.nav-links{display:flex;gap:30px;font-size:14.5px;font-weight:500}
.nav-links a{text-decoration:none;color:var(--muted)}.nav-links a:hover{color:var(--ink)}
@media(max-width:820px){.nav-links{display:none}}

/* receipt */
.receipt{position:relative;background:var(--paper);color:var(--paper-ink);font-family:var(--font-mono);font-size:13px;padding:22px 22px 30px;border-radius:6px 6px 0 0;margin-bottom:12px}
.receipt::after{content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;background:linear-gradient(135deg,var(--paper) 50%,transparent 50%) 0 0/16px 12px,linear-gradient(225deg,var(--paper) 50%,transparent 50%) 0 0/16px 12px;background-repeat:repeat-x}
.receipt-wrap{filter:drop-shadow(0 14px 16px rgba(120,40,80,.18))}
[data-theme="b"] .receipt-wrap{filter:drop-shadow(4px 4px 0 var(--ink))}
[data-theme="b"] .receipt{border:var(--bw) solid var(--ink);border-bottom:0}
.receipt h4,.receipt .rh{font:500 11px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--muted)}
.receipt .rname{font-family:var(--font-display);font-weight:var(--dw);font-size:26px;letter-spacing:var(--dls);text-align:center;margin:4px 0 2px}
.receipt hr{border:0;border-top:1.5px dashed color-mix(in srgb,var(--paper-ink) 35%,transparent);margin:12px 0}
.receipt .row{display:flex;justify-content:space-between;gap:12px;padding:2px 0}
.receipt .tot{font-weight:500;font-size:16px}
.receipt .barcode{height:34px;margin-top:14px;background:repeating-linear-gradient(90deg,var(--paper-ink) 0 2px,transparent 2px 4px,var(--paper-ink) 4px 5px,transparent 5px 9px,var(--paper-ink) 9px 12px,transparent 12px 14px);opacity:.85}
.receipt .thanks{text-align:center;margin-top:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* stat cards */
.stat{background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--radius-sm);padding:18px 20px}
[data-theme="b"] .stat{box-shadow:var(--shadow-sm)}
.stat .k{font:500 11px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.stat .v{font-family:var(--font-display);font-weight:var(--dw);font-size:34px;letter-spacing:var(--dls);line-height:1.1;margin-top:6px}
.stat .d{font-size:13px;color:var(--muted);margin-top:2px}
.stat.hero{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
[data-theme="b"] .stat.hero{border-color:var(--ink)}
.stat.hero .k,.stat.hero .d{color:color-mix(in srgb,var(--accent-ink) 92%,transparent)}
.up{color:var(--good);font-weight:700}.down{color:var(--bad);font-weight:700}

/* coach note */
.coach{display:flex;gap:16px;align-items:flex-start;background:var(--soft);border-radius:var(--radius-sm);padding:18px 20px;border:var(--bw) solid transparent}
[data-theme="b"] .coach{background:var(--accent3);border-color:var(--ink)}
.coach .av{flex:none;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:18px}
[data-theme="b"] .coach .av{border:var(--bw) solid var(--ink)}
.coach>div>b:first-child{display:block;font-size:12px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}

/* bars */
.bars{display:grid;gap:10px}
.bar-row{display:grid;grid-template-columns:120px 1fr 64px;gap:12px;align-items:center;font-size:14px}
.bar-row .track{height:12px;border-radius:99px;background:color-mix(in srgb,var(--ink) 8%,transparent);overflow:hidden}
.bar-row .fill{height:100%;border-radius:99px;background:var(--accent)}
.bar-row .fill.alt{background:var(--accent2)}
.bar-row .val{text-align:right;font-family:var(--font-mono);font-size:13px}

/* tags */
.tag{display:inline-block;font:500 12px var(--font-mono);padding:3px 10px;border-radius:99px;background:color-mix(in srgb,var(--ink) 7%,transparent);margin:2px 2px 2px 0}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 16px var(--font-display);color:#fff;flex:none;border:var(--bw) solid var(--line)}
[data-theme="b"] .avatar{border-color:var(--ink)}

/* device frames */
.laptop{border:var(--bw) solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.laptop .bar{display:flex;gap:7px;padding:12px 16px;border-bottom:var(--bw) solid var(--line);background:color-mix(in srgb,var(--bg2) 60%,var(--surface))}
.laptop .bar i{width:11px;height:11px;border-radius:50%;background:color-mix(in srgb,var(--ink) 18%,transparent);display:block}
.phone{width:300px;border:calc(var(--bw)*4) solid var(--ink);border-radius:42px;background:var(--bg);overflow:hidden;box-shadow:var(--shadow);position:relative}
.phone::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:84px;height:22px;border-radius:99px;background:var(--ink);z-index:3}

/* marquee (B) */
.marquee{overflow:hidden;background:var(--ink);color:var(--accent3);border-block:var(--bw) solid var(--ink);padding:14px 0;white-space:nowrap}
.marquee div{display:inline-block;animation:slide 28s linear infinite;font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:.02em}
.marquee span{margin:0 22px}
@keyframes slide{to{transform:translateX(-50%)}}
.sticker{position:absolute;display:grid;place-items:center;text-align:center;font:800 14px/1.05 var(--font-display);width:112px;height:112px;background:var(--accent3);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:50%;transform:rotate(12deg);box-shadow:3px 3px 0 var(--ink);z-index:4}
.sticker.pink{background:var(--accent);color:#fff}

/* forms */
.field{display:grid;gap:6px;font-size:14px}
.field label{font-weight:600}
.input{font:500 15px var(--font-body);padding:13px 16px;border-radius:var(--radius-sm);border:var(--bw) solid var(--line);background:var(--surface);color:var(--ink);width:100%}
[data-theme="b"] .input{border-color:var(--ink)}
.input:focus{outline:2px solid var(--accent);outline-offset:2px}
.toggle{width:44px;height:26px;border-radius:99px;background:color-mix(in srgb,var(--ink) 18%,transparent);position:relative;flex:none;border:var(--bw) solid transparent;cursor:pointer}
[data-theme="b"] .toggle{border-color:var(--ink)}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;border:1px solid rgba(0,0,0,.1)}
.toggle.on{background:var(--accent)}.toggle.on::after{left:20px}

/* pricing / faq */
.price{display:grid;gap:18px;align-content:start}
.price .amt{font-family:var(--font-display);font-weight:var(--dw);font-size:56px;letter-spacing:var(--dls);line-height:1}
.price .amt small{font:500 15px var(--font-body);color:var(--muted);letter-spacing:0}
.price ul{list-style:none;display:grid;gap:10px;font-size:15px}
.price li{display:flex;gap:10px}.price li::before{content:"\2713";color:var(--accent);font-weight:800}
.price.pop{background:var(--ink);color:var(--bg);position:relative}
[data-theme="a"] .price.pop{background:linear-gradient(160deg,#4A1738,#2A1220)}
.price.pop li::before{color:var(--accent3)}
.price.pop .muted,.price.pop .amt small{color:color-mix(in srgb,var(--bg) 65%,transparent)}
details{border-bottom:var(--bw) solid var(--line);padding:20px 0}
summary{cursor:pointer;font-family:var(--font-display);font-weight:var(--dw);font-size:21px;letter-spacing:-.01em;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::after{content:"+";color:var(--accent);font-size:26px;line-height:1}
details[open] summary::after{content:"\2212"}
details p{margin-top:12px;color:var(--muted);max-width:70ch}

footer{padding:56px 0;border-top:var(--bw) solid var(--line);font-size:14px;color:var(--muted)}

/* design-review bar (hidden when framed) */
.dr-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:99;display:flex;gap:6px;align-items:center;background:#17101c;color:#fff;border-radius:99px;padding:6px 8px 6px 16px;font:600 12px var(--font-body);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.dr-bar a,.dr-bar button{white-space:nowrap;font:600 12px var(--font-body);color:#fff;text-decoration:none;background:transparent;border:0;padding:7px 12px;border-radius:99px;cursor:pointer;opacity:.7}
.dr-bar a:hover,.dr-bar button:hover{opacity:1}
.dr-bar .on{background:#fff;color:#17101c;opacity:1}
.dr-bar .sep{width:1px;height:18px;background:rgba(255,255,255,.25);margin:0 4px}
.framed .dr-bar{display:none}
@media print{.dr-bar{display:none}}
@media(max-width:640px){.dr-bar{display:none}}

/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.marquee div{animation:none}}

/* ---- Direction A refinement: squarer, more editorial controls (no pill buttons, no pastel chips) ---- */
[data-theme="a"]{--radius:14px;--radius-sm:8px}
[data-theme="a"] .btn{border-radius:3px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;letter-spacing:.01em;padding:14px 26px;box-shadow:none}
[data-theme="a"] .btn:hover{background:var(--ink);color:var(--bg);transform:none}
[data-theme="a"] .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}
[data-theme="a"] .btn-primary:hover{background:#8e1c4b;border-color:#8e1c4b;color:#fff}
[data-theme="a"] .btn-dark{background:var(--ink);color:var(--bg)}
[data-theme="a"] .btn-dark:hover{background:var(--accent);border-color:var(--accent)}
[data-theme="a"] .btn-sm{padding:9px 16px;font-size:13px}
[data-theme="a"] .chip{border-radius:2px;background:transparent;border:1px solid currentColor;color:var(--accent);font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:3px 9px}
[data-theme="a"] .chip.good{background:transparent;color:var(--good)}
[data-theme="a"] .chip.warn{background:transparent;color:#9A5B00}
[data-theme="a"] .chip.violet{background:transparent;color:#7B2A5B}
[data-theme="a"] .tag{border-radius:2px;background:transparent;border:1px solid var(--line);color:var(--ink)}
[data-theme="a"] .chips2 span{border-radius:2px;background:transparent;border:1px solid var(--accent);color:var(--accent)}
[data-theme="a"] .seg{border-radius:4px;background:transparent;border:1px solid var(--line)}
[data-theme="a"] .seg button{border-radius:3px}
[data-theme="a"] .input{border-radius:4px}
[data-theme="a"] .price.pop .chip.warn{background:var(--accent3);color:#2A1220;border-color:var(--accent3)}
[data-theme="a"] .t-keep,[data-theme="a"] .t-try,[data-theme="a"] .t-watch{border-radius:8px}
[data-theme="a"] .sl{border-radius:4px}
[data-theme="a"] .coach{border-radius:8px}
[data-theme="a"] .avatar{border-radius:50%}

/* site-wide */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}.skip:focus{left:8px;top:8px}
footer .fl{display:flex;gap:22px;flex-wrap:wrap}footer .fl a{text-decoration:none;color:var(--muted)}footer .fl a:hover{color:var(--ink)}
.field textarea.input{font-family:var(--font-body)}
select.input{appearance:auto}

.vs tbody th{font-weight:inherit;text-align:left}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mx tbody th{font-weight:600}
